How development-2-product/ai-assistant works
IA Mode is an Android personal assistant backed by a stateless FastAPI/Gemini service. Its principal workflow is: phone events or mailbox updates arrive, on-device policy decides whether approval is needed, the backend analyzes or drafts text, and the app sends approved replies or missed-call SMS. Separate workflows cover email intelligence and job tracking. The README documents these product capabilities; source-index references support several internal links, but many Android runtime paths were not excerpted, so unverified wiring is omitted.
Main entry points: MailIntelligenceRepository.kt Mail intelligence workflow · usecase Conversation handling · AiRepositoryImpl.kt AI API client · GmailRepository.kt Gmail and Outlook
Components 22
Android assistant
- App shell
frontend/app/src/main/java/com/iamode/app/MainActivity.kt - Message and call intake
frontend/app/src/main/java/com/iamode/app/service - Conversation handling
frontend/app/src/main/java/com/iamode/app/domain/usecase - Reply policy
frontend/app/src/main/java/com/iamode/app/domain/policy/ReplyPolicy.kt - AI API client
frontend/app/src/main/java/com/iamode/app/data/ai/AiRepositoryImpl.kt - Reply and SMS delivery
frontend/app/src/main/java/com/iamode/app/service/sms/SmsSender.kt
Email intelligence
- Mail review screens
frontend/app/src/main/java/com/iamode/app/ui/feature/mail - Mail intelligence workflow
frontend/app/src/main/java/com/iamode/app/data/mail/MailIntelligenceRepository.kt - Mail action policy
frontend/app/src/main/java/com/iamode/app/domain/mail/MailPolicyEngine.kt - Gmail and Outlook
frontend/app/src/main/java/com/iamode/app/data/gmail/GmailRepository.kt - Document sources
frontend/app/src/main/java/com/iamode/app/data/mail/DocumentSources.kt - Job tracking
frontend/app/src/main/java/com/iamode/app/data/jobs/JobTrackerRepository.kt
AI backend
- Versioned API
backend/app/api/v1/router.py - Assistant workflows
backend/app/services/assistant.py - Gemini client
backend/app/services/gemini_client.py
Phone state
- Local database
frontend/app/src/main/java/com/iamode/app/core/database - Diagnostics
frontend/app/src/main/java/com/iamode/app/core/diagnostics/DiagnosticsLog.kt
Other components
- User
- Gemini service
- Gmail service
- Microsoft Graph
- Phone and notifications
Connections 21
- User → App shell: uses
README.md - Phone and notifications → Message and call intake: delivers events
README.md - Message and call intake → Conversation handling: processes
frontend/app/src/main/java/com/iamode/app/service/worker/AiRetryWorker.kt - Conversation handling → Reply policy: checks safety
README.md - Conversation handling → AI API client: requests drafts
- AI API client → Versioned API: calls
- Versioned API → Assistant workflows: routes requests
backend/app/api/v1/router.py - Assistant workflows → Gemini client: generates text
backend/app/api/deps.py - Gemini client → Gemini service: requests generation
backend/app/services/gemini_client.py - Reply policy → Reply and SMS delivery: permits delivery
README.md - Mail review screens → Mail intelligence workflow: reviews actions
frontend/app/src/main/java/com/iamode/app/ui/feature/mail/ReplyReviewScreen.kt - Mail intelligence workflow → Mail action policy: checks actions
frontend/app/src/main/java/com/iamode/app/data/mail/MailIntelligenceRepository.kt - Mail intelligence workflow → Gmail and Outlook: fetches mail
frontend/app/src/main/java/com/iamode/app/data/mail/MailIntelligenceRepository.kt - Mail intelligence workflow → Document sources: resolves files
frontend/app/src/main/java/com/iamode/app/data/mail/MailIntelligenceRepository.kt - Mail intelligence workflow → Versioned API: requests drafts
- Gmail and Outlook → Gmail service: reads and sends
- Gmail and Outlook → Microsoft Graph: reads and sends
- Mail intelligence workflow → Local database: stores workflow
frontend/app/src/main/java/com/iamode/app/data/mail/MailIntelligenceRepository.kt - Job tracking → Local database: stores applications
frontend/app/src/main/java/com/iamode/app/data/jobs/JobTrackerRepository.kt - AI API client → Diagnostics: records activity
frontend/app/src/main/java/com/iamode/app/data/ai/AiRepositoryImpl.kt - App shell → Mail intelligence workflow: starts sync
frontend/app/src/main/java/com/iamode/app/MainActivity.kt