Skip to main content

systemprompt_runtime/context/
repositories.rs

1//! Repository accessors: the composition root builds each repository once
2//! and every consumer reaches it through `AppContext`.
3//!
4//! Copyright (c) systemprompt.io — Business Source License 1.1.
5//! See <https://systemprompt.io> for licensing details.
6
7use std::sync::Arc;
8
9use systemprompt_agent::repository::A2ARepositories;
10use systemprompt_ai::repository::AiRepositories;
11use systemprompt_analytics::repository::AnalyticsRepositories;
12use systemprompt_content::repository::ContentRepositories;
13use systemprompt_database::ServiceRepository;
14use systemprompt_files::FileRepository;
15use systemprompt_marketplace::managed::ManagedRepository;
16use systemprompt_mcp::repository::McpSessionRepository;
17use systemprompt_oauth::repository::OAuthRepositories;
18use systemprompt_users::UserRepository;
19
20use super::AppContext;
21
22impl AppContext {
23    pub const fn a2a_repositories(&self) -> &Arc<A2ARepositories> {
24        &self.data.a2a_repositories
25    }
26
27    pub const fn content_repositories(&self) -> &Arc<ContentRepositories> {
28        &self.data.content_repositories
29    }
30
31    pub const fn oauth_repositories(&self) -> &Arc<OAuthRepositories> {
32        &self.data.oauth_repositories
33    }
34
35    pub const fn user_repository(&self) -> &Arc<UserRepository> {
36        &self.data.user_repository
37    }
38
39    pub const fn service_repository(&self) -> &Arc<ServiceRepository> {
40        &self.data.service_repository
41    }
42
43    pub const fn ai_repositories(&self) -> &Arc<AiRepositories> {
44        &self.data.ai_repositories
45    }
46
47    pub const fn feedback_snapshots_repository(
48        &self,
49    ) -> &Arc<systemprompt_analytics::snapshots::FeedbackSnapshotsRepository> {
50        &self.data.feedback_snapshots_repository
51    }
52
53    pub const fn feedback_facts_repository(
54        &self,
55    ) -> &Arc<systemprompt_analytics::feedback::FeedbackFactsRepository> {
56        &self.data.feedback_facts_repository
57    }
58
59    pub const fn analytics_repositories(&self) -> &Arc<AnalyticsRepositories> {
60        &self.data.analytics_repositories
61    }
62
63    pub const fn file_repository(&self) -> &Arc<FileRepository> {
64        &self.data.file_repository
65    }
66
67    pub const fn mcp_session_repository(&self) -> &Arc<McpSessionRepository> {
68        &self.data.mcp_session_repository
69    }
70
71    pub const fn managed_repository(&self) -> &Arc<ManagedRepository> {
72        &self.data.managed_repository
73    }
74}