pub mod error;
pub(crate) mod extension;
pub mod models;
pub mod repository;
pub mod services;
pub use extension::AiExtension;
pub use services::core::{AiService, AiServiceProviders, ImageService, ImageServiceParts};
pub use services::storage::{ImageStorage, StorageConfig, StorageConfigError};
pub use services::tools::NoopToolProvider;
pub use systemprompt_models::ai::{GenerateResponseParams, GoogleSearchParams};
pub use systemprompt_models::ai::{
AiMessage, AiRequest, AiRequestBuilder, AiResponse, MessageRole, ModelConfig, ModelHint,
ModelPreferences, ProviderConfig, ResponseFormat, SamplingParams, SearchGroundedResponse,
StructuredOutputOptions,
};
pub use systemprompt_models::ai::tools::{CallToolResult, McpTool, ToolCall};
pub use systemprompt_manifest::services::AiConfig;
pub use models::image_generation::{
AspectRatio, GeneratedImageRecord, ImageGenerationRequest, ImageGenerationResponse,
ImageResolution, ReferenceImage,
};
pub use services::providers::{GeminiImageProvider, ImageProvider, ImageProviderCapabilities};
pub use repository::{
AiGatewayPolicyRepository, AiQuotaBucketRepository, AiRequestPayloadRepository,
AiRequestRepository, AiSafetyFindingRepository, GatewayPolicyRow, IncrementParams,
InsertSafetyFinding, QuotaBucketDelta, QuotaBucketState, SafetyFindingRollupRow,
UpsertPayloadParams,
};
pub use services::upstream::{UpstreamCall, UpstreamDialect, UpstreamTarget, UpstreamTargetError};