├── .github ├── pull_request_template.md └── workflows │ ├── linter.yml │ ├── pr-tests.yml │ └── release.yml ├── .gitignore ├── LICENSE ├── README.md ├── Recap.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── swiftpm │ │ └── Package.resolved └── xcshareddata │ └── xcschemes │ └── Recap.xcscheme ├── Recap.xctestplan ├── Recap ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── appstore1024.png │ │ ├── mac1024.png │ │ ├── mac128.png │ │ ├── mac16.png │ │ ├── mac256.png │ │ ├── mac32.png │ │ ├── mac512.png │ │ └── mac64.png │ ├── Contents.json │ └── barIcon.imageset │ │ ├── Contents.json │ │ ├── Icon.png │ │ ├── Icon@2x.png │ │ └── Icon@3x.png ├── Audio │ ├── Capture │ │ ├── MicrophoneCapture+AudioEngine.swift │ │ ├── MicrophoneCapture+AudioProcessing.swift │ │ ├── MicrophoneCapture.swift │ │ ├── MicrophoneCaptureType.swift │ │ └── Tap │ │ │ └── ProcessTap.swift │ ├── Core │ │ ├── AudioProcessFactory.swift │ │ └── Utils │ │ │ ├── CoreAudioUtils.swift │ │ │ └── ProcessInfoHelper.swift │ ├── Models │ │ ├── AudioProcess.swift │ │ ├── AudioProcessGroup.swift │ │ └── SelectableApp.swift │ └── Processing │ │ ├── AudioRecordingCoordinator │ │ ├── AudioRecordingCoordinator.swift │ │ └── AudioRecordingCoordinatorType.swift │ │ ├── Detection │ │ ├── AudioProcessController.swift │ │ ├── AudioProcessControllerType.swift │ │ ├── AudioProcessDetectionService.swift │ │ └── MeetingAppDetectionService.swift │ │ ├── FileManagement │ │ └── RecordingFileManager.swift │ │ ├── RecordingCoordinator.swift │ │ ├── Session │ │ └── RecordingSessionManager.swift │ │ └── Types │ │ ├── RecordedFiles.swift │ │ ├── RecordingConfiguration.swift │ │ └── RecordingState.swift ├── DataModels │ └── RecapDataModel.xcdatamodeld │ │ ├── .xccurrentversion │ │ └── RecapDataModel.xcdatamodel │ │ └── contents ├── DependencyContainer │ ├── DependencyContainer+Coordinators.swift │ ├── DependencyContainer+Helpers.swift │ ├── DependencyContainer+Managers.swift │ ├── DependencyContainer+Repositories.swift │ ├── DependencyContainer+Services.swift │ ├── DependencyContainer+ViewModels.swift │ └── DependencyContainer.swift ├── Frameworks │ └── Toast │ │ ├── ActivityIndicator.swift │ │ ├── AlertToast.swift │ │ └── BlurView.swift ├── Helpers │ ├── Availability │ │ └── AvailabilityHelper.swift │ ├── Colors │ │ └── Color+Extension.swift │ ├── Constants │ │ ├── AppConstants.swift │ │ └── UIConstants.swift │ ├── Extensions │ │ ├── String+Extensions.swift │ │ └── URL+Extensions.swift │ ├── MeetingDetection │ │ └── MeetingPatternMatcher.swift │ ├── Permissions │ │ ├── PermissionsHelper.swift │ │ └── PermissionsHelperType.swift │ ├── ViewGeometry.swift │ └── WhisperKit │ │ └── WhisperKit+ProgressTracking.swift ├── Info.plist ├── MenuBar │ ├── Dropdowns │ │ ├── DropdownWindowManager.swift │ │ └── RecapsWindowManager.swift │ ├── Manager │ │ ├── MenuBarPanelManager+Delegates.swift │ │ ├── MenuBarPanelManager+Onboarding.swift │ │ ├── MenuBarPanelManager+PreviousRecaps.swift │ │ ├── MenuBarPanelManager+Settings.swift │ │ ├── MenuBarPanelManager+Summary.swift │ │ ├── MenuBarPanelManager.swift │ │ ├── MenuBarPanelManagerType.swift │ │ └── StatusBar │ │ │ ├── StatusBarManager.swift │ │ │ └── StatusBarManagerType.swift │ ├── PanelAnimator.swift │ ├── SlidingPanel.swift │ └── SlidingPanelType.swift ├── Recap.entitlements ├── RecapApp.swift ├── Repositories │ ├── LLMModels │ │ ├── LLMModelRepository.swift │ │ └── LLMModelRepositoryType.swift │ ├── Models │ │ ├── LLMModelInfo.swift │ │ ├── LLMProvider.swift │ │ ├── RecordingInfo.swift │ │ └── UserPreferencesInfo.swift │ ├── Recordings │ │ ├── RecordingRepository.swift │ │ └── RecordingRepositoryType.swift │ ├── UserPreferences │ │ ├── UserPreferencesRepository.swift │ │ └── UserPreferencesRepositoryType.swift │ └── WhisperModels │ │ ├── WhisperModelRepository.swift │ │ └── WhisperModelRepositoryType.swift ├── Services │ ├── CoreData │ │ ├── CoreDataManager.swift │ │ └── CoreDataManagerType.swift │ ├── Keychain │ │ ├── KeychainAPIValidator.swift │ │ ├── KeychainAPIValidatorType.swift │ │ ├── KeychainService+Extensions.swift │ │ ├── KeychainService.swift │ │ └── KeychainServiceType.swift │ ├── LLM │ │ ├── Core │ │ │ ├── LLMError.swift │ │ │ ├── LLMModelType.swift │ │ │ ├── LLMOptions.swift │ │ │ ├── LLMProviderType.swift │ │ │ └── LLMTaskManageable.swift │ │ ├── LLMService.swift │ │ ├── LLMServiceType.swift │ │ └── Providers │ │ │ ├── Ollama │ │ │ ├── OllamaAPIClient.swift │ │ │ ├── OllamaModel.swift │ │ │ └── OllamaProvider.swift │ │ │ └── OpenRouter │ │ │ ├── OpenRouterAPIClient.swift │ │ │ ├── OpenRouterModel.swift │ │ │ └── OpenRouterProvider.swift │ ├── MeetingDetection │ │ ├── Core │ │ │ ├── MeetingDetectionService.swift │ │ │ └── MeetingDetectionServiceType.swift │ │ └── Detectors │ │ │ ├── GoogleMeetDetector.swift │ │ │ ├── MeetingDetectorType.swift │ │ │ ├── TeamsMeetingDetector.swift │ │ │ └── ZoomMeetingDetector.swift │ ├── Processing │ │ ├── Models │ │ │ ├── ProcessingError.swift │ │ │ ├── ProcessingResult.swift │ │ │ ├── ProcessingState.swift │ │ │ ├── RecordingError.swift │ │ │ └── RecordingProcessingState.swift │ │ ├── ProcessingCoordinator.swift │ │ ├── ProcessingCoordinatorType.swift │ │ └── SystemLifecycle │ │ │ └── SystemLifecycleManager.swift │ ├── Summarization │ │ ├── Models │ │ │ ├── SummarizationRequest.swift │ │ │ └── SummarizationResult.swift │ │ ├── SummarizationService.swift │ │ └── SummarizationServiceType.swift │ ├── Transcription │ │ ├── TranscriptionService.swift │ │ └── TranscriptionServiceType.swift │ └── Utilities │ │ ├── Notifications │ │ ├── NotificationService.swift │ │ └── NotificationServiceType.swift │ │ └── Warnings │ │ ├── ProviderWarningCoordinator.swift │ │ ├── WarningManager.swift │ │ └── WarningManagerType.swift ├── UIComponents │ ├── Alerts │ │ └── CenteredAlert.swift │ ├── Buttons │ │ ├── AppSelectionButton.swift │ │ ├── DownloadPillButton.swift │ │ ├── PillButton.swift │ │ ├── RecordingButton.swift │ │ ├── SummaryActionButton.swift │ │ └── TabButton.swift │ └── Cards │ │ ├── ActionableWarningCard.swift │ │ └── WarningCard.swift └── UseCases │ ├── AppSelection │ ├── Coordinator │ │ ├── AppSelectionCoordinator.swift │ │ └── AppSelectionCoordinatorType.swift │ ├── View │ │ └── AppSelectionDropdown.swift │ └── ViewModel │ │ ├── AppSelectionViewModel.swift │ │ └── AppSelectionViewModelType.swift │ ├── Home │ ├── Components │ │ ├── CardBackground.swift │ │ ├── CustomReflectionCard.swift │ │ ├── HeatmapCard.swift │ │ ├── InformationCard.swift │ │ └── TranscriptionCard.swift │ ├── View │ │ └── RecapView.swift │ └── ViewModel │ │ ├── RecapViewModel+MeetingDetection.swift │ │ ├── RecapViewModel+Processing.swift │ │ ├── RecapViewModel+RecordingFailure.swift │ │ ├── RecapViewModel+StartRecording.swift │ │ ├── RecapViewModel+StopRecording.swift │ │ ├── RecapViewModel+Timers.swift │ │ └── RecapViewModel.swift │ ├── Onboarding │ ├── Components │ │ └── PermissionCard.swift │ ├── View │ │ └── OnboardingView.swift │ └── ViewModel │ │ ├── OnboardingViewModel.swift │ │ └── OnboardingViewModelType.swift │ ├── PreviousRecaps │ ├── View │ │ ├── Components │ │ │ ├── RecordingCard.swift │ │ │ └── RecordingRow.swift │ │ └── PreviousRecapsDropdown.swift │ └── ViewModel │ │ ├── PreviousRecapsViewModel.swift │ │ └── PreviousRecapsViewModelType.swift │ ├── Settings │ ├── Components │ │ ├── MeetingDetection │ │ │ └── MeetingDetectionView.swift │ │ ├── OpenRouterAPIKeyAlert.swift │ │ ├── Reusable │ │ │ ├── CustomDropdown.swift │ │ │ ├── CustomPasswordField.swift │ │ │ ├── CustomSegmentedControl.swift │ │ │ ├── CustomTextEditor.swift │ │ │ └── CustomToggle.swift │ │ ├── SettingsCard.swift │ │ └── TabViews │ │ │ ├── GeneralSettingsView.swift │ │ │ └── WhisperModelsView.swift │ ├── Models │ │ ├── ModelInfo.swift │ │ └── ProviderStatus.swift │ ├── SettingsView.swift │ └── ViewModels │ │ ├── General │ │ ├── GeneralSettingsViewModel.swift │ │ └── GeneralSettingsViewModelType.swift │ │ ├── LLM │ │ ├── LLMModelsViewModel.swift │ │ └── LLMModelsViewModelType.swift │ │ ├── MeetingDetection │ │ ├── MeetingDetectionSettingsViewModel.swift │ │ └── MeetingDetectionSettingsViewModelType.swift │ │ └── Whisper │ │ ├── WhisperModelsViewModel.swift │ │ └── WhisperModelsViewModelType.swift │ └── Summary │ ├── Components │ ├── ProcessingProgressBar.swift │ └── ProcessingStatesCard.swift │ ├── SummaryView.swift │ └── ViewModel │ ├── SummaryViewModel.swift │ └── SummaryViewModelType.swift └── RecapTests ├── Helpers ├── UserPreferencesInfo+TestHelpers.swift └── XCTestCase+Async.swift ├── Services └── MeetingDetection │ ├── Detectors │ ├── GoogleMeetDetectorSpec.swift │ ├── MockSCWindow.swift │ ├── TeamsMeetingDetectorSpec.swift │ └── ZoomMeetingDetectorSpec.swift │ └── MeetingDetectionServiceSpec.swift └── UseCases ├── Onboarding └── ViewModels │ └── OnboardingViewModelSpec.swift ├── Settings └── ViewModels │ ├── General │ └── GeneralSettingsViewModelSpec.swift │ ├── MeetingDetection │ └── MeetingDetectionSettingsViewModelSpec.swift │ └── Whisper │ └── WhisperModelsViewModelSpec.swift └── Summary └── ViewModels └── SummaryViewModelSpec.swift /.github/pull_request_template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/.github/pull_request_template.md -------------------------------------------------------------------------------- /.github/workflows/linter.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/.github/workflows/linter.yml -------------------------------------------------------------------------------- /.github/workflows/pr-tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/.github/workflows/pr-tests.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/README.md -------------------------------------------------------------------------------- /Recap.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Recap.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Recap.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved -------------------------------------------------------------------------------- /Recap.xcodeproj/xcshareddata/xcschemes/Recap.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap.xcodeproj/xcshareddata/xcschemes/Recap.xcscheme -------------------------------------------------------------------------------- /Recap.xctestplan: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap.xctestplan -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AppIcon.appiconset/appstore1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AppIcon.appiconset/appstore1024.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AppIcon.appiconset/mac1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AppIcon.appiconset/mac1024.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AppIcon.appiconset/mac128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AppIcon.appiconset/mac128.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AppIcon.appiconset/mac16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AppIcon.appiconset/mac16.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AppIcon.appiconset/mac256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AppIcon.appiconset/mac256.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AppIcon.appiconset/mac32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AppIcon.appiconset/mac32.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AppIcon.appiconset/mac512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AppIcon.appiconset/mac512.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/AppIcon.appiconset/mac64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/AppIcon.appiconset/mac64.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /Recap/Assets.xcassets/barIcon.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/barIcon.imageset/Contents.json -------------------------------------------------------------------------------- /Recap/Assets.xcassets/barIcon.imageset/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/barIcon.imageset/Icon.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/barIcon.imageset/Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/barIcon.imageset/Icon@2x.png -------------------------------------------------------------------------------- /Recap/Assets.xcassets/barIcon.imageset/Icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Assets.xcassets/barIcon.imageset/Icon@3x.png -------------------------------------------------------------------------------- /Recap/Audio/Capture/MicrophoneCapture+AudioEngine.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Capture/MicrophoneCapture+AudioEngine.swift -------------------------------------------------------------------------------- /Recap/Audio/Capture/MicrophoneCapture+AudioProcessing.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Capture/MicrophoneCapture+AudioProcessing.swift -------------------------------------------------------------------------------- /Recap/Audio/Capture/MicrophoneCapture.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Capture/MicrophoneCapture.swift -------------------------------------------------------------------------------- /Recap/Audio/Capture/MicrophoneCaptureType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Capture/MicrophoneCaptureType.swift -------------------------------------------------------------------------------- /Recap/Audio/Capture/Tap/ProcessTap.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Capture/Tap/ProcessTap.swift -------------------------------------------------------------------------------- /Recap/Audio/Core/AudioProcessFactory.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Core/AudioProcessFactory.swift -------------------------------------------------------------------------------- /Recap/Audio/Core/Utils/CoreAudioUtils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Core/Utils/CoreAudioUtils.swift -------------------------------------------------------------------------------- /Recap/Audio/Core/Utils/ProcessInfoHelper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Core/Utils/ProcessInfoHelper.swift -------------------------------------------------------------------------------- /Recap/Audio/Models/AudioProcess.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Models/AudioProcess.swift -------------------------------------------------------------------------------- /Recap/Audio/Models/AudioProcessGroup.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Models/AudioProcessGroup.swift -------------------------------------------------------------------------------- /Recap/Audio/Models/SelectableApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Models/SelectableApp.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/AudioRecordingCoordinator/AudioRecordingCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/AudioRecordingCoordinator/AudioRecordingCoordinator.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/AudioRecordingCoordinator/AudioRecordingCoordinatorType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/AudioRecordingCoordinator/AudioRecordingCoordinatorType.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/Detection/AudioProcessController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/Detection/AudioProcessController.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/Detection/AudioProcessControllerType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/Detection/AudioProcessControllerType.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/Detection/AudioProcessDetectionService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/Detection/AudioProcessDetectionService.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/Detection/MeetingAppDetectionService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/Detection/MeetingAppDetectionService.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/FileManagement/RecordingFileManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/FileManagement/RecordingFileManager.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/RecordingCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/RecordingCoordinator.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/Session/RecordingSessionManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/Session/RecordingSessionManager.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/Types/RecordedFiles.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/Types/RecordedFiles.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/Types/RecordingConfiguration.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/Types/RecordingConfiguration.swift -------------------------------------------------------------------------------- /Recap/Audio/Processing/Types/RecordingState.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Audio/Processing/Types/RecordingState.swift -------------------------------------------------------------------------------- /Recap/DataModels/RecapDataModel.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/DataModels/RecapDataModel.xcdatamodeld/.xccurrentversion -------------------------------------------------------------------------------- /Recap/DataModels/RecapDataModel.xcdatamodeld/RecapDataModel.xcdatamodel/contents: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/DataModels/RecapDataModel.xcdatamodeld/RecapDataModel.xcdatamodel/contents -------------------------------------------------------------------------------- /Recap/DependencyContainer/DependencyContainer+Coordinators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/DependencyContainer/DependencyContainer+Coordinators.swift -------------------------------------------------------------------------------- /Recap/DependencyContainer/DependencyContainer+Helpers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/DependencyContainer/DependencyContainer+Helpers.swift -------------------------------------------------------------------------------- /Recap/DependencyContainer/DependencyContainer+Managers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/DependencyContainer/DependencyContainer+Managers.swift -------------------------------------------------------------------------------- /Recap/DependencyContainer/DependencyContainer+Repositories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/DependencyContainer/DependencyContainer+Repositories.swift -------------------------------------------------------------------------------- /Recap/DependencyContainer/DependencyContainer+Services.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/DependencyContainer/DependencyContainer+Services.swift -------------------------------------------------------------------------------- /Recap/DependencyContainer/DependencyContainer+ViewModels.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/DependencyContainer/DependencyContainer+ViewModels.swift -------------------------------------------------------------------------------- /Recap/DependencyContainer/DependencyContainer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/DependencyContainer/DependencyContainer.swift -------------------------------------------------------------------------------- /Recap/Frameworks/Toast/ActivityIndicator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Frameworks/Toast/ActivityIndicator.swift -------------------------------------------------------------------------------- /Recap/Frameworks/Toast/AlertToast.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Frameworks/Toast/AlertToast.swift -------------------------------------------------------------------------------- /Recap/Frameworks/Toast/BlurView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Frameworks/Toast/BlurView.swift -------------------------------------------------------------------------------- /Recap/Helpers/Availability/AvailabilityHelper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/Availability/AvailabilityHelper.swift -------------------------------------------------------------------------------- /Recap/Helpers/Colors/Color+Extension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/Colors/Color+Extension.swift -------------------------------------------------------------------------------- /Recap/Helpers/Constants/AppConstants.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/Constants/AppConstants.swift -------------------------------------------------------------------------------- /Recap/Helpers/Constants/UIConstants.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/Constants/UIConstants.swift -------------------------------------------------------------------------------- /Recap/Helpers/Extensions/String+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/Extensions/String+Extensions.swift -------------------------------------------------------------------------------- /Recap/Helpers/Extensions/URL+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/Extensions/URL+Extensions.swift -------------------------------------------------------------------------------- /Recap/Helpers/MeetingDetection/MeetingPatternMatcher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/MeetingDetection/MeetingPatternMatcher.swift -------------------------------------------------------------------------------- /Recap/Helpers/Permissions/PermissionsHelper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/Permissions/PermissionsHelper.swift -------------------------------------------------------------------------------- /Recap/Helpers/Permissions/PermissionsHelperType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/Permissions/PermissionsHelperType.swift -------------------------------------------------------------------------------- /Recap/Helpers/ViewGeometry.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/ViewGeometry.swift -------------------------------------------------------------------------------- /Recap/Helpers/WhisperKit/WhisperKit+ProgressTracking.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Helpers/WhisperKit/WhisperKit+ProgressTracking.swift -------------------------------------------------------------------------------- /Recap/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Info.plist -------------------------------------------------------------------------------- /Recap/MenuBar/Dropdowns/DropdownWindowManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Dropdowns/DropdownWindowManager.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Dropdowns/RecapsWindowManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Dropdowns/RecapsWindowManager.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Manager/MenuBarPanelManager+Delegates.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Manager/MenuBarPanelManager+Delegates.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Manager/MenuBarPanelManager+Onboarding.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Manager/MenuBarPanelManager+Onboarding.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Manager/MenuBarPanelManager+PreviousRecaps.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Manager/MenuBarPanelManager+PreviousRecaps.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Manager/MenuBarPanelManager+Settings.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Manager/MenuBarPanelManager+Settings.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Manager/MenuBarPanelManager+Summary.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Manager/MenuBarPanelManager+Summary.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Manager/MenuBarPanelManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Manager/MenuBarPanelManager.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Manager/MenuBarPanelManagerType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Manager/MenuBarPanelManagerType.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Manager/StatusBar/StatusBarManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Manager/StatusBar/StatusBarManager.swift -------------------------------------------------------------------------------- /Recap/MenuBar/Manager/StatusBar/StatusBarManagerType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/Manager/StatusBar/StatusBarManagerType.swift -------------------------------------------------------------------------------- /Recap/MenuBar/PanelAnimator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/PanelAnimator.swift -------------------------------------------------------------------------------- /Recap/MenuBar/SlidingPanel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/SlidingPanel.swift -------------------------------------------------------------------------------- /Recap/MenuBar/SlidingPanelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/MenuBar/SlidingPanelType.swift -------------------------------------------------------------------------------- /Recap/Recap.entitlements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Recap.entitlements -------------------------------------------------------------------------------- /Recap/RecapApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/RecapApp.swift -------------------------------------------------------------------------------- /Recap/Repositories/LLMModels/LLMModelRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/LLMModels/LLMModelRepository.swift -------------------------------------------------------------------------------- /Recap/Repositories/LLMModels/LLMModelRepositoryType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/LLMModels/LLMModelRepositoryType.swift -------------------------------------------------------------------------------- /Recap/Repositories/Models/LLMModelInfo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/Models/LLMModelInfo.swift -------------------------------------------------------------------------------- /Recap/Repositories/Models/LLMProvider.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/Models/LLMProvider.swift -------------------------------------------------------------------------------- /Recap/Repositories/Models/RecordingInfo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/Models/RecordingInfo.swift -------------------------------------------------------------------------------- /Recap/Repositories/Models/UserPreferencesInfo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/Models/UserPreferencesInfo.swift -------------------------------------------------------------------------------- /Recap/Repositories/Recordings/RecordingRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/Recordings/RecordingRepository.swift -------------------------------------------------------------------------------- /Recap/Repositories/Recordings/RecordingRepositoryType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/Recordings/RecordingRepositoryType.swift -------------------------------------------------------------------------------- /Recap/Repositories/UserPreferences/UserPreferencesRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/UserPreferences/UserPreferencesRepository.swift -------------------------------------------------------------------------------- /Recap/Repositories/UserPreferences/UserPreferencesRepositoryType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/UserPreferences/UserPreferencesRepositoryType.swift -------------------------------------------------------------------------------- /Recap/Repositories/WhisperModels/WhisperModelRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/WhisperModels/WhisperModelRepository.swift -------------------------------------------------------------------------------- /Recap/Repositories/WhisperModels/WhisperModelRepositoryType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Repositories/WhisperModels/WhisperModelRepositoryType.swift -------------------------------------------------------------------------------- /Recap/Services/CoreData/CoreDataManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/CoreData/CoreDataManager.swift -------------------------------------------------------------------------------- /Recap/Services/CoreData/CoreDataManagerType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/CoreData/CoreDataManagerType.swift -------------------------------------------------------------------------------- /Recap/Services/Keychain/KeychainAPIValidator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Keychain/KeychainAPIValidator.swift -------------------------------------------------------------------------------- /Recap/Services/Keychain/KeychainAPIValidatorType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Keychain/KeychainAPIValidatorType.swift -------------------------------------------------------------------------------- /Recap/Services/Keychain/KeychainService+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Keychain/KeychainService+Extensions.swift -------------------------------------------------------------------------------- /Recap/Services/Keychain/KeychainService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Keychain/KeychainService.swift -------------------------------------------------------------------------------- /Recap/Services/Keychain/KeychainServiceType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Keychain/KeychainServiceType.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Core/LLMError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Core/LLMError.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Core/LLMModelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Core/LLMModelType.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Core/LLMOptions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Core/LLMOptions.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Core/LLMProviderType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Core/LLMProviderType.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Core/LLMTaskManageable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Core/LLMTaskManageable.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/LLMService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/LLMService.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/LLMServiceType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/LLMServiceType.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Providers/Ollama/OllamaAPIClient.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Providers/Ollama/OllamaAPIClient.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Providers/Ollama/OllamaModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Providers/Ollama/OllamaModel.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Providers/Ollama/OllamaProvider.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Providers/Ollama/OllamaProvider.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Providers/OpenRouter/OpenRouterAPIClient.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Providers/OpenRouter/OpenRouterAPIClient.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Providers/OpenRouter/OpenRouterModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Providers/OpenRouter/OpenRouterModel.swift -------------------------------------------------------------------------------- /Recap/Services/LLM/Providers/OpenRouter/OpenRouterProvider.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/LLM/Providers/OpenRouter/OpenRouterProvider.swift -------------------------------------------------------------------------------- /Recap/Services/MeetingDetection/Core/MeetingDetectionService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/MeetingDetection/Core/MeetingDetectionService.swift -------------------------------------------------------------------------------- /Recap/Services/MeetingDetection/Core/MeetingDetectionServiceType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/MeetingDetection/Core/MeetingDetectionServiceType.swift -------------------------------------------------------------------------------- /Recap/Services/MeetingDetection/Detectors/GoogleMeetDetector.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/MeetingDetection/Detectors/GoogleMeetDetector.swift -------------------------------------------------------------------------------- /Recap/Services/MeetingDetection/Detectors/MeetingDetectorType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/MeetingDetection/Detectors/MeetingDetectorType.swift -------------------------------------------------------------------------------- /Recap/Services/MeetingDetection/Detectors/TeamsMeetingDetector.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/MeetingDetection/Detectors/TeamsMeetingDetector.swift -------------------------------------------------------------------------------- /Recap/Services/MeetingDetection/Detectors/ZoomMeetingDetector.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/MeetingDetection/Detectors/ZoomMeetingDetector.swift -------------------------------------------------------------------------------- /Recap/Services/Processing/Models/ProcessingError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Processing/Models/ProcessingError.swift -------------------------------------------------------------------------------- /Recap/Services/Processing/Models/ProcessingResult.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Processing/Models/ProcessingResult.swift -------------------------------------------------------------------------------- /Recap/Services/Processing/Models/ProcessingState.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Processing/Models/ProcessingState.swift -------------------------------------------------------------------------------- /Recap/Services/Processing/Models/RecordingError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Processing/Models/RecordingError.swift -------------------------------------------------------------------------------- /Recap/Services/Processing/Models/RecordingProcessingState.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Processing/Models/RecordingProcessingState.swift -------------------------------------------------------------------------------- /Recap/Services/Processing/ProcessingCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Processing/ProcessingCoordinator.swift -------------------------------------------------------------------------------- /Recap/Services/Processing/ProcessingCoordinatorType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Processing/ProcessingCoordinatorType.swift -------------------------------------------------------------------------------- /Recap/Services/Processing/SystemLifecycle/SystemLifecycleManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Processing/SystemLifecycle/SystemLifecycleManager.swift -------------------------------------------------------------------------------- /Recap/Services/Summarization/Models/SummarizationRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Summarization/Models/SummarizationRequest.swift -------------------------------------------------------------------------------- /Recap/Services/Summarization/Models/SummarizationResult.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Summarization/Models/SummarizationResult.swift -------------------------------------------------------------------------------- /Recap/Services/Summarization/SummarizationService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Summarization/SummarizationService.swift -------------------------------------------------------------------------------- /Recap/Services/Summarization/SummarizationServiceType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Summarization/SummarizationServiceType.swift -------------------------------------------------------------------------------- /Recap/Services/Transcription/TranscriptionService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Transcription/TranscriptionService.swift -------------------------------------------------------------------------------- /Recap/Services/Transcription/TranscriptionServiceType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Transcription/TranscriptionServiceType.swift -------------------------------------------------------------------------------- /Recap/Services/Utilities/Notifications/NotificationService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Utilities/Notifications/NotificationService.swift -------------------------------------------------------------------------------- /Recap/Services/Utilities/Notifications/NotificationServiceType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Utilities/Notifications/NotificationServiceType.swift -------------------------------------------------------------------------------- /Recap/Services/Utilities/Warnings/ProviderWarningCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Utilities/Warnings/ProviderWarningCoordinator.swift -------------------------------------------------------------------------------- /Recap/Services/Utilities/Warnings/WarningManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Utilities/Warnings/WarningManager.swift -------------------------------------------------------------------------------- /Recap/Services/Utilities/Warnings/WarningManagerType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/Services/Utilities/Warnings/WarningManagerType.swift -------------------------------------------------------------------------------- /Recap/UIComponents/Alerts/CenteredAlert.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UIComponents/Alerts/CenteredAlert.swift -------------------------------------------------------------------------------- /Recap/UIComponents/Buttons/AppSelectionButton.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UIComponents/Buttons/AppSelectionButton.swift -------------------------------------------------------------------------------- /Recap/UIComponents/Buttons/DownloadPillButton.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UIComponents/Buttons/DownloadPillButton.swift -------------------------------------------------------------------------------- /Recap/UIComponents/Buttons/PillButton.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UIComponents/Buttons/PillButton.swift -------------------------------------------------------------------------------- /Recap/UIComponents/Buttons/RecordingButton.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UIComponents/Buttons/RecordingButton.swift -------------------------------------------------------------------------------- /Recap/UIComponents/Buttons/SummaryActionButton.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UIComponents/Buttons/SummaryActionButton.swift -------------------------------------------------------------------------------- /Recap/UIComponents/Buttons/TabButton.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UIComponents/Buttons/TabButton.swift -------------------------------------------------------------------------------- /Recap/UIComponents/Cards/ActionableWarningCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UIComponents/Cards/ActionableWarningCard.swift -------------------------------------------------------------------------------- /Recap/UIComponents/Cards/WarningCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UIComponents/Cards/WarningCard.swift -------------------------------------------------------------------------------- /Recap/UseCases/AppSelection/Coordinator/AppSelectionCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/AppSelection/Coordinator/AppSelectionCoordinator.swift -------------------------------------------------------------------------------- /Recap/UseCases/AppSelection/Coordinator/AppSelectionCoordinatorType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/AppSelection/Coordinator/AppSelectionCoordinatorType.swift -------------------------------------------------------------------------------- /Recap/UseCases/AppSelection/View/AppSelectionDropdown.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/AppSelection/View/AppSelectionDropdown.swift -------------------------------------------------------------------------------- /Recap/UseCases/AppSelection/ViewModel/AppSelectionViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/AppSelection/ViewModel/AppSelectionViewModel.swift -------------------------------------------------------------------------------- /Recap/UseCases/AppSelection/ViewModel/AppSelectionViewModelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/AppSelection/ViewModel/AppSelectionViewModelType.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/Components/CardBackground.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/Components/CardBackground.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/Components/CustomReflectionCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/Components/CustomReflectionCard.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/Components/HeatmapCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/Components/HeatmapCard.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/Components/InformationCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/Components/InformationCard.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/Components/TranscriptionCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/Components/TranscriptionCard.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/View/RecapView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/View/RecapView.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/ViewModel/RecapViewModel+MeetingDetection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/ViewModel/RecapViewModel+MeetingDetection.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/ViewModel/RecapViewModel+Processing.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/ViewModel/RecapViewModel+Processing.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/ViewModel/RecapViewModel+RecordingFailure.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/ViewModel/RecapViewModel+RecordingFailure.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/ViewModel/RecapViewModel+StartRecording.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/ViewModel/RecapViewModel+StartRecording.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/ViewModel/RecapViewModel+StopRecording.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/ViewModel/RecapViewModel+StopRecording.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/ViewModel/RecapViewModel+Timers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/ViewModel/RecapViewModel+Timers.swift -------------------------------------------------------------------------------- /Recap/UseCases/Home/ViewModel/RecapViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Home/ViewModel/RecapViewModel.swift -------------------------------------------------------------------------------- /Recap/UseCases/Onboarding/Components/PermissionCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Onboarding/Components/PermissionCard.swift -------------------------------------------------------------------------------- /Recap/UseCases/Onboarding/View/OnboardingView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Onboarding/View/OnboardingView.swift -------------------------------------------------------------------------------- /Recap/UseCases/Onboarding/ViewModel/OnboardingViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Onboarding/ViewModel/OnboardingViewModel.swift -------------------------------------------------------------------------------- /Recap/UseCases/Onboarding/ViewModel/OnboardingViewModelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Onboarding/ViewModel/OnboardingViewModelType.swift -------------------------------------------------------------------------------- /Recap/UseCases/PreviousRecaps/View/Components/RecordingCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/PreviousRecaps/View/Components/RecordingCard.swift -------------------------------------------------------------------------------- /Recap/UseCases/PreviousRecaps/View/Components/RecordingRow.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/PreviousRecaps/View/Components/RecordingRow.swift -------------------------------------------------------------------------------- /Recap/UseCases/PreviousRecaps/View/PreviousRecapsDropdown.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/PreviousRecaps/View/PreviousRecapsDropdown.swift -------------------------------------------------------------------------------- /Recap/UseCases/PreviousRecaps/ViewModel/PreviousRecapsViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/PreviousRecaps/ViewModel/PreviousRecapsViewModel.swift -------------------------------------------------------------------------------- /Recap/UseCases/PreviousRecaps/ViewModel/PreviousRecapsViewModelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/PreviousRecaps/ViewModel/PreviousRecapsViewModelType.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/MeetingDetection/MeetingDetectionView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/MeetingDetection/MeetingDetectionView.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/OpenRouterAPIKeyAlert.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/OpenRouterAPIKeyAlert.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/Reusable/CustomDropdown.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/Reusable/CustomDropdown.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/Reusable/CustomPasswordField.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/Reusable/CustomPasswordField.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/Reusable/CustomSegmentedControl.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/Reusable/CustomSegmentedControl.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/Reusable/CustomTextEditor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/Reusable/CustomTextEditor.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/Reusable/CustomToggle.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/Reusable/CustomToggle.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/SettingsCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/SettingsCard.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/TabViews/GeneralSettingsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/TabViews/GeneralSettingsView.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Components/TabViews/WhisperModelsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Components/TabViews/WhisperModelsView.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Models/ModelInfo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Models/ModelInfo.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/Models/ProviderStatus.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/Models/ProviderStatus.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/SettingsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/SettingsView.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/ViewModels/General/GeneralSettingsViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/ViewModels/General/GeneralSettingsViewModel.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/ViewModels/General/GeneralSettingsViewModelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/ViewModels/General/GeneralSettingsViewModelType.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/ViewModels/LLM/LLMModelsViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/ViewModels/LLM/LLMModelsViewModel.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/ViewModels/LLM/LLMModelsViewModelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/ViewModels/LLM/LLMModelsViewModelType.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/ViewModels/MeetingDetection/MeetingDetectionSettingsViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/ViewModels/MeetingDetection/MeetingDetectionSettingsViewModel.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/ViewModels/MeetingDetection/MeetingDetectionSettingsViewModelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/ViewModels/MeetingDetection/MeetingDetectionSettingsViewModelType.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/ViewModels/Whisper/WhisperModelsViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/ViewModels/Whisper/WhisperModelsViewModel.swift -------------------------------------------------------------------------------- /Recap/UseCases/Settings/ViewModels/Whisper/WhisperModelsViewModelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Settings/ViewModels/Whisper/WhisperModelsViewModelType.swift -------------------------------------------------------------------------------- /Recap/UseCases/Summary/Components/ProcessingProgressBar.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Summary/Components/ProcessingProgressBar.swift -------------------------------------------------------------------------------- /Recap/UseCases/Summary/Components/ProcessingStatesCard.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Summary/Components/ProcessingStatesCard.swift -------------------------------------------------------------------------------- /Recap/UseCases/Summary/SummaryView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Summary/SummaryView.swift -------------------------------------------------------------------------------- /Recap/UseCases/Summary/ViewModel/SummaryViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Summary/ViewModel/SummaryViewModel.swift -------------------------------------------------------------------------------- /Recap/UseCases/Summary/ViewModel/SummaryViewModelType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/Recap/UseCases/Summary/ViewModel/SummaryViewModelType.swift -------------------------------------------------------------------------------- /RecapTests/Helpers/UserPreferencesInfo+TestHelpers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/Helpers/UserPreferencesInfo+TestHelpers.swift -------------------------------------------------------------------------------- /RecapTests/Helpers/XCTestCase+Async.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/Helpers/XCTestCase+Async.swift -------------------------------------------------------------------------------- /RecapTests/Services/MeetingDetection/Detectors/GoogleMeetDetectorSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/Services/MeetingDetection/Detectors/GoogleMeetDetectorSpec.swift -------------------------------------------------------------------------------- /RecapTests/Services/MeetingDetection/Detectors/MockSCWindow.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/Services/MeetingDetection/Detectors/MockSCWindow.swift -------------------------------------------------------------------------------- /RecapTests/Services/MeetingDetection/Detectors/TeamsMeetingDetectorSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/Services/MeetingDetection/Detectors/TeamsMeetingDetectorSpec.swift -------------------------------------------------------------------------------- /RecapTests/Services/MeetingDetection/Detectors/ZoomMeetingDetectorSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/Services/MeetingDetection/Detectors/ZoomMeetingDetectorSpec.swift -------------------------------------------------------------------------------- /RecapTests/Services/MeetingDetection/MeetingDetectionServiceSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/Services/MeetingDetection/MeetingDetectionServiceSpec.swift -------------------------------------------------------------------------------- /RecapTests/UseCases/Onboarding/ViewModels/OnboardingViewModelSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/UseCases/Onboarding/ViewModels/OnboardingViewModelSpec.swift -------------------------------------------------------------------------------- /RecapTests/UseCases/Settings/ViewModels/General/GeneralSettingsViewModelSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/UseCases/Settings/ViewModels/General/GeneralSettingsViewModelSpec.swift -------------------------------------------------------------------------------- /RecapTests/UseCases/Settings/ViewModels/MeetingDetection/MeetingDetectionSettingsViewModelSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/UseCases/Settings/ViewModels/MeetingDetection/MeetingDetectionSettingsViewModelSpec.swift -------------------------------------------------------------------------------- /RecapTests/UseCases/Settings/ViewModels/Whisper/WhisperModelsViewModelSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/UseCases/Settings/ViewModels/Whisper/WhisperModelsViewModelSpec.swift -------------------------------------------------------------------------------- /RecapTests/UseCases/Summary/ViewModels/SummaryViewModelSpec.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RecapAI/Recap/HEAD/RecapTests/UseCases/Summary/ViewModels/SummaryViewModelSpec.swift --------------------------------------------------------------------------------