How jegly/box works
Box is a security-focused Android app for running on-device AI models and task-specific AI experiences. The main workflow is user launch and authentication, model discovery/import or download, task selection, local inference, and presentation of results; chat history and settings persist locally. The README also describes image generation, speech, vision, document analysis, agent skills, and accelerated inference. Several of those implementations are not sampled, so their components are included at tree-supported paths, but their connections are left unverified rather than inferred.
Main entry points: MainActivity.kt App entry · ModelManagerViewModel.kt Model manager · LlamaCppEngine.kt LLM inference · SkillManagerBottomSheet.kt Skill manager UI
Components 24
App and security
- App entry
Android/src/app/src/main/java/com/box/gallery/MainActivity.kt - Biometric lock
Android/src/app/src/main/java/com/google/ai/edge/gallery/security/AppLockManager.kt - DB encryption
Android/src/app/src/main/java/com/google/ai/edge/gallery/security/BiometricEncryptionManager.kt - Security audit
Android/src/app/src/main/java/com/google/ai/edge/gallery/security/SecurityAuditLog.kt - App navigation
Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/navigation/GalleryNavGraph.kt
Models and inference
- Model manager
Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/modelmanager/ModelManagerViewModel.kt - Model catalog
Android/src/app/src/main/java/com/google/ai/edge/gallery/data/Model.kt - Model downloads
Android/src/app/src/main/java/com/google/ai/edge/gallery/data/DownloadRepository.kt - Download worker
Android/src/app/src/main/java/com/google/ai/edge/gallery/worker/DownloadWorker.kt - LLM inference
Android/src/app/src/main/java/com/google/ai/edge/gallery/engine/LlamaCppEngine.kt - GGUF runtime
Android/src/smollm/src/main/java/com/jegly/offlineLLM/smollm/SmolLM.kt
AI experiences
- LLM chat
Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/llmchat/LlmChatScreen.kt - Single-turn prompts
Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/llmsingleturn/LlmSingleTurnScreen.kt - Image generation
Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/imagegen/ImageGenScreen.kt - Speech recognition
Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/whisper/WhisperScreen.kt - Custom tasks
Android/src/app/src/main/java/com/google/ai/edge/gallery/customtasks/mobileactions/MobileActionsScreen.kt
Local persistence
- Chat history
Android/src/app/src/main/java/com/google/ai/edge/gallery/data/local/ChatRepository.kt - Chat database
Android/src/app/src/main/java/com/google/ai/edge/gallery/data/local/BoxChatDatabase.kt - App settings
Android/src/app/src/main/java/com/google/ai/edge/gallery/data/DataStoreRepository.kt
Agent skills
- Skill management
Android/src/app/src/main/java/com/google/ai/edge/gallery/customtasks/agentchat/SkillManagerViewModel.kt - Skill manager UI
Android/src/app/src/main/java/com/google/ai/edge/gallery/customtasks/agentchat/SkillManagerBottomSheet.kt - Agent tools
Android/src/app/src/main/java/com/google/ai/edge/gallery/customtasks/agentchat/AgentTools.kt - Agent chat
Android/src/app/src/main/java/com/google/ai/edge/gallery/customtasks/agentchat/AgentChatScreen.kt
Other components
- User
Connections 24
- User → App entry: launches
Android/src/app/src/main/java/com/box/gallery/MainActivity.kt - App entry → Biometric lock: initializes
Android/src/app/src/main/java/com/box/gallery/MainActivity.kt - App entry → DB encryption: initializes
Android/src/app/src/main/java/com/box/gallery/MainActivity.kt - Biometric lock → Security audit: logs events
Android/src/app/src/main/java/com/google/ai/edge/gallery/security/AppLockManager.kt - App entry → App navigation: hosts
- App entry → Model manager: uses
Android/src/app/src/main/java/com/box/gallery/MainActivity.kt - Model manager → Model catalog: loads models
Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/modelmanager/ModelManagerViewModel.kt - Model manager → Model downloads: requests downloads
Android/src/app/src/main/java/com/google/ai/edge/gallery/ui/modelmanager/ModelManagerViewModel.kt - Model downloads → Download worker: enqueues work
Android/src/app/src/main/java/com/google/ai/edge/gallery/data/DownloadRepository.kt - LLM inference → GGUF runtime: delegates inference
Android/src/app/src/main/java/com/google/ai/edge/gallery/engine/LlamaCppEngine.kt - LLM chat → LLM inference: runs model
- Single-turn prompts → LLM inference: runs model
- User → Model manager: selects or imports
- User → LLM chat: chats
- User → Single-turn prompts: submits prompt
- User → Image generation: creates images
- User → Speech recognition: provides speech
- User → Custom tasks: runs task
- Chat history → Chat database: reads and writes
Android/src/app/src/main/java/com/google/ai/edge/gallery/data/local/ChatRepository.kt - User → Skill manager UI: manages skills
- Skill manager UI → Skill management: updates state
Android/src/app/src/main/java/com/google/ai/edge/gallery/customtasks/agentchat/SkillManagerBottomSheet.kt - Skill management → App settings: persists skills
Android/src/app/src/main/java/com/google/ai/edge/gallery/customtasks/agentchat/SkillManagerViewModel.kt - Agent chat → Agent tools: uses tools
- Agent chat → Skill manager UI: opens manager