presentation/providers/providers library

Classes

Chat
ChatFamily
See also Chat.
ChatMessage
ChatParams
Parameters for identifying a chat session.
ChatProvider
See also Chat.
ChatState
CurriculumLevelsFamily
See also curriculumLevels.
CurriculumLevelsProvider
See also curriculumLevels.
DomainBySlugFamily
Resolve a domain slug to its entity from the already-loaded domains list.
DomainBySlugProvider
Resolve a domain slug to its entity from the already-loaded domains list.
DomainProgressFamily
Map of topicId -> mastery level string for all topics in a domain.
DomainProgressProvider
Map of topicId -> mastery level string for all topics in a domain.
MasteryOverridesFamily
See also masteryOverrides.
MasteryOverridesProvider
See also masteryOverrides.
ReadingQuestionsFamily
Reading questions for active reading in the lesson viewer.
ReadingQuestionsProvider
Reading questions for active reading in the lesson viewer.
RecommendedStep
TopicChunksFamily
See also topicChunks.
TopicChunksProvider
See also topicChunks.
TopicIdsWithContentFamily
See also topicIdsWithContent.
TopicIdsWithContentProvider
See also topicIdsWithContent.
TopicNameFamily
Resolve a topic's title by ID (used as fallback when title isn't passed via route).
TopicNameProvider
Resolve a topic's title by ID (used as fallback when title isn't passed via route).
TopicNotesFamily
See also topicNotes.
TopicNotesProvider
See also topicNotes.
TopicProgressFamily
Single topic progress (used by lesson viewer to show read state).
TopicProgressProvider
Single topic progress (used by lesson viewer to show read state).
TopicTreeFamily
See also topicTree.
TopicTreeProvider
See also topicTree.

Mixins

ChatRef
CurriculumLevelsRef
DomainBySlugRef
DomainProgressRef
MasteryOverridesRef
ReadingQuestionsRef
TopicChunksRef
TopicIdsWithContentRef
TopicNameRef
TopicNotesRef
TopicProgressRef
TopicTreeRef

Constants

chatProvider → const ChatFamily
See also Chat.
curriculumLevelsProvider → const CurriculumLevelsFamily
See also curriculumLevels.
domainBySlugProvider → const DomainBySlugFamily
Resolve a domain slug to its entity from the already-loaded domains list.
domainProgressProvider → const DomainProgressFamily
Map of topicId -> mastery level string for all topics in a domain.
masteryOverridesProvider → const MasteryOverridesFamily
See also masteryOverrides.
readingQuestionsProvider → const ReadingQuestionsFamily
Reading questions for active reading in the lesson viewer.
topicChunksProvider → const TopicChunksFamily
See also topicChunks.
topicIdsWithContentProvider → const TopicIdsWithContentFamily
See also topicIdsWithContent.
topicNameProvider → const TopicNameFamily
Resolve a topic's title by ID (used as fallback when title isn't passed via route).
topicNotesProvider → const TopicNotesFamily
See also topicNotes.
topicProgressProvider → const TopicProgressFamily
Single topic progress (used by lesson viewer to show read state).
topicTreeProvider → const TopicTreeFamily
See also topicTree.

Properties

aiDatasourceProvider Provider<AiDatasource>
The active AI datasource, based on the user's selected provider.
final
allProgressProvider AutoDisposeFutureProvider<List<UserTopicProgressModel>>
All progress rows for the current user (used by progress dashboard).
final
chunkSyncServiceProvider Provider<ChunkSyncService?>
See also chunkSyncService.
final
contentRetrieverProvider Provider<ContentRetriever>
See also contentRetriever.
final
domainsProvider AutoDisposeFutureProvider<List<DomainEntity>>
See also domains.
final
dueCardsProvider AutoDisposeFutureProvider<List<ReviewCard>>
See also dueCards.
final
goalsProvider AutoDisposeFutureProvider<List<LearningGoal>>
See also goals.
final
googleAuthServiceProvider Provider<GoogleAuthService>
See also googleAuthService.
final
localEmbeddingProvider Provider<LocalEmbeddingDatasource?>
See also localEmbedding.
final
localVectorStoreProvider Provider<LocalVectorStore?>
See also localVectorStore.
final
myCurriculumDomainsProvider AutoDisposeFutureProvider<List<DomainEntity>>
Domains the user has personal access to: owned + shared + assigned (via curriculum_assignments). Does NOT include public-visibility domains the user hasn't engaged with. Used by progress-focused screens (home card, progress dashboard, domain browse) so "no curriculum" means "no domains shown".
final
myDomainsProvider AutoDisposeFutureProvider<List<DomainEntity>>
See also myDomains.
final
nextReviewDateProvider AutoDisposeFutureProvider<DateTime?>
See also nextReviewDate.
final
notesCountProvider AutoDisposeFutureProvider<int>
See also notesCount.
final
openAiAuthServiceProvider Provider<OpenAiAuthService>
Auth service providers for OAuth-based AI providers.
final
preferredVariantsProvider AutoDisposeFutureProvider<Map<String, String>>
Preferred curriculum variant per domain family, persisted in profiles.settings.
final
recentSessionsProvider AutoDisposeFutureProvider<List<LearningSession>>
See also recentSessions.
final
recommendedNextStepProvider AutoDisposeFutureProvider<RecommendedStep?>
See also recommendedNextStep.
final
secureStorageProvider Provider<FlutterSecureStorage>
See also secureStorage.
final
selectedAiProviderProvider AutoDisposeFutureProvider<AiProvider>
Which AI provider the user has selected (persisted in secure storage).
final
sharedWithMeProvider AutoDisposeFutureProvider<List<DomainEntity>>
See also sharedWithMe.
final
supabaseDatasourceProvider Provider<SupabaseDatasource> Providers
Root SupabaseDatasource singleton. Every screen/provider that reads Supabase data watches this provider — it's the one-and-only instance wired to Supabase.instance.client. Kept alive for the app lifetime.
final
totalCardCountProvider AutoDisposeFutureProvider<int>
See also totalCardCount.
final
useAiProxyProvider AutoDisposeFutureProvider<bool>
Whether the AI proxy is enabled (routes calls through Supabase Edge Function).
final
userNotesProvider AutoDisposeFutureProvider<List<UserNote>>
See also userNotes.
final
userPersonaProvider AutoDisposeFutureProvider<String?>
User persona ('solo' or 'team_lead'), persisted in profiles.settings. Null means the user hasn't chosen yet (triggers persona selection).
final

Functions

aiDatasource(Ref<Object?> ref) AiDatasource
The active AI datasource, based on the user's selected provider.
allProgress(Ref<Object?> ref) Future<List<UserTopicProgressModel>>
All progress rows for the current user (used by progress dashboard).
chunkSyncService(Ref<Object?> ref) ChunkSyncService?
contentRetriever(Ref<Object?> ref) ContentRetriever
curriculumLevels(Ref<Object?> ref, String domainId) Future<List<CurriculumLevel>>
domainBySlug(Ref<Object?> ref, String slug) DomainEntity?
Resolve a domain slug to its entity from the already-loaded domains list.
domainProgress(Ref<Object?> ref, String domainId) Future<Map<String, String>>
Map of topicId -> mastery level string for all topics in a domain.
domains(Ref<Object?> ref) Future<List<DomainEntity>>
dueCards(Ref<Object?> ref) Future<List<ReviewCard>>
getProviderCredential(Ref<Object?> ref, AiProvider provider) Future<String?>
Read the user's credential for the given provider. API key for Claude, OAuth access token for OpenAI/Gemini.
goals(Ref<Object?> ref) Future<List<LearningGoal>>
googleAuthService(Ref<Object?> ref) GoogleAuthService
localEmbedding(Ref<Object?> ref) LocalEmbeddingDatasource?
localVectorStore(Ref<Object?> ref) LocalVectorStore?
masteryOverrides(Ref<Object?> ref, String? topicId) Future<List<MasteryOverride>>
myCurriculumDomains(Ref<Object?> ref) Future<List<DomainEntity>>
Domains the user has personal access to: owned + shared + assigned (via curriculum_assignments). Does NOT include public-visibility domains the user hasn't engaged with. Used by progress-focused screens (home card, progress dashboard, domain browse) so "no curriculum" means "no domains shown".
myDomains(Ref<Object?> ref) Future<List<DomainEntity>>
nextReviewDate(Ref<Object?> ref) Future<DateTime?>
notesCount(Ref<Object?> ref) Future<int>
openAiAuthService(Ref<Object?> ref) OpenAiAuthService
Auth service providers for OAuth-based AI providers.
preferredVariants(Ref<Object?> ref) Future<Map<String, String>>
Preferred curriculum variant per domain family, persisted in profiles.settings.
readingQuestions(Ref<Object?> ref, String topicId) Future<List<ReadingQuestion>>
Reading questions for active reading in the lesson viewer.
recentSessions(Ref<Object?> ref) Future<List<LearningSession>>
recommendedNextStep(Ref<Object?> ref) Future<RecommendedStep?>
secureStorage(Ref<Object?> ref) FlutterSecureStorage
selectedAiProvider(Ref<Object?> ref) Future<AiProvider>
Which AI provider the user has selected (persisted in secure storage).
sharedWithMe(Ref<Object?> ref) Future<List<DomainEntity>>
supabaseDatasource(Ref<Object?> ref) SupabaseDatasource Providers
Root SupabaseDatasource singleton. Every screen/provider that reads Supabase data watches this provider — it's the one-and-only instance wired to Supabase.instance.client. Kept alive for the app lifetime.
topicChunks(Ref<Object?> ref, String topicId) Future<List<ContentChunk>>
topicIdsWithContent(Ref<Object?> ref, String domainId) Future<Set<String>>
topicName(Ref<Object?> ref, String topicId) Future<String?>
Resolve a topic's title by ID (used as fallback when title isn't passed via route).
topicNotes(Ref<Object?> ref, String topicId) Future<List<UserNote>>
topicProgress(Ref<Object?> ref, String topicId) Future<UserTopicProgressModel?>
Single topic progress (used by lesson viewer to show read state).
topicTree(Ref<Object?> ref, String domainId) Future<List<Topic>>
totalCardCount(Ref<Object?> ref) Future<int>
useAiProxy(Ref<Object?> ref) Future<bool>
Whether the AI proxy is enabled (routes calls through Supabase Edge Function).
userNotes(Ref<Object?> ref) Future<List<UserNote>>
userPersona(Ref<Object?> ref) Future<String?>
User persona ('solo' or 'team_lead'), persisted in profiles.settings. Null means the user hasn't chosen yet (triggers persona selection).

Typedefs

AiDatasourceRef = ProviderRef<AiDatasource>
AllProgressRef = AutoDisposeFutureProviderRef<List<UserTopicProgressModel>>
ChunkSyncServiceRef = ProviderRef<ChunkSyncService?>
ContentRetrieverRef = ProviderRef<ContentRetriever>
DomainsRef = AutoDisposeFutureProviderRef<List<DomainEntity>>
DueCardsRef = AutoDisposeFutureProviderRef<List<ReviewCard>>
GoalsRef = AutoDisposeFutureProviderRef<List<LearningGoal>>
GoogleAuthServiceRef = ProviderRef<GoogleAuthService>
LocalEmbeddingRef = ProviderRef<LocalEmbeddingDatasource?>
LocalVectorStoreRef = ProviderRef<LocalVectorStore?>
MyCurriculumDomainsRef = AutoDisposeFutureProviderRef<List<DomainEntity>>
MyDomainsRef = AutoDisposeFutureProviderRef<List<DomainEntity>>
NextReviewDateRef = AutoDisposeFutureProviderRef<DateTime?>
NotesCountRef = AutoDisposeFutureProviderRef<int>
OpenAiAuthServiceRef = ProviderRef<OpenAiAuthService>
PreferredVariantsRef = AutoDisposeFutureProviderRef<Map<String, String>>
RecentSessionsRef = AutoDisposeFutureProviderRef<List<LearningSession>>
RecommendedNextStepRef = AutoDisposeFutureProviderRef<RecommendedStep?>
SecureStorageRef = ProviderRef<FlutterSecureStorage>
SelectedAiProviderRef = AutoDisposeFutureProviderRef<AiProvider>
SharedWithMeRef = AutoDisposeFutureProviderRef<List<DomainEntity>>
SupabaseDatasourceRef = ProviderRef<SupabaseDatasource>
TotalCardCountRef = AutoDisposeFutureProviderRef<int>
UseAiProxyRef = AutoDisposeFutureProviderRef<bool>
UserNotesRef = AutoDisposeFutureProviderRef<List<UserNote>>
UserPersonaRef = AutoDisposeFutureProviderRef<String?>