chore: rename package com.librechat to com.garfiec.librechat
This commit is contained in:
parent
af7a662754
commit
e5c5b549db
660 changed files with 2466 additions and 2466 deletions
|
|
@ -59,7 +59,7 @@ cat UPSTREAM_VERSION
|
|||
```
|
||||
If missing, create from current state:
|
||||
```bash
|
||||
VERSION=$(grep 'SUPPORTED_BACKEND_VERSION' core/common/src/main/kotlin/com/librechat/android/core/common/BackendVersion.kt | grep -o '"[^"]*"' | tr -d '"')
|
||||
VERSION=$(grep 'SUPPORTED_BACKEND_VERSION' core/common/src/main/kotlin/com/garfiec/librechat/core/common/BackendVersion.kt | grep -o '"[^"]*"' | tr -d '"')
|
||||
COMMIT=$(cd upstream && git rev-parse HEAD)
|
||||
echo "# Upstream LibreChat version this Android build tracks." > UPSTREAM_VERSION
|
||||
echo "# Updated by the sync-upstream skill. Do not edit manually." >> UPSTREAM_VERSION
|
||||
|
|
@ -82,7 +82,7 @@ Check if a prior sync was partially done in another session:
|
|||
TRACKED_TAG=$(grep '^tag=' UPSTREAM_VERSION | cut -d= -f2)
|
||||
|
||||
# Get version from BackendVersion.kt
|
||||
CODE_VERSION=$(grep 'SUPPORTED_BACKEND_VERSION' core/common/src/main/kotlin/com/librechat/android/core/common/BackendVersion.kt | grep -o '"[^"]*"' | tr -d '"')
|
||||
CODE_VERSION=$(grep 'SUPPORTED_BACKEND_VERSION' core/common/src/main/kotlin/com/garfiec/librechat/core/common/BackendVersion.kt | grep -o '"[^"]*"' | tr -d '"')
|
||||
|
||||
# Get submodule current position
|
||||
SUBMODULE_HEAD=$(cd upstream && git rev-parse HEAD)
|
||||
|
|
@ -275,7 +275,7 @@ Create a task for the implementer with the approved change list:
|
|||
> {paste the approved change list here}
|
||||
>
|
||||
> **After all code changes:**
|
||||
> 1. Update `SUPPORTED_BACKEND_VERSION` in `core/common/src/main/kotlin/com/librechat/android/core/common/BackendVersion.kt` to "{new_version}" (without v prefix)
|
||||
> 1. Update `SUPPORTED_BACKEND_VERSION` in `core/common/src/main/kotlin/com/garfiec/librechat/core/common/BackendVersion.kt` to "{new_version}" (without v prefix)
|
||||
> 2. Advance submodule: `cd upstream && git checkout {target_tag}`
|
||||
> 3. Update `UPSTREAM_VERSION` at repo root:
|
||||
> ```
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@ plugins {
|
|||
}
|
||||
|
||||
android {
|
||||
namespace = "com.librechat.android"
|
||||
namespace = "com.garfiec.librechat"
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.librechat.android"
|
||||
applicationId = "com.garfiec.librechat"
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
|
|
|
|||
8
app/proguard-rules.pro
vendored
8
app/proguard-rules.pro
vendored
|
|
@ -5,16 +5,16 @@
|
|||
-dontnote kotlinx.serialization.AnnotationsKt
|
||||
-keepclassmembers class kotlinx.serialization.json.** { *** Companion; }
|
||||
-keepclasseswithmembers class kotlinx.serialization.json.** { kotlinx.serialization.KSerializer serializer(...); }
|
||||
-keep,includedescriptorclasses class com.librechat.android.**$$serializer { *; }
|
||||
-keepclassmembers class com.librechat.android.** { *** Companion; }
|
||||
-keepclasseswithmembers class com.librechat.android.** { kotlinx.serialization.KSerializer serializer(...); }
|
||||
-keep,includedescriptorclasses class com.garfiec.librechat.**$$serializer { *; }
|
||||
-keepclassmembers class com.garfiec.librechat.** { *** Companion; }
|
||||
-keepclasseswithmembers class com.garfiec.librechat.** { kotlinx.serialization.KSerializer serializer(...); }
|
||||
|
||||
# Keep Ktor
|
||||
-keep class io.ktor.** { *; }
|
||||
-dontwarn io.ktor.**
|
||||
|
||||
# Keep Room entities
|
||||
-keep class com.librechat.android.core.data.db.entity.** { *; }
|
||||
-keep class com.garfiec.librechat.core.data.db.entity.** { *; }
|
||||
|
||||
# Koin - keep ViewModel constructors for reflection-based instantiation
|
||||
-keep class * extends androidx.lifecycle.ViewModel { <init>(...); }
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android
|
||||
package com.garfiec.librechat
|
||||
|
||||
import androidx.compose.ui.test.assertIsDisplayed
|
||||
import androidx.compose.ui.test.assertIsEnabled
|
||||
|
|
@ -6,8 +6,8 @@ import androidx.compose.ui.test.assertIsNotEnabled
|
|||
import androidx.compose.ui.test.junit4.createComposeRule
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import com.librechat.android.core.ui.theme.LibreChatTheme
|
||||
import com.librechat.android.feature.auth.screen.ServerUrlScreen
|
||||
import com.garfiec.librechat.core.ui.theme.LibreChatTheme
|
||||
import com.garfiec.librechat.feature.auth.screen.ServerUrlScreen
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android
|
||||
package com.garfiec.librechat
|
||||
|
||||
import android.app.Application
|
||||
import coil3.ImageLoader
|
||||
|
|
@ -8,17 +8,17 @@ import coil3.disk.directory
|
|||
import coil3.memory.MemoryCache
|
||||
import coil3.network.ktor3.KtorNetworkFetcherFactory
|
||||
import coil3.request.crossfade
|
||||
import com.librechat.android.core.common.di.commonModule
|
||||
import com.librechat.android.core.data.di.dataModule
|
||||
import com.librechat.android.core.network.di.networkModule
|
||||
import com.librechat.android.feature.agents.di.agentsModule
|
||||
import com.librechat.android.feature.auth.di.authModule
|
||||
import com.librechat.android.feature.auth.di.authPlatformModule
|
||||
import com.librechat.android.feature.chat.di.chatModule
|
||||
import com.librechat.android.feature.conversations.di.conversationsModule
|
||||
import com.librechat.android.feature.files.di.filesModule
|
||||
import com.librechat.android.feature.settings.di.settingsModule
|
||||
import com.librechat.android.navigation.appModule
|
||||
import com.garfiec.librechat.core.common.di.commonModule
|
||||
import com.garfiec.librechat.core.data.di.dataModule
|
||||
import com.garfiec.librechat.core.network.di.networkModule
|
||||
import com.garfiec.librechat.feature.agents.di.agentsModule
|
||||
import com.garfiec.librechat.feature.auth.di.authModule
|
||||
import com.garfiec.librechat.feature.auth.di.authPlatformModule
|
||||
import com.garfiec.librechat.feature.chat.di.chatModule
|
||||
import com.garfiec.librechat.feature.conversations.di.conversationsModule
|
||||
import com.garfiec.librechat.feature.files.di.filesModule
|
||||
import com.garfiec.librechat.feature.settings.di.settingsModule
|
||||
import com.garfiec.librechat.navigation.appModule
|
||||
import io.ktor.client.HttpClient
|
||||
import org.koin.android.ext.android.get
|
||||
import org.koin.android.ext.koin.androidContext
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android
|
||||
package com.garfiec.librechat
|
||||
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
|
|
@ -32,13 +32,13 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.compose.ui.unit.dp
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.librechat.android.core.common.network.ConnectivityObserver
|
||||
import com.librechat.android.core.data.datastore.ThemeDataStore
|
||||
import com.librechat.android.core.data.datastore.ThemeMode
|
||||
import com.librechat.android.core.ui.theme.LibreChatTheme
|
||||
import com.librechat.android.feature.chat.ShareIntentConsumer
|
||||
import com.librechat.android.feature.chat.SharedContent
|
||||
import com.librechat.android.navigation.LibreChatNavHost
|
||||
import com.garfiec.librechat.core.common.network.ConnectivityObserver
|
||||
import com.garfiec.librechat.core.data.datastore.ThemeDataStore
|
||||
import com.garfiec.librechat.core.data.datastore.ThemeMode
|
||||
import com.garfiec.librechat.core.ui.theme.LibreChatTheme
|
||||
import com.garfiec.librechat.feature.chat.ShareIntentConsumer
|
||||
import com.garfiec.librechat.feature.chat.SharedContent
|
||||
import com.garfiec.librechat.navigation.LibreChatNavHost
|
||||
import org.koin.android.ext.android.inject
|
||||
import co.touchlab.kermit.Logger
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.navigation
|
||||
package com.garfiec.librechat.navigation
|
||||
|
||||
import org.koin.core.module.dsl.viewModelOf
|
||||
import org.koin.dsl.module
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.navigation
|
||||
package com.garfiec.librechat.navigation
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
|
|
@ -54,10 +54,10 @@ import androidx.compose.ui.semantics.semantics
|
|||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.librechat.android.R
|
||||
import com.librechat.android.core.model.EModelEndpoint
|
||||
import com.librechat.android.core.ui.components.isMonochromeIcon
|
||||
import com.librechat.android.core.ui.components.toIconRes
|
||||
import com.garfiec.librechat.R
|
||||
import com.garfiec.librechat.core.model.EModelEndpoint
|
||||
import com.garfiec.librechat.core.ui.components.isMonochromeIcon
|
||||
import com.garfiec.librechat.core.ui.components.toIconRes
|
||||
|
||||
/**
|
||||
* Lightweight snapshot of fields DrawerConversationItem actually renders.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.navigation
|
||||
package com.garfiec.librechat.navigation
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.compose.animation.AnimatedContentTransitionScope
|
||||
|
|
@ -35,29 +35,29 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
|||
import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.currentBackStackEntryAsState
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.librechat.android.MainActivity
|
||||
import com.librechat.android.R
|
||||
import com.librechat.android.core.ui.components.BannerDisplay
|
||||
import com.librechat.android.feature.agents.navigation.AGENT_EDITOR_CREATE_ROUTE
|
||||
import com.librechat.android.feature.agents.navigation.agentsGraph
|
||||
import com.librechat.android.feature.auth.navigation.AUTH_GRAPH_ROUTE
|
||||
import com.librechat.android.feature.auth.navigation.authGraph
|
||||
import com.librechat.android.feature.chat.navigation.CHAT_GRAPH_ROUTE
|
||||
import com.librechat.android.feature.chat.navigation.CHAT_ROUTE
|
||||
import com.librechat.android.feature.chat.navigation.NEW_CHAT_ROUTE
|
||||
import com.librechat.android.feature.chat.navigation.chatGraph
|
||||
import com.librechat.android.feature.chat.navigation.navigateToChat
|
||||
import com.librechat.android.feature.conversations.navigation.conversationsGraph
|
||||
import com.librechat.android.feature.files.navigation.filesGraph
|
||||
import com.librechat.android.feature.settings.navigation.API_KEYS_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.PRESET_MANAGER_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.SETTINGS_ACCOUNT_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.SETTINGS_CHAT_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.SETTINGS_DATA_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.SETTINGS_GENERAL_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.SETTINGS_TABBED_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.SHARED_LINKS_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.settingsGraph
|
||||
import com.garfiec.librechat.MainActivity
|
||||
import com.garfiec.librechat.R
|
||||
import com.garfiec.librechat.core.ui.components.BannerDisplay
|
||||
import com.garfiec.librechat.feature.agents.navigation.AGENT_EDITOR_CREATE_ROUTE
|
||||
import com.garfiec.librechat.feature.agents.navigation.agentsGraph
|
||||
import com.garfiec.librechat.feature.auth.navigation.AUTH_GRAPH_ROUTE
|
||||
import com.garfiec.librechat.feature.auth.navigation.authGraph
|
||||
import com.garfiec.librechat.feature.chat.navigation.CHAT_GRAPH_ROUTE
|
||||
import com.garfiec.librechat.feature.chat.navigation.CHAT_ROUTE
|
||||
import com.garfiec.librechat.feature.chat.navigation.NEW_CHAT_ROUTE
|
||||
import com.garfiec.librechat.feature.chat.navigation.chatGraph
|
||||
import com.garfiec.librechat.feature.chat.navigation.navigateToChat
|
||||
import com.garfiec.librechat.feature.conversations.navigation.conversationsGraph
|
||||
import com.garfiec.librechat.feature.files.navigation.filesGraph
|
||||
import com.garfiec.librechat.feature.settings.navigation.API_KEYS_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.PRESET_MANAGER_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.SETTINGS_ACCOUNT_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.SETTINGS_CHAT_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.SETTINGS_DATA_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.SETTINGS_GENERAL_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.SETTINGS_TABBED_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.SHARED_LINKS_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.settingsGraph
|
||||
import kotlinx.coroutines.launch
|
||||
import org.koin.compose.viewmodel.koinViewModel
|
||||
import co.touchlab.kermit.Logger
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
package com.librechat.android.navigation
|
||||
package com.garfiec.librechat.navigation
|
||||
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.librechat.android.core.common.extensions.toInstantOrNull
|
||||
import com.librechat.android.core.common.extensions.toRelativeDateGroup
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.data.repository.AuthRepository
|
||||
import com.librechat.android.core.data.repository.BannerRepository
|
||||
import com.librechat.android.core.data.repository.ConfigRepository
|
||||
import com.librechat.android.core.data.repository.ConversationRepository
|
||||
import com.librechat.android.core.model.Banner
|
||||
import com.librechat.android.core.model.Conversation
|
||||
import com.librechat.android.core.network.client.TokenManager
|
||||
import com.garfiec.librechat.core.common.extensions.toInstantOrNull
|
||||
import com.garfiec.librechat.core.common.extensions.toRelativeDateGroup
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.data.repository.AuthRepository
|
||||
import com.garfiec.librechat.core.data.repository.BannerRepository
|
||||
import com.garfiec.librechat.core.data.repository.ConfigRepository
|
||||
import com.garfiec.librechat.core.data.repository.ConversationRepository
|
||||
import com.garfiec.librechat.core.model.Banner
|
||||
import com.garfiec.librechat.core.model.Conversation
|
||||
import com.garfiec.librechat.core.network.client.TokenManager
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
|
|
@ -61,7 +61,7 @@ class NavHostViewModel(
|
|||
private val configRepository: ConfigRepository,
|
||||
private val conversationRepository: ConversationRepository,
|
||||
private val tokenManager: TokenManager,
|
||||
private val settingsDataStore: com.librechat.android.core.data.datastore.SettingsDataStore,
|
||||
private val settingsDataStore: com.garfiec.librechat.core.data.datastore.SettingsDataStore,
|
||||
) : ViewModel() {
|
||||
|
||||
private val _isLoggedIn = MutableStateFlow(tokenManager.isAuthenticated)
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.navigation
|
||||
package com.garfiec.librechat.navigation
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
|
|
@ -31,7 +31,7 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.compose.ui.semantics.heading
|
||||
import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.librechat.android.R
|
||||
import com.garfiec.librechat.R
|
||||
|
||||
/**
|
||||
* Settings sidebar content shown when the sidebar mode is [SidebarMode.Settings].
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.navigation
|
||||
package com.garfiec.librechat.navigation
|
||||
|
||||
sealed interface SidebarMode {
|
||||
data object Conversations : SidebarMode
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.navigation
|
||||
package com.garfiec.librechat.navigation
|
||||
|
||||
import androidx.compose.animation.AnimatedContent
|
||||
import androidx.compose.animation.slideInHorizontally
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.navigation
|
||||
package com.garfiec.librechat.navigation
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.activity.compose.BackHandler
|
||||
|
|
@ -39,24 +39,24 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import androidx.navigation.NavHostController
|
||||
import androidx.navigation.compose.NavHost
|
||||
import com.librechat.android.MainActivity
|
||||
import com.librechat.android.core.ui.components.BannerDisplay
|
||||
import com.librechat.android.feature.agents.navigation.AGENT_EDITOR_CREATE_ROUTE
|
||||
import com.librechat.android.feature.agents.navigation.agentsGraph
|
||||
import com.librechat.android.feature.auth.navigation.AUTH_GRAPH_ROUTE
|
||||
import com.librechat.android.feature.auth.navigation.authGraph
|
||||
import com.librechat.android.feature.chat.navigation.CHAT_GRAPH_ROUTE
|
||||
import com.librechat.android.feature.chat.navigation.CHAT_ROUTE
|
||||
import com.librechat.android.feature.chat.navigation.NEW_CHAT_ROUTE
|
||||
import com.librechat.android.feature.chat.navigation.chatGraph
|
||||
import com.librechat.android.feature.chat.navigation.navigateToChat
|
||||
import com.librechat.android.feature.conversations.navigation.conversationsGraph
|
||||
import com.librechat.android.feature.files.navigation.filesGraph
|
||||
import com.librechat.android.feature.settings.navigation.API_KEYS_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.PRESET_MANAGER_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.SETTINGS_TABBED_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.SHARED_LINKS_ROUTE
|
||||
import com.librechat.android.feature.settings.navigation.settingsGraph
|
||||
import com.garfiec.librechat.MainActivity
|
||||
import com.garfiec.librechat.core.ui.components.BannerDisplay
|
||||
import com.garfiec.librechat.feature.agents.navigation.AGENT_EDITOR_CREATE_ROUTE
|
||||
import com.garfiec.librechat.feature.agents.navigation.agentsGraph
|
||||
import com.garfiec.librechat.feature.auth.navigation.AUTH_GRAPH_ROUTE
|
||||
import com.garfiec.librechat.feature.auth.navigation.authGraph
|
||||
import com.garfiec.librechat.feature.chat.navigation.CHAT_GRAPH_ROUTE
|
||||
import com.garfiec.librechat.feature.chat.navigation.CHAT_ROUTE
|
||||
import com.garfiec.librechat.feature.chat.navigation.NEW_CHAT_ROUTE
|
||||
import com.garfiec.librechat.feature.chat.navigation.chatGraph
|
||||
import com.garfiec.librechat.feature.chat.navigation.navigateToChat
|
||||
import com.garfiec.librechat.feature.conversations.navigation.conversationsGraph
|
||||
import com.garfiec.librechat.feature.files.navigation.filesGraph
|
||||
import com.garfiec.librechat.feature.settings.navigation.API_KEYS_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.PRESET_MANAGER_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.SETTINGS_TABBED_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.SHARED_LINKS_ROUTE
|
||||
import com.garfiec.librechat.feature.settings.navigation.settingsGraph
|
||||
import kotlinx.coroutines.launch
|
||||
import co.touchlab.kermit.Logger
|
||||
|
||||
|
|
@ -310,7 +310,7 @@ private fun MainContent(
|
|||
navHostViewModel: NavHostViewModel,
|
||||
startDestination: String,
|
||||
isInAuthFlow: Boolean,
|
||||
banners: List<com.librechat.android.core.model.Banner>,
|
||||
banners: List<com.garfiec.librechat.core.model.Banner>,
|
||||
dismissedBannerIds: Set<String>,
|
||||
onToggleDrawer: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.navigation
|
||||
package com.garfiec.librechat.navigation
|
||||
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Chat
|
||||
|
|
@ -1,68 +1,68 @@
|
|||
package com.librechat.android
|
||||
package com.garfiec.librechat
|
||||
|
||||
import com.librechat.android.core.common.di.commonModule
|
||||
import com.librechat.android.core.common.network.ConnectivityObserver
|
||||
import com.librechat.android.core.data.datastore.ConfigCacheDataStore
|
||||
import com.librechat.android.core.data.datastore.ServerDataStore
|
||||
import com.librechat.android.core.data.datastore.SettingsDataStore
|
||||
import com.librechat.android.core.data.datastore.ThemeDataStore
|
||||
import com.librechat.android.core.data.di.dataModule
|
||||
import com.librechat.android.core.data.repository.AgentRepository
|
||||
import com.librechat.android.core.data.repository.ApiKeyRepository
|
||||
import com.librechat.android.core.data.repository.AuthRepository
|
||||
import com.librechat.android.core.data.repository.BalanceRepository
|
||||
import com.librechat.android.core.data.repository.BannerRepository
|
||||
import com.librechat.android.core.data.repository.ChatRepository
|
||||
import com.librechat.android.core.data.repository.ConfigRepository
|
||||
import com.librechat.android.core.data.repository.ConversationRepository
|
||||
import com.librechat.android.core.data.repository.DraftRepository
|
||||
import com.librechat.android.core.data.repository.FileRepository
|
||||
import com.librechat.android.core.data.repository.KeyRepository
|
||||
import com.librechat.android.core.data.repository.McpRepository
|
||||
import com.librechat.android.core.data.repository.MemoryRepository
|
||||
import com.librechat.android.core.data.repository.MessageRepository
|
||||
import com.librechat.android.core.data.repository.PresetRepository
|
||||
import com.librechat.android.core.data.repository.PromptRepository
|
||||
import com.librechat.android.core.data.repository.SearchRepository
|
||||
import com.librechat.android.core.data.repository.ShareRepository
|
||||
import com.librechat.android.core.data.repository.SpeechRepository
|
||||
import com.librechat.android.core.data.repository.TagRepository
|
||||
import com.librechat.android.core.data.repository.UserRepository
|
||||
import com.librechat.android.core.network.api.AgentsApi
|
||||
import com.librechat.android.core.network.api.ApiKeysApi
|
||||
import com.librechat.android.core.network.api.AuthApi
|
||||
import com.librechat.android.core.network.api.BalanceApi
|
||||
import com.librechat.android.core.network.api.BannerApi
|
||||
import com.librechat.android.core.network.api.ChatApi
|
||||
import com.librechat.android.core.network.api.ConfigApi
|
||||
import com.librechat.android.core.network.api.ConversationsApi
|
||||
import com.librechat.android.core.network.api.FilesApi
|
||||
import com.librechat.android.core.network.api.FilesExtApi
|
||||
import com.librechat.android.core.network.api.KeysApi
|
||||
import com.librechat.android.core.network.api.McpApi
|
||||
import com.librechat.android.core.network.api.MemoriesApi
|
||||
import com.librechat.android.core.network.api.MessagesApi
|
||||
import com.librechat.android.core.network.api.PresetsApi
|
||||
import com.librechat.android.core.network.api.PromptsApi
|
||||
import com.librechat.android.core.network.api.SearchApi
|
||||
import com.librechat.android.core.network.api.ShareApi
|
||||
import com.librechat.android.core.network.api.SpeechApi
|
||||
import com.librechat.android.core.network.api.TagsApi
|
||||
import com.librechat.android.core.network.api.UserApi
|
||||
import com.librechat.android.core.network.client.SecureTokenStorage
|
||||
import com.librechat.android.core.network.client.ServerUrlProvider
|
||||
import com.librechat.android.core.network.client.TokenManager
|
||||
import com.librechat.android.core.network.di.networkModule
|
||||
import com.librechat.android.core.network.sse.SseClient
|
||||
import com.librechat.android.feature.agents.di.agentsModule
|
||||
import com.librechat.android.feature.auth.di.authModule
|
||||
import com.librechat.android.feature.auth.oauth.OAuthLauncher
|
||||
import com.librechat.android.feature.chat.di.chatModule
|
||||
import com.librechat.android.feature.conversations.di.conversationsModule
|
||||
import com.librechat.android.feature.files.di.filesModule
|
||||
import com.librechat.android.feature.files.platform.FileReader
|
||||
import com.librechat.android.feature.settings.di.settingsModule
|
||||
import com.librechat.android.navigation.appModule
|
||||
import com.garfiec.librechat.core.common.di.commonModule
|
||||
import com.garfiec.librechat.core.common.network.ConnectivityObserver
|
||||
import com.garfiec.librechat.core.data.datastore.ConfigCacheDataStore
|
||||
import com.garfiec.librechat.core.data.datastore.ServerDataStore
|
||||
import com.garfiec.librechat.core.data.datastore.SettingsDataStore
|
||||
import com.garfiec.librechat.core.data.datastore.ThemeDataStore
|
||||
import com.garfiec.librechat.core.data.di.dataModule
|
||||
import com.garfiec.librechat.core.data.repository.AgentRepository
|
||||
import com.garfiec.librechat.core.data.repository.ApiKeyRepository
|
||||
import com.garfiec.librechat.core.data.repository.AuthRepository
|
||||
import com.garfiec.librechat.core.data.repository.BalanceRepository
|
||||
import com.garfiec.librechat.core.data.repository.BannerRepository
|
||||
import com.garfiec.librechat.core.data.repository.ChatRepository
|
||||
import com.garfiec.librechat.core.data.repository.ConfigRepository
|
||||
import com.garfiec.librechat.core.data.repository.ConversationRepository
|
||||
import com.garfiec.librechat.core.data.repository.DraftRepository
|
||||
import com.garfiec.librechat.core.data.repository.FileRepository
|
||||
import com.garfiec.librechat.core.data.repository.KeyRepository
|
||||
import com.garfiec.librechat.core.data.repository.McpRepository
|
||||
import com.garfiec.librechat.core.data.repository.MemoryRepository
|
||||
import com.garfiec.librechat.core.data.repository.MessageRepository
|
||||
import com.garfiec.librechat.core.data.repository.PresetRepository
|
||||
import com.garfiec.librechat.core.data.repository.PromptRepository
|
||||
import com.garfiec.librechat.core.data.repository.SearchRepository
|
||||
import com.garfiec.librechat.core.data.repository.ShareRepository
|
||||
import com.garfiec.librechat.core.data.repository.SpeechRepository
|
||||
import com.garfiec.librechat.core.data.repository.TagRepository
|
||||
import com.garfiec.librechat.core.data.repository.UserRepository
|
||||
import com.garfiec.librechat.core.network.api.AgentsApi
|
||||
import com.garfiec.librechat.core.network.api.ApiKeysApi
|
||||
import com.garfiec.librechat.core.network.api.AuthApi
|
||||
import com.garfiec.librechat.core.network.api.BalanceApi
|
||||
import com.garfiec.librechat.core.network.api.BannerApi
|
||||
import com.garfiec.librechat.core.network.api.ChatApi
|
||||
import com.garfiec.librechat.core.network.api.ConfigApi
|
||||
import com.garfiec.librechat.core.network.api.ConversationsApi
|
||||
import com.garfiec.librechat.core.network.api.FilesApi
|
||||
import com.garfiec.librechat.core.network.api.FilesExtApi
|
||||
import com.garfiec.librechat.core.network.api.KeysApi
|
||||
import com.garfiec.librechat.core.network.api.McpApi
|
||||
import com.garfiec.librechat.core.network.api.MemoriesApi
|
||||
import com.garfiec.librechat.core.network.api.MessagesApi
|
||||
import com.garfiec.librechat.core.network.api.PresetsApi
|
||||
import com.garfiec.librechat.core.network.api.PromptsApi
|
||||
import com.garfiec.librechat.core.network.api.SearchApi
|
||||
import com.garfiec.librechat.core.network.api.ShareApi
|
||||
import com.garfiec.librechat.core.network.api.SpeechApi
|
||||
import com.garfiec.librechat.core.network.api.TagsApi
|
||||
import com.garfiec.librechat.core.network.api.UserApi
|
||||
import com.garfiec.librechat.core.network.client.SecureTokenStorage
|
||||
import com.garfiec.librechat.core.network.client.ServerUrlProvider
|
||||
import com.garfiec.librechat.core.network.client.TokenManager
|
||||
import com.garfiec.librechat.core.network.di.networkModule
|
||||
import com.garfiec.librechat.core.network.sse.SseClient
|
||||
import com.garfiec.librechat.feature.agents.di.agentsModule
|
||||
import com.garfiec.librechat.feature.auth.di.authModule
|
||||
import com.garfiec.librechat.feature.auth.oauth.OAuthLauncher
|
||||
import com.garfiec.librechat.feature.chat.di.chatModule
|
||||
import com.garfiec.librechat.feature.conversations.di.conversationsModule
|
||||
import com.garfiec.librechat.feature.files.di.filesModule
|
||||
import com.garfiec.librechat.feature.files.platform.FileReader
|
||||
import com.garfiec.librechat.feature.settings.di.settingsModule
|
||||
import com.garfiec.librechat.navigation.appModule
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import org.junit.Test
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
|
||||
// Core model classes — all are data classes with val-only fields, never mutated after creation.
|
||||
// Wildcard patterns auto-cover new models without manual maintenance.
|
||||
com.librechat.android.core.model.*
|
||||
com.librechat.android.core.model.mcp.*
|
||||
com.librechat.android.core.model.speech.*
|
||||
com.garfiec.librechat.core.model.*
|
||||
com.garfiec.librechat.core.model.mcp.*
|
||||
com.garfiec.librechat.core.model.speech.*
|
||||
|
||||
// Kotlin stdlib collections (we only use immutable instances in practice)
|
||||
kotlin.collections.List
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ plugins {
|
|||
}
|
||||
|
||||
android {
|
||||
namespace = "com.librechat.android.core.common"
|
||||
namespace = "com.garfiec.librechat.core.common"
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.librechat.android.core.common.di
|
||||
package com.garfiec.librechat.core.common.di
|
||||
|
||||
import com.librechat.android.core.common.network.AndroidConnectivityObserver
|
||||
import com.librechat.android.core.common.network.ConnectivityObserver
|
||||
import com.garfiec.librechat.core.common.network.AndroidConnectivityObserver
|
||||
import com.garfiec.librechat.core.common.network.ConnectivityObserver
|
||||
import org.koin.android.ext.koin.androidContext
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.dsl.module
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.di
|
||||
package com.garfiec.librechat.core.common.di
|
||||
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.extensions
|
||||
package com.garfiec.librechat.core.common.extensions
|
||||
|
||||
import java.time.Month
|
||||
import java.time.format.TextStyle
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.network
|
||||
package com.garfiec.librechat.core.common.network
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.di
|
||||
package com.garfiec.librechat.core.common.di
|
||||
|
||||
import org.junit.Test
|
||||
import org.koin.test.verify.verify
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.network
|
||||
package com.garfiec.librechat.core.common.network
|
||||
|
||||
import app.cash.turbine.test
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.test
|
||||
package com.garfiec.librechat.core.common.test
|
||||
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common
|
||||
package com.garfiec.librechat.core.common
|
||||
|
||||
/**
|
||||
* Backend version compatibility constants and comparison utilities.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common
|
||||
package com.garfiec.librechat.core.common
|
||||
|
||||
object EndpointConstants {
|
||||
const val AGENTS = "agents"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package com.librechat.android.core.common.di
|
||||
package com.garfiec.librechat.core.common.di
|
||||
|
||||
import com.librechat.android.core.common.network.ConnectivityObserver
|
||||
import com.garfiec.librechat.core.common.network.ConnectivityObserver
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.di
|
||||
package com.garfiec.librechat.core.common.di
|
||||
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.di
|
||||
package com.garfiec.librechat.core.common.di
|
||||
|
||||
import org.koin.core.qualifier.named
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.extensions
|
||||
package com.garfiec.librechat.core.common.extensions
|
||||
|
||||
import kotlin.time.Clock
|
||||
import kotlin.time.Instant
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.extensions
|
||||
package com.garfiec.librechat.core.common.extensions
|
||||
|
||||
/**
|
||||
* Returns a locale-aware full month name + year string (e.g. "January 2025" in English).
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.extensions
|
||||
package com.garfiec.librechat.core.common.extensions
|
||||
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.extensions
|
||||
package com.garfiec.librechat.core.common.extensions
|
||||
|
||||
fun String.trimTrailingSlash(): String = trimEnd('/')
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.network
|
||||
package com.garfiec.librechat.core.common.network
|
||||
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.result
|
||||
package com.garfiec.librechat.core.common.result
|
||||
|
||||
/**
|
||||
* Exception thrown when the server returns a non-2xx HTTP response.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.result
|
||||
package com.garfiec.librechat.core.common.result
|
||||
|
||||
sealed interface Result<out T> {
|
||||
data class Success<T>(val data: T) : Result<T>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.result
|
||||
package com.garfiec.librechat.core.common.result
|
||||
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import kotlin.test.Test
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package com.librechat.android.core.common.di
|
||||
package com.garfiec.librechat.core.common.di
|
||||
|
||||
import com.librechat.android.core.common.network.ConnectivityObserver
|
||||
import com.librechat.android.core.common.network.IosConnectivityObserver
|
||||
import com.garfiec.librechat.core.common.network.ConnectivityObserver
|
||||
import com.garfiec.librechat.core.common.network.IosConnectivityObserver
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.dsl.module
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.di
|
||||
package com.garfiec.librechat.core.common.di
|
||||
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.extensions
|
||||
package com.garfiec.librechat.core.common.extensions
|
||||
|
||||
import platform.Foundation.NSCalendar
|
||||
import platform.Foundation.NSDateComponents
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.common.network
|
||||
package com.garfiec.librechat.core.common.network
|
||||
|
||||
import kotlinx.cinterop.ExperimentalForeignApi
|
||||
import kotlinx.coroutines.channels.awaitClose
|
||||
|
|
@ -18,7 +18,7 @@ import platform.darwin.dispatch_queue_create
|
|||
class IosConnectivityObserver : ConnectivityObserver {
|
||||
override val isConnected: Flow<Boolean> = callbackFlow {
|
||||
val monitor = nw_path_monitor_create()
|
||||
val queue = dispatch_queue_create("com.librechat.network.monitor", null)
|
||||
val queue = dispatch_queue_create("com.garfiec.librechat.network.monitor", null)
|
||||
|
||||
nw_path_monitor_set_update_handler(monitor) { path ->
|
||||
val connected = nw_path_get_status(path) == nw_path_status_satisfied
|
||||
|
|
@ -6,7 +6,7 @@ plugins {
|
|||
}
|
||||
|
||||
android {
|
||||
namespace = "com.librechat.android.core.data"
|
||||
namespace = "com.garfiec.librechat.core.data"
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db
|
||||
package com.garfiec.librechat.core.data.db
|
||||
|
||||
import android.content.ContentValues
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.datastore
|
||||
package com.garfiec.librechat.core.data.datastore
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
package com.librechat.android.core.data.di
|
||||
package com.garfiec.librechat.core.data.di
|
||||
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
import androidx.datastore.preferences.preferencesDataStore
|
||||
import androidx.room.Room
|
||||
import com.librechat.android.core.common.di.KoinQualifiers
|
||||
import com.librechat.android.core.data.datastore.TokenDataStore
|
||||
import com.librechat.android.core.data.db.LibreChatDatabase
|
||||
import com.librechat.android.core.data.repository.CommonSessionCacheCleaner
|
||||
import com.librechat.android.core.data.repository.SessionCacheCleaner
|
||||
import com.librechat.android.core.network.client.SecureTokenStorage
|
||||
import com.librechat.android.core.network.client.TokenManager
|
||||
import com.garfiec.librechat.core.common.di.KoinQualifiers
|
||||
import com.garfiec.librechat.core.data.datastore.TokenDataStore
|
||||
import com.garfiec.librechat.core.data.db.LibreChatDatabase
|
||||
import com.garfiec.librechat.core.data.repository.CommonSessionCacheCleaner
|
||||
import com.garfiec.librechat.core.data.repository.SessionCacheCleaner
|
||||
import com.garfiec.librechat.core.network.client.SecureTokenStorage
|
||||
import com.garfiec.librechat.core.network.client.TokenManager
|
||||
import io.ktor.client.HttpClient
|
||||
import org.koin.android.ext.koin.androidContext
|
||||
import org.koin.core.module.Module
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import java.io.File
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.datastore
|
||||
package com.garfiec.librechat.core.data.datastore
|
||||
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package com.garfiec.librechat.core.data.di
|
||||
|
||||
import org.junit.Test
|
||||
import org.koin.test.verify.verify
|
||||
|
||||
class DataModuleVerificationTest {
|
||||
@Test
|
||||
fun verifyDataModule() {
|
||||
dataModule.verify(
|
||||
extraTypes = listOf(
|
||||
android.content.Context::class,
|
||||
android.app.Application::class,
|
||||
androidx.lifecycle.SavedStateHandle::class,
|
||||
kotlin.Lazy::class,
|
||||
io.ktor.client.HttpClient::class,
|
||||
kotlinx.serialization.json.Json::class,
|
||||
kotlinx.coroutines.CoroutineDispatcher::class,
|
||||
com.garfiec.librechat.core.common.network.ConnectivityObserver::class,
|
||||
com.garfiec.librechat.core.network.sse.SseClient::class,
|
||||
com.garfiec.librechat.core.network.api.AuthApi::class,
|
||||
com.garfiec.librechat.core.network.api.UserApi::class,
|
||||
com.garfiec.librechat.core.network.api.ChatApi::class,
|
||||
com.garfiec.librechat.core.network.api.ConversationsApi::class,
|
||||
com.garfiec.librechat.core.network.api.MessagesApi::class,
|
||||
com.garfiec.librechat.core.network.api.FilesApi::class,
|
||||
com.garfiec.librechat.core.network.api.FilesExtApi::class,
|
||||
com.garfiec.librechat.core.network.api.AgentsApi::class,
|
||||
com.garfiec.librechat.core.network.api.PresetsApi::class,
|
||||
com.garfiec.librechat.core.network.api.PromptsApi::class,
|
||||
com.garfiec.librechat.core.network.api.TagsApi::class,
|
||||
com.garfiec.librechat.core.network.api.ShareApi::class,
|
||||
com.garfiec.librechat.core.network.api.ConfigApi::class,
|
||||
com.garfiec.librechat.core.network.api.BalanceApi::class,
|
||||
com.garfiec.librechat.core.network.api.SearchApi::class,
|
||||
com.garfiec.librechat.core.network.api.KeysApi::class,
|
||||
com.garfiec.librechat.core.network.api.ApiKeysApi::class,
|
||||
com.garfiec.librechat.core.network.api.McpApi::class,
|
||||
com.garfiec.librechat.core.network.api.MemoriesApi::class,
|
||||
com.garfiec.librechat.core.network.api.SpeechApi::class,
|
||||
com.garfiec.librechat.core.network.api.BannerApi::class,
|
||||
androidx.datastore.core.DataStore::class,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
package com.librechat.android.core.data.di
|
||||
|
||||
import org.junit.Test
|
||||
import org.koin.test.verify.verify
|
||||
|
||||
class DataModuleVerificationTest {
|
||||
@Test
|
||||
fun verifyDataModule() {
|
||||
dataModule.verify(
|
||||
extraTypes = listOf(
|
||||
android.content.Context::class,
|
||||
android.app.Application::class,
|
||||
androidx.lifecycle.SavedStateHandle::class,
|
||||
kotlin.Lazy::class,
|
||||
io.ktor.client.HttpClient::class,
|
||||
kotlinx.serialization.json.Json::class,
|
||||
kotlinx.coroutines.CoroutineDispatcher::class,
|
||||
com.librechat.android.core.common.network.ConnectivityObserver::class,
|
||||
com.librechat.android.core.network.sse.SseClient::class,
|
||||
com.librechat.android.core.network.api.AuthApi::class,
|
||||
com.librechat.android.core.network.api.UserApi::class,
|
||||
com.librechat.android.core.network.api.ChatApi::class,
|
||||
com.librechat.android.core.network.api.ConversationsApi::class,
|
||||
com.librechat.android.core.network.api.MessagesApi::class,
|
||||
com.librechat.android.core.network.api.FilesApi::class,
|
||||
com.librechat.android.core.network.api.FilesExtApi::class,
|
||||
com.librechat.android.core.network.api.AgentsApi::class,
|
||||
com.librechat.android.core.network.api.PresetsApi::class,
|
||||
com.librechat.android.core.network.api.PromptsApi::class,
|
||||
com.librechat.android.core.network.api.TagsApi::class,
|
||||
com.librechat.android.core.network.api.ShareApi::class,
|
||||
com.librechat.android.core.network.api.ConfigApi::class,
|
||||
com.librechat.android.core.network.api.BalanceApi::class,
|
||||
com.librechat.android.core.network.api.SearchApi::class,
|
||||
com.librechat.android.core.network.api.KeysApi::class,
|
||||
com.librechat.android.core.network.api.ApiKeysApi::class,
|
||||
com.librechat.android.core.network.api.McpApi::class,
|
||||
com.librechat.android.core.network.api.MemoriesApi::class,
|
||||
com.librechat.android.core.network.api.SpeechApi::class,
|
||||
com.librechat.android.core.network.api.BannerApi::class,
|
||||
androidx.datastore.core.DataStore::class,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package com.librechat.android.core.data.datastore
|
||||
package com.garfiec.librechat.core.data.datastore
|
||||
|
||||
import co.touchlab.kermit.Logger
|
||||
import com.librechat.android.core.model.response.RefreshResponse
|
||||
import com.librechat.android.core.network.client.CookieHelper
|
||||
import com.librechat.android.core.network.client.SecureTokenStorage
|
||||
import com.librechat.android.core.network.client.TokenManager
|
||||
import com.garfiec.librechat.core.model.response.RefreshResponse
|
||||
import com.garfiec.librechat.core.network.client.CookieHelper
|
||||
import com.garfiec.librechat.core.network.client.SecureTokenStorage
|
||||
import com.garfiec.librechat.core.network.client.TokenManager
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.call.body
|
||||
import io.ktor.client.plugins.ClientRequestException
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package com.librechat.android.core.data.datastore
|
||||
package com.garfiec.librechat.core.data.datastore
|
||||
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
import androidx.datastore.preferences.core.edit
|
||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||
import com.librechat.android.core.model.EndpointConfig
|
||||
import com.librechat.android.core.model.StartupConfig
|
||||
import com.garfiec.librechat.core.model.EndpointConfig
|
||||
import com.garfiec.librechat.core.model.StartupConfig
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.serialization.builtins.ListSerializer
|
||||
import kotlinx.serialization.builtins.MapSerializer
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package com.librechat.android.core.data.datastore
|
||||
package com.garfiec.librechat.core.data.datastore
|
||||
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
import androidx.datastore.preferences.core.edit
|
||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||
import com.librechat.android.core.network.client.ServerUrlProvider
|
||||
import com.garfiec.librechat.core.network.client.ServerUrlProvider
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.datastore
|
||||
package com.garfiec.librechat.core.data.datastore
|
||||
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.datastore
|
||||
package com.garfiec.librechat.core.data.datastore
|
||||
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db
|
||||
package com.garfiec.librechat.core.data.db
|
||||
|
||||
import androidx.room.AutoMigration
|
||||
import androidx.room.ConstructedBy
|
||||
|
|
@ -6,21 +6,21 @@ import androidx.room.Database
|
|||
import androidx.room.RoomDatabase
|
||||
import androidx.room.RoomDatabaseConstructor
|
||||
import androidx.room.TypeConverters
|
||||
import com.librechat.android.core.data.db.converter.Converters
|
||||
import com.librechat.android.core.data.db.dao.AgentDao
|
||||
import com.librechat.android.core.data.db.dao.ConversationDao
|
||||
import com.librechat.android.core.data.db.dao.ConversationTagDao
|
||||
import com.librechat.android.core.data.db.dao.DraftDao
|
||||
import com.librechat.android.core.data.db.dao.FileDao
|
||||
import com.librechat.android.core.data.db.dao.MessageDao
|
||||
import com.librechat.android.core.data.db.dao.PresetDao
|
||||
import com.librechat.android.core.data.db.entity.AgentEntity
|
||||
import com.librechat.android.core.data.db.entity.ConversationEntity
|
||||
import com.librechat.android.core.data.db.entity.ConversationTagEntity
|
||||
import com.librechat.android.core.data.db.entity.DraftEntity
|
||||
import com.librechat.android.core.data.db.entity.FileEntity
|
||||
import com.librechat.android.core.data.db.entity.MessageEntity
|
||||
import com.librechat.android.core.data.db.entity.PresetEntity
|
||||
import com.garfiec.librechat.core.data.db.converter.Converters
|
||||
import com.garfiec.librechat.core.data.db.dao.AgentDao
|
||||
import com.garfiec.librechat.core.data.db.dao.ConversationDao
|
||||
import com.garfiec.librechat.core.data.db.dao.ConversationTagDao
|
||||
import com.garfiec.librechat.core.data.db.dao.DraftDao
|
||||
import com.garfiec.librechat.core.data.db.dao.FileDao
|
||||
import com.garfiec.librechat.core.data.db.dao.MessageDao
|
||||
import com.garfiec.librechat.core.data.db.dao.PresetDao
|
||||
import com.garfiec.librechat.core.data.db.entity.AgentEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.ConversationEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.ConversationTagEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.DraftEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.FileEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.MessageEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.PresetEntity
|
||||
|
||||
@Database(
|
||||
entities = [
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db.converter
|
||||
package com.garfiec.librechat.core.data.db.converter
|
||||
|
||||
import androidx.room.TypeConverter
|
||||
import kotlinx.serialization.encodeToString
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package com.librechat.android.core.data.db.dao
|
||||
package com.garfiec.librechat.core.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import androidx.room.Upsert
|
||||
import com.librechat.android.core.data.db.entity.AgentEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.AgentEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package com.librechat.android.core.data.db.dao
|
||||
package com.garfiec.librechat.core.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import androidx.room.Upsert
|
||||
import com.librechat.android.core.data.db.entity.ConversationEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.ConversationEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package com.librechat.android.core.data.db.dao
|
||||
package com.garfiec.librechat.core.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import androidx.room.Upsert
|
||||
import com.librechat.android.core.data.db.entity.ConversationTagEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.ConversationTagEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package com.librechat.android.core.data.db.dao
|
||||
package com.garfiec.librechat.core.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import androidx.room.Upsert
|
||||
import com.librechat.android.core.data.db.entity.DraftEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.DraftEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package com.librechat.android.core.data.db.dao
|
||||
package com.garfiec.librechat.core.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import androidx.room.Upsert
|
||||
import com.librechat.android.core.data.db.entity.FileEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.FileEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package com.librechat.android.core.data.db.dao
|
||||
package com.garfiec.librechat.core.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import androidx.room.Upsert
|
||||
import com.librechat.android.core.data.db.entity.MessageEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.MessageEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package com.librechat.android.core.data.db.dao
|
||||
package com.garfiec.librechat.core.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import androidx.room.Upsert
|
||||
import com.librechat.android.core.data.db.entity.PresetEntity
|
||||
import com.garfiec.librechat.core.data.db.entity.PresetEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db.entity
|
||||
package com.garfiec.librechat.core.data.db.entity
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db.entity
|
||||
package com.garfiec.librechat.core.data.db.entity
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.Index
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db.entity
|
||||
package com.garfiec.librechat.core.data.db.entity
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.Index
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db.entity
|
||||
package com.garfiec.librechat.core.data.db.entity
|
||||
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Entity
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db.entity
|
||||
package com.garfiec.librechat.core.data.db.entity
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.Index
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db.entity
|
||||
package com.garfiec.librechat.core.data.db.entity
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.Index
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.db.entity
|
||||
package com.garfiec.librechat.core.data.db.entity
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
package com.garfiec.librechat.core.data.di
|
||||
|
||||
import com.garfiec.librechat.core.common.di.KoinQualifiers
|
||||
import com.garfiec.librechat.core.data.datastore.ConfigCacheDataStore
|
||||
import com.garfiec.librechat.core.data.datastore.ServerDataStore
|
||||
import com.garfiec.librechat.core.data.datastore.ServerUrlKeychainFallback
|
||||
import com.garfiec.librechat.core.data.datastore.SettingsDataStore
|
||||
import com.garfiec.librechat.core.data.datastore.ThemeDataStore
|
||||
import com.garfiec.librechat.core.data.db.LibreChatDatabase
|
||||
import com.garfiec.librechat.core.data.repository.AgentRepository
|
||||
import com.garfiec.librechat.core.data.repository.AgentRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.ApiKeyRepository
|
||||
import com.garfiec.librechat.core.data.repository.ApiKeyRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.AuthRepository
|
||||
import com.garfiec.librechat.core.data.repository.AuthRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.BalanceRepository
|
||||
import com.garfiec.librechat.core.data.repository.BalanceRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.BannerRepository
|
||||
import com.garfiec.librechat.core.data.repository.BannerRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.ChatRepository
|
||||
import com.garfiec.librechat.core.data.repository.ChatRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.ConfigRepository
|
||||
import com.garfiec.librechat.core.data.repository.ConfigRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.ConversationRepository
|
||||
import com.garfiec.librechat.core.data.repository.ConversationRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.DraftRepository
|
||||
import com.garfiec.librechat.core.data.repository.DraftRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.FileRepository
|
||||
import com.garfiec.librechat.core.data.repository.FileRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.KeyRepository
|
||||
import com.garfiec.librechat.core.data.repository.KeyRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.McpRepository
|
||||
import com.garfiec.librechat.core.data.repository.McpRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.MemoryRepository
|
||||
import com.garfiec.librechat.core.data.repository.MemoryRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.MessageRepository
|
||||
import com.garfiec.librechat.core.data.repository.MessageRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.PresetRepository
|
||||
import com.garfiec.librechat.core.data.repository.PresetRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.PromptRepository
|
||||
import com.garfiec.librechat.core.data.repository.PromptRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.SearchRepository
|
||||
import com.garfiec.librechat.core.data.repository.SearchRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.SessionCacheCleaner
|
||||
import com.garfiec.librechat.core.data.repository.ShareRepository
|
||||
import com.garfiec.librechat.core.data.repository.ShareRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.SpeechRepository
|
||||
import com.garfiec.librechat.core.data.repository.SpeechRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.TagRepository
|
||||
import com.garfiec.librechat.core.data.repository.TagRepositoryImpl
|
||||
import com.garfiec.librechat.core.data.repository.UserRepository
|
||||
import com.garfiec.librechat.core.data.repository.UserRepositoryImpl
|
||||
import com.garfiec.librechat.core.network.client.ServerUrlProvider
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.core.module.dsl.singleOf
|
||||
import org.koin.dsl.bind
|
||||
import org.koin.dsl.module
|
||||
|
||||
expect val dataPlatformModule: Module
|
||||
|
||||
val dataModule = module {
|
||||
|
||||
includes(dataPlatformModule)
|
||||
|
||||
// --- DAOs ---
|
||||
|
||||
single { get<LibreChatDatabase>().conversationDao() }
|
||||
single { get<LibreChatDatabase>().messageDao() }
|
||||
single { get<LibreChatDatabase>().fileDao() }
|
||||
single { get<LibreChatDatabase>().agentDao() }
|
||||
single { get<LibreChatDatabase>().presetDao() }
|
||||
single { get<LibreChatDatabase>().conversationTagDao() }
|
||||
single { get<LibreChatDatabase>().draftDao() }
|
||||
|
||||
// --- Datastores ---
|
||||
|
||||
single {
|
||||
ServerDataStore(
|
||||
dataStore = get(),
|
||||
ioDispatcher = get(KoinQualifiers.IO),
|
||||
keychainFallback = getOrNull(),
|
||||
)
|
||||
} bind ServerUrlProvider::class
|
||||
singleOf(::ThemeDataStore)
|
||||
singleOf(::ConfigCacheDataStore)
|
||||
singleOf(::SettingsDataStore)
|
||||
|
||||
// --- Repositories (special wiring) ---
|
||||
|
||||
single<AuthRepository> {
|
||||
AuthRepositoryImpl(
|
||||
authApi = get(),
|
||||
userApi = get(),
|
||||
tokenManager = get(),
|
||||
sessionCacheCleaner = get(),
|
||||
)
|
||||
}
|
||||
|
||||
single<ChatRepository> {
|
||||
ChatRepositoryImpl(
|
||||
chatApi = get(),
|
||||
sseClient = get(),
|
||||
sseHttpClient = get(KoinQualifiers.Streaming),
|
||||
connectivityObserver = get(),
|
||||
)
|
||||
}
|
||||
|
||||
single<DraftRepository> {
|
||||
DraftRepositoryImpl(
|
||||
draftDao = get(),
|
||||
ioDispatcher = get(KoinQualifiers.IO),
|
||||
)
|
||||
}
|
||||
|
||||
// --- Repositories (simple auto-wiring) ---
|
||||
|
||||
singleOf(::BalanceRepositoryImpl) bind BalanceRepository::class
|
||||
singleOf(::ConfigRepositoryImpl) bind ConfigRepository::class
|
||||
singleOf(::ConversationRepositoryImpl) bind ConversationRepository::class
|
||||
singleOf(::MessageRepositoryImpl) bind MessageRepository::class
|
||||
singleOf(::FileRepositoryImpl) bind FileRepository::class
|
||||
singleOf(::AgentRepositoryImpl) bind AgentRepository::class
|
||||
singleOf(::TagRepositoryImpl) bind TagRepository::class
|
||||
singleOf(::SearchRepositoryImpl) bind SearchRepository::class
|
||||
singleOf(::KeyRepositoryImpl) bind KeyRepository::class
|
||||
singleOf(::ApiKeyRepositoryImpl) bind ApiKeyRepository::class
|
||||
singleOf(::McpRepositoryImpl) bind McpRepository::class
|
||||
singleOf(::MemoryRepositoryImpl) bind MemoryRepository::class
|
||||
singleOf(::PresetRepositoryImpl) bind PresetRepository::class
|
||||
singleOf(::PromptRepositoryImpl) bind PromptRepository::class
|
||||
singleOf(::ShareRepositoryImpl) bind ShareRepository::class
|
||||
singleOf(::SpeechRepositoryImpl) bind SpeechRepository::class
|
||||
singleOf(::UserRepositoryImpl) bind UserRepository::class
|
||||
singleOf(::BannerRepositoryImpl) bind BannerRepository::class
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.di
|
||||
package com.garfiec.librechat.core.data.di
|
||||
|
||||
/**
|
||||
* The base name used for the DataStore preferences file on all platforms.
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package com.librechat.android.core.data.mapper
|
||||
package com.garfiec.librechat.core.data.mapper
|
||||
|
||||
import com.librechat.android.core.data.db.entity.ConversationEntity
|
||||
import com.librechat.android.core.model.Conversation
|
||||
import com.librechat.android.core.model.EModelEndpoint
|
||||
import com.garfiec.librechat.core.data.db.entity.ConversationEntity
|
||||
import com.garfiec.librechat.core.model.Conversation
|
||||
import com.garfiec.librechat.core.model.EModelEndpoint
|
||||
import kotlin.time.Clock
|
||||
import kotlin.time.Instant
|
||||
import kotlinx.serialization.json.Json
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package com.librechat.android.core.data.mapper
|
||||
package com.garfiec.librechat.core.data.mapper
|
||||
|
||||
import com.librechat.android.core.data.db.entity.MessageEntity
|
||||
import com.librechat.android.core.model.Attachment
|
||||
import com.librechat.android.core.model.Feedback
|
||||
import com.librechat.android.core.model.FileReference
|
||||
import com.librechat.android.core.model.Message
|
||||
import com.librechat.android.core.model.MessageContentPart
|
||||
import com.garfiec.librechat.core.data.db.entity.MessageEntity
|
||||
import com.garfiec.librechat.core.model.Attachment
|
||||
import com.garfiec.librechat.core.model.Feedback
|
||||
import com.garfiec.librechat.core.model.FileReference
|
||||
import com.garfiec.librechat.core.model.Message
|
||||
import com.garfiec.librechat.core.model.MessageContentPart
|
||||
import kotlin.time.Clock
|
||||
import kotlin.time.Instant
|
||||
import kotlinx.serialization.builtins.ListSerializer
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.model.Agent
|
||||
import com.librechat.android.core.model.AgentAction
|
||||
import com.librechat.android.core.model.AgentCategory
|
||||
import com.librechat.android.core.model.AgentExpanded
|
||||
import com.librechat.android.core.model.AgentTool
|
||||
import com.librechat.android.core.model.PaginatedAgents
|
||||
import com.librechat.android.core.model.ToolAuthStatus
|
||||
import com.librechat.android.core.model.ToolCallRecord
|
||||
import com.librechat.android.core.model.ToolCallResult
|
||||
import com.librechat.android.core.model.request.CreateActionRequest
|
||||
import com.librechat.android.core.model.request.CreateAgentRequest
|
||||
import com.librechat.android.core.model.request.RevertAgentRequest
|
||||
import com.librechat.android.core.model.request.ToolCallRequest
|
||||
import com.librechat.android.core.model.request.UpdateAgentRequest
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.model.Agent
|
||||
import com.garfiec.librechat.core.model.AgentAction
|
||||
import com.garfiec.librechat.core.model.AgentCategory
|
||||
import com.garfiec.librechat.core.model.AgentExpanded
|
||||
import com.garfiec.librechat.core.model.AgentTool
|
||||
import com.garfiec.librechat.core.model.PaginatedAgents
|
||||
import com.garfiec.librechat.core.model.ToolAuthStatus
|
||||
import com.garfiec.librechat.core.model.ToolCallRecord
|
||||
import com.garfiec.librechat.core.model.ToolCallResult
|
||||
import com.garfiec.librechat.core.model.request.CreateActionRequest
|
||||
import com.garfiec.librechat.core.model.request.CreateAgentRequest
|
||||
import com.garfiec.librechat.core.model.request.RevertAgentRequest
|
||||
import com.garfiec.librechat.core.model.request.ToolCallRequest
|
||||
import com.garfiec.librechat.core.model.request.UpdateAgentRequest
|
||||
|
||||
interface AgentRepository {
|
||||
|
||||
|
|
@ -1,22 +1,22 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.common.result.safeApiCall
|
||||
import com.librechat.android.core.model.Agent
|
||||
import com.librechat.android.core.model.AgentAction
|
||||
import com.librechat.android.core.model.AgentCategory
|
||||
import com.librechat.android.core.model.AgentExpanded
|
||||
import com.librechat.android.core.model.AgentTool
|
||||
import com.librechat.android.core.model.PaginatedAgents
|
||||
import com.librechat.android.core.model.ToolAuthStatus
|
||||
import com.librechat.android.core.model.ToolCallRecord
|
||||
import com.librechat.android.core.model.ToolCallResult
|
||||
import com.librechat.android.core.model.request.CreateActionRequest
|
||||
import com.librechat.android.core.model.request.CreateAgentRequest
|
||||
import com.librechat.android.core.model.request.RevertAgentRequest
|
||||
import com.librechat.android.core.model.request.ToolCallRequest
|
||||
import com.librechat.android.core.model.request.UpdateAgentRequest
|
||||
import com.librechat.android.core.network.api.AgentsApi
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.common.result.safeApiCall
|
||||
import com.garfiec.librechat.core.model.Agent
|
||||
import com.garfiec.librechat.core.model.AgentAction
|
||||
import com.garfiec.librechat.core.model.AgentCategory
|
||||
import com.garfiec.librechat.core.model.AgentExpanded
|
||||
import com.garfiec.librechat.core.model.AgentTool
|
||||
import com.garfiec.librechat.core.model.PaginatedAgents
|
||||
import com.garfiec.librechat.core.model.ToolAuthStatus
|
||||
import com.garfiec.librechat.core.model.ToolCallRecord
|
||||
import com.garfiec.librechat.core.model.ToolCallResult
|
||||
import com.garfiec.librechat.core.model.request.CreateActionRequest
|
||||
import com.garfiec.librechat.core.model.request.CreateAgentRequest
|
||||
import com.garfiec.librechat.core.model.request.RevertAgentRequest
|
||||
import com.garfiec.librechat.core.model.request.ToolCallRequest
|
||||
import com.garfiec.librechat.core.model.request.UpdateAgentRequest
|
||||
import com.garfiec.librechat.core.network.api.AgentsApi
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
class AgentRepositoryImpl(
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.model.ApiKey
|
||||
import com.librechat.android.core.model.request.CreateApiKeyRequest
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.model.ApiKey
|
||||
import com.garfiec.librechat.core.model.request.CreateApiKeyRequest
|
||||
|
||||
interface ApiKeyRepository {
|
||||
suspend fun createApiKey(request: CreateApiKeyRequest): Result<ApiKey>
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.common.result.safeApiCall
|
||||
import com.librechat.android.core.model.ApiKey
|
||||
import com.librechat.android.core.model.request.CreateApiKeyRequest
|
||||
import com.librechat.android.core.network.api.ApiKeysApi
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.common.result.safeApiCall
|
||||
import com.garfiec.librechat.core.model.ApiKey
|
||||
import com.garfiec.librechat.core.model.request.CreateApiKeyRequest
|
||||
import com.garfiec.librechat.core.network.api.ApiKeysApi
|
||||
|
||||
class ApiKeyRepositoryImpl(
|
||||
private val apiKeysApi: ApiKeysApi,
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.model.LoginOutcome
|
||||
import com.librechat.android.core.model.User
|
||||
import com.librechat.android.core.model.response.TwoFactorSetupResponse
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.model.LoginOutcome
|
||||
import com.garfiec.librechat.core.model.User
|
||||
import com.garfiec.librechat.core.model.response.TwoFactorSetupResponse
|
||||
|
||||
interface AuthRepository {
|
||||
suspend fun login(email: String, password: String): Result<LoginOutcome>
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.common.result.safeApiCall
|
||||
import com.librechat.android.core.model.LoginOutcome
|
||||
import com.librechat.android.core.model.User
|
||||
import com.librechat.android.core.model.response.TwoFactorSetupResponse
|
||||
import com.librechat.android.core.network.api.AuthApi
|
||||
import com.librechat.android.core.network.api.UserApi
|
||||
import com.librechat.android.core.network.client.TokenManager
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.common.result.safeApiCall
|
||||
import com.garfiec.librechat.core.model.LoginOutcome
|
||||
import com.garfiec.librechat.core.model.User
|
||||
import com.garfiec.librechat.core.model.response.TwoFactorSetupResponse
|
||||
import com.garfiec.librechat.core.network.api.AuthApi
|
||||
import com.garfiec.librechat.core.network.api.UserApi
|
||||
import com.garfiec.librechat.core.network.client.TokenManager
|
||||
|
||||
class AuthRepositoryImpl(
|
||||
private val authApi: AuthApi,
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.model.Balance
|
||||
|
||||
interface BalanceRepository {
|
||||
suspend fun getBalance(): Result<Balance>
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.common.result.safeApiCall
|
||||
import com.garfiec.librechat.core.model.Balance
|
||||
import com.garfiec.librechat.core.network.api.BalanceApi
|
||||
|
||||
class BalanceRepositoryImpl(
|
||||
private val balanceApi: BalanceApi,
|
||||
) : BalanceRepository {
|
||||
|
||||
override suspend fun getBalance(): Result<Balance> = safeApiCall {
|
||||
balanceApi.getBalance()
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.model.Banner
|
||||
|
||||
/** Fetches server-configured banners for display in the app. */
|
||||
interface BannerRepository {
|
||||
suspend fun getBanners(): Result<List<Banner>>
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.common.result.safeApiCall
|
||||
import com.garfiec.librechat.core.model.Banner
|
||||
import com.garfiec.librechat.core.network.api.BannerApi
|
||||
|
||||
class BannerRepositoryImpl(
|
||||
private val bannerApi: BannerApi,
|
||||
) : BannerRepository {
|
||||
|
||||
override suspend fun getBanners(): Result<List<Banner>> =
|
||||
safeApiCall { bannerApi.getBanners() }
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import co.touchlab.kermit.Logger
|
||||
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.model.EModelEndpoint
|
||||
import com.librechat.android.core.model.FileReference
|
||||
import com.librechat.android.core.model.request.AddedConversation
|
||||
import com.librechat.android.core.model.request.ChatRequest
|
||||
import com.librechat.android.core.model.request.EphemeralAgent
|
||||
import com.librechat.android.core.model.request.NO_PARENT
|
||||
import com.garfiec.librechat.core.model.EModelEndpoint
|
||||
import com.garfiec.librechat.core.model.FileReference
|
||||
import com.garfiec.librechat.core.model.request.AddedConversation
|
||||
import com.garfiec.librechat.core.model.request.ChatRequest
|
||||
import com.garfiec.librechat.core.model.request.EphemeralAgent
|
||||
import com.garfiec.librechat.core.model.request.NO_PARENT
|
||||
|
||||
object ChatPayloadBuilder {
|
||||
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.model.FileReference
|
||||
import com.librechat.android.core.model.StreamEvent
|
||||
import com.librechat.android.core.model.request.AddedConversation
|
||||
import com.librechat.android.core.model.request.EphemeralAgent
|
||||
import com.librechat.android.core.model.response.ChatStatusResponse
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.model.FileReference
|
||||
import com.garfiec.librechat.core.model.StreamEvent
|
||||
import com.garfiec.librechat.core.model.request.AddedConversation
|
||||
import com.garfiec.librechat.core.model.request.EphemeralAgent
|
||||
import com.garfiec.librechat.core.model.response.ChatStatusResponse
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface ChatRepository {
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.network.ConnectivityObserver
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.common.result.safeApiCall
|
||||
import com.librechat.android.core.model.FileReference
|
||||
import com.librechat.android.core.model.StreamEvent
|
||||
import com.librechat.android.core.model.request.AddedConversation
|
||||
import com.librechat.android.core.model.request.EphemeralAgent
|
||||
import com.librechat.android.core.model.response.ChatStatusResponse
|
||||
import com.librechat.android.core.network.api.ChatApi
|
||||
import com.librechat.android.core.network.sse.SseClient
|
||||
import com.garfiec.librechat.core.common.network.ConnectivityObserver
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.common.result.safeApiCall
|
||||
import com.garfiec.librechat.core.model.FileReference
|
||||
import com.garfiec.librechat.core.model.StreamEvent
|
||||
import com.garfiec.librechat.core.model.request.AddedConversation
|
||||
import com.garfiec.librechat.core.model.request.EphemeralAgent
|
||||
import com.garfiec.librechat.core.model.response.ChatStatusResponse
|
||||
import com.garfiec.librechat.core.network.api.ChatApi
|
||||
import com.garfiec.librechat.core.network.sse.SseClient
|
||||
import io.ktor.client.HttpClient
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.emitAll
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.model.EndpointConfig
|
||||
import com.librechat.android.core.model.StartupConfig
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.model.EndpointConfig
|
||||
import com.garfiec.librechat.core.model.StartupConfig
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
||||
/**
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.BackendVersion
|
||||
import com.librechat.android.core.common.result.ApiException
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.common.result.safeApiCall
|
||||
import com.librechat.android.core.data.datastore.ConfigCacheDataStore
|
||||
import com.librechat.android.core.model.EndpointConfig
|
||||
import com.librechat.android.core.model.StartupConfig
|
||||
import com.librechat.android.core.network.api.ConfigApi
|
||||
import com.garfiec.librechat.core.common.BackendVersion
|
||||
import com.garfiec.librechat.core.common.result.ApiException
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.common.result.safeApiCall
|
||||
import com.garfiec.librechat.core.data.datastore.ConfigCacheDataStore
|
||||
import com.garfiec.librechat.core.model.EndpointConfig
|
||||
import com.garfiec.librechat.core.model.StartupConfig
|
||||
import com.garfiec.librechat.core.network.api.ConfigApi
|
||||
import io.ktor.client.plugins.HttpRequestTimeoutException
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.model.Conversation
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.model.Conversation
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface ConversationRepository {
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.common.result.safeApiCall
|
||||
import com.librechat.android.core.data.db.dao.ConversationDao
|
||||
import com.librechat.android.core.data.mapper.toEntity
|
||||
import com.librechat.android.core.data.mapper.toModel
|
||||
import com.librechat.android.core.data.mapper.toModels
|
||||
import com.librechat.android.core.model.Conversation
|
||||
import com.librechat.android.core.model.request.ForkConversationRequest
|
||||
import com.librechat.android.core.network.api.ConversationsApi
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.common.result.safeApiCall
|
||||
import com.garfiec.librechat.core.data.db.dao.ConversationDao
|
||||
import com.garfiec.librechat.core.data.mapper.toEntity
|
||||
import com.garfiec.librechat.core.data.mapper.toModel
|
||||
import com.garfiec.librechat.core.data.mapper.toModels
|
||||
import com.garfiec.librechat.core.model.Conversation
|
||||
import com.garfiec.librechat.core.model.request.ForkConversationRequest
|
||||
import com.garfiec.librechat.core.network.api.ConversationsApi
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlin.time.Clock
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.data.db.dao.DraftDao
|
||||
import com.librechat.android.core.data.db.entity.DraftEntity
|
||||
import com.garfiec.librechat.core.data.db.dao.DraftDao
|
||||
import com.garfiec.librechat.core.data.db.entity.DraftEntity
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Job
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.model.FileObject
|
||||
import com.librechat.android.core.model.request.DeleteFileEntry
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.model.FileObject
|
||||
import com.garfiec.librechat.core.model.request.DeleteFileEntry
|
||||
|
||||
interface FileRepository {
|
||||
suspend fun getFiles(): Result<List<FileObject>>
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
package com.librechat.android.core.data.repository
|
||||
package com.garfiec.librechat.core.data.repository
|
||||
|
||||
import com.librechat.android.core.common.result.Result
|
||||
import com.librechat.android.core.common.result.safeApiCall
|
||||
import com.librechat.android.core.model.FileObject
|
||||
import com.librechat.android.core.model.request.DeleteFileEntry
|
||||
import com.librechat.android.core.model.request.DeleteFilesRequest
|
||||
import com.librechat.android.core.network.api.FilesApi
|
||||
import com.librechat.android.core.network.api.FilesExtApi
|
||||
import com.garfiec.librechat.core.common.result.Result
|
||||
import com.garfiec.librechat.core.common.result.safeApiCall
|
||||
import com.garfiec.librechat.core.model.FileObject
|
||||
import com.garfiec.librechat.core.model.request.DeleteFileEntry
|
||||
import com.garfiec.librechat.core.model.request.DeleteFilesRequest
|
||||
import com.garfiec.librechat.core.network.api.FilesApi
|
||||
import com.garfiec.librechat.core.network.api.FilesExtApi
|
||||
import kotlin.uuid.ExperimentalUuidApi
|
||||
import kotlin.uuid.Uuid
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue