bbcf0c74bb
- 19 Swift source files (~4900 lines) - Complete UI with SwiftUI (MainView, SettingsView, MessageBubble, InputBar) - Inference layer (LlmEngine, Agent, ToolCalling, ConversationContext) - Services (Audio, TTS, WebSearch, ModelDownload, Storage) - Build system: Makefile, Package.swift, Podfile - Documentation: BUILD.md, plan.md, PROJECT_STATUS.md - Ready for Xcode build - just need LiteRT dependency added
1.9 KiB
1.9 KiB
Sleepy Agent iOS - File Structure
Complete File List (19 Swift files)
App (1 file)
SleepyAgentApp.swift- App entry point, AppDelegate, AudioSessionManager
Core (2 files)
Core/Models/Message.swift- Message, ToolCall, ModelVariant modelsCore/DI/AppContainer.swift- Manual dependency injection container
Inference (4 files)
Inference/LlmEngine.swift- LiteRT-LM wrapperInference/Agent.swift- High-level agent with tool callingInference/ConversationContext.swift- Chat history managementInference/ToolCalling.swift- Tool definitions and parsing
Services (5 files)
Services/AudioRecorder.swift- Voice recording with VADServices/TtsService.swift- Text-to-speech (AVSpeechSynthesizer)Services/WebSearchService.swift- SearXNG clientServices/ModelDownloadService.swift- Model download with progressServices/ConversationStorage.swift- JSON persistence
UI Views (4 files)
UI/Views/MainView.swift- Main chat interface with sidebarUI/Views/SettingsView.swift- Settings screenUI/Views/MessageBubble.swift- Chat message componentUI/Views/InputBar.swift- Text input with buttons
UI ViewModels (2 files)
UI/ViewModels/MainViewModel.swift- Main screen logicUI/ViewModels/SettingsViewModel.swift- Settings logic
Documentation
README.md- Project overviewplan.md- Development plan with lessons learnedFILES.md- This file
Missing Components
The following still need implementation:
- Podfile - For LiteRT dependency
- Info.plist - App permissions (camera, microphone, photo library)
- Assets - App icons, colors
- LiteRT Integration - The actual LiteRT-LM Swift bindings need proper integration
Next Steps to Build
- Create Xcode project or use Swift Package Manager
- Add LiteRT dependency via CocoaPods
- Configure signing and bundle ID
- Add required permissions to Info.plist
- Test on physical device