gitextract_vym5rnyp/ ├── .bundle/ │ └── config ├── .eslintignore ├── .eslintrc.js ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── pull_request_template.md │ └── workflows/ │ ├── ci.yml │ ├── pages.yml │ ├── release-ios.yml │ └── release.yml ├── .gitignore ├── .husky/ │ └── pre-push ├── .maestro/ │ ├── E2E_TESTING.md │ ├── config.yaml │ ├── flows/ │ │ ├── p0/ │ │ │ ├── 00-setup-model.yaml │ │ │ ├── 01-app-launch.yaml │ │ │ ├── 01a-onboarding-first-launch.yaml │ │ │ ├── 01b-onboarding-skip.yaml │ │ │ ├── 01c-model-download-first-time.yaml │ │ │ ├── 01d-second-launch-no-onboarding.yaml │ │ │ ├── 01e-tab-navigation.yaml │ │ │ ├── 02-text-generation.yaml │ │ │ ├── 03-stop-generation.yaml │ │ │ └── 04-image-generation.yaml │ │ ├── p1/ │ │ │ ├── 06a-document-attachment.yaml │ │ │ ├── 06b-image-attachment.yaml │ │ │ ├── 06c-text-generation-full.yaml │ │ │ └── 06d-text-generation-retry.yaml │ │ ├── p2/ │ │ │ ├── 05a-model-uninstall.yaml │ │ │ ├── 05b-model-download.yaml │ │ │ ├── 05b-model-selection.yaml │ │ │ └── 05c-model-unload.yaml │ │ └── p3/ │ │ ├── 07a-image-model-uninstall.yaml │ │ ├── 07b-image-model-download.yaml │ │ └── 07c-image-model-set-active.yaml │ └── utils/ │ └── wait-for-app-ready.yaml ├── .prettierrc.js ├── .swiftlint.yml ├── .vscode/ │ └── settings.json ├── .watchmanconfig ├── AGENTS.md ├── App.tsx ├── CLAUDE.md ├── Gemfile ├── LICENSE ├── README.md ├── TODO.md ├── __tests__/ │ ├── App.test.tsx │ ├── contracts/ │ │ ├── coreMLDiffusion.contract.test.ts │ │ ├── iosDownloadManager.contract.test.ts │ │ ├── llama.rn.test.ts │ │ ├── llamaContext.contract.test.ts │ │ ├── localDream.contract.test.ts │ │ ├── ragEmbedding.contract.test.ts │ │ ├── whisper.contract.test.ts │ │ └── whisper.rn.test.ts │ ├── helpers/ │ │ ├── mockCustomAlert.tsx │ │ └── mockNetworkDeps.ts │ ├── integration/ │ │ ├── generation/ │ │ │ ├── generationFlow.test.ts │ │ │ ├── imageGenerationFlow.test.ts │ │ │ ├── remoteProviderRouting.test.ts │ │ │ ├── sharePromptFlow.test.ts │ │ │ └── unifiedModelSelection.test.ts │ │ ├── models/ │ │ │ └── activeModelService.test.ts │ │ ├── onboarding/ │ │ │ └── spotlightFlowIntegration.test.ts │ │ ├── rag/ │ │ │ ├── embeddingFlow.test.ts │ │ │ └── ragFlow.test.ts │ │ └── stores/ │ │ ├── chatStoreIntegration.test.ts │ │ └── remoteServerDiscovery.test.ts │ ├── rntl/ │ │ ├── components/ │ │ │ ├── AnimatedEntry.test.tsx │ │ │ ├── AnimatedListItem.test.tsx │ │ │ ├── AnimatedPressable.test.tsx │ │ │ ├── AppSheet.test.tsx │ │ │ ├── Card.test.tsx │ │ │ ├── ChatInput.test.tsx │ │ │ ├── ChatMessage.test.tsx │ │ │ ├── ChatMessageTools.test.tsx │ │ │ ├── CustomAlert.test.tsx │ │ │ ├── DebugSheet.test.tsx │ │ │ ├── GenerationSettingsModal.test.tsx │ │ │ ├── ImageFilterBar.test.tsx │ │ │ ├── MarkdownText.test.tsx │ │ │ ├── ModelCard.test.tsx │ │ │ ├── ModelPickerSheet.test.tsx │ │ │ ├── ModelSelectorModal.test.tsx │ │ │ ├── ProjectSelectorSheet.test.tsx │ │ │ ├── RemoteServerModal.test.tsx │ │ │ ├── SharePromptSheet.test.tsx │ │ │ ├── ToolPickerSheet.test.tsx │ │ │ └── VoiceRecordButton.test.tsx │ │ ├── hooks/ │ │ │ └── useFocusTrigger.test.ts │ │ ├── navigation/ │ │ │ └── AppNavigator.test.tsx │ │ ├── onboarding/ │ │ │ ├── ChatScreenSpotlight.test.tsx │ │ │ ├── ChatsListScreenSpotlight.test.tsx │ │ │ ├── HomeScreenSpotlight.test.tsx │ │ │ ├── ModelSettingsScreenSpotlight.test.tsx │ │ │ └── ProjectEditScreenSpotlight.test.tsx │ │ └── screens/ │ │ ├── ChatScreen.test.tsx │ │ ├── ChatsListScreen.test.tsx │ │ ├── DeviceInfoScreen.test.tsx │ │ ├── DocumentPreviewScreen.test.tsx │ │ ├── DownloadManagerScreen.test.tsx │ │ ├── GalleryScreen.test.tsx │ │ ├── HomeScreen.test.tsx │ │ ├── KnowledgeBaseScreen.test.tsx │ │ ├── LockScreen.test.tsx │ │ ├── ModelDownloadHelpers.test.tsx │ │ ├── ModelDownloadScreen.test.tsx │ │ ├── ModelSettingsScreen.test.tsx │ │ ├── ModelsScreen.test.tsx │ │ ├── OnboardingScreen.test.tsx │ │ ├── PassphraseSetupScreen.test.tsx │ │ ├── ProjectChatsScreen.test.tsx │ │ ├── ProjectDetailScreen.test.tsx │ │ ├── ProjectEditScreen.test.tsx │ │ ├── ProjectsScreen.test.tsx │ │ ├── RemoteServersScreen.test.tsx │ │ ├── SecuritySettingsScreen.test.tsx │ │ ├── SettingsScreen.test.tsx │ │ ├── StorageSettingsScreen.test.tsx │ │ └── VoiceSettingsScreen.test.tsx │ ├── specs/ │ │ ├── image-generation.yaml │ │ ├── model-lifecycle.yaml │ │ └── text-generation.yaml │ ├── unit/ │ │ ├── components/ │ │ │ └── ChatMessage/ │ │ │ └── utils.test.ts │ │ ├── constants/ │ │ │ └── constants.test.ts │ │ ├── hooks/ │ │ │ ├── useAppState.test.ts │ │ │ ├── useChatGenerationActions.test.ts │ │ │ ├── useChatModelActions.test.ts │ │ │ ├── useHomeScreen.test.ts │ │ │ ├── useImageGenerationSettings.test.ts │ │ │ ├── useKeyboardAwarePopover.test.ts │ │ │ ├── useModelLoading.test.ts │ │ │ ├── useTextGenerationAdvanced.test.ts │ │ │ ├── useVoiceRecording.test.ts │ │ │ └── useWhisperTranscription.test.ts │ │ ├── onboarding/ │ │ │ ├── chatScreenSpotlight.test.ts │ │ │ ├── checklistComponents.test.tsx │ │ │ ├── handleStepPress.test.ts │ │ │ ├── onboardingFlows.test.ts │ │ │ ├── reactiveSpotlightConditions.test.ts │ │ │ └── spotlightTooltips.test.ts │ │ ├── screens/ │ │ │ ├── ChatScreen/ │ │ │ │ ├── toolUsage.test.ts │ │ │ │ └── useSaveImage.test.ts │ │ │ ├── DownloadManagerScreen/ │ │ │ │ └── items.test.tsx │ │ │ └── ModelsScreen/ │ │ │ ├── imageDownloadActions.test.ts │ │ │ ├── importHelpers.test.ts │ │ │ ├── restoreImageDownloads.test.ts │ │ │ ├── trendingSelection.test.ts │ │ │ ├── useModelsScreen.test.ts │ │ │ ├── useTextModels.handlers.test.ts │ │ │ └── utils.test.ts │ │ ├── services/ │ │ │ ├── authService.test.ts │ │ │ ├── backgroundDownloadService.test.ts │ │ │ ├── contextCompaction.test.ts │ │ │ ├── coreMLModelBrowser.test.ts │ │ │ ├── documentService.test.ts │ │ │ ├── downloadHelpers.test.ts │ │ │ ├── generationService.test.ts │ │ │ ├── generationToolLoop.test.ts │ │ │ ├── hardware.test.ts │ │ │ ├── httpClient.test.ts │ │ │ ├── huggingFaceModelBrowser.test.ts │ │ │ ├── huggingface.test.ts │ │ │ ├── imageGenerationHelpers.test.ts │ │ │ ├── imageGenerator.test.ts │ │ │ ├── imageModelRecommendation.test.ts │ │ │ ├── intentClassifier.test.ts │ │ │ ├── llm.test.ts │ │ │ ├── llmHelpers.test.ts │ │ │ ├── llmMessages.test.ts │ │ │ ├── llmSafetyChecks.test.ts │ │ │ ├── llmToolGeneration.test.ts │ │ │ ├── localDreamGenerator.test.ts │ │ │ ├── modelManager/ │ │ │ │ └── imageSync.test.ts │ │ │ ├── modelManager.test.ts │ │ │ ├── networkDiscovery.test.ts │ │ │ ├── parallelMmproj.test.ts │ │ │ ├── pdfExtractor.test.ts │ │ │ ├── providers/ │ │ │ │ ├── localProvider.test.ts │ │ │ │ ├── openAICompatibleProvider.test.ts │ │ │ │ └── registry.test.ts │ │ │ ├── rag/ │ │ │ │ ├── chunking.test.ts │ │ │ │ ├── database.test.ts │ │ │ │ ├── embedding.test.ts │ │ │ │ ├── index.test.ts │ │ │ │ ├── retrieval.test.ts │ │ │ │ └── vectorMath.test.ts │ │ │ ├── remoteServerManager.test.ts │ │ │ ├── restore.test.ts │ │ │ ├── toolHandlers.test.ts │ │ │ ├── tools/ │ │ │ │ ├── handlers.test.ts │ │ │ │ └── registry.test.ts │ │ │ ├── voiceService.test.ts │ │ │ └── whisperService.test.ts │ │ ├── stores/ │ │ │ ├── appStore.test.ts │ │ │ ├── appStoreSharePrompt.test.ts │ │ │ ├── authStore.test.ts │ │ │ ├── chatStore.test.ts │ │ │ ├── projectStore.test.ts │ │ │ ├── remoteServerStore.test.ts │ │ │ └── whisperStore.test.ts │ │ ├── theme/ │ │ │ └── palettes.test.ts │ │ └── utils/ │ │ ├── coreMLModelUtils.test.ts │ │ ├── downloadErrors.test.ts │ │ ├── generateId.test.ts │ │ ├── messageContent.test.ts │ │ ├── network.test.ts │ │ ├── pickerErrorUtils.test.ts │ │ ├── resolvePickedFileUri.test.ts │ │ └── sharePrompt.test.ts │ └── utils/ │ ├── factories.ts │ ├── spotlightMocks.tsx │ └── testHelpers.ts ├── altstore-source.json ├── android/ │ ├── app/ │ │ ├── build.gradle │ │ ├── debug.keystore │ │ ├── lint-baseline.xml │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── debug/ │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets/ │ │ │ │ ├── index.android.bundle │ │ │ │ └── models/ │ │ │ │ └── all-MiniLM-L6-v2-Q8_0.gguf │ │ │ ├── java/ │ │ │ │ └── ai/ │ │ │ │ └── offgridmobile/ │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MainApplication.kt │ │ │ │ ├── SafePromise.kt │ │ │ │ ├── download/ │ │ │ │ │ ├── DownloadCompleteBroadcastReceiver.kt │ │ │ │ │ ├── DownloadDao.kt │ │ │ │ │ ├── DownloadDatabase.kt │ │ │ │ │ ├── DownloadEntity.kt │ │ │ │ │ ├── DownloadEventBridge.kt │ │ │ │ │ ├── DownloadManagerModule.kt │ │ │ │ │ ├── DownloadManagerPackage.kt │ │ │ │ │ ├── DownloadUiState.kt │ │ │ │ │ ├── WorkerDownload.kt │ │ │ │ │ └── WorkerDownloadStore.kt │ │ │ │ ├── localdream/ │ │ │ │ │ ├── LocalDreamModule.kt │ │ │ │ │ └── LocalDreamPackage.kt │ │ │ │ └── pdf/ │ │ │ │ ├── PDFExtractorModule.kt │ │ │ │ └── PDFExtractorPackage.kt │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ ├── rn_edit_text_material.xml │ │ │ │ └── splash_background.xml │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── raw/ │ │ │ │ └── keep.xml │ │ │ ├── values/ │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── xml/ │ │ │ └── network_security_config.xml │ │ └── test/ │ │ └── java/ │ │ └── ai/ │ │ └── offgridmobile/ │ │ ├── download/ │ │ │ ├── DownloadCompleteBroadcastReceiverTest.kt │ │ │ └── DownloadManagerModuleTest.kt │ │ ├── localdream/ │ │ │ └── LocalDreamModuleTest.kt │ │ └── rag/ │ │ └── EmbeddingModelAssetTest.kt │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── app.json ├── babel.config.js ├── codecov.yml ├── docs/ │ ├── ARCHITECTURE.md │ ├── PERFORMANCE_IMPROVEMENTS.md │ ├── PERSONAS_IMPLEMENTATION_PLAN.md │ ├── PRIVACY_POLICY.md │ ├── TTS_IMPLEMENTATION_PLAN.md │ ├── brand_tone_voice.md │ ├── design/ │ │ ├── DESIGN_PHILOSOPHY_SYSTEM.md │ │ └── VISUAL_HIERARCHY_STANDARD.md │ ├── image-gen-without-text-model.md │ ├── onboarding/ │ │ └── ONBOARDING_FLOWS.md │ ├── standards/ │ │ └── CODEBASE_GUIDE.md │ └── tests/ │ ├── QA_TEST_PLAN.md │ └── QA_TEST_PLAN_TODO.md ├── e2e/ │ ├── maestro/ │ │ ├── import_vision_model.yaml │ │ └── models_screen_navigation.yaml │ └── scripts/ │ └── seedSimulatorFiles.js ├── index.js ├── ios/ │ ├── .Podfile.swp │ ├── .xcode.env │ ├── CoreMLDiffusionModule.m │ ├── CoreMLDiffusionModule.swift │ ├── DownloadManagerModule.m │ ├── DownloadManagerModule.swift │ ├── ExportOptions.plist │ ├── OffgridMobile/ │ │ ├── AppDelegate.swift │ │ ├── CoreMLDiffusion/ │ │ │ └── CoreMLDiffusionModule.m │ │ ├── Download/ │ │ │ └── DownloadManagerModule.m │ │ ├── Images.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── Logo.imageset/ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── LaunchScreen.storyboard │ │ ├── OffgridMobile-Bridging-Header.h │ │ ├── OffgridMobile.entitlements │ │ └── PrivacyInfo.xcprivacy │ ├── OffgridMobile.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── swiftpm/ │ │ │ └── Package.resolved │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ └── OffgridMobile.xcscheme │ ├── OffgridMobile.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ └── swiftpm/ │ │ └── Package.resolved │ ├── OffgridMobileTests/ │ │ ├── EmbeddingModelBundleTests.swift │ │ └── OffgridMobileTests.swift │ ├── PDFExtractorModule.m │ ├── PDFExtractorModule.swift │ ├── Podfile │ └── all-MiniLM-L6-v2-Q8_0.gguf ├── jest.config.js ├── jest.setup.ts ├── metro.config.js ├── package.json ├── patches/ │ ├── @react-native-voice+voice+3.2.4.patch │ ├── react-native-device-info+15.0.1.patch │ └── react-native-zip-archive+7.1.0.patch ├── scripts/ │ ├── release.sh │ ├── run-sonar.sh │ └── run-tests.sh ├── sonar-project.properties ├── src/ │ ├── components/ │ │ ├── AdvancedToggle.tsx │ │ ├── AnimatedEntry.tsx │ │ ├── AnimatedListItem.tsx │ │ ├── AnimatedPressable.tsx │ │ ├── AppSheet.styles.ts │ │ ├── AppSheet.tsx │ │ ├── Button.tsx │ │ ├── Card.tsx │ │ ├── ChatInput/ │ │ │ ├── Attachments.tsx │ │ │ ├── Popovers.tsx │ │ │ ├── Toolbar.tsx │ │ │ ├── Voice.ts │ │ │ ├── index.tsx │ │ │ ├── styles.ts │ │ │ └── useKeyboardAwarePopover.ts │ │ ├── ChatMessage/ │ │ │ ├── components/ │ │ │ │ ├── ActionMenuSheet.tsx │ │ │ │ ├── BlinkingCursor.tsx │ │ │ │ ├── GenerationMeta.tsx │ │ │ │ ├── MessageAttachments.tsx │ │ │ │ ├── MessageContent.tsx │ │ │ │ └── ThinkingBlock.tsx │ │ │ ├── index.tsx │ │ │ ├── styles.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── CustomAlert.tsx │ │ ├── DebugLogsScreen/ │ │ │ ├── index.tsx │ │ │ └── styles.ts │ │ ├── DebugSheet.tsx │ │ ├── GenerationSettingsModal/ │ │ │ ├── ConversationActionsSection.tsx │ │ │ ├── ImageGenerationSection.tsx │ │ │ ├── ImageQualitySliders.tsx │ │ │ ├── TextGenerationAdvanced.tsx │ │ │ ├── TextGenerationSection.tsx │ │ │ ├── index.tsx │ │ │ └── styles.ts │ │ ├── MadeWithLove.tsx │ │ ├── MarkdownText.tsx │ │ ├── ModelCard.styles.ts │ │ ├── ModelCard.tsx │ │ ├── ModelCardContent.tsx │ │ ├── ModelSelectorModal/ │ │ │ ├── ImageTab.tsx │ │ │ ├── TextTab.tsx │ │ │ ├── index.tsx │ │ │ ├── remoteStyles.ts │ │ │ └── styles.ts │ │ ├── ProjectSelectorSheet.tsx │ │ ├── RemoteServerModal/ │ │ │ ├── index.tsx │ │ │ ├── styles.ts │ │ │ └── useRemoteServerForm.ts │ │ ├── SharePromptSheet.tsx │ │ ├── ThinkingIndicator.tsx │ │ ├── ToolPickerSheet.tsx │ │ ├── VoiceRecordButton/ │ │ │ ├── index.tsx │ │ │ ├── states.tsx │ │ │ └── styles.ts │ │ ├── checklist/ │ │ │ ├── ProgressBar.tsx │ │ │ ├── animations.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── useOnboardingSteps.ts │ │ ├── index.ts │ │ └── onboarding/ │ │ ├── OnboardingSheet.tsx │ │ ├── PulsatingIcon.tsx │ │ ├── index.ts │ │ ├── spotlightConfig.tsx │ │ ├── spotlightState.ts │ │ └── useOnboardingSheet.ts │ ├── constants/ │ │ ├── index.ts │ │ └── models.ts │ ├── hooks/ │ │ ├── useActiveTextModel.ts │ │ ├── useAppState.ts │ │ ├── useFocusTrigger.ts │ │ ├── useImageGenerationSettings.ts │ │ ├── useTextGenerationAdvanced.ts │ │ ├── useVoiceRecording.ts │ │ └── useWhisperTranscription.ts │ ├── navigation/ │ │ ├── AppNavigator.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── screens/ │ │ ├── ChatScreen/ │ │ │ ├── ChatMessageArea.tsx │ │ │ ├── ChatModalSection.tsx │ │ │ ├── ChatScreenComponents.tsx │ │ │ ├── MessageRenderer.tsx │ │ │ ├── index.tsx │ │ │ ├── styles.ts │ │ │ ├── stylesImage.ts │ │ │ ├── toolUsage.ts │ │ │ ├── types.ts │ │ │ ├── useChatGenerationActions.ts │ │ │ ├── useChatMessageHandlers.ts │ │ │ ├── useChatModelActions.ts │ │ │ ├── useChatScreen.ts │ │ │ └── useSaveImage.ts │ │ ├── ChatsListScreen.tsx │ │ ├── DeviceInfoScreen.tsx │ │ ├── DocumentPreviewScreen.tsx │ │ ├── DownloadManagerScreen/ │ │ │ ├── index.tsx │ │ │ ├── items.tsx │ │ │ ├── styles.ts │ │ │ └── useDownloadManager.ts │ │ ├── GalleryScreen/ │ │ │ ├── FullscreenViewer.tsx │ │ │ ├── GridItem.tsx │ │ │ ├── index.tsx │ │ │ ├── styles.ts │ │ │ └── useGalleryActions.ts │ │ ├── HomeScreen/ │ │ │ ├── components/ │ │ │ │ ├── ActiveModelsSection.tsx │ │ │ │ ├── LoadingOverlay.tsx │ │ │ │ ├── ModelPickerSheet.tsx │ │ │ │ └── RecentConversations.tsx │ │ │ ├── hooks/ │ │ │ │ ├── useHomeScreen.ts │ │ │ │ ├── useHomeScreenSpotlight.ts │ │ │ │ ├── useLANDiscovery.ts │ │ │ │ ├── useModelLoading.ts │ │ │ │ └── useRemoteModelHandlers.ts │ │ │ ├── index.tsx │ │ │ └── styles.ts │ │ ├── KnowledgeBaseScreen.styles.ts │ │ ├── KnowledgeBaseScreen.tsx │ │ ├── LockScreen.tsx │ │ ├── ModelDownloadHelpers.tsx │ │ ├── ModelDownloadScreen.tsx │ │ ├── ModelSettingsScreen/ │ │ │ ├── ImageGenerationSection.tsx │ │ │ ├── SystemPromptSection.tsx │ │ │ ├── TextGenerationAdvanced.tsx │ │ │ ├── TextGenerationSection.tsx │ │ │ ├── index.tsx │ │ │ └── styles.ts │ │ ├── ModelsScreen/ │ │ │ ├── ImageFilterBar.tsx │ │ │ ├── ImageModelsTab.tsx │ │ │ ├── TextFiltersSection.tsx │ │ │ ├── TextModelsTab.tsx │ │ │ ├── constants.ts │ │ │ ├── imageDownloadActions.ts │ │ │ ├── imageStyles.ts │ │ │ ├── importHelpers.ts │ │ │ ├── index.tsx │ │ │ ├── styles.ts │ │ │ ├── types.ts │ │ │ ├── useImageModels.ts │ │ │ ├── useModelsScreen.ts │ │ │ ├── useTextModels.ts │ │ │ └── utils.ts │ │ ├── OnboardingScreen.tsx │ │ ├── OrphanedFilesSection.tsx │ │ ├── PassphraseSetupScreen.tsx │ │ ├── ProjectChatsScreen.tsx │ │ ├── ProjectDetailKnowledgeBaseSection.tsx │ │ ├── ProjectDetailScreen.styles.ts │ │ ├── ProjectDetailScreen.tsx │ │ ├── ProjectEditScreen.tsx │ │ ├── ProjectsScreen.tsx │ │ ├── RemoteServersScreen.styles.ts │ │ ├── RemoteServersScreen.tsx │ │ ├── SecuritySettingsScreen.tsx │ │ ├── SettingsScreen.tsx │ │ ├── StorageSettingsScreen.styles.ts │ │ ├── StorageSettingsScreen.tsx │ │ ├── VoiceSettingsScreen.tsx │ │ └── index.ts │ ├── services/ │ │ ├── activeModelService/ │ │ │ ├── index.ts │ │ │ ├── loaders.ts │ │ │ ├── memory.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── authService.ts │ │ ├── backgroundDownloadService.ts │ │ ├── backgroundDownloadTypes.ts │ │ ├── contextCompaction.ts │ │ ├── coreMLModelBrowser.ts │ │ ├── documentService.ts │ │ ├── generationService.ts │ │ ├── generationServiceHelpers.ts │ │ ├── generationToolLoop.ts │ │ ├── hardware.ts │ │ ├── httpClient.ts │ │ ├── httpClientSSE.ts │ │ ├── httpClientUtils.ts │ │ ├── huggingFaceModelBrowser.ts │ │ ├── huggingface.ts │ │ ├── imageGenerationHelpers.ts │ │ ├── imageGenerationService.ts │ │ ├── imageGenerator.ts │ │ ├── index.ts │ │ ├── intentClassifier.ts │ │ ├── llm.ts │ │ ├── llmHelpers.ts │ │ ├── llmMessages.ts │ │ ├── llmSafetyChecks.ts │ │ ├── llmToolGeneration.ts │ │ ├── llmTypes.ts │ │ ├── localDreamGenerator.ts │ │ ├── modelManager/ │ │ │ ├── download.ts │ │ │ ├── downloadHelpers.ts │ │ │ ├── imageSync.ts │ │ │ ├── index.ts │ │ │ ├── restore.ts │ │ │ ├── scan.ts │ │ │ ├── storage.ts │ │ │ └── types.ts │ │ ├── networkDiscovery.ts │ │ ├── pdfExtractor.ts │ │ ├── providers/ │ │ │ ├── index.ts │ │ │ ├── localProvider.ts │ │ │ ├── openAICompatibleProvider.ts │ │ │ ├── openAICompatibleStream.ts │ │ │ ├── openAICompatibleTypes.ts │ │ │ ├── openAIMessageBuilder.ts │ │ │ ├── registry.ts │ │ │ └── types.ts │ │ ├── rag/ │ │ │ ├── chunking.ts │ │ │ ├── database.ts │ │ │ ├── embedding.ts │ │ │ ├── index.ts │ │ │ ├── retrieval.ts │ │ │ └── vectorMath.ts │ │ ├── remoteServerManager.ts │ │ ├── remoteServerManagerUtils.ts │ │ ├── tools/ │ │ │ ├── handlers.ts │ │ │ ├── index.ts │ │ │ ├── registry.ts │ │ │ └── types.ts │ │ ├── voiceService.ts │ │ └── whisperService.ts │ ├── stores/ │ │ ├── appStore.ts │ │ ├── authStore.ts │ │ ├── chatStore.ts │ │ ├── debugLogsStore.ts │ │ ├── index.ts │ │ ├── projectStore.ts │ │ ├── remoteModelCapabilities.ts │ │ ├── remoteServerHelpers.ts │ │ ├── remoteServerStore.ts │ │ └── whisperStore.ts │ ├── theme/ │ │ ├── index.ts │ │ ├── palettes.ts │ │ └── useThemedStyles.ts │ ├── types/ │ │ ├── global.d.ts │ │ ├── index.ts │ │ ├── remoteServer.ts │ │ └── whisper.rn.d.ts │ └── utils/ │ ├── coreMLModelUtils.ts │ ├── downloadErrors.ts │ ├── generateId.ts │ ├── haptics.ts │ ├── logger.ts │ ├── messageContent.ts │ ├── network.ts │ ├── pickerErrorUtils.ts │ ├── resolvePickedFileUri.ts │ ├── sharePrompt.ts │ └── visionRepair.ts ├── tsconfig.json └── website/ ├── CNAME ├── Gemfile ├── _config.yml ├── _layouts/ │ └── default.html ├── assets/ │ └── css/ │ └── main.css ├── early-access.md ├── ethos.md ├── guides/ │ ├── android-setup.md │ ├── document-analysis.md │ ├── index.md │ ├── ios-setup.md │ ├── knowledge-base.md │ ├── lm-studio-android.md │ ├── ollama-android.md │ ├── remote-servers.md │ ├── run-llms-locally-android.md │ ├── run-llms-locally-iphone.md │ ├── stable-diffusion-android.md │ ├── stable-diffusion-iphone.md │ ├── tool-calling.md │ ├── vision-ai.md │ ├── voice-stt.md │ └── which-model.md ├── index.md ├── llms.txt ├── mission.md ├── quick-start.md ├── robots.txt ├── vision.md └── writing/ ├── 200-year-secretary.md ├── 7-principles-personal-ai-os.md ├── a-day-with-personal-ai-os.md ├── architecture-of-trust.md ├── case-against-ai-subscriptions.md ├── context-gap.md ├── cross-device-sync-without-server.md ├── end-of-app-switching.md ├── how-personal-ai-should-act.md ├── index.md ├── intelligence-should-be-personal.md ├── next-virtual-assistant.md ├── one-person-two-devices.md ├── personal-ai-os-for-knowledge-workers.md ├── personal-ai-os-vs-assistant-vs-agent.md ├── phone-is-the-most-important-device.md ├── phone-laptop-know-nothing.md ├── platform-intelligence-doesnt-exist.md ├── privacy-is-not-a-feature.md ├── regulatory-case-for-on-device-ai.md ├── the-small-things.md ├── two-devices-zero-context.md ├── va-industry-disruption.md ├── walled-garden-problem.md ├── what-is-personal-ai-os.md ├── what-personal-ai-should-know.md ├── whatsapp-moment-for-ai.md ├── who-owns-your-ai-memory.md └── why-personal-ai-should-never-live-in-cloud.md