How tsmemo/notes-jarvis works
Notes Jarvis is an Android digital note assistant. Its main user workflow is capturing a note or voice idea, turning it into knowledge, then using that knowledge for search or structured decision support; agents and profile-aware pushes provide proactive assistance. The graph also preserves the documented agent, profile, and offline/online AI capabilities. UI and several subsystems are represented from the README and tree; only the sampled implementation excerpts support the detailed call edges shown.
Main entry points: DecisionEngine.kt Decision analysis · PushEngine.kt Proactive push · KnowledgeRepository.kt Knowledge repository · ProfileRepository.kt Profile repository
Components 24
App and UI
- Android entry
app/src/main/java/com/notesjarvis/app/MainActivity.kt - App navigation
app/src/main/java/com/notesjarvis/app/ui/NavGraph.kt - Inspiration UI
app/src/main/java/com/notesjarvis/app/ui/inspiration/InspirationScreen.kt - Decision UI
app/src/main/java/com/notesjarvis/app/ui/decision/DecisionScreen.kt - Knowledge UI
app/src/main/java/com/notesjarvis/app/ui/knowledge/KnowledgeScreen.kt - Profile UI
app/src/main/java/com/notesjarvis/app/ui/profile/ProfileScreen.kt
Knowledge and storage
- Idea capture
app/src/main/java/com/notesjarvis/app/core/inspiration/InspirationOrchestrator.kt - Voice capture
app/src/main/java/com/notesjarvis/app/core/inspiration/VoiceCaptureEngine.kt - Knowledge repository
app/src/main/java/com/notesjarvis/app/data/repository/KnowledgeRepository.kt - Room database
app/src/main/java/com/notesjarvis/app/data/local/JarvisDatabase.kt - Embedding index
app/src/main/java/com/notesjarvis/app/data/local/KnowledgeEmbeddingService.kt
AI and decisions
- Decision analysis
app/src/main/java/com/notesjarvis/app/core/decision/DecisionEngine.kt - Decision repository
app/src/main/java/com/notesjarvis/app/data/repository/DecisionRepository.kt - AI engine
app/src/main/java/com/notesjarvis/app/core/ai/AiEngine.kt - Local model
app/src/main/java/com/notesjarvis/app/core/ai/LocalLlmEngine.kt - User profile
app/src/main/java/com/notesjarvis/app/core/profile/UserProfileEngine.kt - Profile repository
app/src/main/java/com/notesjarvis/app/data/repository/ProfileRepository.kt
Proactive assistant
- Voice assistant
app/src/main/java/com/notesjarvis/app/core/voice/VoiceAssistantService.kt - Agent scheduler
app/src/main/java/com/notesjarvis/app/core/agent/AgentScheduler.kt - Background worker
app/src/main/java/com/notesjarvis/app/core/agent/JarvisAgentWorker.kt - Proactive push
app/src/main/java/com/notesjarvis/app/core/push/PushEngine.kt - Notifications
app/src/main/java/com/notesjarvis/app/notification/JarvisNotificationManager.kt
Other components
- User
- Cloud model
Connections 21
- User → Android entry: opens app
- Android entry → App navigation: starts navigation
- User → Inspiration UI: captures idea
- User → Decision UI: asks decision
- User → Knowledge UI: searches knowledge
- User → Profile UI: views profile
- Voice assistant → Idea capture: starts capture
- Voice capture → Voice assistant: supplies speech
- Decision analysis → Knowledge repository: searches knowledge
- Decision analysis → Decision repository: loads history
- Decision analysis → Profile repository: loads profile
- Decision analysis → AI engine: analyzes request
- AI engine → Local model: routes locally
- Local model → Cloud model: uses online model
- User profile → Profile repository: reads and saves
- Agent scheduler → Background worker: schedules work
- Proactive push → Knowledge repository: reads counts
- Proactive push → Profile repository: reads interests
- Proactive push → Notifications: shows notification
- Knowledge repository → Room database: reads and writes
- Embedding index → Room database: stores vectors