|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| plugin.manifest.json | ||
README.md
XGRIDS / LixelKity K1 plugin
This directory is the package boundary for the first Mission Core device
plugin. It now owns the canonical v1alpha manifest
plugin.manifest.json. The statically linked frontend
contribution lives in apps/control-station/src/device-plugins/xgrids-k1/; the
verified backend implementation remains temporarily in src/k1link so the
real-device path stays operational during extraction.
The v1alpha1 host deliberately assigns one model to one plugin runtime, so this
manifest exposes only xgrids.lixelkity-k1. Adding another device model means a
new plugin contribution until session/model routing lands in the next SDK.
The plugin owns:
- BLE discovery hints and K1 GATT metadata;
- the reviewed firmware-3 Wi-Fi provisioning profile;
- K1 LAN status and private-address validation;
- subscribe-only MQTT transport and report-topic allowlist;
- native
.k1mqttcapture; - firmware-scoped protobuf/LZ4 and legacy codecs;
- normalization of K1 point cloud, pose, status, health, and artifacts;
- K1-specific operator instructions and compatibility tests.
The plugin does not own:
- Mission Core navigation, fleet, missions, users, roles, or audit;
- the generic spatial scene or Rerun Web Viewer;
- platform storage, remote transport, or other devices.
Until extraction is complete, src/k1link is the compatibility source of
truth and every move into this package must preserve replay and real-device
acceptance.
Mission Core imports this plugin only from
apps/control-station/src/composition/devicePlugins.ts. The generic shell never
branches on this plugin ID or reads k1_ip, BLE candidates, MQTT topics, or
other vendor state.
Backend startup loads the reviewed factory declared by backendEntrypoint, then
cross-checks its plugin ID and complete action set against this manifest.
Actions enter through the host dispatcher and the transitional facade
src/k1link/web/xgrids_k1_facade.py. The old flat routes live in the plugin's
legacy router; both paths delegate to the same proven
XgridsK1CompatibilityService methods. Synchronous capture/runtime operations
run outside the FastAPI event loop.
Model switching calls the plugin deactivation hook and must receive a successful
stream.stop before Mission Core removes this custom UI. BLE, MQTT, codec and
evidence modules remain in src/k1link until replay parity and another physical
K1 regression are complete.