1#![warn(missing_docs)]
8#![warn(rust_2018_idioms)]
9
10pub mod error;
13
14pub use cognis_core::schema_for;
16pub use cognis_core::schemars;
17pub use cognis_core::schemars::JsonSchema;
18
19pub use cognis_core::message;
21pub use cognis_core::{AiMessage, HumanMessage, Message, SystemMessage, ToolCall, ToolMessage};
22
23pub mod schema;
24pub use schema::schema_for_tool;
25
26pub mod chat;
27pub use chat::{ChatOptions, ChatResponse, HealthStatus, StreamChunk, ToolCallDelta, Usage};
28
29pub mod tools;
30pub use tools::{
31 BaseTool, SchemaBasedTool, Tool, ToolDefinition, ToolInput, ToolOutput, ToolRegistry,
32};
33pub mod client;
34pub use client::{Client, ClientBuilder};
35
36pub mod factory;
37pub use factory::{ProviderConstructor, ProviderRegistry, ProviderSpec};
38
39pub mod provider;
40#[cfg(feature = "openai")]
41pub use provider::openrouter::{OpenRouterBuilder, OpenRouterProvider};
42pub use provider::wrappers::{
43 Capability, ChatInterceptor, CircuitBreakerProvider, CircuitState, CircuitStats,
44 FailureClassifier, FnChatInterceptor, GracefulDegradationProvider, InterceptorProvider,
45 LoadBalancerProvider, LoadBalancingStrategy, ProviderRoute, RandomStrategy,
46 RetryableClassifier, RoundRobinStrategy, RoutingProvider, RoutingStrategy,
47 WeightedRoundRobinStrategy,
48};
49pub use provider::{LLMProvider, Provider};
50
51pub mod streaming;
52pub use streaming::{Aggregated, StreamAggregator};
53
54pub mod usage;
55pub use usage::UsageTracker;
56
57pub mod structured;
58pub use structured::StructuredClient;
59
60pub mod prelude {
62 pub use crate::schema_for;
63 pub use crate::{
64 AiMessage, HumanMessage, JsonSchema, Message, SystemMessage, ToolCall, ToolMessage,
65 };
66 pub use cognis_core::prelude::*;
67}