robopark 3.0.0 → 3.1.0
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/README.md +7 -0
- package/dist/robopark/auto-start.js +5 -1
- package/dist/robopark/control-center-html.js +9191 -0
- package/dist/robopark/control-server.js +148 -0
- package/dist/robopark/standalone.js +26 -6
- package/dist/robopark/voice-join-html.js +57 -0
- package/dist/robopark-cli.js +2 -0
- package/package.json +4 -2
- package/scheduler/main.py +1 -1
- package/static/robopark/barracuda.png +0 -0
- package/static/robopark/bmw.png +0 -0
- package/static/robopark/jaguar.png +0 -0
- package/static/robopark/magnus.jpg +0 -0
- package/static/robopark/panda.png +0 -0
- package/static/robopark/tesla.png +0 -0
- package/static/robopark/titan.jpg +0 -0
- package/static/robopark/volt.png +0 -0
- package/static/vendor/elevenlabs-client.LICENSE +21 -0
- package/static/vendor/elevenlabs-client.iife.js +24200 -0
- package/scheduler/fleet_config.json +0 -75
package/README.md
CHANGED
|
@@ -24,6 +24,13 @@ On the gateway:
|
|
|
24
24
|
robopark --password '<activation-password>' gateway start --public-url https://robopark.example.com
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
+
`gateway start` owns both RoboPark surfaces:
|
|
28
|
+
|
|
29
|
+
- Full Park Control Center: port 47913
|
|
30
|
+
- Private scheduler/API service: port 8080
|
|
31
|
+
|
|
32
|
+
InfiniCode is not required to render or operate the Park UI.
|
|
33
|
+
|
|
27
34
|
The gateway prints a complete connection command. Run it once on a device:
|
|
28
35
|
|
|
29
36
|
```sh
|
|
@@ -39,7 +39,11 @@ async function registerWindows(service) {
|
|
|
39
39
|
const xmlPath = join(homedir(), 'AppData', 'Roaming', 'robopark', `${taskName}.xml`);
|
|
40
40
|
mkdirSync(dirname(xmlPath), { recursive: true });
|
|
41
41
|
const xml = `<?xml version="1.0" encoding="UTF-16"?>\n<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">\n <RegistrationInfo>\n <Description>RoboPark ${service.role} for ${service.name}</Description>\n </RegistrationInfo>\n <Triggers>\n <BootTrigger>\n <Enabled>true</Enabled>\n </BootTrigger>\n <LogonTrigger>\n <Enabled>true</Enabled>\n </LogonTrigger>\n </Triggers>\n <Principals>\n <Principal id="Author">\n <LogonType>S4U</LogonType>\n <RunLevel>HighestAvailable</RunLevel>\n </Principal>\n </Principals>\n <Settings>\n <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>\n <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>\n <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>\n <StartWhenAvailable>true</StartWhenAvailable>\n <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>\n <IdleSettings>\n <StopOnIdleEnd>false</StopOnIdleEnd>\n <RestartOnIdle>false</RestartOnIdle>\n </IdleSettings>\n <AllowStartOnDemand>true</AllowStartOnDemand>\n <Enabled>true</Enabled>\n <Hidden>false</Hidden>\n <RunOnlyIfIdle>false</RunOnlyIfIdle>\n <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>\n <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>\n <WakeToRun>false</WakeToRun>\n <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>\n </Settings>\n <Actions Context="Author">\n <Exec>\n <Command>${cmd[0]}</Command>\n <Arguments>${cmd.slice(1).map(a => a.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>')).join(' ')}</Arguments>\n <WorkingDirectory>${service.workingDir ?? homedir()}</WorkingDirectory>\n </Exec>\n </Actions>\n</Task>`;
|
|
42
|
-
const hardenedXml = xml.replace(' </Settings>',
|
|
42
|
+
const hardenedXml = xml.replace(' </Settings>',
|
|
43
|
+
// Task Scheduler rejects restart intervals shorter than one minute with
|
|
44
|
+
// ERROR_INVALID_DATA. The RoboPark child supervisor handles sub-minute
|
|
45
|
+
// recovery; Windows is the outer process-level safety net.
|
|
46
|
+
' <RestartOnFailure>\n <Interval>PT1M</Interval>\n <Count>999</Count>\n </RestartOnFailure>\n </Settings>');
|
|
43
47
|
// schtasks /XML requires UTF-16 LE *with* BOM when the XML declares UTF-16.
|
|
44
48
|
const bom = Buffer.from([0xff, 0xfe]);
|
|
45
49
|
const body = Buffer.from(hardenedXml, 'utf16le');
|