Skip to content

Latest commit

 

History

History
152 lines (106 loc) · 4.43 KB

File metadata and controls

152 lines (106 loc) · 4.43 KB

JARVIS CHECKPOINT

Last Updated: May 16, 2026 Project: Jarvis Android Assistant


✅ COMPLETED

Core Architecture

  • Event-driven pipeline (Input → Intent → Plan → Execute → Respond)
  • 6-state state machine: IDLE, BARN_DOOR, ACTIVE, THINKING, SPEAKING, HOUSE_PARTY
  • In-memory EventBus with 8 event types
  • PipelineOrchestrator with full pipeline execution

Input System

  • Android SpeechRecognizer STT (streaming partial + final)
  • Wake word engine using SpeechRecognizer (keyword spotting)
  • Continuous listening in HOUSE_PARTY mode

Intent System

  • RuleBasedIntentRouter with 30+ patterns
  • Supports: OPEN_APP, SYSTEM_CONTROL, CurrentTime, Alarm/Timer, SHOW_HELP
  • Entity extraction for app names, times, durations, percentages
  • LLM fallback for complex queries

Planning & Execution

  • Planner interface with Plan/PlanStep schema
  • Execution engine with timeout, retry (max 3), cancellation support
  • Skill execution framework

Skills (4 implemented)

  • AppLauncherSkill - launches installed apps
  • CurrentTimeSkill - returns formatted time
  • SystemControlSkill - flashlight, BT, WiFi, volume, brightness, DND, mobile data, location, airplane mode, alarms, timers
  • HelpCenterSkill - in-app help

Memory System

  • Markdown file storage (~/.jarvis/memory/)
  • Hash-based embeddings (HashingEmbeddingModel - 384-dim, fast)
  • Vector similarity search with cosine similarity
  • Hybrid ranking: similarity + recency + source weights
  • RAG-inspired retrieval pipeline

LLM System

  • Online-first: OpenAI, Anthropic, Google Gemini support ready
  • Per-provider fallback with smart cooldown tracking
  • Offline support: LiteRT on-device models (Gemma 4, Qwen 2.5, Gemma 3)
  • Model manager with download/delete/activate UI

Output System

  • OutputChannel interface with Listening/Thinking/Speaking states
  • UI state callbacks integrated with MainActivity
  • TTS via Android TextToSpeech

Android Integration

  • Foreground service (JarvisRuntimeService)
  • Overlay screen (not floating bubble)
  • 8 permissions declared (RECORD_AUDIO, CAMERA, INTERNET, etc.)
  • Compose UI with Material 3
  • .env config support

Testing

  • 17 test files (15 unit + 2 instrumented)
  • Core tests: PipelineOrchestratorTest, SkillExecutionEngineTest, LocalFirstLLMRouterTest
  • Intent tests: RuleBasedIntentRouterTest
  • Memory tests: MarkdownFileMemoryStoreTest

🚧 IN PROGRESS

Online LLM Integration

  • Add multiple online LLM providers (OpenAI, Anthropic, Gemini)
  • Implement per-provider cooldown tracking (5-24h for credit exhaustion)
  • Add provider health checking
  • Configure API keys via on device app storage, the users enter api keys and u store them in app storage.

Memory + LLM RAG

  • Enable memory write pipeline (LLM-assisted note taking)
  • Connect memory retrieval to LLM context injection
  • Implement context window overflow handling (truncation)
  • Test RAG lookup reliability

📋 NEXT PRIORITIES

Phase 1: Core Reliability (Current Focus)

  1. Get online LLM providers working with fallback
  2. Integrate memory with LLM context (RAG)
  3. Test memory + LLM without crashing
  4. Handle context window limits gracefully
  5. Add provider-specific cooldowns

Phase 2: Wake Word Enhancement

  1. Optimize wake word detection accuracy and latency
  2. Reduce false triggers in noisy environments

Phase 3: Skills Expansion

  1. Add core skills (WiFi, messaging, reminders)
  2. Implement skill discovery mechanism

Future Scope (Nice to Have)

  • Accessibility Service for direct system control
  • Floating bubble overlay (future scope)
  • Multi-turn conversation context
  • Response streaming

📊 COMPLETION STATUS

Component Status
Core Pipeline ✅ 90%
Input (STT/Wake) ✅ 80%
Intent ✅ 50%
Skills ✅ 20%
Memory ✅ 70%
LLM (Online) ⚠️ 30%
Output ✅ 60%
Android Integration ✅ 70%
Testing ⚠️ 20%

Overall: ~65% (focusing on online LLM + memory RAG reliability)


📝 NOTES

  • Pivot: Online-first LLM (was offline-first). Offline support retained for future.
  • Memory: Hash-based embeddings (was neural - too slow for mobile)
  • Overlay: Full-screen overlay (not floating bubble)
  • Accessibility: Future scope (not current priority)
  • State count: 6 states (spec updated from 4)