Skip to main content

cognis_core/
lib.rs

1//! # cognis-core
2//!
3//! v2-beta foundation: typed `Runnable<I, O>` trait + supporting primitives.
4//!
5//! Top-level modules:
6//! - [`runnable`] — the `Runnable<I, O>` trait and `RunnableConfig`.
7//! - [`runnable_ext`] — fluent `.pipe()`, `.with_retry()`, etc. on any runnable.
8//! - [`message`] — typed chat messages.
9//! - [`stream`] — `Event` taxonomy, `Observer`, `RunnableStream`, `EventStream`.
10//! - [`error`] — `CognisError`, `Result`, `InterruptKind`.
11//! - [`extensions`] — typed key-value bag (`tower::Extensions`-style).
12//! - [`prompts`] — typed prompt templates.
13//! - [`output_parsers`] — typed parsers from `String` to a target type.
14//! - [`compose`] — `Pipe`, `Parallel`, `Branch`, `Lambda`, `Each`, `Passthrough`.
15//! - [`wrappers`] — `Retry`, `Fallback`, `Timeout`, `Cache`.
16
17#![warn(missing_docs)]
18#![warn(rust_2018_idioms)]
19
20pub mod callbacks;
21pub mod compose;
22pub mod content;
23pub mod error;
24pub mod extensions;
25pub mod json_merge;
26pub mod message;
27pub mod output_parsers;
28pub mod prompts;
29pub mod runnable;
30pub mod runnable_ext;
31pub mod security;
32pub mod serialization;
33pub mod stream;
34pub mod tokenizer;
35pub mod wrappers;
36
37pub use callbacks::{
38    BuiltHandler, CallbackHandler, CallbackManager, HandlerBuilder, HandlerObserver,
39};
40pub use content::{
41    base64_decode, base64_encode, image_source_from_path, mime_from_path, AudioSource, ContentPart,
42    ImageSource,
43};
44pub use error::{CognisError, InterruptKind, Result};
45pub use extensions::Extensions;
46pub use json_merge::deep_merge_json;
47pub use message::{
48    merge_message_runs, message_from_chunks, trim_messages, trim_messages_custom, AiChunk,
49    AiMessage, HumanChunk, HumanMessage, Message, MessageChunk, RemoveMessage, SystemChunk,
50    SystemMessage, ToolCall, ToolCallChunk, ToolChunk, ToolMessage, TrimStrategy,
51};
52pub use runnable::{Runnable, RunnableConfig};
53pub use runnable_ext::RunnableExt;
54pub use security::is_public_unicast;
55pub use serialization::{Loader, RunnableDefinition, Serializable};
56pub use stream::{Event, EventStream, Observer, RunnableStream};
57pub use tokenizer::{CharTokenizer, FnTokenizer, Tokenizer};
58
59/// Re-export of the [`schemars`] crate. v2 user code uses
60/// `cognis_core::schemars::JsonSchema` for derive-driven schema generation.
61pub use schemars;
62pub use schemars::{schema_for, JsonSchema};
63
64/// Common imports for v2 user code.
65pub mod prelude {
66    pub use crate::compose::{lambda, pipe, Branch, Each, Lambda, Parallel, Passthrough, Pipe};
67    pub use crate::output_parsers::{
68        BooleanParser, CommaListParser, JsonExtraction, JsonExtractor, JsonParser,
69        NumberedListParser, OutputParser, StringParser, StructuredOutputConfig,
70        StructuredOutputParser, XmlParser,
71    };
72    pub use crate::prompts::{ChatPromptTemplate, FewShotTemplate, PromptTemplate, Role};
73    pub use crate::schema_for;
74    pub use crate::wrappers::{
75        Assign, AssignOutput, Bind, Cache, CacheBackend, ConfigKey, Configurable, Fallback,
76        MemoryCache, Retry, RetryPolicy, Timeout,
77    };
78    pub use crate::{
79        AiMessage, CognisError, Event, EventStream, Extensions, HumanMessage, InterruptKind,
80        JsonSchema, Message, Observer, Result, Runnable, RunnableConfig, RunnableExt,
81        RunnableStream, SystemMessage, ToolCall, ToolMessage,
82    };
83    pub use async_trait::async_trait;
84}