50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
|
|
# First Light Report — Evennia to Nexus Bridge
|
||
|
|
|
||
|
|
Issue:
|
||
|
|
- #727 Feed Evennia room/command events into the Nexus websocket bridge
|
||
|
|
|
||
|
|
What was implemented:
|
||
|
|
- `nexus/evennia_ws_bridge.py` — reads Evennia telemetry JSONL and publishes normalized Evennia→Nexus events into the local websocket bridge
|
||
|
|
- `EVENNIA_NEXUS_EVENT_PROTOCOL.md` — canonical event family contract
|
||
|
|
- `nexus/evennia_event_adapter.py` — normalization helpers (already merged in #725)
|
||
|
|
- `nexus/perception_adapter.py` support for `evennia.actor_located`, `evennia.room_snapshot`, and `evennia.command_result`
|
||
|
|
- tests locking the bridge parsing and event contract
|
||
|
|
|
||
|
|
Proof method:
|
||
|
|
1. Start local Nexus websocket bridge on `ws://127.0.0.1:8765`
|
||
|
|
2. Open a websocket listener
|
||
|
|
3. Replay a real committed Evennia example trace from `timmy-home`
|
||
|
|
4. Confirm normalized events are received over the websocket
|
||
|
|
|
||
|
|
Observed received messages (excerpt):
|
||
|
|
```json
|
||
|
|
[
|
||
|
|
{
|
||
|
|
"type": "evennia.session_bound",
|
||
|
|
"hermes_session_id": "world-basics-trace.example",
|
||
|
|
"evennia_account": "Timmy",
|
||
|
|
"evennia_character": "Timmy"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"type": "evennia.command_issued",
|
||
|
|
"actor_id": "timmy",
|
||
|
|
"command_text": "look"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"type": "evennia.command_result",
|
||
|
|
"actor_id": "timmy",
|
||
|
|
"command_text": "look",
|
||
|
|
"output_text": "Chapel A quiet room set apart for prayer, conscience, grief, and right alignment...",
|
||
|
|
"success": true
|
||
|
|
}
|
||
|
|
]
|
||
|
|
```
|
||
|
|
|
||
|
|
Interpretation:
|
||
|
|
- Evennia world telemetry can now be published into the Nexus websocket bridge without inventing a second world model.
|
||
|
|
- The bridge is thin: it translates and forwards.
|
||
|
|
- Nexus-side perception code can now consume these events as part of Timmy's sensorium.
|
||
|
|
|
||
|
|
Why this matters:
|
||
|
|
This is the first live seam where Timmy's persistent Evennia place can begin to appear inside the Nexus-facing world model.
|