robopark 2.8.36 → 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 +95 -63
- package/bin/robopark.js +7 -17
- package/conversation/elevenlabs_agent.py +1985 -0
- package/conversation/requirements.txt +3 -0
- package/conversation/supervisor_store.py +189 -0
- package/dist/kernel/config-schema.js +37 -0
- package/dist/kernel/types.js +7 -0
- package/dist/robopark/access.js +99 -0
- package/dist/robopark/add-robot.js +188 -0
- package/dist/robopark/agent-ctl.js +305 -0
- package/dist/robopark/auto-start.js +293 -0
- package/dist/robopark/control-center-html.js +9191 -0
- package/dist/robopark/control-server.js +148 -0
- package/dist/robopark/conversation.js +505 -0
- package/dist/robopark/deployment-commands.js +47 -0
- package/dist/robopark/discovery.js +180 -0
- package/dist/robopark/doctor.js +175 -0
- package/dist/robopark/enroll.js +68 -0
- package/dist/robopark/llm-set.js +87 -0
- package/dist/robopark/motor-control.js +195 -0
- package/dist/robopark/preview-agent-launcher.js +77 -0
- package/dist/robopark/probe.js +138 -0
- package/dist/robopark/profile.js +69 -0
- package/dist/robopark/python-env.js +162 -0
- package/dist/robopark/robot-runtime.js +489 -0
- package/dist/robopark/scan.js +97 -0
- package/dist/robopark/screen-control.js +55 -0
- package/dist/robopark/secrets.js +41 -0
- package/dist/robopark/serve.js +285 -0
- package/dist/robopark/server-add.js +114 -0
- package/dist/robopark/setup-livekit.js +300 -0
- package/dist/robopark/setup.js +286 -0
- package/dist/robopark/standalone.js +486 -0
- package/dist/robopark/stop-all.js +141 -0
- package/dist/robopark/verify.js +192 -0
- package/dist/robopark/vision-agent-launcher.js +98 -0
- package/dist/robopark/vision-control.js +81 -0
- package/dist/robopark/voice-join-html.js +57 -0
- package/dist/robopark-cli.js +801 -0
- package/package.json +23 -5
- package/pi-client/_install_steps.sh +29 -29
- package/pi-client/client.py +61 -2
- package/pi-client/install.sh +40 -40
- package/pi-client/join_convo.sh +54 -54
- package/pi-client/livekit_bridge.py +16 -7
- package/pi-client/motor_bridge.py +6 -3
- package/scheduler/main.py +4505 -135
- package/scheduler/media_lock.py +57 -0
- package/scheduler/preview_agent.py +1465 -87
- package/scheduler/production_config.json +139 -0
- package/scheduler/robot_supervisor.py +1705 -0
- package/scheduler/scripts/install-robot-supervisor-linux.sh +33 -0
- package/scheduler/scripts/install-robot-supervisor-windows.ps1 +49 -0
- package/scheduler/scripts/robopark-supervisor.service +20 -0
- package/scheduler/scripts/start-scheduler-local.ps1 +50 -0
- package/scheduler/supervisor.example.json +26 -0
- package/scheduler/vision_motion_trigger.py +101 -0
- package/screen/screen_runtime.py +75 -0
- 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/vision/app_pi_clean.py +253 -16
- package/vision/audio_server_pi.py +19 -0
- package/vision/install.sh +34 -34
- package/vision/motor_server.py +224 -61
- package/vision/requirements_camera.txt +6 -0
- package/vision/requirements_motor.txt +4 -0
- package/vision/requirements_pi_unified.txt +1 -0
- package/vision/requirements_vision_agent.txt +19 -0
- package/vision/run.sh +244 -244
- package/vision/services/services.sh +12 -12
- package/scheduler/__pycache__/main.cpython-312.pyc +0 -0
- package/scheduler/__pycache__/preview_agent.cpython-312.pyc +0 -0
package/README.md
CHANGED
|
@@ -1,63 +1,95 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## Install
|
|
10
|
-
|
|
11
|
-
```sh
|
|
12
|
-
npm install -g robopark
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
`
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
1
|
+
# RoboPark
|
|
2
|
+
|
|
3
|
+
RoboPark is the standalone runtime for a fleet of camera- and voice-enabled
|
|
4
|
+
characters. It includes the gateway dashboard, durable scheduler, device
|
|
5
|
+
pairing, LiveKit camera/audio publisher, ElevenLabs session integration, and a
|
|
6
|
+
cross-platform supervisor. It does not require an InfiniCode installation or a
|
|
7
|
+
source checkout.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
npm install -g robopark
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Node.js 20+ and Python 3.10+ are required. RoboPark creates an isolated Python
|
|
16
|
+
environment in `~/.robopark/venv` and installs the pinned packaged media
|
|
17
|
+
dependencies on first use.
|
|
18
|
+
|
|
19
|
+
## Three-command setup
|
|
20
|
+
|
|
21
|
+
On the gateway:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
robopark --password '<activation-password>' gateway start --public-url https://robopark.example.com
|
|
25
|
+
```
|
|
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
|
+
|
|
34
|
+
The gateway prints a complete connection command. Run it once on a device:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
robopark connect rp1_<token>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Then persist the desired media runtime:
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
robopark start --voice --video --character vixen
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Print the gateway command and every verified production bot command at any
|
|
47
|
+
time:
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
robopark commands
|
|
51
|
+
robopark commands --token rp1_<token> --public-url https://gateway.example.com
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The packaged production bindings are Barracuda, Jaguar, Magnus, Palladin,
|
|
55
|
+
Panda, Ronin, Titan, Vixen, and Volt. Panda and Ronin intentionally remain
|
|
56
|
+
separate robot identities while sharing their recovered ElevenLabs agent.
|
|
57
|
+
|
|
58
|
+
`start` writes durable desired state and registers an OS supervisor:
|
|
59
|
+
|
|
60
|
+
- Linux: systemd with `Restart=always`
|
|
61
|
+
- Windows: Task Scheduler with restart-on-failure
|
|
62
|
+
- macOS: launchd with `KeepAlive`
|
|
63
|
+
|
|
64
|
+
The supervisor also watches the child media process and gateway heartbeat. A
|
|
65
|
+
crash receives exponential-backoff restart; a live-but-stalled worker is
|
|
66
|
+
recycled after repeated stale heartbeats. A gateway outage does not create a
|
|
67
|
+
restart storm: the media worker keeps its device identity and reconnects.
|
|
68
|
+
|
|
69
|
+
Use `robopark start --foreground` in development and `robopark status` to read
|
|
70
|
+
the local supervisor state.
|
|
71
|
+
|
|
72
|
+
## Data and logs
|
|
73
|
+
|
|
74
|
+
Durable device credentials, desired state, runtime status, logs, and the Python
|
|
75
|
+
environment live under `~/.robopark`. Gateway data defaults to
|
|
76
|
+
`~/.robopark/scheduler`, so upgrading or reinstalling the npm package does not
|
|
77
|
+
replace fleet state.
|
|
78
|
+
|
|
79
|
+
## Package boundary
|
|
80
|
+
|
|
81
|
+
RoboPark owns device connectivity, camera/audio, sessions, transcripts, and the
|
|
82
|
+
operator gateway. InfiniCode is an optional management/orchestration layer and
|
|
83
|
+
is not a runtime dependency.
|
|
84
|
+
|
|
85
|
+
The 3.0 artifact deliberately preserves the current scheduler, Pi client,
|
|
86
|
+
ElevenLabs conversation worker, camera/vision service, screen relay, motor
|
|
87
|
+
bridge, configuration filenames, and service names. Existing enrolled robots
|
|
88
|
+
are grandfathered on upgrade and continue using their current device identity
|
|
89
|
+
and `~/.robopark` state without an activation interruption. New gateways require
|
|
90
|
+
one-time activation; a valid gateway pairing token activates a new robot only
|
|
91
|
+
after enrollment succeeds.
|
|
92
|
+
|
|
93
|
+
Publish this package with private npm access. The runtime activation gate
|
|
94
|
+
prevents accidental use, but it does not encrypt a tarball after someone has
|
|
95
|
+
downloaded it.
|
package/bin/robopark.js
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* `infinicode robopark …` are the exact same code. Keeping it a wrapper means
|
|
9
|
-
* operators install and think in one name — `robopark` — while all the mesh
|
|
10
|
-
* machinery ships and versions under infinicode.
|
|
11
|
-
*/
|
|
12
|
-
import('infinicode/robopark').catch((err) => {
|
|
13
|
-
console.error('robopark: could not load the infinicode runtime.');
|
|
14
|
-
console.error(err && err.message ? err.message : err);
|
|
15
|
-
console.error('Try reinstalling: npm install -g robopark');
|
|
16
|
-
process.exit(1);
|
|
17
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import('../dist/robopark-cli.js').catch((err) => {
|
|
3
|
+
console.error('robopark: could not load its packaged runtime.');
|
|
4
|
+
console.error(err && err.message ? err.message : err);
|
|
5
|
+
console.error('Try reinstalling: npm install -g robopark');
|
|
6
|
+
process.exit(1);
|
|
7
|
+
});
|