Basic ambient collectors: inline tailer + validated JSONL drop-in, with...
Your AI's guard dog to stop it from going rogue.
Brought to you by:
doberman
Originally created by: fu351
Make the ambient daemon useful with zero plugins installed.
Build
DropInCollector: watch .doberman/activity-inbox/*.jsonl. Each line must validate as an ActivityEvent; unknown fields, oversize lines, and half-written lines are rejected and counted, never sanitized. Consumed files are renamed .done. Per-tick file and line caps bound a flooding neighbor.decisions rows into doberman monitor status so inline and ambient activity read as one stream. Already-decided rows are displayed, never re-scored and never re-emitted.docs/AMBIENT.md: the public integration contract, with the JSONL format, a worked emitter example, and the boundary statement verbatim: drop-in coverage is detect + alert, never enforcement; an integration that needs enforcement must sit inline.Tests must prove: validation rejects and counts (including a smuggled unknown field and a truncated line); a synthetic secret in a malformed line never reaches the bus or a log; write-then-rename is respected; the tailer adds zero new decision rows; end-to-end, one dropped-in high-risk event becomes exactly one ambient alert row with reason codes intact and the observed-not-enforced prefix.
Blocked by [#237] (the daemon lands first).