robopark 3.1.2 → 3.3.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 +66 -95
- package/bin/robopark.js +9 -2
- package/conversation/elevenlabs_agent.py +1617 -1617
- package/conversation/supervisor_store.py +189 -189
- package/dist/{kernel/config-schema.js → config-schema.js} +1 -0
- package/dist/config-schema.js.map +1 -0
- package/dist/robopark/add-robot.js +1 -0
- package/dist/robopark/add-robot.js.map +1 -0
- package/dist/robopark/agent-ctl.js +1 -0
- package/dist/robopark/agent-ctl.js.map +1 -0
- package/dist/robopark/auto-start.js +51 -73
- package/dist/robopark/auto-start.js.map +1 -0
- package/dist/robopark/conversation.js +1 -0
- package/dist/robopark/conversation.js.map +1 -0
- package/dist/robopark/discovery.js +1 -0
- package/dist/robopark/discovery.js.map +1 -0
- package/dist/robopark/doctor.js +1 -0
- package/dist/robopark/doctor.js.map +1 -0
- package/dist/robopark/enroll.js +1 -0
- package/dist/robopark/enroll.js.map +1 -0
- package/dist/robopark/llm-set.js +1 -0
- package/dist/robopark/llm-set.js.map +1 -0
- package/dist/robopark/motor-control.js +1 -0
- package/dist/robopark/motor-control.js.map +1 -0
- package/dist/robopark/preview-agent-launcher.js +1 -0
- package/dist/robopark/preview-agent-launcher.js.map +1 -0
- package/dist/robopark/probe.js +16 -15
- package/dist/robopark/probe.js.map +1 -0
- package/dist/robopark/profile.js +1 -0
- package/dist/robopark/profile.js.map +1 -0
- package/dist/robopark/python-env.js +1 -7
- package/dist/robopark/python-env.js.map +1 -0
- package/dist/robopark/robot-runtime.js +1 -0
- package/dist/robopark/robot-runtime.js.map +1 -0
- package/dist/robopark/scan.js +1 -0
- package/dist/robopark/scan.js.map +1 -0
- package/dist/robopark/screen-control.js +1 -0
- package/dist/robopark/screen-control.js.map +1 -0
- package/dist/robopark/secrets.js +1 -0
- package/dist/robopark/secrets.js.map +1 -0
- package/dist/robopark/serve.js +4 -6
- package/dist/robopark/serve.js.map +1 -0
- package/dist/robopark/server-add.js +1 -0
- package/dist/robopark/server-add.js.map +1 -0
- package/dist/robopark/setup-livekit.js +53 -52
- package/dist/robopark/setup-livekit.js.map +1 -0
- package/dist/robopark/setup.js +1 -0
- package/dist/robopark/setup.js.map +1 -0
- package/dist/robopark/stop-all.js +1 -0
- package/dist/robopark/stop-all.js.map +1 -0
- package/dist/robopark/verify.js +1 -0
- package/dist/robopark/verify.js.map +1 -0
- package/dist/robopark/vision-agent-launcher.js +1 -0
- package/dist/robopark/vision-agent-launcher.js.map +1 -0
- package/dist/robopark/vision-control.js +1 -0
- package/dist/robopark/vision-control.js.map +1 -0
- package/dist/robopark-cli.js +7 -125
- package/dist/robopark-cli.js.map +1 -0
- package/package.json +16 -25
- package/pi-client/_install_steps.sh +29 -29
- package/pi-client/client.py +76 -76
- package/pi-client/install.sh +40 -40
- package/pi-client/join_convo.sh +54 -54
- package/pi-client/livekit_bridge.py +24 -24
- package/pi-client/motor_bridge.py +10 -10
- package/scheduler/__pycache__/main.cpython-312.pyc +0 -0
- package/scheduler/main.py +196 -17
- package/scheduler/media_lock.py +57 -57
- package/scheduler/preview_agent.py +1122 -1122
- package/scheduler/production_config.json +73 -113
- package/scheduler/scripts/install-robot-supervisor-linux.sh +33 -33
- package/{static → scheduler/static}/vendor/elevenlabs-client.iife.js +24199 -24199
- package/scheduler/static/voice-join.html +177 -0
- package/screen/screen_runtime.py +75 -75
- package/vision/app_pi_clean.py +297 -297
- package/vision/audio_server_pi.py +24 -24
- package/vision/install.sh +34 -34
- package/vision/motor_server.py +275 -275
- package/vision/requirements_camera.txt +6 -6
- package/vision/requirements_motor.txt +4 -4
- package/vision/requirements_pi_unified.txt +2 -2
- package/vision/requirements_vision_agent.txt +19 -19
- package/vision/run.sh +244 -244
- package/vision/services/services.sh +12 -12
- package/dist/kernel/types.js +0 -7
- package/dist/robopark/access.js +0 -99
- package/dist/robopark/control-center-html.js +0 -9191
- package/dist/robopark/control-server.js +0 -148
- package/dist/robopark/deployment-commands.js +0 -47
- package/dist/robopark/standalone.js +0 -562
- package/dist/robopark/voice-join-html.js +0 -57
- package/scripts/windows-shim-fix.cjs +0 -58
- 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 +0 -21
package/README.md
CHANGED
|
@@ -1,95 +1,66 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
robopark
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
robopark
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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.
|
|
1
|
+
# robopark
|
|
2
|
+
|
|
3
|
+
Production architecture, device locks, verified stages, and incident memory
|
|
4
|
+
are recorded in [`../../docs/ROBOPARK_PRODUCTION_MEMORY.md`](../../docs/ROBOPARK_PRODUCTION_MEMORY.md).
|
|
5
|
+
|
|
6
|
+
The **RoboPark fleet control CLI** — set up, watch, and drive a room full of
|
|
7
|
+
talking robots from one command. `robopark` is the operator front-end; it rides
|
|
8
|
+
the [`infinicode`](https://www.npmjs.com/package/infinicode) device mesh, which
|
|
9
|
+
it installs as a dependency. You install and think in one name — everything else
|
|
10
|
+
is plumbing.
|
|
11
|
+
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
npm install -g robopark
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## The whole setup — two commands
|
|
19
|
+
|
|
20
|
+
Operators think in **scheduler / robot / laptop**; the mesh underneath thinks in
|
|
21
|
+
hub / satellite / peer. `robopark` translates, and each role turns on the right
|
|
22
|
+
defaults automatically.
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
# On the on-site hub (LiveKit Server 1) — LAN + Tailscale + dashboard on:
|
|
26
|
+
robopark setup --scheduler --gateway ws://<infinibot-gateway>:18789 --start
|
|
27
|
+
|
|
28
|
+
# On each robot Pi — accept-only, LAN-discovered:
|
|
29
|
+
robopark setup --robot --name robopanda --start
|
|
30
|
+
|
|
31
|
+
# From anywhere — a live table of the whole fleet:
|
|
32
|
+
robopark fleet --watch
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Run `robopark setup` with no role for a guided wizard.
|
|
36
|
+
|
|
37
|
+
## Commands
|
|
38
|
+
|
|
39
|
+
| Command | Does |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `robopark setup` | Configure this device's role + site and (with `--start`) launch its node. |
|
|
42
|
+
| `robopark fleet [--watch]` | Live table of every node the mesh can see. |
|
|
43
|
+
| `robopark run <node> <cmd>` | Run a command on one node (use `.` for the local node). |
|
|
44
|
+
| `robopark apply` | Publish this hub's providers / keys / policy to every satellite. |
|
|
45
|
+
| `robopark dashboard [--open]` | Open the web control panel served by the hub. |
|
|
46
|
+
|
|
47
|
+
## How it fits together
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
you ── robopark ──▶ infinicode nodes (the mesh) ──▶ InfiniBot (watch)
|
|
51
|
+
└──▶ web dashboard :47913 (watch / drive)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
- **robopark** — the remote control. A CLI, no daemon. Writes config and calls
|
|
55
|
+
each node's HTTP API.
|
|
56
|
+
- **infinicode** — the runtime. `infinicode serve` runs on every device, forms
|
|
57
|
+
the mesh, runs agents, streams telemetry, and serves the dashboard.
|
|
58
|
+
- **InfiniBot** — the cockpit. Each node pushes its status *up* to InfiniBot;
|
|
59
|
+
you watch there (or in the built-in dashboard).
|
|
60
|
+
|
|
61
|
+
`robopark` never talks to InfiniBot directly — it drives infinicode nodes, and
|
|
62
|
+
those surface in InfiniBot.
|
|
63
|
+
|
|
64
|
+
## License
|
|
65
|
+
|
|
66
|
+
MIT
|
package/bin/robopark.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* robopark — fleet control CLI.
|
|
4
|
+
*
|
|
5
|
+
* Unlike the previous release, this is not a wrapper: the CLI ships in this
|
|
6
|
+
* package and has no infinicode dependency. `robopark serve` starts the
|
|
7
|
+
* scheduler (scheduler/main.py) and the control UI directly.
|
|
8
|
+
*/
|
|
2
9
|
import('../dist/robopark-cli.js').catch((err) => {
|
|
3
|
-
console.error('robopark:
|
|
10
|
+
console.error('robopark: failed to start.');
|
|
4
11
|
console.error(err && err.message ? err.message : err);
|
|
5
|
-
console.error('
|
|
12
|
+
console.error('If this is a source checkout, build it first: npm install && npm run build');
|
|
6
13
|
process.exit(1);
|
|
7
14
|
});
|