m5/org/openalice-vision

openalice-vision

The **perception producer** for [`openalice-agent-protocol`](../openalice-agent-protocol-rs) — turns a camera / screen / scene frame into a consent-gated `visual_perception` event via an **EU-sovereign VLM (Mistral vision, `mistral-small-3.2`, over OpenRouter)**. The symmetric analog of [`openalice-stt`](../openalice-stt) (audio → text): vision in, a digested observation event out.

Features
3
Status
·unknown
Last activity
1mo ago
Branch
mvp

Architecture rating

D1mo ago
consistencyB

Strong substrate adoption: explicit symmetric analog of openalice-stt (audio→text mirrored as vision→event), VlmClient trait + OpenRouterVlm impl, agent-protocol v0.2 conformance, manifest 100 + drift 100 with no circular deps.

docsC

Valid manifest with rich summary, solid README explaining the producer role, AGENTS.md present, and 3 @feature annotations; held back by 21 missing docstrings and a weak roadmap (30/100).

securityC-

Consent-gating is the standout: camera-off-until-consent enforced at the producer in build_visual_perception, plus structured JSON reading limits injection blast radius; but as a crate calling an external VLM over OpenRouter the SSRF surface (frame fetch) and API-key handling are undocumented, and there is no rate-limit/header layer (it's a library, not a server).

reliabilityD

Code is clean (avg complexity 2.80, max 9, zero cycles, zero dead imports) and 'live-proven against the real model', but no evidence of timeouts/retries/backoff on the OpenRouter call, no graceful-shutdown or idempotency signals — for a network-dependent producer that's a real gap.

data layerD

Intentionally stateless — owns no tables and ships no migrations, emitting agent-protocol v0.2 visual_perception events instead; nothing to grade for schema/RLS/FK/GDPR, so scored conservatively rather than credited.

observabilityF

No metrics, tracing, or structured-log signals surfaced and health probe fails ('no https endpoint in manifest exposes'); as a library this is partly expected, but there is zero evidence of instrumentation on the VLM round-trip.

testingF

No tests/ or migrations dir present and no automated test count in the inspector signal; only 'live-proven against the real model' and example binaries — critical paths (consent gate, JSON parsing, cadence) have no visible regression coverage.

source · auto-grader-2026-06-16

Ecosystem manifest

.atlas-deps.yml

Vision perception PRODUCER — turns a camera/screen/scene frame into a consent-gated visual_perception event (agent-protocol v0.2) via an EU-sovereign VLM (mistral-small-3.2 over OpenRouter). The symmetric analog of openalice-stt (audio→text). VlmClient trait + OpenRouterVlm (multimodal) + build_visual_perception (camera-off-until-consent, enforced at the producer) + structured JSON reading + PerceptionCadence (when to read). Live-proven against the real model. The consumer/bridge is in openalice-agent-basic.

Runtime deps
  • visual_perception ConnectorEvent + PerceptionConsent / VisualSubject types the producer builds.
  • openrouterhttp
    via OPENROUTER_API_KEY
    EU VLM (mistral-small-3.2) OpenAI-compatible multimodal endpoint over HTTPS — captions frames. OpenRouter-only per project policy.
Consumed env
  • OPENROUTER_API_KEY
Exposes
  • cargo_crate: openalice-vision

Code composition

tokei · loc
556loc
  • Rust96.9%
  • TOML3.1%
  • Rust96.9%· 539
  • TOML3.1%· 17
Language% codecodecommentsblanksfiles
Rust96.9%5397707
TOML3.1%17021
Markdown0.0%060112

Telemetry ribbon · last 90 days

1 event
MAYJUNJUL2026-06-10 · lifecycle · first scan — repo indexedNOW
commitmanifestlifecyclekind

agent-vision/cadence

1 feature
  • agent-vision.cadence.perception-gate
    src/cadence.rs:13
    PerceptionCadence::on_frame(now_ms, change) → bool — the deterministic sampler that gates VLM reads by min/max interval + change threshold.

agent-vision/crate

1 feature
  • agent-vision.crate
    src/lib.rs:21
    EU VLM (Pixtral/OpenRouter) frame→visual_perception producer; trait-based VlmClient for test stubs; consent-gated event builder.

agent-vision/event

1 feature
  • agent-vision.event.consent-gated-builder
    src/event.rs:7
    build_visual_perception — VlmReading → visual_perception ConnectorEvent, refusing camera origin without granted PerceptionConsent.