agentics_persistence/repositories/
mod.rs1mod agents;
8mod challenge_review_records;
9mod challenges;
10mod evaluation_jobs;
11mod leaderboard;
12mod maintenance;
13mod pioneer_codes;
14mod sessions;
15mod solution_submissions;
16
17use sqlx::PgPool;
18
19pub use agents::AgentsRepository;
20pub use challenge_review_records::ChallengeReviewRecordsRepository;
21pub use challenges::ChallengesRepository;
22pub use evaluation_jobs::EvaluationJobsRepository;
23pub use leaderboard::LeaderboardRepository;
24pub use maintenance::MaintenanceRepository;
25pub use pioneer_codes::PioneerCodesRepository;
26pub use sessions::SessionsRepository;
27pub use solution_submissions::SolutionSubmissionsRepository;
28
29pub use crate::db::agents::{AgentRecord, AuthenticatedAgent, RegisterAgentInput};
30pub use crate::db::challenge_creation::{
31 AdminChallengePrivateAssetRecord, BeginChallengeReviewRecordValidationInput,
32 ChallengePrivateAssetPurgeRecord, ChallengePrivateAssetRecord, ChallengeReviewRecordRecord,
33 ChallengeReviewValidationRecord, ClaimedChallengeReviewRecordForPublish,
34 CreateChallengePrivateAssetInput, CreateChallengeReviewRecordAuditEventInput,
35 CreateChallengeReviewRecordInput, FinishChallengeReviewRecordValidationInput,
36 PublishArchiveChallengeReviewRecordInput, PublishNewChallengeReviewRecordInput,
37};
38pub use crate::db::challenges::{
39 AdminChallengeListItemRecord, ChallengeCatalogFilters, ChallengeMoltbookDiscussionRecord,
40 ChallengeRecord, ChallengeShortlistRecord, ChallengeShortlistRevisionRecord,
41 ChallengeShortlistedAgentRecord, CreateChallengeShortlistRevisionInput,
42 CreatorChallengeParticipantRecord, CreatorChallengeParticipantsRecord,
43 CreatorChallengeStatsRecord, PublishChallengeInput, PublishChallengeRecord,
44 PublishedChallengeList, PublishedChallengeListItemRecord,
45};
46pub use crate::db::evaluation_jobs::{
47 EvaluationJobRecord, QueueEvaluationJobInput, RunnerJobClaimRecord,
48};
49pub use crate::db::evaluation_policy::PublishedChallengeAdmission;
50pub use crate::db::evaluations::{MarkEvaluationStartedInput, PersistedEvaluationResult};
51pub use crate::db::leaderboard::{LeaderboardMetricEntry, LeaderboardRecord};
52pub use crate::db::maintenance::{HeartbeatPayload, ServiceHeartbeatRecord, StaleJobReapResult};
53pub use crate::db::pioneer_codes::{
54 CreatePioneerCodeInput, PioneerCodeRecord, PioneerCodeRegistrationKind, PioneerCodeUseRecord,
55 RevokePioneerCodeOutcome,
56};
57pub use crate::db::sessions::{
58 AdminServiceTokenRecord, AuthenticatedAdminServiceToken, AuthenticatedCreatorApiToken,
59 AuthenticatedHumanSession, ConsumedGithubSignInState, CreateAdminServiceTokenInput,
60 CreateCreatorApiTokenInput, CreateGithubSignInStateInput, CreateHumanSessionInput,
61 CreatorApiTokenRecord, DeleteHumanAccountOutcome, HumanRecord, ResolveGithubHumanInput,
62};
63pub use crate::db::solution_submissions::{
64 AdminSolutionSubmissionListItemRecord, CreateSolutionSubmissionInput,
65 PublicObserverStatsRecord, PublicSolutionSubmissionListItemRecord,
66 SolutionSubmissionQuotaAdmission, SolutionSubmissionRecord,
67};
68
69#[derive(Debug, Clone)]
71pub struct Repositories {
72 pool: PgPool,
73}
74
75impl Repositories {
76 pub fn new(pool: &PgPool) -> Self {
78 Self { pool: pool.clone() }
79 }
80
81 pub fn agents(&self) -> AgentsRepository<'_> {
82 AgentsRepository { pool: &self.pool }
83 }
84
85 pub fn challenges(&self) -> ChallengesRepository<'_> {
86 ChallengesRepository { pool: &self.pool }
87 }
88
89 pub fn challenge_review_records(&self) -> ChallengeReviewRecordsRepository<'_> {
90 ChallengeReviewRecordsRepository { pool: &self.pool }
91 }
92
93 pub fn solution_submissions(&self) -> SolutionSubmissionsRepository<'_> {
94 SolutionSubmissionsRepository { pool: &self.pool }
95 }
96
97 pub fn evaluation_jobs(&self) -> EvaluationJobsRepository<'_> {
98 EvaluationJobsRepository { pool: &self.pool }
99 }
100
101 pub fn leaderboard(&self) -> LeaderboardRepository<'_> {
102 LeaderboardRepository { pool: &self.pool }
103 }
104
105 pub fn pioneer_codes(&self) -> PioneerCodesRepository<'_> {
106 PioneerCodesRepository { pool: &self.pool }
107 }
108
109 pub fn sessions(&self) -> SessionsRepository<'_> {
110 SessionsRepository { pool: &self.pool }
111 }
112
113 pub fn maintenance(&self) -> MaintenanceRepository<'_> {
114 MaintenanceRepository { pool: &self.pool }
115 }
116}