pub mod task_store;
pub mod tenant;
#[cfg(any(feature = "sqlite", feature = "postgres"))]
pub(crate) mod cursor;
pub(crate) mod pagination;
#[cfg(feature = "sqlite")]
pub mod migration;
#[cfg(feature = "sqlite")]
pub mod sqlite_store;
#[cfg(feature = "sqlite")]
pub mod tenant_sqlite_store;
#[cfg(feature = "postgres")]
pub mod pg_migration;
#[cfg(feature = "postgres")]
pub mod postgres_store;
#[cfg(feature = "postgres")]
pub mod tenant_postgres_store;
pub use task_store::{InMemoryTaskStore, TaskStore, TaskStoreConfig};
pub use tenant::{TenantAwareInMemoryTaskStore, TenantContext, TenantStoreConfig};
#[cfg(feature = "sqlite")]
pub(crate) fn status_timestamp_sqlite(ts: Option<&str>) -> Option<String> {
let millis = ts.and_then(a2a_protocol_types::parse_iso8601_to_unix_millis)?;
let iso = a2a_protocol_types::unix_millis_to_iso8601(millis);
Some(format!("{} {}", &iso[..10], &iso[11..23]))
}
#[cfg(feature = "postgres")]
pub(crate) fn status_timestamp_rfc3339(ts: Option<&str>) -> Option<String> {
let millis = ts.and_then(a2a_protocol_types::parse_iso8601_to_unix_millis)?;
Some(a2a_protocol_types::unix_millis_to_iso8601(millis))
}
#[cfg(feature = "sqlite")]
pub use migration::{Migration, MigrationRunner};
#[cfg(feature = "sqlite")]
pub use sqlite_store::SqliteTaskStore;
#[cfg(feature = "sqlite")]
pub use tenant_sqlite_store::TenantAwareSqliteTaskStore;
#[cfg(feature = "postgres")]
pub use pg_migration::{PgMigration, PgMigrationRunner};
#[cfg(feature = "postgres")]
pub use postgres_store::PostgresTaskStore;
#[cfg(feature = "postgres")]
pub use tenant_postgres_store::TenantAwarePostgresTaskStore;