robopark 3.3.27 → 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.
Files changed (139) hide show
  1. package/package.json +1 -1
  2. package/scheduler/main.py +105 -6
  3. package/ui/standalone/.next/BUILD_ID +1 -1
  4. package/ui/standalone/.next/app-build-manifest.json +115 -115
  5. package/ui/standalone/.next/app-path-routes-manifest.json +14 -14
  6. package/ui/standalone/.next/build-manifest.json +3 -3
  7. package/ui/standalone/.next/prerender-manifest.json +3 -3
  8. package/ui/standalone/.next/required-server-files.json +3 -3
  9. package/ui/standalone/.next/server/app/(app)/opengraph-image-xg4ifa/route.js +1 -1
  10. package/ui/standalone/.next/server/app/(app)/opengraph-image-xg4ifa/route_client-reference-manifest.js +1 -1
  11. package/ui/standalone/.next/server/app/(app)/page.js +2 -2
  12. package/ui/standalone/.next/server/app/(app)/page.js.nft.json +1 -1
  13. package/ui/standalone/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  14. package/ui/standalone/.next/server/app/(app)/voice/page.js +3 -3
  15. package/ui/standalone/.next/server/app/(app)/voice/page.js.nft.json +1 -1
  16. package/ui/standalone/.next/server/app/(app)/voice/page_client-reference-manifest.js +1 -1
  17. package/ui/standalone/.next/server/app/_not-found/page.js +2 -2
  18. package/ui/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/ui/standalone/.next/server/app/api/connection-details/route.js +1 -1
  20. package/ui/standalone/.next/server/app/api/connection-details/route_client-reference-manifest.js +1 -1
  21. package/ui/standalone/.next/server/app/api/device-character/route.js +1 -1
  22. package/ui/standalone/.next/server/app/api/device-character/route_client-reference-manifest.js +1 -1
  23. package/ui/standalone/.next/server/app/api/download-piper-model/route.js +1 -1
  24. package/ui/standalone/.next/server/app/api/download-piper-model/route_client-reference-manifest.js +1 -1
  25. package/ui/standalone/.next/server/app/api/kiosk-hardware/route.js +1 -1
  26. package/ui/standalone/.next/server/app/api/kiosk-hardware/route_client-reference-manifest.js +1 -1
  27. package/ui/standalone/.next/server/app/api/model-status/route.js +1 -1
  28. package/ui/standalone/.next/server/app/api/model-status/route_client-reference-manifest.js +1 -1
  29. package/ui/standalone/.next/server/app/api/models/route.js +1 -1
  30. package/ui/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  31. package/ui/standalone/.next/server/app/api/prewarm/route.js +1 -1
  32. package/ui/standalone/.next/server/app/api/prewarm/route_client-reference-manifest.js +1 -1
  33. package/ui/standalone/.next/server/app/api/prompt/route.js +1 -1
  34. package/ui/standalone/.next/server/app/api/prompt/route_client-reference-manifest.js +1 -1
  35. package/ui/standalone/.next/server/app/api/reload-tools/route.js +1 -1
  36. package/ui/standalone/.next/server/app/api/reload-tools/route_client-reference-manifest.js +1 -1
  37. package/ui/standalone/.next/server/app/api/robopark/camera-token/route.js +1 -1
  38. package/ui/standalone/.next/server/app/api/robopark/camera-token/route_client-reference-manifest.js +1 -1
  39. package/ui/standalone/.next/server/app/api/robopark/character-ai/route.js +1 -1
  40. package/ui/standalone/.next/server/app/api/robopark/character-ai/route_client-reference-manifest.js +1 -1
  41. package/ui/standalone/.next/server/app/api/robopark/device-access/route.js +1 -1
  42. package/ui/standalone/.next/server/app/api/robopark/device-access/route_client-reference-manifest.js +1 -1
  43. package/ui/standalone/.next/server/app/api/robopark/devices/[deviceId]/control/route.js +1 -1
  44. package/ui/standalone/.next/server/app/api/robopark/devices/[deviceId]/control/route_client-reference-manifest.js +1 -1
  45. package/ui/standalone/.next/server/app/api/robopark/live-rooms/route.js +1 -1
  46. package/ui/standalone/.next/server/app/api/robopark/live-rooms/route_client-reference-manifest.js +1 -1
  47. package/ui/standalone/.next/server/app/api/robopark/monitor-token/route.js +1 -1
  48. package/ui/standalone/.next/server/app/api/robopark/monitor-token/route_client-reference-manifest.js +1 -1
  49. package/ui/standalone/.next/server/app/api/robopark/robots/[robotId]/operations/route.js +1 -1
  50. package/ui/standalone/.next/server/app/api/robopark/robots/[robotId]/operations/route_client-reference-manifest.js +1 -1
  51. package/ui/standalone/.next/server/app/api/robopark/robots/[robotId]/voice-engine/route.js +1 -1
  52. package/ui/standalone/.next/server/app/api/robopark/robots/[robotId]/voice-engine/route_client-reference-manifest.js +1 -1
  53. package/ui/standalone/.next/server/app/api/robopark/robots/route.js +1 -1
  54. package/ui/standalone/.next/server/app/api/robopark/robots/route_client-reference-manifest.js +1 -1
  55. package/ui/standalone/.next/server/app/api/robopark/servers/[serverId]/metrics/route.js +1 -1
  56. package/ui/standalone/.next/server/app/api/robopark/servers/[serverId]/metrics/route_client-reference-manifest.js +1 -1
  57. package/ui/standalone/.next/server/app/api/robopark/servers/[serverId]/route.js +1 -1
  58. package/ui/standalone/.next/server/app/api/robopark/servers/[serverId]/route_client-reference-manifest.js +1 -1
  59. package/ui/standalone/.next/server/app/api/robopark/servers/route.js +1 -1
  60. package/ui/standalone/.next/server/app/api/robopark/servers/route_client-reference-manifest.js +1 -1
  61. package/ui/standalone/.next/server/app/api/robopark/sessions/[sessionId]/end/route.js +1 -1
  62. package/ui/standalone/.next/server/app/api/robopark/sessions/[sessionId]/end/route_client-reference-manifest.js +1 -1
  63. package/ui/standalone/.next/server/app/api/robopark/sessions/route.js +1 -1
  64. package/ui/standalone/.next/server/app/api/robopark/sessions/route_client-reference-manifest.js +1 -1
  65. package/ui/standalone/.next/server/app/api/robopark/transcripts/[sessionId]/route.js +1 -1
  66. package/ui/standalone/.next/server/app/api/robopark/transcripts/[sessionId]/route_client-reference-manifest.js +1 -1
  67. package/ui/standalone/.next/server/app/api/robopark/transcripts/route.js +1 -1
  68. package/ui/standalone/.next/server/app/api/robopark/transcripts/route_client-reference-manifest.js +1 -1
  69. package/ui/standalone/.next/server/app/api/robopark/vision-caption/route.js +1 -1
  70. package/ui/standalone/.next/server/app/api/robopark/vision-caption/route_client-reference-manifest.js +1 -1
  71. package/ui/standalone/.next/server/app/api/robovoice/robots/[robotId]/media-health/route.js +1 -1
  72. package/ui/standalone/.next/server/app/api/robovoice/robots/[robotId]/media-health/route_client-reference-manifest.js +1 -1
  73. package/ui/standalone/.next/server/app/api/settings/route.js +1 -1
  74. package/ui/standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  75. package/ui/standalone/.next/server/app/api/setup/complete/route.js +1 -1
  76. package/ui/standalone/.next/server/app/api/setup/complete/route_client-reference-manifest.js +1 -1
  77. package/ui/standalone/.next/server/app/api/setup/status/route.js +1 -1
  78. package/ui/standalone/.next/server/app/api/setup/status/route_client-reference-manifest.js +1 -1
  79. package/ui/standalone/.next/server/app/api/setup/test-groq/route.js +1 -1
  80. package/ui/standalone/.next/server/app/api/setup/test-groq/route_client-reference-manifest.js +1 -1
  81. package/ui/standalone/.next/server/app/api/setup/test-hass/route.js +1 -1
  82. package/ui/standalone/.next/server/app/api/setup/test-hass/route_client-reference-manifest.js +1 -1
  83. package/ui/standalone/.next/server/app/api/setup/test-n8n/route.js +1 -1
  84. package/ui/standalone/.next/server/app/api/setup/test-n8n/route_client-reference-manifest.js +1 -1
  85. package/ui/standalone/.next/server/app/api/setup/test-ollama/route.js +1 -1
  86. package/ui/standalone/.next/server/app/api/setup/test-ollama/route_client-reference-manifest.js +1 -1
  87. package/ui/standalone/.next/server/app/api/test-tts/route.js +1 -1
  88. package/ui/standalone/.next/server/app/api/test-tts/route_client-reference-manifest.js +1 -1
  89. package/ui/standalone/.next/server/app/api/turn-credentials/route.js +1 -1
  90. package/ui/standalone/.next/server/app/api/turn-credentials/route_client-reference-manifest.js +1 -1
  91. package/ui/standalone/.next/server/app/api/voices/route.js +1 -1
  92. package/ui/standalone/.next/server/app/api/voices/route_client-reference-manifest.js +1 -1
  93. package/ui/standalone/.next/server/app/api/wake/route.js +1 -1
  94. package/ui/standalone/.next/server/app/api/wake/route_client-reference-manifest.js +1 -1
  95. package/ui/standalone/.next/server/app/api/wake-word/models/route.js +1 -1
  96. package/ui/standalone/.next/server/app/api/wake-word/models/route_client-reference-manifest.js +1 -1
  97. package/ui/standalone/.next/server/app/api/wake-word/status/route.js +1 -1
  98. package/ui/standalone/.next/server/app/api/wake-word/status/route_client-reference-manifest.js +1 -1
  99. package/ui/standalone/.next/server/app/api/wake-word/upload/route.js +1 -1
  100. package/ui/standalone/.next/server/app/api/wake-word/upload/route_client-reference-manifest.js +1 -1
  101. package/ui/standalone/.next/server/app/camera-grid/route.js +1 -1
  102. package/ui/standalone/.next/server/app/camera-grid/route_client-reference-manifest.js +1 -1
  103. package/ui/standalone/.next/server/app/favicon.ico/route.js +1 -1
  104. package/ui/standalone/.next/server/app/fed/[...path]/route.js +2 -2
  105. package/ui/standalone/.next/server/app/fed/[...path]/route_client-reference-manifest.js +1 -1
  106. package/ui/standalone/.next/server/app/fed/media/robots/[robotId]/video_feed/route.js +1 -1
  107. package/ui/standalone/.next/server/app/fed/media/robots/[robotId]/video_feed/route_client-reference-manifest.js +1 -1
  108. package/ui/standalone/.next/server/app/robopark/[...path]/route.js +1 -1
  109. package/ui/standalone/.next/server/app/robopark/[...path]/route_client-reference-manifest.js +1 -1
  110. package/ui/standalone/.next/server/app/robopark/api/[...path]/route.js +1 -1
  111. package/ui/standalone/.next/server/app/robopark/api/[...path]/route_client-reference-manifest.js +1 -1
  112. package/ui/standalone/.next/server/app/robopark/api/robots/[robotId]/stream/route.js +1 -1
  113. package/ui/standalone/.next/server/app/robopark/api/robots/[robotId]/stream/route_client-reference-manifest.js +1 -1
  114. package/ui/standalone/.next/server/app/robopark/page.js +2 -2
  115. package/ui/standalone/.next/server/app/robopark/page.js.nft.json +1 -1
  116. package/ui/standalone/.next/server/app/robopark/page_client-reference-manifest.js +1 -1
  117. package/ui/standalone/.next/server/app/tailnet/route.js +1 -1
  118. package/ui/standalone/.next/server/app/tailnet/route_client-reference-manifest.js +1 -1
  119. package/ui/standalone/.next/server/app/vendor/livekit-client.umd.js/route.js +1 -1
  120. package/ui/standalone/.next/server/app/vendor/livekit-client.umd.js/route_client-reference-manifest.js +1 -1
  121. package/ui/standalone/.next/server/app/voice-tester/page.js +2 -2
  122. package/ui/standalone/.next/server/app/voice-tester/page.js.nft.json +1 -1
  123. package/ui/standalone/.next/server/app/voice-tester/page_client-reference-manifest.js +1 -1
  124. package/ui/standalone/.next/server/app-paths-manifest.json +14 -14
  125. package/ui/standalone/.next/server/chunks/5232.js +4 -4
  126. package/ui/standalone/.next/server/chunks/5455.js +11 -0
  127. package/ui/standalone/.next/server/chunks/9077.js +11 -0
  128. package/ui/standalone/.next/server/functions-config-manifest.json +1 -1
  129. package/ui/standalone/.next/server/middleware-build-manifest.js +1 -1
  130. package/ui/standalone/.next/server/pages/500.html +1 -1
  131. package/ui/standalone/.next/server/server-reference-manifest.json +1 -1
  132. package/ui/standalone/.next/static/KwY1YC79lI9nQqOVYXOmY/_buildManifest.js +1 -0
  133. package/ui/standalone/.next/static/KwY1YC79lI9nQqOVYXOmY/_ssgManifest.js +1 -0
  134. package/ui/standalone/.next/static/chunks/app/(app)/voice/page-72d72d9a70d9c1d4.js +1 -0
  135. package/ui/standalone/.next/static/chunks/app/_not-found/page-cfd7daa82d71540c.js +1 -0
  136. package/ui/standalone/.next/static/chunks/app/layout-fcce963da1d8220f.js +1 -0
  137. package/ui/standalone/.next/static/chunks/app/voice-tester/page-ae699e048e0eb834.js +1 -0
  138. package/ui/standalone/.next/static/chunks/main-app-a1f59168303c7f84.js +1 -0
  139. package/ui/standalone/server.js +1 -1
@@ -1 +1 @@
1
- (()=>{var a={};a.id=5732,a.ids=[5732],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}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32311:(a,b,c)=>{"use strict";c.d(b,{ME:()=>j,c5:()=>k,jg:()=>e,qz:()=>h,w$:()=>d,xE:()=>i});let d="robopanda_device_id",e="robopanda_character_id",f=/^[a-zA-Z0-9_-]{1,64}$/,g=/^robopark-[a-zA-Z0-9_-]{1,64}$/;function h(a){return"string"==typeof a&&f.test(a)}let i=h;function j(a){if(!h(a))throw Error("Invalid RoboPanda device ID");return`robopark-${a}`}function k(a){return"string"==typeof a&&g.test(a)}},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")},64745:(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:()=>z,POST:()=>A});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(32311),w=c(3787);let x=process.env.WEBHOOK_URL||"http://agent:8889";async function y(){let a=await fetch(`${x}/settings`,{cache:"no-store"});if(!a.ok)throw Error(`Settings registry returned ${a.status}`);let b=await a.json();return b.settings||b}async function z(a,{params:b}){let{deviceId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid device ID"},{status:400});try{let a=await y(),b=a.device_registry?.[c];if(!b)return u.NextResponse.json({error:"Device is not registered"},{status:404});return u.NextResponse.json({ok:!0,device_id:c,control:b.control||{volume_percent:100,revision:0,restart_revision:0,camera_recovery_revision:0,kill_competitors_revision:0}})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Control lookup failed"},{status:500})}}async function A(a,{params:b}){let{deviceId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid device ID"},{status:400});try{let b=await a.json(),d=String(b?.action||"");if(!["set-volume","set-audio-processing","restart","recover-camera","kill-media-competitors"].includes(d))return u.NextResponse.json({error:"Unsupported control action"},{status:400});let e=Number(b?.volume_percent);if("set-volume"===d&&!Number.isFinite(e))return u.NextResponse.json({error:"volume_percent is required"},{status:400});let f=await (0,w.i)(a=>{let f=a[c];if(!f)throw Error("DEVICE_NOT_REGISTERED");let g=f.control||{},h={...g,volume_percent:Number.isFinite(Number(g.volume_percent))?Number(g.volume_percent):100,revision:Number(g.revision||0)+1,restart_revision:Number(g.restart_revision||0),camera_recovery_revision:Number(g.camera_recovery_revision||0),kill_competitors_revision:Number(g.kill_competitors_revision||0),updated_at:new Date().toISOString()};if("set-volume"===d&&(h.volume_percent=Math.max(0,Math.min(100,Math.round(e)))),"set-audio-processing"===d){let a=Number(b?.mic_gain_percent);h.mic_gain_percent=Math.max(0,Math.min(200,Math.round(Number.isFinite(a)?a:100))),h.echo_cancellation=b?.echo_cancellation!==!1,h.noise_suppression=b?.noise_suppression!==!1,h.auto_gain_control=b?.auto_gain_control===!0}return"restart"===d&&(h.restart_revision=Number(g.restart_revision||0)+1),"recover-camera"===d&&(h.camera_recovery_revision=Number(g.camera_recovery_revision||0)+1),"kill-media-competitors"===d&&(h.kill_competitors_revision=Number(g.kill_competitors_revision||0)+1),a[c]={...f,control:h,updated_at:new Date().toISOString()},h}).catch(a=>{if(a instanceof Error&&"DEVICE_NOT_REGISTERED"===a.message)return null;throw a});if(!f)return u.NextResponse.json({error:"Device is not registered"},{status:404});return u.NextResponse.json({ok:!0,device_id:c,action:d,control:f})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Device control failed"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/devices/[deviceId]/control/route",pathname:"/api/robopark/devices/[deviceId]/control",filename:"route",bundlePath:"app/api/robopark/devices/[deviceId]/control/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\devices\\[deviceId]\\control\\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="/api/robopark/devices/[deviceId]/control/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}}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692],()=>b(b.s=64745));module.exports=c})();
1
+ (()=>{var a={};a.id=5732,a.ids=[5732],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}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32311:(a,b,c)=>{"use strict";c.d(b,{ME:()=>j,c5:()=>k,jg:()=>e,qz:()=>h,w$:()=>d,xE:()=>i});let d="robopanda_device_id",e="robopanda_character_id",f=/^[a-zA-Z0-9_-]{1,64}$/,g=/^robopark-[a-zA-Z0-9_-]{1,64}$/;function h(a){return"string"==typeof a&&f.test(a)}let i=h;function j(a){if(!h(a))throw Error("Invalid RoboPanda device ID");return`robopark-${a}`}function k(a){return"string"==typeof a&&g.test(a)}},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")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87305:(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:()=>z,POST:()=>A});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(32311),w=c(3787);let x=process.env.WEBHOOK_URL||"http://agent:8889";async function y(){let a=await fetch(`${x}/settings`,{cache:"no-store"});if(!a.ok)throw Error(`Settings registry returned ${a.status}`);let b=await a.json();return b.settings||b}async function z(a,{params:b}){let{deviceId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid device ID"},{status:400});try{let a=await y(),b=a.device_registry?.[c];if(!b)return u.NextResponse.json({error:"Device is not registered"},{status:404});return u.NextResponse.json({ok:!0,device_id:c,control:b.control||{volume_percent:100,revision:0,restart_revision:0,camera_recovery_revision:0,kill_competitors_revision:0}})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Control lookup failed"},{status:500})}}async function A(a,{params:b}){let{deviceId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid device ID"},{status:400});try{let b=await a.json(),d=String(b?.action||"");if(!["set-volume","set-audio-processing","restart","recover-camera","kill-media-competitors"].includes(d))return u.NextResponse.json({error:"Unsupported control action"},{status:400});let e=Number(b?.volume_percent);if("set-volume"===d&&!Number.isFinite(e))return u.NextResponse.json({error:"volume_percent is required"},{status:400});let f=await (0,w.i)(a=>{let f=a[c];if(!f)throw Error("DEVICE_NOT_REGISTERED");let g=f.control||{},h={...g,volume_percent:Number.isFinite(Number(g.volume_percent))?Number(g.volume_percent):100,revision:Number(g.revision||0)+1,restart_revision:Number(g.restart_revision||0),camera_recovery_revision:Number(g.camera_recovery_revision||0),kill_competitors_revision:Number(g.kill_competitors_revision||0),updated_at:new Date().toISOString()};if("set-volume"===d&&(h.volume_percent=Math.max(0,Math.min(100,Math.round(e)))),"set-audio-processing"===d){let a=Number(b?.mic_gain_percent);h.mic_gain_percent=Math.max(0,Math.min(200,Math.round(Number.isFinite(a)?a:100))),h.echo_cancellation=b?.echo_cancellation!==!1,h.noise_suppression=b?.noise_suppression!==!1,h.auto_gain_control=b?.auto_gain_control===!0}return"restart"===d&&(h.restart_revision=Number(g.restart_revision||0)+1),"recover-camera"===d&&(h.camera_recovery_revision=Number(g.camera_recovery_revision||0)+1),"kill-media-competitors"===d&&(h.kill_competitors_revision=Number(g.kill_competitors_revision||0)+1),a[c]={...f,control:h,updated_at:new Date().toISOString()},h}).catch(a=>{if(a instanceof Error&&"DEVICE_NOT_REGISTERED"===a.message)return null;throw a});if(!f)return u.NextResponse.json({error:"Device is not registered"},{status:404});return u.NextResponse.json({ok:!0,device_id:c,action:d,control:f})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Device control failed"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/devices/[deviceId]/control/route",pathname:"/api/robopark/devices/[deviceId]/control",filename:"route",bundlePath:"app/api/robopark/devices/[deviceId]/control/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\api\\robopark\\devices\\[deviceId]\\control\\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="/api/robopark/devices/[deviceId]/control/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}}},96487:()=>{}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692],()=>b(b.s=87305));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/robopark/devices/[deviceId]/control/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\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\voice-tester\\page.tsx":{"id":6960,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\components\\app\\app.tsx":{"id":5945,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\layout":[{"inlined":false,"path":"static/css/3f478a573f9be82e.css"},{"inlined":false,"path":"static/css/51560c4af1d5a21f.css"}],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\(app)\\layout":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\(app)\\page":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\devices\\[deviceId]\\control\\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
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/robopark/devices/[deviceId]/control/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\\api\\robopark\\devices\\[deviceId]\\control\\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=2236,a.ids=[2236],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75310:(a,b,c)=>{"use strict";c.d(b,{Qy:()=>f,cJ:()=>h,f6:()=>j,i$:()=>g,i0:()=>i});let d=new Map;function e(){let a=Date.now()-1e5;for(let[b,c]of d)c.last_seen<a&&d.delete(b)}function f(a){e(),d.set(a.session_id,{conversation_id:null,connected:!1,...a,last_seen:Date.now()})}function g(a,b){let c=d.get(a);return!!c&&(d.set(a,{...c,...b,last_seen:Date.now()}),!0)}function h(a){return d.delete(a)}function i(){return e(),Array.from(d.values())}function j(){let a=new Map;for(let b of i()){if(!b.robot_id)continue;let c=a.get(b.robot_id);c&&(c.connected||!b.connected)||a.set(b.robot_id,b)}return a}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95403:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>J,patchFetch:()=>I,routeModule:()=>E,serverHooks:()=>H,workAsyncStorage:()=>F,workUnitAsyncStorage:()=>G});var d={};c.r(d),c.d(d,{GET:()=>D,revalidate:()=>B});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(58755),w=c(99435),x=c(75310);let y=process.env.LIVEKIT_API_KEY,z=process.env.LIVEKIT_API_SECRET,A=process.env.LIVEKIT_URL,B=0,C=(process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080").replace(/\/+$/,"");async function D(){if(!y||!z||!A)try{let a=await fetch(`${C}/api/live-rooms`,{cache:"no-store",signal:AbortSignal.timeout(8e3)}),b=await a.json().catch(()=>null);if(a.ok&&Array.isArray(b))return u.NextResponse.json(b,{headers:{"Cache-Control":"no-store"}});return u.NextResponse.json([],{headers:{"Cache-Control":"no-store"}})}catch{return u.NextResponse.json([],{headers:{"Cache-Control":"no-store"}})}try{let a=await (0,w.U)(),b=a.device_registry,c=Object.fromEntries(a.characters.map(a=>[a.id,a.name])),d=(y&&z&&A?await new v.iz(A.replace(/^ws/,"http"),y,z).listRooms():[]).filter(a=>a.name.startsWith("robopark-")&&a.numParticipants>0).map(a=>{let d=a.name.slice(9);return{id:a.sid||a.name,robot_id:d,robot_name:b[d]?.name||`RoboPark ${d.slice(0,6)}`,character_id:b[d]?.character_id||null,character_name:c[b[d]?.character_id||""]||"Unassigned character",room_name:a.name,started_at:new Date(1e3*Number(a.creationTime)).toISOString(),participants:a.numParticipants,voice_engine:b[d]?.voice_engine||"robovoice",camera_url:b[d]?.camera_url||`/fed/media/robots/${encodeURIComponent(d)}/video_feed`}}),e=new Set(d.map(a=>a.robot_id)),f=(0,x.i0)().filter(a=>"elevenlabs"===a.engine&&a.robot_id&&!e.has(a.robot_id)).map(a=>{let d=a.robot_id,e=b[d];return{id:a.session_id,robot_id:d,robot_name:e?.name||`RoboPark ${d.slice(0,6)}`,character_id:a.character_id||e?.character_id||null,character_name:a.character_name||c[e?.character_id||""]||e?.name||"Unassigned character",room_name:a.room_name||`robopark-${d}`,started_at:a.started_at,participants:0,voice_engine:"elevenlabs",camera_url:e?.camera_url||`/fed/media/robots/${encodeURIComponent(d)}/video_feed`}});return u.NextResponse.json([...d,...f],{headers:{"Cache-Control":"no-store"}})}catch(a){return console.error("Failed to list LiveKit rooms:",a),u.NextResponse.json({error:"Failed to list live rooms"},{status:500})}}let E=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/live-rooms/route",pathname:"/api/robopark/live-rooms",filename:"route",bundlePath:"app/api/robopark/live-rooms/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\live-rooms\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:F,workUnitAsyncStorage:G,serverHooks:H}=E;function I(){return(0,g.patchFetch)({workAsyncStorage:F,workUnitAsyncStorage:G})}async function J(a,b,c){var d;let e="/api/robopark/live-rooms/route";"/index"===e&&(e="/");let g=await E.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,D=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[D]||y.routes[C]);if(F&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[D];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||E.isDev||x||(G="/index"===(G=C)?"/":G);let H=!0===E.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>E.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>E.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await E.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await E.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await E.onRequestError(a,b,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},96487:()=>{},99435:(a,b,c)=>{"use strict";c.d(b,{U:()=>l});var d=c(51455),e=c(76760);let f=(process.env.WEBHOOK_URL||"http://agent:8889").replace(/\/+$/,""),g=null,h=0,i=null;function j(a,b){return{...a,characters:Array.isArray(a.characters)?a.characters:[],device_registry:a.device_registry&&"object"==typeof a.device_registry?a.device_registry:{},registry_source:b}}async function k(){for(let a of[process.env.CAAL_SETTINGS_PATH,process.env.ROBOVOICE_SETTINGS_PATH,(0,e.resolve)(process.cwd(),"..","settings.json"),(0,e.resolve)(process.cwd(),"settings.json")].filter(a=>!!a))try{let b=JSON.parse(await (0,d.readFile)(a,"utf8"));return j(b,"persisted-snapshot")}catch{}return j({},"empty")}async function l(){if(g&&Date.now()<h)return g;if(i)return i;i=(async()=>{try{let a=await fetch(`${f}/settings`,{cache:"no-store",signal:AbortSignal.timeout(1500)});if(!a.ok)throw Error(`Settings registry returned ${a.status}`);let b=await a.json();return g=null,h=0,j(b.settings||b,"live-agent")}catch{return g=await k(),h=Date.now()+15e3,g}})();try{return await i}finally{i=null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692,8755],()=>b(b.s=95403));module.exports=c})();
1
+ (()=>{var a={};a.id=2236,a.ids=[2236],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},59583:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>J,patchFetch:()=>I,routeModule:()=>E,serverHooks:()=>H,workAsyncStorage:()=>F,workUnitAsyncStorage:()=>G});var d={};c.r(d),c.d(d,{GET:()=>D,revalidate:()=>B});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(58755),w=c(99435),x=c(75310);let y=process.env.LIVEKIT_API_KEY,z=process.env.LIVEKIT_API_SECRET,A=process.env.LIVEKIT_URL,B=0,C=(process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080").replace(/\/+$/,"");async function D(){if(!y||!z||!A)try{let a=await fetch(`${C}/api/live-rooms`,{cache:"no-store",signal:AbortSignal.timeout(8e3)}),b=await a.json().catch(()=>null);if(a.ok&&Array.isArray(b))return u.NextResponse.json(b,{headers:{"Cache-Control":"no-store"}});return u.NextResponse.json([],{headers:{"Cache-Control":"no-store"}})}catch{return u.NextResponse.json([],{headers:{"Cache-Control":"no-store"}})}try{let a=await (0,w.U)(),b=a.device_registry,c=Object.fromEntries(a.characters.map(a=>[a.id,a.name])),d=(y&&z&&A?await new v.iz(A.replace(/^ws/,"http"),y,z).listRooms():[]).filter(a=>a.name.startsWith("robopark-")&&a.numParticipants>0).map(a=>{let d=a.name.slice(9);return{id:a.sid||a.name,robot_id:d,robot_name:b[d]?.name||`RoboPark ${d.slice(0,6)}`,character_id:b[d]?.character_id||null,character_name:c[b[d]?.character_id||""]||"Unassigned character",room_name:a.name,started_at:new Date(1e3*Number(a.creationTime)).toISOString(),participants:a.numParticipants,voice_engine:b[d]?.voice_engine||"robovoice",camera_url:b[d]?.camera_url||`/fed/media/robots/${encodeURIComponent(d)}/video_feed`}}),e=new Set(d.map(a=>a.robot_id)),f=(0,x.i0)().filter(a=>"elevenlabs"===a.engine&&a.robot_id&&!e.has(a.robot_id)).map(a=>{let d=a.robot_id,e=b[d];return{id:a.session_id,robot_id:d,robot_name:e?.name||`RoboPark ${d.slice(0,6)}`,character_id:a.character_id||e?.character_id||null,character_name:a.character_name||c[e?.character_id||""]||e?.name||"Unassigned character",room_name:a.room_name||`robopark-${d}`,started_at:a.started_at,participants:0,voice_engine:"elevenlabs",camera_url:e?.camera_url||`/fed/media/robots/${encodeURIComponent(d)}/video_feed`}});return u.NextResponse.json([...d,...f],{headers:{"Cache-Control":"no-store"}})}catch(a){return console.error("Failed to list LiveKit rooms:",a),u.NextResponse.json({error:"Failed to list live rooms"},{status:500})}}let E=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/live-rooms/route",pathname:"/api/robopark/live-rooms",filename:"route",bundlePath:"app/api/robopark/live-rooms/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\api\\robopark\\live-rooms\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:F,workUnitAsyncStorage:G,serverHooks:H}=E;function I(){return(0,g.patchFetch)({workAsyncStorage:F,workUnitAsyncStorage:G})}async function J(a,b,c){var d;let e="/api/robopark/live-rooms/route";"/index"===e&&(e="/");let g=await E.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,D=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[D]||y.routes[C]);if(F&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[D];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||E.isDev||x||(G="/index"===(G=C)?"/":G);let H=!0===E.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>E.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>E.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await E.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await E.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await E.onRequestError(a,b,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},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=59583));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/robopark/live-rooms/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\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\voice-tester\\page.tsx":{"id":6960,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\components\\app\\app.tsx":{"id":5945,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\layout":[{"inlined":false,"path":"static/css/3f478a573f9be82e.css"},{"inlined":false,"path":"static/css/51560c4af1d5a21f.css"}],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\(app)\\layout":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\(app)\\page":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\live-rooms\\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
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/robopark/live-rooms/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\\api\\robopark\\live-rooms\\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=1449,a.ids=[1449],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},82690:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{POST:()=>C,revalidate:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(58755);let w=process.env.LIVEKIT_API_KEY,x=process.env.LIVEKIT_API_SECRET,y=process.env.LIVEKIT_URL,z=0,A=(process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080").replace(/\/+$/,"");async function B(a){try{let b=await fetch(`${A}/api/monitor-token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({room_name:a}),cache:"no-store",signal:AbortSignal.timeout(8e3)}),c=await b.json().catch(()=>null);if(!b.ok||!c?.token)return u.NextResponse.json({error:c?.detail||`Scheduler returned ${b.status}`},{status:200===b.status?502:b.status});return u.NextResponse.json({token:c.token,serverUrl:c.url},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:"unknown error";return u.NextResponse.json({error:`Scheduler at ${A} is unreachable (${a}).`},{status:503})}}async function C(a){let b,c=await a.json().catch(()=>({})),d="string"==typeof c.room_name?c.room_name:"";if(!/^robopark-[a-zA-Z0-9_-]{1,64}$/.test(d))return u.NextResponse.json({error:"Invalid room"},{status:400});if(!w||!x||!y)return B(d);let e=new v.mk(w,x,{identity:`monitor_${crypto.randomUUID()}`,name:"RoboPark Monitor",ttl:"5m"});e.addGrant({room:d,roomJoin:!0,canSubscribe:!0,canPublish:!1,canPublishData:!1});let f=process.env.LIVEKIT_PUBLIC_URL||process.env.NEXT_PUBLIC_LIVEKIT_URL,g=a.headers.get("x-forwarded-proto"),h=(a.headers.get("x-forwarded-host")||a.headers.get("host")||"localhost").split(",")[0].trim(),i=h.split(":")[0],j=h.split(":")[1],k="https"===g||a.url.startsWith("https://");return b=i.includes(".ts.net")?`wss://${i}:3443`:f&&"auto"!==f?f:k?`wss://${i}:${j||"3443"}`:`ws://${i}:7880`,u.NextResponse.json({token:await e.toJwt(),serverUrl:b},{headers:{"Cache-Control":"no-store"}})}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/monitor-token/route",pathname:"/api/robopark/monitor-token",filename:"route",bundlePath:"app/api/robopark/monitor-token/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\monitor-token\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){var d;let e="/api/robopark/monitor-token/route";"/index"===e&&(e="/");let g=await D.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[C]);if(F&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||D.isDev||x||(G="/index"===(G=C)?"/":G);let H=!0===D.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>D.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>D.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await D.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await D.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await D.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692,8755],()=>b(b.s=82690));module.exports=c})();
1
+ (()=>{var a={};a.id=1449,a.ids=[1449],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12465:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{POST:()=>C,revalidate:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(58755);let w=process.env.LIVEKIT_API_KEY,x=process.env.LIVEKIT_API_SECRET,y=process.env.LIVEKIT_URL,z=0,A=(process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080").replace(/\/+$/,"");async function B(a){try{let b=await fetch(`${A}/api/monitor-token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({room_name:a}),cache:"no-store",signal:AbortSignal.timeout(8e3)}),c=await b.json().catch(()=>null);if(!b.ok||!c?.token)return u.NextResponse.json({error:c?.detail||`Scheduler returned ${b.status}`},{status:200===b.status?502:b.status});return u.NextResponse.json({token:c.token,serverUrl:c.url},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:"unknown error";return u.NextResponse.json({error:`Scheduler at ${A} is unreachable (${a}).`},{status:503})}}async function C(a){let b,c=await a.json().catch(()=>({})),d="string"==typeof c.room_name?c.room_name:"";if(!/^robopark-[a-zA-Z0-9_-]{1,64}$/.test(d))return u.NextResponse.json({error:"Invalid room"},{status:400});if(!w||!x||!y)return B(d);let e=new v.mk(w,x,{identity:`monitor_${crypto.randomUUID()}`,name:"RoboPark Monitor",ttl:"5m"});e.addGrant({room:d,roomJoin:!0,canSubscribe:!0,canPublish:!1,canPublishData:!1});let f=process.env.LIVEKIT_PUBLIC_URL||process.env.NEXT_PUBLIC_LIVEKIT_URL,g=a.headers.get("x-forwarded-proto"),h=(a.headers.get("x-forwarded-host")||a.headers.get("host")||"localhost").split(",")[0].trim(),i=h.split(":")[0],j=h.split(":")[1],k="https"===g||a.url.startsWith("https://");return b=i.includes(".ts.net")?`wss://${i}:3443`:f&&"auto"!==f?f:k?`wss://${i}:${j||"3443"}`:`ws://${i}:7880`,u.NextResponse.json({token:await e.toJwt(),serverUrl:b},{headers:{"Cache-Control":"no-store"}})}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/monitor-token/route",pathname:"/api/robopark/monitor-token",filename:"route",bundlePath:"app/api/robopark/monitor-token/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\api\\robopark\\monitor-token\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){var d;let e="/api/robopark/monitor-token/route";"/index"===e&&(e="/");let g=await D.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[C]);if(F&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||D.isDev||x||(G="/index"===(G=C)?"/":G);let H=!0===D.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>D.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>D.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await D.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await D.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await D.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692,8755],()=>b(b.s=12465));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/robopark/monitor-token/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\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\voice-tester\\page.tsx":{"id":6960,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\components\\app\\app.tsx":{"id":5945,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\layout":[{"inlined":false,"path":"static/css/3f478a573f9be82e.css"},{"inlined":false,"path":"static/css/51560c4af1d5a21f.css"}],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\(app)\\layout":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\(app)\\page":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\monitor-token\\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
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/robopark/monitor-token/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\\api\\robopark\\monitor-token\\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=5153,a.ids=[5153],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1374:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>A,POST:()=>B});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641);let v=(process.env.SCHEDULER_URL||"http://192.168.1.14:8080").replace(/\/+$/,""),w=/^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$/,x={kiosk_spawn:"kiosk-start",kiosk_restart:"kiosk-restart",kiosk_stop:"kiosk-stop"};async function y(a,b){let c=await fetch(`${v}${a}`,{...b,cache:"no-store",headers:{"Content-Type":"application/json",...b?.headers||{}}}),d=await c.text(),e={};try{e=d?JSON.parse(d):{}}catch{e={message:d}}if(!c.ok)throw Error(e&&"object"==typeof e&&"detail"in e?String(e.detail):`Scheduler returned ${c.status}`);return e}async function z(a,b){let c="string"==typeof b.request_id?b.request_id:null;if(!c)return b;let d="string"==typeof b.device_id?b.device_id:a;return y(`/api/robots/${encodeURIComponent(d)}/shell/wait/${encodeURIComponent(c)}?timeout=12`)}async function A(a,b){let{robotId:c}=await b.params;if(!w.test(c))return u.NextResponse.json({error:"Invalid robot id"},{status:400});try{let a=await y(`/api/robots/${encodeURIComponent(c)}/motor-profile`);return u.NextResponse.json(a)}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Motor profile unavailable"},{status:502})}}async function B(a,b){let{robotId:c}=await b.params;if(!w.test(c))return u.NextResponse.json({error:"Invalid robot id"},{status:400});try{let b,d=await a.json(),e=d.action;if("motor_discover"===e)b=await y(`/api/robots/${encodeURIComponent(c)}/motors/discover`,{method:"POST",body:"{}"});else if("motor_test"===e){if(!d.motor_id||!w.test(d.motor_id))return u.NextResponse.json({error:"Invalid motor id"},{status:400});b=await y(`/api/robots/${encodeURIComponent(c)}/motors/${encodeURIComponent(d.motor_id)}/test?duration_ms=300`,{method:"POST",body:"{}"})}else if("motor_test_all"===e)b=await y(`/api/robots/${encodeURIComponent(c)}/motors/test-all?duration_ms=300&pause_ms=200`,{method:"POST",body:"{}"});else if("motor_stop"===e)b=await y(`/api/robots/${encodeURIComponent(c)}/motors/stop`,{method:"POST",body:"{}"});else{if(!e||!(e in x))return u.NextResponse.json({error:"Unsupported operation"},{status:400});b=await y(`/api/robots/${encodeURIComponent(c)}/shell/exec`,{method:"POST",body:JSON.stringify({params:{name:x[e],params:{}}})})}return u.NextResponse.json(await z(c,b))}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Robot operation failed"},{status:502})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/robots/[robotId]/operations/route",pathname:"/api/robopark/robots/[robotId]/operations",filename:"route",bundlePath:"app/api/robopark/robots/[robotId]/operations/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\robots\\[robotId]\\operations\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){var d;let e="/api/robopark/robots/[robotId]/operations/route";"/index"===e&&(e="/");let g=await C.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: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||C.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===C.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)=>C.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=>C.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await C.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await C.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}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692],()=>b(b.s=1374));module.exports=c})();
1
+ (()=>{var a={};a.id=5153,a.ids=[5153],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")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},37063:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>A,POST:()=>B});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641);let v=(process.env.SCHEDULER_URL||"http://192.168.1.14:8080").replace(/\/+$/,""),w=/^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$/,x={kiosk_spawn:"kiosk-start",kiosk_restart:"kiosk-restart",kiosk_stop:"kiosk-stop"};async function y(a,b){let c=await fetch(`${v}${a}`,{...b,cache:"no-store",headers:{"Content-Type":"application/json",...b?.headers||{}}}),d=await c.text(),e={};try{e=d?JSON.parse(d):{}}catch{e={message:d}}if(!c.ok)throw Error(e&&"object"==typeof e&&"detail"in e?String(e.detail):`Scheduler returned ${c.status}`);return e}async function z(a,b){let c="string"==typeof b.request_id?b.request_id:null;if(!c)return b;let d="string"==typeof b.device_id?b.device_id:a;return y(`/api/robots/${encodeURIComponent(d)}/shell/wait/${encodeURIComponent(c)}?timeout=12`)}async function A(a,b){let{robotId:c}=await b.params;if(!w.test(c))return u.NextResponse.json({error:"Invalid robot id"},{status:400});try{let a=await y(`/api/robots/${encodeURIComponent(c)}/motor-profile`);return u.NextResponse.json(a)}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Motor profile unavailable"},{status:502})}}async function B(a,b){let{robotId:c}=await b.params;if(!w.test(c))return u.NextResponse.json({error:"Invalid robot id"},{status:400});try{let b,d=await a.json(),e=d.action;if("motor_discover"===e)b=await y(`/api/robots/${encodeURIComponent(c)}/motors/discover`,{method:"POST",body:"{}"});else if("motor_test"===e){if(!d.motor_id||!w.test(d.motor_id))return u.NextResponse.json({error:"Invalid motor id"},{status:400});b=await y(`/api/robots/${encodeURIComponent(c)}/motors/${encodeURIComponent(d.motor_id)}/test?duration_ms=300`,{method:"POST",body:"{}"})}else if("motor_test_all"===e)b=await y(`/api/robots/${encodeURIComponent(c)}/motors/test-all?duration_ms=300&pause_ms=200`,{method:"POST",body:"{}"});else if("motor_stop"===e)b=await y(`/api/robots/${encodeURIComponent(c)}/motors/stop`,{method:"POST",body:"{}"});else{if(!e||!(e in x))return u.NextResponse.json({error:"Unsupported operation"},{status:400});b=await y(`/api/robots/${encodeURIComponent(c)}/shell/exec`,{method:"POST",body:JSON.stringify({params:{name:x[e],params:{}}})})}return u.NextResponse.json(await z(c,b))}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Robot operation failed"},{status:502})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/robots/[robotId]/operations/route",pathname:"/api/robopark/robots/[robotId]/operations",filename:"route",bundlePath:"app/api/robopark/robots/[robotId]/operations/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\api\\robopark\\robots\\[robotId]\\operations\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){var d;let e="/api/robopark/robots/[robotId]/operations/route";"/index"===e&&(e="/");let g=await C.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: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||C.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===C.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)=>C.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=>C.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await C.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await C.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")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692],()=>b(b.s=37063));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/robopark/robots/[robotId]/operations/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\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\node_modules\\next\\dist\\esm\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\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-4829e027e68fded4.js"],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\voice-tester\\page.tsx":{"id":6960,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\components\\app\\app.tsx":{"id":5945,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\layout":[{"inlined":false,"path":"static/css/3f478a573f9be82e.css"},{"inlined":false,"path":"static/css/51560c4af1d5a21f.css"}],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\(app)\\layout":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\(app)\\page":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\robots\\route":[],"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\robots\\[robotId]\\operations\\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
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/robopark/robots/[robotId]/operations/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\\api\\robopark\\robots\\route":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\api\\robopark\\robots\\[robotId]\\operations\\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=6182,a.ids=[6182],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}},8254:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>O,patchFetch:()=>N,routeModule:()=>J,serverHooks:()=>M,workAsyncStorage:()=>K,workUnitAsyncStorage:()=>L});var d={};c.r(d),c.d(d,{GET:()=>G,POST:()=>I,PUT:()=>H});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(32311),w=c(3787),x=c(81861),y=c(99435);function z(a){return a?.voice_engine==="elevenlabs"?"elevenlabs":"robovoice"}function A(a,b,c){if(!b.character_id)return"Assign a character before enabling a voice engine.";if("elevenlabs"===b.voice_engine&&!b.elevenlabs_agent_id)return"An ElevenLabs agent ID is required.";if("elevenlabs"===b.voice_engine){let d=Object.entries(c).find(([c,d])=>c!==a&&"elevenlabs"===d.voice_engine&&d.elevenlabs_agent_id===b.elevenlabs_agent_id);if(d)return`ElevenLabs agent is already assigned to ${d[1].name||d[0]}.`}return null}let B=(process.env.V2_AGENT_URL||process.env.WEBHOOK_URL||"http://agent:8889").replace(/\/+$/,"");function C(a,b){return String(a.conversation_name||a.name||b).toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||b}function D(a,b,c){let d=z(a),e=b?.endpoint&&"object"==typeof b.endpoint?b.endpoint:{},f=b?.observed_engine==="robovoice"||b?.observed_engine==="elevenlabs"||b?.observed_engine==="conflict"?b.observed_engine:"none",g=b?.endpoint_ready===!0,h="elevenlabs"===d?b?.conversation_service_active===!0:b?.robovoice_service_active===!0,i=f===d&&h&&("elevenlabs"!==d||g),j="conflict"===f||c||e.last_error?"degraded":!0===e.active?"listening":h?"armed":"offline";return{desired_engine:d,observed_engine:f,healthy:i,state:j,message:c||String(e.last_error||(i?`${"elevenlabs"===d?"ElevenLabs":"RoboVoice"} engine ready`:"Engine ownership does not match configuration")),checked_at:new Date().toISOString(),service_active:h,endpoint_ready:g,active:!0===e.active,camera:b?.camera===!0,microphone:null!=e.active_audio||b?.microphone===!0,speaker:null!=e.active_audio||b?.speaker===!0,sessions_started:Number(e.sessions_started||0),sessions_completed:Number(e.sessions_completed||0),triggers_accepted:Number(e.triggers_accepted||0),triggers_rejected:Number(e.triggers_rejected||0),last_error:c||("string"==typeof e.last_error?e.last_error:null)}}async function E(a){let b=await (0,y.U)(),c=b.device_registry[a];return c?{settings:b,entry:c}:{settings:b,entry:null}}async function F(a){if(!a)return null;try{let b=await fetch(`${B}/elevenlabs/conversations?agent_id=${encodeURIComponent(a)}&page_size=30`,{cache:"no-store",signal:AbortSignal.timeout(16e3)});if(!b.ok)return{available:!1,error:`Analytics returned ${b.status}`};return{available:!0,...await b.json()}}catch(a){return{available:!1,error:a instanceof Error?a.message:"Analytics unavailable"}}}async function G(a,{params:b}){let{robotId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid robot ID"},{status:400});let{entry:d}=await E(c);if(!d)return u.NextResponse.json({error:"Robot is not registered"},{status:404});let e=z(d);try{let[a,b]=await Promise.all([(0,x.h)(c,"voice-engine-status",{robot:C(d,c),engine:e,port:Number(d.motion_port||5060)}),"elevenlabs"===e?F(d.elevenlabs_agent_id):Promise.resolve(null)]),f=D(d,(0,x.R)(a),a.ok?void 0:a.stderr||a.error);return u.NextResponse.json({binding:{...d,elevenlabs_configured:!!d.elevenlabs_agent_id},health:f,analytics:b},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=D(d,null,b instanceof Error?b.message:"Robot health unavailable");return u.NextResponse.json({binding:{...d,elevenlabs_configured:!!d.elevenlabs_agent_id},health:a},{status:200,headers:{"Cache-Control":"no-store"}})}}async function H(a,{params:b}){let{robotId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid robot ID"},{status:400});try{let b=await a.json();if("robovoice"!==b.engine&&"elevenlabs"!==b.engine)return u.NextResponse.json({error:"engine must be robovoice or elevenlabs"},{status:400});let d=await (0,w.i)(a=>{let d=a[c];if(!d)throw Error("Robot is not registered");let e={...d,voice_engine:b.engine,elevenlabs_agent_id:function(a){let b="string"==typeof a?a.trim():"";if(b){if(!/^agent_[A-Za-z0-9]{8,80}$/.test(b))throw Error("Invalid ElevenLabs agent ID");return b}}(b.elevenlabs_agent_id)||d.elevenlabs_agent_id,elevenlabs_branch_id:"string"==typeof b.elevenlabs_branch_id?b.elevenlabs_branch_id.trim()||void 0:d.elevenlabs_branch_id,conversation_name:C(d,c),motion_port:Number(d.motion_port||5060),updated_at:new Date().toISOString()},f=A(c,e,a);if(f)throw Error(f);return a[c]=e,e});return u.NextResponse.json({ok:!0,binding:d})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Voice engine update failed"},{status:409})}}async function I(a,{params:b}){let{robotId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid robot ID"},{status:400});try{let b=await a.json();if(!b.action||!["switch","restart","stop","trigger"].includes(b.action))return u.NextResponse.json({error:"Unsupported voice engine action"},{status:400});let{settings:d,entry:e}=await E(c);if(!e)return u.NextResponse.json({error:"Robot is not registered"},{status:404});let f=b.engine||z(e),g={...e,voice_engine:f},h=A(c,g,d.device_registry);if(h)return u.NextResponse.json({error:h},{status:409});let i=await (0,x.h)(c,`voice-engine-${b.action}`,{robot:C(e,c),engine:f,port:Number(e.motion_port||5060)});if(!i.ok&&"stop"!==b.action)return u.NextResponse.json({error:i.stderr||i.error||"Robot rejected engine action",result:i},{status:502});return"switch"===b.action&&await (0,w.i)(a=>{a[c]={...a[c],voice_engine:f,updated_at:new Date().toISOString()}}),u.NextResponse.json({ok:i.ok,action:b.action,engine:f,result:i,status:(0,x.R)(i)})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Voice engine action failed"},{status:502})}}let J=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/robots/[robotId]/voice-engine/route",pathname:"/api/robopark/robots/[robotId]/voice-engine",filename:"route",bundlePath:"app/api/robopark/robots/[robotId]/voice-engine/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\robots\\[robotId]\\voice-engine\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:K,workUnitAsyncStorage:L,serverHooks:M}=J;function N(){return(0,g.patchFetch)({workAsyncStorage:K,workUnitAsyncStorage:L})}async function O(a,b,c){var d;let e="/api/robopark/robots/[robotId]/voice-engine/route";"/index"===e&&(e="/");let g=await J.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||J.isDev||x||(F="/index"===(F=C)?"/":F);let G=!0===J.isDev||!E,H=E&&!G,I=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: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)=>J.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=>J.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=`${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=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!E)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 J.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:H,isOnDemandRevalidate:A})},z),b}},l=await J.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)(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:`${I} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":I,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await J.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)(N,O,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32311:(a,b,c)=>{"use strict";c.d(b,{ME:()=>j,c5:()=>k,jg:()=>e,qz:()=>h,w$:()=>d,xE:()=>i});let d="robopanda_device_id",e="robopanda_character_id",f=/^[a-zA-Z0-9_-]{1,64}$/,g=/^robopark-[a-zA-Z0-9_-]{1,64}$/;function h(a){return"string"==typeof a&&f.test(a)}let i=h;function j(a){if(!h(a))throw Error("Invalid RoboPanda device ID");return`robopark-${a}`}function k(a){return"string"==typeof a&&g.test(a)}},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")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},81861:(a,b,c)=>{"use strict";c.d(b,{R:()=>f,h:()=>e});let d=(process.env.V2_SCHEDULER_URL||process.env.SCHEDULER_URL||"http://192.168.1.14:8080").replace(/\/+$/,"");async function e(a,b,c){let e=await fetch(`${d}/api/robots/${encodeURIComponent(a)}/shell/exec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({params:{name:b,...c}}),cache:"no-store",signal:AbortSignal.timeout(8e3)}),f=await e.json();if(!e.ok||!f.request_id)throw Error(f.detail||`Scheduler command queue returned ${e.status}`);let g=await fetch(`${d}/api/robots/${encodeURIComponent(f.device_id||a)}/shell/wait/${encodeURIComponent(f.request_id)}?timeout=18`,{cache:"no-store",signal:AbortSignal.timeout(22e3)}),h=await g.json();if(!g.ok)throw Error(h.detail||`Robot command wait returned ${g.status}`);if(!h.completed||!h.result)throw Error("Robot did not report command completion");return h.result}function f(a){if(!a.stdout)return null;try{return JSON.parse(a.stdout)}catch{return null}}},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],()=>b(b.s=8254));module.exports=c})();
1
+ (()=>{var a={};a.id=6182,a.ids=[6182],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}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32311:(a,b,c)=>{"use strict";c.d(b,{ME:()=>j,c5:()=>k,jg:()=>e,qz:()=>h,w$:()=>d,xE:()=>i});let d="robopanda_device_id",e="robopanda_character_id",f=/^[a-zA-Z0-9_-]{1,64}$/,g=/^robopark-[a-zA-Z0-9_-]{1,64}$/;function h(a){return"string"==typeof a&&f.test(a)}let i=h;function j(a){if(!h(a))throw Error("Invalid RoboPanda device ID");return`robopark-${a}`}function k(a){return"string"==typeof a&&g.test(a)}},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")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},81861:(a,b,c)=>{"use strict";c.d(b,{R:()=>f,h:()=>e});let d=(process.env.V2_SCHEDULER_URL||process.env.SCHEDULER_URL||"http://192.168.1.14:8080").replace(/\/+$/,"");async function e(a,b,c){let e=await fetch(`${d}/api/robots/${encodeURIComponent(a)}/shell/exec`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({params:{name:b,...c}}),cache:"no-store",signal:AbortSignal.timeout(8e3)}),f=await e.json();if(!e.ok||!f.request_id)throw Error(f.detail||`Scheduler command queue returned ${e.status}`);let g=await fetch(`${d}/api/robots/${encodeURIComponent(f.device_id||a)}/shell/wait/${encodeURIComponent(f.request_id)}?timeout=18`,{cache:"no-store",signal:AbortSignal.timeout(22e3)}),h=await g.json();if(!g.ok)throw Error(h.detail||`Robot command wait returned ${g.status}`);if(!h.completed||!h.result)throw Error("Robot did not report command completion");return h.result}function f(a){if(!a.stdout)return null;try{return JSON.parse(a.stdout)}catch{return null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95493:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>O,patchFetch:()=>N,routeModule:()=>J,serverHooks:()=>M,workAsyncStorage:()=>K,workUnitAsyncStorage:()=>L});var d={};c.r(d),c.d(d,{GET:()=>G,POST:()=>I,PUT:()=>H});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(32311),w=c(3787),x=c(81861),y=c(99435);function z(a){return a?.voice_engine==="elevenlabs"?"elevenlabs":"robovoice"}function A(a,b,c){if(!b.character_id)return"Assign a character before enabling a voice engine.";if("elevenlabs"===b.voice_engine&&!b.elevenlabs_agent_id)return"An ElevenLabs agent ID is required.";if("elevenlabs"===b.voice_engine){let d=Object.entries(c).find(([c,d])=>c!==a&&"elevenlabs"===d.voice_engine&&d.elevenlabs_agent_id===b.elevenlabs_agent_id);if(d)return`ElevenLabs agent is already assigned to ${d[1].name||d[0]}.`}return null}let B=(process.env.V2_AGENT_URL||process.env.WEBHOOK_URL||"http://agent:8889").replace(/\/+$/,"");function C(a,b){return String(a.conversation_name||a.name||b).toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||b}function D(a,b,c){let d=z(a),e=b?.endpoint&&"object"==typeof b.endpoint?b.endpoint:{},f=b?.observed_engine==="robovoice"||b?.observed_engine==="elevenlabs"||b?.observed_engine==="conflict"?b.observed_engine:"none",g=b?.endpoint_ready===!0,h="elevenlabs"===d?b?.conversation_service_active===!0:b?.robovoice_service_active===!0,i=f===d&&h&&("elevenlabs"!==d||g),j="conflict"===f||c||e.last_error?"degraded":!0===e.active?"listening":h?"armed":"offline";return{desired_engine:d,observed_engine:f,healthy:i,state:j,message:c||String(e.last_error||(i?`${"elevenlabs"===d?"ElevenLabs":"RoboVoice"} engine ready`:"Engine ownership does not match configuration")),checked_at:new Date().toISOString(),service_active:h,endpoint_ready:g,active:!0===e.active,camera:b?.camera===!0,microphone:null!=e.active_audio||b?.microphone===!0,speaker:null!=e.active_audio||b?.speaker===!0,sessions_started:Number(e.sessions_started||0),sessions_completed:Number(e.sessions_completed||0),triggers_accepted:Number(e.triggers_accepted||0),triggers_rejected:Number(e.triggers_rejected||0),last_error:c||("string"==typeof e.last_error?e.last_error:null)}}async function E(a){let b=await (0,y.U)(),c=b.device_registry[a];return c?{settings:b,entry:c}:{settings:b,entry:null}}async function F(a){if(!a)return null;try{let b=await fetch(`${B}/elevenlabs/conversations?agent_id=${encodeURIComponent(a)}&page_size=30`,{cache:"no-store",signal:AbortSignal.timeout(16e3)});if(!b.ok)return{available:!1,error:`Analytics returned ${b.status}`};return{available:!0,...await b.json()}}catch(a){return{available:!1,error:a instanceof Error?a.message:"Analytics unavailable"}}}async function G(a,{params:b}){let{robotId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid robot ID"},{status:400});let{entry:d}=await E(c);if(!d)return u.NextResponse.json({error:"Robot is not registered"},{status:404});let e=z(d);try{let[a,b]=await Promise.all([(0,x.h)(c,"voice-engine-status",{robot:C(d,c),engine:e,port:Number(d.motion_port||5060)}),"elevenlabs"===e?F(d.elevenlabs_agent_id):Promise.resolve(null)]),f=D(d,(0,x.R)(a),a.ok?void 0:a.stderr||a.error);return u.NextResponse.json({binding:{...d,elevenlabs_configured:!!d.elevenlabs_agent_id},health:f,analytics:b},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=D(d,null,b instanceof Error?b.message:"Robot health unavailable");return u.NextResponse.json({binding:{...d,elevenlabs_configured:!!d.elevenlabs_agent_id},health:a},{status:200,headers:{"Cache-Control":"no-store"}})}}async function H(a,{params:b}){let{robotId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid robot ID"},{status:400});try{let b=await a.json();if("robovoice"!==b.engine&&"elevenlabs"!==b.engine)return u.NextResponse.json({error:"engine must be robovoice or elevenlabs"},{status:400});let d=await (0,w.i)(a=>{let d=a[c];if(!d)throw Error("Robot is not registered");let e={...d,voice_engine:b.engine,elevenlabs_agent_id:function(a){let b="string"==typeof a?a.trim():"";if(b){if(!/^agent_[A-Za-z0-9]{8,80}$/.test(b))throw Error("Invalid ElevenLabs agent ID");return b}}(b.elevenlabs_agent_id)||d.elevenlabs_agent_id,elevenlabs_branch_id:"string"==typeof b.elevenlabs_branch_id?b.elevenlabs_branch_id.trim()||void 0:d.elevenlabs_branch_id,conversation_name:C(d,c),motion_port:Number(d.motion_port||5060),updated_at:new Date().toISOString()},f=A(c,e,a);if(f)throw Error(f);return a[c]=e,e});return u.NextResponse.json({ok:!0,binding:d})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Voice engine update failed"},{status:409})}}async function I(a,{params:b}){let{robotId:c}=await b;if(!(0,v.qz)(c))return u.NextResponse.json({error:"Invalid robot ID"},{status:400});try{let b=await a.json();if(!b.action||!["switch","restart","stop","trigger"].includes(b.action))return u.NextResponse.json({error:"Unsupported voice engine action"},{status:400});let{settings:d,entry:e}=await E(c);if(!e)return u.NextResponse.json({error:"Robot is not registered"},{status:404});let f=b.engine||z(e),g={...e,voice_engine:f},h=A(c,g,d.device_registry);if(h)return u.NextResponse.json({error:h},{status:409});let i=await (0,x.h)(c,`voice-engine-${b.action}`,{robot:C(e,c),engine:f,port:Number(e.motion_port||5060)});if(!i.ok&&"stop"!==b.action)return u.NextResponse.json({error:i.stderr||i.error||"Robot rejected engine action",result:i},{status:502});return"switch"===b.action&&await (0,w.i)(a=>{a[c]={...a[c],voice_engine:f,updated_at:new Date().toISOString()}}),u.NextResponse.json({ok:i.ok,action:b.action,engine:f,result:i,status:(0,x.R)(i)})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Voice engine action failed"},{status:502})}}let J=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/robots/[robotId]/voice-engine/route",pathname:"/api/robopark/robots/[robotId]/voice-engine",filename:"route",bundlePath:"app/api/robopark/robots/[robotId]/voice-engine/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\api\\robopark\\robots\\[robotId]\\voice-engine\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:K,workUnitAsyncStorage:L,serverHooks:M}=J;function N(){return(0,g.patchFetch)({workAsyncStorage:K,workUnitAsyncStorage:L})}async function O(a,b,c){var d;let e="/api/robopark/robots/[robotId]/voice-engine/route";"/index"===e&&(e="/");let g=await J.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||J.isDev||x||(F="/index"===(F=C)?"/":F);let G=!0===J.isDev||!E,H=E&&!G,I=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: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)=>J.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=>J.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=`${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=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!E)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 J.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:H,isOnDemandRevalidate:A})},z),b}},l=await J.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)(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:`${I} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":I,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await J.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)(N,O,new Response(null,{status:500})),null}}},96487:()=>{},99435:(a,b,c)=>{"use strict";c.d(b,{U:()=>l});var d=c(51455),e=c(76760);let f=(process.env.WEBHOOK_URL||"http://agent:8889").replace(/\/+$/,""),g=null,h=0,i=null;function j(a,b){return{...a,characters:Array.isArray(a.characters)?a.characters:[],device_registry:a.device_registry&&"object"==typeof a.device_registry?a.device_registry:{},registry_source:b}}async function k(){for(let a of[process.env.CAAL_SETTINGS_PATH,process.env.ROBOVOICE_SETTINGS_PATH,(0,e.resolve)(process.cwd(),"..","settings.json"),(0,e.resolve)(process.cwd(),"settings.json")].filter(a=>!!a))try{let b=JSON.parse(await (0,d.readFile)(a,"utf8"));return j(b,"persisted-snapshot")}catch{}return j({},"empty")}async function l(){if(g&&Date.now()<h)return g;if(i)return i;i=(async()=>{try{let a=await fetch(`${f}/settings`,{cache:"no-store",signal:AbortSignal.timeout(1500)});if(!a.ok)throw Error(`Settings registry returned ${a.status}`);let b=await a.json();return g=null,h=0,j(b.settings||b,"live-agent")}catch{return g=await k(),h=Date.now()+15e3,g}})();try{return await i}finally{i=null}}}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692],()=>b(b.s=95493));module.exports=c})();