How xiaomandebbie/vesper-phosphor works
Vesper-phosphor is a companion app with a periodic autonomous-wake loop and a web interface for shared moments. Its main flow gathers conversation and event context, asks a model to choose an action, executes that action, and records resulting state or activity. The README also documents optional memory, mood, heartbeat, and music integrations, plus diary, favorites, and star-jar features. Several route modules and integrations are represented from README documentation or the source index; their internal wiring was not sampled.
Main entry points: phosphor.js Wake scheduler · state.js Shared database · context.js Wake context · index.js Action dispatcher
Components 24
Wake and actions
- Wake scheduler
src/phosphor.js - Wake context
src/context.js - Model decision
src/decide.js - Action dispatcher
src/actions/index.js - Publish moment
src/actions/moment.js - Activity cards
src/actions/activity.js - MCP tools
src/mcp-manager.js
Shared state
- Shared database
src/state.js - Moment data
src/moments-store.js - Star jar
src/star-jar.js
Web experience
- Web server
src/vesper.js - Moments page
src/moments-page.js - Shared page chrome
src/page-chrome.js - Mood page
src/drives-page.js - Diary page
src/diary-page.js - Favorites page
src/favorites.js
Optional integrations
- Memory proxy
src/memory-proxy.js - Model gateway
src/gateway.js - Ombre Brain
- Drivesoid
- Heartbeat
- Music MCP
Other components
- User
- Model service
Connections 32
- Wake scheduler → Wake context: gathers context
src/phosphor.js - Wake scheduler → Model decision: requests decision
src/phosphor.js - Wake scheduler → Action dispatcher: executes action
src/phosphor.js - Wake scheduler → Shared database: reads and writes
src/phosphor.js - Wake scheduler → MCP tools: initializes tools
src/phosphor.js - Wake context → Shared database: reads conversation
src/context.js - Wake context → Heartbeat: reads shared events
src/context.js - Model decision → Model service: requests completion
src/decide.js - Action dispatcher → Publish moment: dispatches action
src/actions/index.js - Action dispatcher → Activity cards: records activity
src/actions/index.js - Action dispatcher → MCP tools: runs tool action
- Publish moment → Shared database: stores moment
src/actions/moment.js - Publish moment → Moment data: checks posting interval
src/actions/moment.js - Activity cards → Moment data: adds activity card
src/actions/index.js - Moment data → Shared database: queries database
src/moments-store.js - Star jar → Shared database: stores star entries
src/star-jar.js - User → Web server: uses web pages
README.md - Web server → Moments page: serves moments
README.md - Web server → Star jar: serves star jar
README.md - Moments page → Moment data: reads and updates
src/moments-page.js - Moments page → Shared page chrome: renders shared chrome
src/moments-page.js - User → Mood page: views mood
README.md - User → Diary page: views diary
README.md - User → Favorites page: views favorites
README.md - User → Memory proxy: opens memory page
README.md - Memory proxy → Ombre Brain: proxies requests
README.md - Wake context → Drivesoid: includes mood context
README.md - Heartbeat → Diary page: provides diary files
README.md - MCP tools → Music MCP: connects optional tools
README.md - User → Model gateway: sends chat requests
README.md - Model gateway → Shared database: logs conversations
README.md - Model gateway → Model service: requests model