use crate::config::ClientConfig;
use crate::error::Error;
use crate::http::HttpClient;
use crate::resources::{
AdminClient, AnalysisClient, ContextClient, DiscoveryClient, ExtractClient, FunctionsClient,
GenerationClient, HealthClient, ImageExtractionClient, InferenceClient, OntologyClient,
OptimizeClient, OsfqlClient, PreferencesClient, QueryClient, RagClient, RlTrainingClient,
RowClient, ScenariosClient, SortsClient, SourcesClient, SpacesClient, TermsClient, UiClient,
};
#[derive(Debug, Clone)]
pub struct ReasoningLayerClient {
sorts: SortsClient,
terms: TermsClient,
inference: InferenceClient,
query: QueryClient,
fuzzy: crate::resources_phase2::FuzzyClient,
constraints: crate::resources_phase2::ConstraintsClient,
namespaces: crate::resources_phase2::NamespacesClient,
collections: crate::resources_phase2::CollectionsClient,
causal: crate::resources_phase2::CausalClient,
statistical: crate::resources_phase2::StatisticalClient,
communities: crate::resources_phase2::CommunitiesClient,
visualization: crate::resources_phase2::VisualizationClient,
reasoning: crate::resources_phase2::ReasoningClient,
control: crate::resources_phase2::ControlClient,
reviews: crate::resources_phase2::ReviewsClient,
action_reviews: crate::resources_phase2::ActionReviewsClient,
webhook_actions: crate::resources_phase2::WebhookActionsClient,
ilp: crate::resources_phase2::IlpClient,
cdl: crate::resources_phase2::CdlClient,
synthetic: crate::resources_phase2::SyntheticClient,
utilities: crate::resources_phase2::UtilitiesClient,
ingestion: crate::resources_phase2::IngestionClient,
execution: crate::resources_phase2::ExecutionClient,
proof_engine: crate::resources_phase2::ProofEngineClient,
conversation: crate::resources_phase2::ConversationClient,
research: crate::resources_phase2::ResearchClient,
cognitive: crate::resources_phase2::CognitiveClient,
oversight: crate::resources_phase2::OversightClient,
neuro_symbolic: crate::resources_phase2::NeuroSymbolicClient,
health: HealthClient,
admin: AdminClient,
osfql: OsfqlClient,
context: ContextClient,
rl_training: RlTrainingClient,
rag: RagClient,
generation: GenerationClient,
image_extraction: ImageExtractionClient,
extract: ExtractClient,
preferences: PreferencesClient,
discovery: DiscoveryClient,
functions: FunctionsClient,
ontology: OntologyClient,
analysis: AnalysisClient,
scenarios: ScenariosClient,
spaces: SpacesClient,
row: RowClient,
sources: SourcesClient,
ui: UiClient,
optimize: OptimizeClient,
}
impl ReasoningLayerClient {
pub fn new(config: ClientConfig) -> Result<Self, Error> {
let resolved = config.resolve()?;
let http = HttpClient::new(resolved)?;
let p2 = crate::resources_phase2::build_all(&http);
Ok(Self {
sorts: SortsClient::new(http.clone()),
terms: TermsClient::new(http.clone()),
inference: InferenceClient::new(http.clone()),
query: QueryClient::new(http.clone()),
fuzzy: p2.fuzzy,
constraints: p2.constraints,
namespaces: p2.namespaces,
collections: p2.collections,
causal: p2.causal,
statistical: p2.statistical,
communities: p2.communities,
visualization: p2.visualization,
reasoning: p2.reasoning,
control: p2.control,
reviews: p2.reviews,
action_reviews: p2.action_reviews,
webhook_actions: p2.webhook_actions,
ilp: p2.ilp,
cdl: p2.cdl,
synthetic: p2.synthetic,
utilities: p2.utilities,
ingestion: p2.ingestion,
execution: p2.execution,
proof_engine: p2.proof_engine,
conversation: p2.conversation,
research: p2.research,
cognitive: p2.cognitive,
oversight: p2.oversight,
neuro_symbolic: p2.neuro_symbolic,
health: HealthClient::new(http.clone()),
admin: AdminClient::new(http.clone()),
osfql: OsfqlClient::new(http.clone()),
context: ContextClient::new(http.clone()),
rl_training: RlTrainingClient::new(http.clone()),
rag: RagClient::new(http.clone()),
generation: GenerationClient::new(http.clone()),
image_extraction: ImageExtractionClient::new(http.clone()),
extract: ExtractClient::new(http.clone()),
preferences: PreferencesClient::new(http.clone()),
discovery: DiscoveryClient::new(http.clone()),
functions: FunctionsClient::new(http.clone()),
ontology: OntologyClient::new(http.clone()),
analysis: AnalysisClient::new(http.clone()),
scenarios: ScenariosClient::new(http.clone()),
spaces: SpacesClient::new(http.clone()),
row: RowClient::new(http.clone()),
sources: SourcesClient::new(http.clone()),
ui: UiClient::new(http.clone()),
optimize: OptimizeClient::new(http),
})
}
pub(crate) fn http(&self) -> &HttpClient {
self.sorts.http()
}
pub fn sorts(&self) -> &SortsClient {
&self.sorts
}
pub fn terms(&self) -> &TermsClient {
&self.terms
}
pub fn inference(&self) -> &InferenceClient {
&self.inference
}
pub fn query(&self) -> &QueryClient {
&self.query
}
pub fn types(&self) -> &SortsClient {
&self.sorts
}
pub fn records(&self) -> &TermsClient {
&self.terms
}
pub fn rules(&self) -> &InferenceClient {
&self.inference
}
pub fn agents(&self) -> &crate::resources_phase2::CognitiveClient {
&self.cognitive
}
pub fn fuzzy(&self) -> &crate::resources_phase2::FuzzyClient {
&self.fuzzy
}
pub fn constraints(&self) -> &crate::resources_phase2::ConstraintsClient {
&self.constraints
}
pub fn namespaces(&self) -> &crate::resources_phase2::NamespacesClient {
&self.namespaces
}
pub fn collections(&self) -> &crate::resources_phase2::CollectionsClient {
&self.collections
}
pub fn causal(&self) -> &crate::resources_phase2::CausalClient {
&self.causal
}
pub fn statistical(&self) -> &crate::resources_phase2::StatisticalClient {
&self.statistical
}
pub fn communities(&self) -> &crate::resources_phase2::CommunitiesClient {
&self.communities
}
pub fn visualization(&self) -> &crate::resources_phase2::VisualizationClient {
&self.visualization
}
pub fn reasoning(&self) -> &crate::resources_phase2::ReasoningClient {
&self.reasoning
}
pub fn control(&self) -> &crate::resources_phase2::ControlClient {
&self.control
}
pub fn reviews(&self) -> &crate::resources_phase2::ReviewsClient {
&self.reviews
}
pub fn action_reviews(&self) -> &crate::resources_phase2::ActionReviewsClient {
&self.action_reviews
}
pub fn webhook_actions(&self) -> &crate::resources_phase2::WebhookActionsClient {
&self.webhook_actions
}
pub fn ilp(&self) -> &crate::resources_phase2::IlpClient {
&self.ilp
}
pub fn cdl(&self) -> &crate::resources_phase2::CdlClient {
&self.cdl
}
pub fn synthetic(&self) -> &crate::resources_phase2::SyntheticClient {
&self.synthetic
}
pub fn utilities(&self) -> &crate::resources_phase2::UtilitiesClient {
&self.utilities
}
pub fn ingestion(&self) -> &crate::resources_phase2::IngestionClient {
&self.ingestion
}
pub fn execution(&self) -> &crate::resources_phase2::ExecutionClient {
&self.execution
}
pub fn proof_engine(&self) -> &crate::resources_phase2::ProofEngineClient {
&self.proof_engine
}
pub fn conversation(&self) -> &crate::resources_phase2::ConversationClient {
&self.conversation
}
pub fn research(&self) -> &crate::resources_phase2::ResearchClient {
&self.research
}
pub fn cognitive(&self) -> &crate::resources_phase2::CognitiveClient {
&self.cognitive
}
pub fn oversight(&self) -> &crate::resources_phase2::OversightClient {
&self.oversight
}
pub fn neuro_symbolic(&self) -> &crate::resources_phase2::NeuroSymbolicClient {
&self.neuro_symbolic
}
pub fn health(&self) -> &HealthClient {
&self.health
}
pub fn admin(&self) -> &AdminClient {
&self.admin
}
pub fn osfql(&self) -> &OsfqlClient {
&self.osfql
}
pub fn context(&self) -> &ContextClient {
&self.context
}
pub fn rl_training(&self) -> &RlTrainingClient {
&self.rl_training
}
pub fn rag(&self) -> &RagClient {
&self.rag
}
pub fn generation(&self) -> &GenerationClient {
&self.generation
}
pub fn image_extraction(&self) -> &ImageExtractionClient {
&self.image_extraction
}
pub fn extract(&self) -> &ExtractClient {
&self.extract
}
pub fn preferences(&self) -> &PreferencesClient {
&self.preferences
}
pub fn discovery(&self) -> &DiscoveryClient {
&self.discovery
}
pub fn functions(&self) -> &FunctionsClient {
&self.functions
}
pub fn ontology(&self) -> &OntologyClient {
&self.ontology
}
pub fn analysis(&self) -> &AnalysisClient {
&self.analysis
}
pub fn scenarios(&self) -> &ScenariosClient {
&self.scenarios
}
pub fn spaces(&self) -> &SpacesClient {
&self.spaces
}
pub fn row(&self) -> &RowClient {
&self.row
}
pub fn sources(&self) -> &SourcesClient {
&self.sources
}
pub fn ui(&self) -> &UiClient {
&self.ui
}
pub fn optimize(&self) -> &OptimizeClient {
&self.optimize
}
}