robopark 3.3.44 → 3.3.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/robopark/audio-select.js +11 -3
- package/dist/robopark/audio-select.js.map +1 -1
- package/dist/robopark/start.js +114 -9
- package/dist/robopark/start.js.map +1 -1
- package/dist/robopark/video-select.js +123 -0
- package/dist/robopark/video-select.js.map +1 -0
- package/dist/robopark-cli.js +1 -0
- package/dist/robopark-cli.js.map +1 -1
- package/package.json +1 -1
- package/scheduler/static/voice-join.html +98 -7
- package/ui/standalone/.next/BUILD_ID +1 -1
- package/ui/standalone/.next/app-build-manifest.json +69 -69
- package/ui/standalone/.next/app-path-routes-manifest.json +19 -19
- package/ui/standalone/.next/build-manifest.json +2 -2
- package/ui/standalone/.next/server/app-paths-manifest.json +19 -19
- package/ui/standalone/.next/server/pages/500.html +1 -1
- package/ui/standalone/public/voice-join.html +98 -7
- /package/ui/standalone/.next/static/{VHNdBIGajqd6Wv28naVNO → GwsTXhcc2wWhmMKp14ZmG}/_buildManifest.js +0 -0
- /package/ui/standalone/.next/static/{VHNdBIGajqd6Wv28naVNO → GwsTXhcc2wWhmMKp14ZmG}/_ssgManifest.js +0 -0
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
callPanel.insertAdjacentHTML('beforeend','<div class=call-row hidden><label for=call-mode>Call mode</label><select id=call-mode><option value=test>Test call · browser only</option><option value=production>Production on-site · robot video and tools</option></select></div>');
|
|
36
36
|
callPanel.insertAdjacentHTML('beforeend','<div class=call-row id=robot-row hidden><label for=call-robot>Production robot</label><select id=call-robot><option value=none>Select a registered robot...</option></select></div>');
|
|
37
37
|
callPanel.insertAdjacentHTML('beforeend','<div class=call-row><label for=call-microphone>Microphone</label><select id=call-microphone><option value=default>System default microphone</option></select></div>');
|
|
38
|
-
callPanel.insertAdjacentHTML('beforeend','<div class=call-row hidden><label for=call-camera>Camera</label><select id=call-camera><option value=default>System default camera</option></select></div>');
|
|
38
|
+
callPanel.insertAdjacentHTML('beforeend','<div class=call-row id=camera-row hidden><label for=call-camera id=camera-label>Camera</label><select id=call-camera><option value=default>System default camera</option></select></div>');
|
|
39
39
|
callPanel.insertAdjacentHTML('beforeend','<div class=call-row><label for=call-speaker>Speaker output</label><select id=call-speaker><option value=default>System default speaker</option></select></div>');
|
|
40
40
|
callPanel.insertAdjacentHTML('beforeend','<div class=call-actions hidden><button class=primary id=request-hardware type=button>Request all media</button><button id=refresh-hardware type=button>Refresh devices</button></div>');
|
|
41
41
|
callPanel.insertAdjacentHTML('beforeend','<p class="call-note call-status" id=hardware-status>Grant browser media access to reveal device names.</p><span class=mode-badge id=mode-badge hidden>TEST ? BROWSER ONLY</span>');
|
|
@@ -53,6 +53,96 @@
|
|
|
53
53
|
: 'Microphone and camera are blocked because this page is not on a secure origin ('+location.protocol+'//'+location.host+'). Open it over https:// or from localhost.';
|
|
54
54
|
}
|
|
55
55
|
function refreshHardware(requestPermission){if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices){setHardwareStatus(mediaBlockedReason(),'bad');return Promise.reject(new Error('media devices unavailable'))}var permission=Promise.resolve();if(requestPermission){permission=navigator.mediaDevices.getUserMedia({audio:true,video:true}).catch(function(){return navigator.mediaDevices.getUserMedia({audio:true})}).then(function(stream){stream.getTracks().forEach(function(track){track.stop()})})}setHardwareStatus(requestPermission?'Requesting browser media access...':'Scanning browser hardware...','');return permission.then(function(){return navigator.mediaDevices.enumerateDevices()}).then(function(devices){fillHardwareSelect('call-microphone',devices,'audioinput','microphone');fillHardwareSelect('call-camera',devices,'videoinput','camera');fillHardwareSelect('call-speaker',devices,'audiooutput','speaker');var mic=devices.filter(function(device){return device.kind==='audioinput'}).length,cam=devices.filter(function(device){return device.kind==='videoinput'}).length,out=devices.filter(function(device){return device.kind==='audiooutput'}).length;setHardwareStatus('Ready: '+mic+' microphone(s), '+cam+' camera(s), '+out+' speaker output(s).','ok');return devices}).catch(function(error){setHardwareStatus(error&&error.message||String(error),'bad');throw error})}
|
|
56
|
+
// ---- Persistent device selection ---------------------------------------
|
|
57
|
+
// Two consumers read this page's pick and they speak different identifiers,
|
|
58
|
+
// so both are written on every change:
|
|
59
|
+
// * PUT API_BASE/api/kiosk-hardware stores browser MediaDeviceInfo.deviceIds,
|
|
60
|
+
// which is what lets this page and the control-centre panel restore
|
|
61
|
+
// themselves after a reload.
|
|
62
|
+
// * PATCH API_BASE/api/devices/<robot> stores the option LABEL, because the
|
|
63
|
+
// OpenCV/sounddevice side can only act on a human-readable name; a
|
|
64
|
+
// browser deviceId is origin-scoped and rotates, so it is useless to
|
|
65
|
+
// Python. That row is exactly what `robopark start` replays.
|
|
66
|
+
// Writing only the first is why the CLI was left scanning for a camera while
|
|
67
|
+
// this page worked every time.
|
|
68
|
+
var HW_SELECTS={audioinput:'call-microphone',videoinput:'call-camera',audiooutput:'call-speaker'};
|
|
69
|
+
var HW_KEYS={audioinput:'robopark:media-device:audioinput',videoinput:'robopark:media-device:videoinput',audiooutput:'robopark:media-device:audiooutput'};
|
|
70
|
+
var HW_DEVICE_FIELD={audioinput:'audio_device',videoinput:'video_device',audiooutput:'audio_output_device'};
|
|
71
|
+
var HW_NOUN={audioinput:'microphone',videoinput:'camera',audiooutput:'speaker'};
|
|
72
|
+
var hardwareRevision=0;
|
|
73
|
+
function hardwareValue(kind){var select=el(HW_SELECTS[kind]);return select&&select.value&&select.value!=='default'?select.value:''}
|
|
74
|
+
// Chrome suffixes device labels with the USB vendor:product pair
|
|
75
|
+
// ("HD Webcam C270 (046d:0825)"), which the OS name never carries — and the
|
|
76
|
+
// resolver on the other side matches by substring of the OS name, so the
|
|
77
|
+
// suffix turns a good label into no match at all.
|
|
78
|
+
function hardwareLabel(kind){var select=el(HW_SELECTS[kind]);if(!select||select.value==='default'||select.selectedIndex<0)return '';return String((select.options[select.selectedIndex]||{}).textContent||'').replace(/\s*\([0-9a-f]{4}:[0-9a-f]{4}\)\s*$/i,'').trim()}
|
|
79
|
+
function hardwareSelection(){return {audioinput:hardwareValue('audioinput'),videoinput:hardwareValue('videoinput'),audiooutput:hardwareValue('audiooutput')}}
|
|
80
|
+
function storeHardwareLocal(kind){try{var value=hardwareValue(kind);if(value)localStorage.setItem(HW_KEYS[kind],value);else localStorage.removeItem(HW_KEYS[kind])}catch(_){}}
|
|
81
|
+
function pushHardwareSelection(kind){
|
|
82
|
+
storeHardwareLocal(kind);
|
|
83
|
+
if(!robot)return Promise.resolve();
|
|
84
|
+
var selection=hardwareSelection(),label=hardwareLabel(kind),body={};
|
|
85
|
+
// An empty pick means "you decide": for the camera that is the literal
|
|
86
|
+
// device value 'auto' (scan every index), for audio it is the empty string
|
|
87
|
+
// the vision server already reads as the system default.
|
|
88
|
+
body[HW_DEVICE_FIELD[kind]]=label||(kind==='videoinput'?'auto':'');
|
|
89
|
+
var writes=[fetch(API_BASE+'/api/devices/'+encodeURIComponent(robot),{method:'PATCH',headers:{'content-type':'application/json'},body:JSON.stringify(body)}).catch(function(){})];
|
|
90
|
+
// PUT /api/kiosk-hardware answers 400 when the microphone is empty, so the
|
|
91
|
+
// browser half of the write waits until one is actually chosen.
|
|
92
|
+
if(selection.audioinput)writes.push(fetch(API_BASE+'/api/kiosk-hardware',{method:'PUT',headers:{'content-type':'application/json'},body:JSON.stringify({device_id:robot,selection:selection})}).then(function(response){return response.ok?response.json():null}).then(function(data){if(data&&data.hardware)hardwareRevision=Number(data.hardware.revision||0)}).catch(function(){}));
|
|
93
|
+
// Under ?camera=off the vision server owns the capture device, so the pick
|
|
94
|
+
// is also handed to it directly and takes effect now rather than at the
|
|
95
|
+
// next `robopark start`. Best-effort: this is a cross-origin call to
|
|
96
|
+
// 127.0.0.1 and a page served over https cannot make it.
|
|
97
|
+
if(kind==='videoinput'&&cameraOff&&visionBase)writes.push(fetch(visionBase+'/api/media/config',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({video_device:label||'auto'})}).catch(function(){}));
|
|
98
|
+
return Promise.all(writes).then(function(){setHardwareStatus('Saved '+HW_NOUN[kind]+': '+(label||'system default')+' - kept for this kiosk and replayed by `robopark start`.','ok')})
|
|
99
|
+
}
|
|
100
|
+
// Echo the enumerated devices back. The revision/applied_revision handshake
|
|
101
|
+
// is what the control-centre hardware panel reads; a page that PUT a
|
|
102
|
+
// selection but never reported would leave that panel permanently showing a
|
|
103
|
+
// pending change.
|
|
104
|
+
function reportHardwareObserved(devices){
|
|
105
|
+
if(!robot||!devices)return Promise.resolve(devices);
|
|
106
|
+
return fetch(API_BASE+'/api/kiosk-hardware',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({
|
|
107
|
+
device_id:robot,
|
|
108
|
+
devices:Array.prototype.slice.call(devices).filter(function(device){return device.deviceId}).map(function(device){return {deviceId:device.deviceId,kind:device.kind,label:device.label}}),
|
|
109
|
+
selected:hardwareSelection(),
|
|
110
|
+
secure:Boolean(window.isSecureContext),
|
|
111
|
+
applied_revision:hardwareRevision
|
|
112
|
+
})}).catch(function(){}).then(function(){return devices})
|
|
113
|
+
}
|
|
114
|
+
function scanHardware(requestPermission){return refreshHardware(requestPermission).then(reportHardwareObserved)}
|
|
115
|
+
function applyHardwareValue(kind){var value=hardwareValue(kind);if(kind==='audioinput')inputDeviceId=value;else if(kind==='videoinput')cameraDeviceId=value;else outputDeviceId=value}
|
|
116
|
+
// Seed precedence matches the Next hardware gate: the scheduler's desired
|
|
117
|
+
// pick wins, then whatever the kiosk last reported, then this browser's own
|
|
118
|
+
// localStorage. `dataset.dirty` is what stops a seed that lands late from
|
|
119
|
+
// clobbering a pick the operator has already made.
|
|
120
|
+
function seedHardwareFromScheduler(){
|
|
121
|
+
if(!robot)return Promise.resolve();
|
|
122
|
+
return fetch(API_BASE+'/api/kiosk-hardware?device_id='+encodeURIComponent(robot),{cache:'no-store'}).then(function(response){return response.ok?response.json():null}).then(function(data){
|
|
123
|
+
var hardware=(data&&data.hardware)||{},desired=hardware.desired||{},observed=hardware.observed||{},reported=observed.selected||{};
|
|
124
|
+
hardwareRevision=Number(hardware.revision||0);
|
|
125
|
+
Object.keys(HW_SELECTS).forEach(function(kind){
|
|
126
|
+
var select=el(HW_SELECTS[kind]);if(!select||select.dataset.dirty==='1')return;
|
|
127
|
+
var wanted=desired[kind]||reported[kind]||'';
|
|
128
|
+
if(!wanted){try{wanted=localStorage.getItem(HW_KEYS[kind])||''}catch(_){}}
|
|
129
|
+
if(wanted&&Array.prototype.some.call(select.options,function(option){return option.value===wanted}))select.value=wanted;
|
|
130
|
+
applyHardwareValue(kind)
|
|
131
|
+
})
|
|
132
|
+
}).catch(function(){})
|
|
133
|
+
}
|
|
134
|
+
// ?camera=off means this page never calls getUserMedia({video}) — but the
|
|
135
|
+
// operator still has to be able to say WHICH camera the vision server should
|
|
136
|
+
// open, which is the choice `robopark start` was previously making by
|
|
137
|
+
// scanning indices. So on a kiosk the picker is revealed and relabelled
|
|
138
|
+
// rather than left hidden.
|
|
139
|
+
function revealVisionCameraPicker(){
|
|
140
|
+
if(!(q.get('kiosk')==='1'||q.get('kiosk')==='on')&&!cameraOff)return;
|
|
141
|
+
var row=el('camera-row'),label=el('camera-label');
|
|
142
|
+
if(row)row.hidden=false;
|
|
143
|
+
if(label)label.textContent=cameraOff?'Vision server camera':'Camera';
|
|
144
|
+
if(cameraOff)callPanel.insertAdjacentHTML('beforeend','<p class="call-note">This picks the camera the on-site vision server opens for the robot feed. The browser does not open a local preview here.</p>')
|
|
145
|
+
}
|
|
56
146
|
function ensureCameraSdk(){if(window.LivekitClient)return Promise.resolve(window.LivekitClient);if(cameraSdkPromise)return cameraSdkPromise;cameraSdkPromise=new Promise(function(resolve,reject){var script=document.createElement('script');script.src='/vendor/livekit-client.umd.js';script.onload=function(){window.LivekitClient?resolve(window.LivekitClient):reject(new Error('LiveKit camera SDK unavailable'))};script.onerror=function(){reject(new Error('LiveKit camera SDK failed to load'))};document.head.appendChild(script)});return cameraSdkPromise}
|
|
57
147
|
function scheduleCameraPublishRetry(){if(cameraPublishRetry||ending||!localVideoStream)return;if(cameraRetryCount>=8){event('camera_published','failed','Giving up after 8 attempts - the media server is not reachable.',{attempts:cameraRetryCount});return}var delay=Math.min(30000,3000*Math.pow(1.6,cameraRetryCount));cameraRetryCount++;cameraPublishRetry=setTimeout(function(){cameraPublishRetry=null;publishLocalVideo().catch(function(){})},delay)}
|
|
58
148
|
function publishLocalVideo(){var pendingCameraRoom=null;if(!localVideoStream||!localVideoStream.getVideoTracks().length)return Promise.resolve();if(cameraRoom)return Promise.resolve();return Promise.all([ensureCameraSdk(),fetch('/api/robopark/camera-token',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({character_id:character,robot_id:robot||null})}).then(function(response){if(!response.ok)throw new Error('camera token '+response.status);return response.json()})]).then(function(parts){var LK=parts[0],info=parts[1],room=new LK.Room();pendingCameraRoom=room;cameraRoom=room;room.on(LK.RoomEvent.Disconnected,function(){if(cameraRoom===room){cameraRoom=null;scheduleCameraPublishRetry()}});return room.connect(info.url,info.token).then(function(){return room.localParticipant.publishTrack(localVideoStream.getVideoTracks()[0],{name:'camera',source:LK.Track.Source.Camera})}).then(function(){cameraRetryCount=0;if(cameraPublishRetry){clearTimeout(cameraPublishRetry);cameraPublishRetry=null}event('camera_published','ok','Camera relay live',{})})}).catch(function(error){try{if(pendingCameraRoom&&pendingCameraRoom.disconnect)pendingCameraRoom.disconnect(true)}catch(_){}pendingCameraRoom=null;cameraRoom=null;event('camera_published','failed',error.message,{});scheduleCameraPublishRetry();throw error})}
|
|
@@ -337,12 +427,13 @@
|
|
|
337
427
|
el('call-mode').value=mode;el('call-robot').value=robot||'none';
|
|
338
428
|
el('call-mode').onchange=function(){if(desired||conversation||connecting)end('mode_changed');applyCallMode()};
|
|
339
429
|
el('call-robot').onchange=function(){robot=this.value==='none'?'':this.value;showRobotVideo();text('f-robot',robot||'missing robot')};
|
|
340
|
-
el('call-microphone').onchange=function(){inputDeviceId=this.value==='default'?'':this.value};
|
|
341
|
-
el('call-camera').onchange=function(){cameraDeviceId=this.value==='default'?'':this.value;startLocalVideo().catch(function(){})};
|
|
342
|
-
el('call-speaker').onchange=function(){outputDeviceId=this.value==='default'?'':this.value};
|
|
343
|
-
el('request-hardware').onclick=function(){
|
|
344
|
-
el('refresh-hardware').onclick=function(){
|
|
345
|
-
|
|
430
|
+
el('call-microphone').onchange=function(){this.dataset.dirty='1';inputDeviceId=this.value==='default'?'':this.value;pushHardwareSelection('audioinput')};
|
|
431
|
+
el('call-camera').onchange=function(){this.dataset.dirty='1';cameraDeviceId=this.value==='default'?'':this.value;pushHardwareSelection('videoinput');startLocalVideo().catch(function(){})};
|
|
432
|
+
el('call-speaker').onchange=function(){this.dataset.dirty='1';outputDeviceId=this.value==='default'?'':this.value;pushHardwareSelection('audiooutput')};
|
|
433
|
+
el('request-hardware').onclick=function(){scanHardware(true).catch(function(){})};
|
|
434
|
+
el('refresh-hardware').onclick=function(){scanHardware(false).catch(function(){})};
|
|
435
|
+
revealVisionCameraPicker();
|
|
436
|
+
applyCallMode();loadProductionRobots();scanHardware(false).then(seedHardwareFromScheduler).catch(function(){});
|
|
346
437
|
function installElevenLabsHardwareRouting(){var sdk=window.ElevenLabsClient;if(!sdk||!sdk.Conversation)return false;if(sdk.Conversation.__roboparkHardware)return true;var nativeStart=sdk.Conversation.startSession.bind(sdk.Conversation);sdk.Conversation.startSession=function(options){return nativeStart(Object.assign({},options||{},{inputDeviceId:inputDeviceId||undefined,outputDeviceId:outputDeviceId||undefined}))};sdk.Conversation.__roboparkHardware=true;return true}
|
|
347
438
|
installElevenLabsHardwareRouting();
|
|
348
439
|
var hardwarePatchTimer=setInterval(function(){if(installElevenLabsHardwareRouting())clearInterval(hardwarePatchTimer)},500);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
GwsTXhcc2wWhmMKp14ZmG
|
|
@@ -32,26 +32,19 @@
|
|
|
32
32
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
33
33
|
"static/chunks/app/api/download-piper-model/route-0952b44bda5bfb6d.js"
|
|
34
34
|
],
|
|
35
|
-
"/api/
|
|
36
|
-
"static/chunks/webpack-5252e5254da079b5.js",
|
|
37
|
-
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
38
|
-
"static/chunks/1255-404bb8de49c90395.js",
|
|
39
|
-
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
40
|
-
"static/chunks/app/api/prompt/route-0952b44bda5bfb6d.js"
|
|
41
|
-
],
|
|
42
|
-
"/api/reload-tools/route": [
|
|
35
|
+
"/api/models/route": [
|
|
43
36
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
44
37
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
45
38
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
46
39
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
47
|
-
"static/chunks/app/api/
|
|
40
|
+
"static/chunks/app/api/models/route-0952b44bda5bfb6d.js"
|
|
48
41
|
],
|
|
49
|
-
"/api/
|
|
42
|
+
"/api/prompt/route": [
|
|
50
43
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
51
44
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
52
45
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
53
46
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
54
|
-
"static/chunks/app/api/
|
|
47
|
+
"static/chunks/app/api/prompt/route-0952b44bda5bfb6d.js"
|
|
55
48
|
],
|
|
56
49
|
"/api/prewarm/route": [
|
|
57
50
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -74,26 +67,26 @@
|
|
|
74
67
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
75
68
|
"static/chunks/app/api/robopark/robots/[robotId]/operations/route-0952b44bda5bfb6d.js"
|
|
76
69
|
],
|
|
77
|
-
"/api/
|
|
70
|
+
"/api/reload-tools/route": [
|
|
78
71
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
79
72
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
80
73
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
81
74
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
82
|
-
"static/chunks/app/api/
|
|
75
|
+
"static/chunks/app/api/reload-tools/route-0952b44bda5bfb6d.js"
|
|
83
76
|
],
|
|
84
|
-
"/api/robopark/
|
|
77
|
+
"/api/robopark/sessions/[sessionId]/end/route": [
|
|
85
78
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
86
79
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
87
80
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
88
81
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
89
|
-
"static/chunks/app/api/robopark/
|
|
82
|
+
"static/chunks/app/api/robopark/sessions/[sessionId]/end/route-0952b44bda5bfb6d.js"
|
|
90
83
|
],
|
|
91
|
-
"/api/
|
|
84
|
+
"/api/robopark/transcripts/[sessionId]/route": [
|
|
92
85
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
93
86
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
94
87
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
95
88
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
96
|
-
"static/chunks/app/api/
|
|
89
|
+
"static/chunks/app/api/robopark/transcripts/[sessionId]/route-0952b44bda5bfb6d.js"
|
|
97
90
|
],
|
|
98
91
|
"/api/setup/complete/route": [
|
|
99
92
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -116,12 +109,12 @@
|
|
|
116
109
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
117
110
|
"static/chunks/app/api/setup/test-hass/route-0952b44bda5bfb6d.js"
|
|
118
111
|
],
|
|
119
|
-
"/api/setup/
|
|
112
|
+
"/api/setup/status/route": [
|
|
120
113
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
121
114
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
122
115
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
123
116
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
124
|
-
"static/chunks/app/api/setup/
|
|
117
|
+
"static/chunks/app/api/setup/status/route-0952b44bda5bfb6d.js"
|
|
125
118
|
],
|
|
126
119
|
"/api/setup/test-n8n/route": [
|
|
127
120
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -130,6 +123,13 @@
|
|
|
130
123
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
131
124
|
"static/chunks/app/api/setup/test-n8n/route-0952b44bda5bfb6d.js"
|
|
132
125
|
],
|
|
126
|
+
"/api/setup/test-ollama/route": [
|
|
127
|
+
"static/chunks/webpack-5252e5254da079b5.js",
|
|
128
|
+
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
129
|
+
"static/chunks/1255-404bb8de49c90395.js",
|
|
130
|
+
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
131
|
+
"static/chunks/app/api/setup/test-ollama/route-0952b44bda5bfb6d.js"
|
|
132
|
+
],
|
|
133
133
|
"/api/test-tts/route": [
|
|
134
134
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
135
135
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
@@ -165,33 +165,33 @@
|
|
|
165
165
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
166
166
|
"static/chunks/app/api/wake-word/upload/route-0952b44bda5bfb6d.js"
|
|
167
167
|
],
|
|
168
|
-
"/api/
|
|
168
|
+
"/api/kiosk-hardware/route": [
|
|
169
169
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
170
170
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
171
171
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
172
172
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
173
|
-
"static/chunks/app/api/
|
|
173
|
+
"static/chunks/app/api/kiosk-hardware/route-0952b44bda5bfb6d.js"
|
|
174
174
|
],
|
|
175
|
-
"/api/
|
|
175
|
+
"/api/connection-details/route": [
|
|
176
176
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
177
177
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
178
178
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
179
179
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
180
|
-
"static/chunks/app/api/
|
|
180
|
+
"static/chunks/app/api/connection-details/route-0952b44bda5bfb6d.js"
|
|
181
181
|
],
|
|
182
|
-
"/api/
|
|
182
|
+
"/api/model-status/route": [
|
|
183
183
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
184
184
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
185
185
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
186
186
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
187
|
-
"static/chunks/app/api/
|
|
187
|
+
"static/chunks/app/api/model-status/route-0952b44bda5bfb6d.js"
|
|
188
188
|
],
|
|
189
|
-
"/api/
|
|
189
|
+
"/api/robopark/device-access/route": [
|
|
190
190
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
191
191
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
192
192
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
193
193
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
194
|
-
"static/chunks/app/api/
|
|
194
|
+
"static/chunks/app/api/robopark/device-access/route-0952b44bda5bfb6d.js"
|
|
195
195
|
],
|
|
196
196
|
"/api/robopark/camera-token/route": [
|
|
197
197
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -200,33 +200,33 @@
|
|
|
200
200
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
201
201
|
"static/chunks/app/api/robopark/camera-token/route-0952b44bda5bfb6d.js"
|
|
202
202
|
],
|
|
203
|
-
"/api/robopark/
|
|
203
|
+
"/api/robopark/live-rooms/route": [
|
|
204
204
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
205
205
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
206
206
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
207
207
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
208
|
-
"static/chunks/app/api/robopark/
|
|
208
|
+
"static/chunks/app/api/robopark/live-rooms/route-0952b44bda5bfb6d.js"
|
|
209
209
|
],
|
|
210
|
-
"/api/robopark/
|
|
210
|
+
"/api/robopark/monitor-token/route": [
|
|
211
211
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
212
212
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
213
213
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
214
214
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
215
|
-
"static/chunks/app/api/robopark/
|
|
215
|
+
"static/chunks/app/api/robopark/monitor-token/route-0952b44bda5bfb6d.js"
|
|
216
216
|
],
|
|
217
|
-
"/api/robopark/
|
|
217
|
+
"/api/robopark/character-ai/route": [
|
|
218
218
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
219
219
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
220
220
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
221
221
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
222
|
-
"static/chunks/app/api/robopark/
|
|
222
|
+
"static/chunks/app/api/robopark/character-ai/route-0952b44bda5bfb6d.js"
|
|
223
223
|
],
|
|
224
|
-
"/api/robopark/
|
|
224
|
+
"/api/robopark/robots/route": [
|
|
225
225
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
226
226
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
227
227
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
228
228
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
229
|
-
"static/chunks/app/api/robopark/
|
|
229
|
+
"static/chunks/app/api/robopark/robots/route-0952b44bda5bfb6d.js"
|
|
230
230
|
],
|
|
231
231
|
"/api/robopark/servers/[serverId]/metrics/route": [
|
|
232
232
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -235,6 +235,13 @@
|
|
|
235
235
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
236
236
|
"static/chunks/app/api/robopark/servers/[serverId]/metrics/route-0952b44bda5bfb6d.js"
|
|
237
237
|
],
|
|
238
|
+
"/api/robopark/servers/[serverId]/route": [
|
|
239
|
+
"static/chunks/webpack-5252e5254da079b5.js",
|
|
240
|
+
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
241
|
+
"static/chunks/1255-404bb8de49c90395.js",
|
|
242
|
+
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
243
|
+
"static/chunks/app/api/robopark/servers/[serverId]/route-0952b44bda5bfb6d.js"
|
|
244
|
+
],
|
|
238
245
|
"/api/robopark/servers/route": [
|
|
239
246
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
240
247
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
@@ -249,12 +256,12 @@
|
|
|
249
256
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
250
257
|
"static/chunks/app/api/robopark/sessions/route-0952b44bda5bfb6d.js"
|
|
251
258
|
],
|
|
252
|
-
"/api/
|
|
259
|
+
"/api/robovoice/robots/[robotId]/media-health/route": [
|
|
253
260
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
254
261
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
255
262
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
256
263
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
257
|
-
"static/chunks/app/api/
|
|
264
|
+
"static/chunks/app/api/robovoice/robots/[robotId]/media-health/route-0952b44bda5bfb6d.js"
|
|
258
265
|
],
|
|
259
266
|
"/api/robopark/vision-caption/route": [
|
|
260
267
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -263,26 +270,26 @@
|
|
|
263
270
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
264
271
|
"static/chunks/app/api/robopark/vision-caption/route-0952b44bda5bfb6d.js"
|
|
265
272
|
],
|
|
266
|
-
"/api/
|
|
273
|
+
"/api/settings/route": [
|
|
267
274
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
268
275
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
269
276
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
270
277
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
271
|
-
"static/chunks/app/api/
|
|
278
|
+
"static/chunks/app/api/settings/route-0952b44bda5bfb6d.js"
|
|
272
279
|
],
|
|
273
|
-
"/api/
|
|
280
|
+
"/api/robopark/robots/[robotId]/voice-engine/route": [
|
|
274
281
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
275
282
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
276
283
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
277
284
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
278
|
-
"static/chunks/app/api/
|
|
285
|
+
"static/chunks/app/api/robopark/robots/[robotId]/voice-engine/route-0952b44bda5bfb6d.js"
|
|
279
286
|
],
|
|
280
|
-
"/api/
|
|
287
|
+
"/api/turn-credentials/route": [
|
|
281
288
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
282
289
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
283
290
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
284
291
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
285
|
-
"static/chunks/app/api/
|
|
292
|
+
"static/chunks/app/api/turn-credentials/route-0952b44bda5bfb6d.js"
|
|
286
293
|
],
|
|
287
294
|
"/api/robopark/transcripts/route": [
|
|
288
295
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -291,12 +298,12 @@
|
|
|
291
298
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
292
299
|
"static/chunks/app/api/robopark/transcripts/route-0952b44bda5bfb6d.js"
|
|
293
300
|
],
|
|
294
|
-
"/
|
|
301
|
+
"/camera-grid/route": [
|
|
295
302
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
296
303
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
297
304
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
298
305
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
299
|
-
"static/chunks/app/
|
|
306
|
+
"static/chunks/app/camera-grid/route-0952b44bda5bfb6d.js"
|
|
300
307
|
],
|
|
301
308
|
"/api/wake/route": [
|
|
302
309
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -305,12 +312,12 @@
|
|
|
305
312
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
306
313
|
"static/chunks/app/api/wake/route-0952b44bda5bfb6d.js"
|
|
307
314
|
],
|
|
308
|
-
"/
|
|
315
|
+
"/fed/media/robots/[robotId]/video_feed/route": [
|
|
309
316
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
310
317
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
311
318
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
312
319
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
313
|
-
"static/chunks/app/
|
|
320
|
+
"static/chunks/app/fed/media/robots/[robotId]/video_feed/route-0952b44bda5bfb6d.js"
|
|
314
321
|
],
|
|
315
322
|
"/robopark/[...path]/route": [
|
|
316
323
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -319,19 +326,12 @@
|
|
|
319
326
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
320
327
|
"static/chunks/app/robopark/[...path]/route-0952b44bda5bfb6d.js"
|
|
321
328
|
],
|
|
322
|
-
"/
|
|
323
|
-
"static/chunks/webpack-5252e5254da079b5.js",
|
|
324
|
-
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
325
|
-
"static/chunks/1255-404bb8de49c90395.js",
|
|
326
|
-
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
327
|
-
"static/chunks/app/fed/media/robots/[robotId]/video_feed/route-0952b44bda5bfb6d.js"
|
|
328
|
-
],
|
|
329
|
-
"/robopark/api/robots/[robotId]/stream/route": [
|
|
329
|
+
"/vendor/livekit-client.umd.js/route": [
|
|
330
330
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
331
331
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
332
332
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
333
333
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
334
|
-
"static/chunks/app/
|
|
334
|
+
"static/chunks/app/vendor/livekit-client.umd.js/route-0952b44bda5bfb6d.js"
|
|
335
335
|
],
|
|
336
336
|
"/fed/[...path]/route": [
|
|
337
337
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -340,26 +340,26 @@
|
|
|
340
340
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
341
341
|
"static/chunks/app/fed/[...path]/route-0952b44bda5bfb6d.js"
|
|
342
342
|
],
|
|
343
|
-
"/
|
|
343
|
+
"/robopark/api/robots/[robotId]/stream/route": [
|
|
344
344
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
345
345
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
346
346
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
347
347
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
348
|
-
"static/chunks/app/
|
|
348
|
+
"static/chunks/app/robopark/api/robots/[robotId]/stream/route-0952b44bda5bfb6d.js"
|
|
349
349
|
],
|
|
350
|
-
"/
|
|
350
|
+
"/(app)/opengraph-image-xg4ifa/route": [
|
|
351
351
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
352
352
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
353
353
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
354
354
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
355
|
-
"static/chunks/app/
|
|
355
|
+
"static/chunks/app/(app)/opengraph-image-xg4ifa/route-0952b44bda5bfb6d.js"
|
|
356
356
|
],
|
|
357
|
-
"/
|
|
357
|
+
"/tailnet/route": [
|
|
358
358
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
359
359
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
360
360
|
"static/chunks/1255-404bb8de49c90395.js",
|
|
361
361
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
362
|
-
"static/chunks/app/
|
|
362
|
+
"static/chunks/app/tailnet/route-0952b44bda5bfb6d.js"
|
|
363
363
|
],
|
|
364
364
|
"/robopark/api/[...path]/route": [
|
|
365
365
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
@@ -389,6 +389,13 @@
|
|
|
389
389
|
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
390
390
|
"static/chunks/app/(app)/layout-0952b44bda5bfb6d.js"
|
|
391
391
|
],
|
|
392
|
+
"/(app)/page": [
|
|
393
|
+
"static/chunks/webpack-5252e5254da079b5.js",
|
|
394
|
+
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
395
|
+
"static/chunks/1255-404bb8de49c90395.js",
|
|
396
|
+
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
397
|
+
"static/chunks/app/(app)/page-0952b44bda5bfb6d.js"
|
|
398
|
+
],
|
|
392
399
|
"/(app)/voice/page": [
|
|
393
400
|
"static/chunks/webpack-5252e5254da079b5.js",
|
|
394
401
|
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
@@ -400,13 +407,6 @@
|
|
|
400
407
|
"static/chunks/9880-53262785284464cc.js",
|
|
401
408
|
"static/chunks/2333-43c39acb531f7d4e.js",
|
|
402
409
|
"static/chunks/app/(app)/voice/page-72d72d9a70d9c1d4.js"
|
|
403
|
-
],
|
|
404
|
-
"/(app)/page": [
|
|
405
|
-
"static/chunks/webpack-5252e5254da079b5.js",
|
|
406
|
-
"static/chunks/4bd1b696-f785427dddbba9fb.js",
|
|
407
|
-
"static/chunks/1255-404bb8de49c90395.js",
|
|
408
|
-
"static/chunks/main-app-a1f59168303c7f84.js",
|
|
409
|
-
"static/chunks/app/(app)/page-0952b44bda5bfb6d.js"
|
|
410
410
|
]
|
|
411
411
|
}
|
|
412
412
|
}
|
|
@@ -2,57 +2,57 @@
|
|
|
2
2
|
"/_not-found/page": "/_not-found",
|
|
3
3
|
"/api/device-character/route": "/api/device-character",
|
|
4
4
|
"/api/download-piper-model/route": "/api/download-piper-model",
|
|
5
|
-
"/api/prompt/route": "/api/prompt",
|
|
6
|
-
"/api/reload-tools/route": "/api/reload-tools",
|
|
7
5
|
"/api/models/route": "/api/models",
|
|
6
|
+
"/api/prompt/route": "/api/prompt",
|
|
8
7
|
"/api/prewarm/route": "/api/prewarm",
|
|
9
8
|
"/api/robopark/devices/[deviceId]/control/route": "/api/robopark/devices/[deviceId]/control",
|
|
10
9
|
"/api/robopark/robots/[robotId]/operations/route": "/api/robopark/robots/[robotId]/operations",
|
|
10
|
+
"/api/reload-tools/route": "/api/reload-tools",
|
|
11
11
|
"/api/robopark/sessions/[sessionId]/end/route": "/api/robopark/sessions/[sessionId]/end",
|
|
12
12
|
"/api/robopark/transcripts/[sessionId]/route": "/api/robopark/transcripts/[sessionId]",
|
|
13
|
-
"/api/setup/status/route": "/api/setup/status",
|
|
14
13
|
"/api/setup/complete/route": "/api/setup/complete",
|
|
15
14
|
"/api/setup/test-groq/route": "/api/setup/test-groq",
|
|
16
15
|
"/api/setup/test-hass/route": "/api/setup/test-hass",
|
|
17
|
-
"/api/setup/
|
|
16
|
+
"/api/setup/status/route": "/api/setup/status",
|
|
18
17
|
"/api/setup/test-n8n/route": "/api/setup/test-n8n",
|
|
18
|
+
"/api/setup/test-ollama/route": "/api/setup/test-ollama",
|
|
19
19
|
"/api/test-tts/route": "/api/test-tts",
|
|
20
20
|
"/api/voices/route": "/api/voices",
|
|
21
21
|
"/api/wake-word/models/route": "/api/wake-word/models",
|
|
22
22
|
"/api/wake-word/status/route": "/api/wake-word/status",
|
|
23
23
|
"/api/wake-word/upload/route": "/api/wake-word/upload",
|
|
24
24
|
"/favicon.ico/route": "/favicon.ico",
|
|
25
|
-
"/api/model-status/route": "/api/model-status",
|
|
26
25
|
"/api/kiosk-hardware/route": "/api/kiosk-hardware",
|
|
27
|
-
"/api/robopark/character-ai/route": "/api/robopark/character-ai",
|
|
28
26
|
"/api/connection-details/route": "/api/connection-details",
|
|
27
|
+
"/api/model-status/route": "/api/model-status",
|
|
28
|
+
"/api/robopark/device-access/route": "/api/robopark/device-access",
|
|
29
29
|
"/api/robopark/camera-token/route": "/api/robopark/camera-token",
|
|
30
|
-
"/api/robopark/robots/route": "/api/robopark/robots",
|
|
31
30
|
"/api/robopark/live-rooms/route": "/api/robopark/live-rooms",
|
|
32
|
-
"/api/robopark/device-access/route": "/api/robopark/device-access",
|
|
33
31
|
"/api/robopark/monitor-token/route": "/api/robopark/monitor-token",
|
|
32
|
+
"/api/robopark/character-ai/route": "/api/robopark/character-ai",
|
|
33
|
+
"/api/robopark/robots/route": "/api/robopark/robots",
|
|
34
34
|
"/api/robopark/servers/[serverId]/metrics/route": "/api/robopark/servers/[serverId]/metrics",
|
|
35
|
+
"/api/robopark/servers/[serverId]/route": "/api/robopark/servers/[serverId]",
|
|
35
36
|
"/api/robopark/servers/route": "/api/robopark/servers",
|
|
36
37
|
"/api/robopark/sessions/route": "/api/robopark/sessions",
|
|
37
|
-
"/api/robopark/servers/[serverId]/route": "/api/robopark/servers/[serverId]",
|
|
38
|
-
"/api/robopark/vision-caption/route": "/api/robopark/vision-caption",
|
|
39
|
-
"/api/robopark/robots/[robotId]/voice-engine/route": "/api/robopark/robots/[robotId]/voice-engine",
|
|
40
38
|
"/api/robovoice/robots/[robotId]/media-health/route": "/api/robovoice/robots/[robotId]/media-health",
|
|
39
|
+
"/api/robopark/vision-caption/route": "/api/robopark/vision-caption",
|
|
41
40
|
"/api/settings/route": "/api/settings",
|
|
42
|
-
"/api/robopark/
|
|
41
|
+
"/api/robopark/robots/[robotId]/voice-engine/route": "/api/robopark/robots/[robotId]/voice-engine",
|
|
43
42
|
"/api/turn-credentials/route": "/api/turn-credentials",
|
|
44
|
-
"/api/
|
|
43
|
+
"/api/robopark/transcripts/route": "/api/robopark/transcripts",
|
|
45
44
|
"/camera-grid/route": "/camera-grid",
|
|
46
|
-
"/
|
|
45
|
+
"/api/wake/route": "/api/wake",
|
|
47
46
|
"/fed/media/robots/[robotId]/video_feed/route": "/fed/media/robots/[robotId]/video_feed",
|
|
48
|
-
"/robopark/
|
|
49
|
-
"/fed/[...path]/route": "/fed/[...path]",
|
|
50
|
-
"/tailnet/route": "/tailnet",
|
|
47
|
+
"/robopark/[...path]/route": "/robopark/[...path]",
|
|
51
48
|
"/vendor/livekit-client.umd.js/route": "/vendor/livekit-client.umd.js",
|
|
49
|
+
"/fed/[...path]/route": "/fed/[...path]",
|
|
50
|
+
"/robopark/api/robots/[robotId]/stream/route": "/robopark/api/robots/[robotId]/stream",
|
|
52
51
|
"/(app)/opengraph-image-xg4ifa/route": "/opengraph-image-xg4ifa",
|
|
52
|
+
"/tailnet/route": "/tailnet",
|
|
53
53
|
"/robopark/api/[...path]/route": "/robopark/api/[...path]",
|
|
54
54
|
"/robopark/page": "/robopark",
|
|
55
55
|
"/voice-tester/page": "/voice-tester",
|
|
56
|
-
"/(app)/
|
|
57
|
-
"/(app)/page": "/"
|
|
56
|
+
"/(app)/page": "/",
|
|
57
|
+
"/(app)/voice/page": "/voice"
|
|
58
58
|
}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/GwsTXhcc2wWhmMKp14ZmG/_buildManifest.js",
|
|
9
|
+
"static/GwsTXhcc2wWhmMKp14ZmG/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [
|
|
12
12
|
"static/chunks/webpack-5252e5254da079b5.js",
|