Skip to content

NeuroverseOS/Bevia-Spatial-Intake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bevia Spatial Intake

Thin intake clients that stream interaction evidence from spatial-computing sources into Bevia. Clients capture evidence only — Bevia performs all reconstruction and understanding downstream (Sensor / Brain doctrine: these are sensors; the engine is the brain).

Two clients live here:

Client Source Run
Mentra capture Mentra-glasses transcription + spatial context (scaffold; mock streams included) npm run dev
ShipMemory poller A ShipMemory/Auki bridge (Shipmemory-auki) — assets' ContextCards + session history npm run shipmemory

ShipMemory → Bevia (the robotics client, round one)

Polls a ShipMemory bridge read-only over its published protocol (GET /card, GET /session/:asset_id/transcript, ?key= auth) and lands:

  • each asset's ContextCard (the authored "should") as a single-turn capture on thread card:<asset_id>, re-emitted only when its content hash changes;
  • each session (the observed "did") as one conversation capture per (asset, session) — roles mapped to speakers (useroperator, assistantai), event-time timestamps preserved, opaque tool-dispatcher entries landed verbatim as JSON text (captured, never dropped, never interpreted here);
  • an ADR-0228 location on every capture: { provider: 'posemesh', domain_id, anchor_id: <asset_id>, label }.

The live Oneshot loop is untouched — this client only reads. Sessions that grew overwrite their own deterministic file; the engine's content dedup absorbs replays, so losing the state file is always safe.

Sinks

  • SINK=drop (default): writes *.bevia-capture.json into a folder the Bevia desktop app watches. The file's content IS the /intake/capture body (ADR-0227 path 2) — zero auth, fully local-to-local.
  • SINK=post: POSTs the same body to BEVIA_INTAKE_URL with a bearer token, for a paired-LAN or cloud engine.

Quick start

cp .env.example .env    # fill SHIPMEMORY_BRIDGE_URL + SHIPMEMORY_API_KEY
npm install
npm run shipmemory      # continuous; ONCE=1 for a single pass

Point DROP_DIR at a folder your Bevia desktop app watches and the map starts forming from the bridge's history on the first pass. The bridge keeps at most ~500 entries per asset (a ring buffer); the poller warns (tick.ring_buffer_gap) if history is falling off faster than it polls.

Check a bridge before connecting anything

npm run check-bridge -- --base http://localhost:8080 --key YOURKEY

Read-only conformance check for bridge operators: it hits the same two endpoints the poller reads and reports what will land cleanly and what won't — rejected key vs. unreachable, cards without ids (skipped), entries without created_at (event time lost), sessions without ids (blurred), ring-buffer coverage, and whether history is append-only (safe for watermark polling). Exit 0 = READY. Run it on the bridge side; no Bevia engine needed.

Mentra capture scaffold

The original scaffold: chunked transcription + spatial context batching with buffering and a dry-run mode. See src/ (capture/, transcription/, spatial/, buffer/, upload/). Mock streams let it run with no hardware.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors