Skip to main content

cognis_llm/
lib.rs

1//! # cognis-llm
2//!
3//! v2-beta LLM client. Re-exports `error`, `schemars`, and `Message` from
4//! cognis-core so v2 user code can target a single `crate_path =
5//! "cognis_llm"` and have all macro-generated paths resolve.
6
7#![warn(missing_docs)]
8#![warn(rust_2018_idioms)]
9
10// Re-export the cognis-core error module so macro-generated code that
11// targets `cognis_llm::error::*` resolves transparently.
12pub mod error;
13
14// Re-export schemars for the same reason.
15pub use cognis_core::schema_for;
16pub use cognis_core::schemars;
17pub use cognis_core::schemars::JsonSchema;
18
19// Re-export Message + variants since they're the LLM-conversation primitive.
20pub 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
60/// Common imports for v2 user code building agents and tools.
61pub 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}