Skip to main content

agent_sdk_store_supabase/
bundle.rs

1use crate::{
2    SupabaseAgentPoolStore, SupabaseCheckpointStore, SupabaseClient, SupabaseContentStore,
3    SupabaseEventArchive, SupabaseProviderArgumentStore, SupabaseRunJournal,
4};
5
6#[derive(Clone)]
7/// Supabase-backed store bundle sharing one client.
8pub struct SupabaseStoreBundle {
9    client: SupabaseClient,
10}
11
12impl SupabaseStoreBundle {
13    pub fn new(client: SupabaseClient) -> Self {
14        Self { client }
15    }
16
17    pub fn journal(&self) -> SupabaseRunJournal {
18        SupabaseRunJournal::new(self.client.clone())
19    }
20
21    pub fn checkpoints(&self) -> SupabaseCheckpointStore {
22        SupabaseCheckpointStore::new(self.client.clone())
23    }
24
25    pub fn content(&self) -> SupabaseContentStore {
26        SupabaseContentStore::new(self.client.clone())
27    }
28
29    pub fn event_archive(&self) -> SupabaseEventArchive {
30        SupabaseEventArchive::new(self.client.clone())
31    }
32
33    pub fn provider_arguments(&self) -> SupabaseProviderArgumentStore {
34        SupabaseProviderArgumentStore::new(self.client.clone())
35    }
36
37    pub fn agent_pool(&self) -> SupabaseAgentPoolStore {
38        SupabaseAgentPoolStore::new(self.client.clone())
39    }
40}