Everything arrives on one bus.
A Twitch message, your voice in a Discord call, a death in Minecraft, a donation webhook, a note you typed into the dashboard. Every sense wraps what it saw as the same kind of object and pushes it onto a single PerceptionBus. Nothing gets a private channel to her.
src/core/perception/
A gate decides what is worth a thought.
Three outcomes, and only one of them costs a model call: react, note, or drop. Being addressed by name goes through unconditionally, past cooldowns and quiet hours. Everything else is scored. What is merely noted becomes peripheral awareness — she knows it happened, and can bring it up later without having stopped for it.
src/core/attention/
One consciousness reasons and acts through tools.
Not one bot per platform: one always-on loop that holds the stage — her voice, the game, and whatever her owner just asked for. Written channels run alongside it as scoped conversations, one turn at a time per channel, several channels at once. She can be talking out loud and texting at the same time.
src/core/mind/
Everything she does leaves through one sink.
speak, mc_chat, discord_reply, play_minecraft, objective_done. The tools she calls all funnel through a single expression layer on the way out to TTS and OBS, and down into bea.db on the way to being remembered. One place to look when you want to know what she actually did.
src/core/expression/