lingshu-sdk 0.10.0

Lingshu SDK — build autonomous AI agents in Rust
//! # Lingshu SDK
//!
//! Build autonomous AI agents in Rust with a simple, ergonomic API.
//!
//! This crate re-exports everything from `lingshu-sdk-core` and
//! `lingshu-sdk-macros`, providing a single dependency for SDK users.
//!
//! # Quick Start
//!
//! ```rust,ignore
//! use lingshu_sdk::prelude::*;
//!
//! # async fn example() -> Result<(), SdkError> {
//! let agent = SdkAgent::new("anthropic/claude-sonnet-4")?;
//! let reply = agent.chat("What is Lingshu?").await?;
//! println!("{reply}");
//! # Ok(())
//! # }
//! ```
//!
//! # Custom Tools
//!
//! ```rust,ignore
//! use lingshu_sdk::prelude::*;
//!
//! /// Greet someone by name.
//! #[lingshu_tool(name = "greet", toolset = "demo")]
//! async fn greet(name: String) -> Result<String, ToolError> {
//!     Ok(format!("Hello, {name}!"))
//! }
//! ```

/// The prelude — import everything you need with `use lingshu_sdk::prelude::*`.
pub mod prelude {
    // ── Core types ───────────────────────────────────────────────────
    pub use lingshu_sdk_core::{
        AgentBuilder,
        ApprovalChoice,
        Content,
        ContentPart,
        // Conversation types
        ConversationResult,
        Cost,
        IsolatedAgentOptions,
        // Message types
        Message,
        OriginChat,
        // Platform
        Platform,
        Role,
        // Agent
        SdkAgent,
        SdkAgentBuilder,
        SdkConfig,
        SdkError,
        SdkToolRegistry,
        SessionExport,
        // Session types
        SessionRecord,
        SessionSearchHit,
        SessionSnapshot,
        SessionSummary,
        StreamEvent,
        ToolCall,
        ToolContext,
        ToolError,
        ToolErrorRecord,
        ToolHandler,
        // Tool types
        ToolSchema,
        Usage,
        // Provider factory
        create_provider_for_model,
        // Profile/home
        lingshu_home,
        ensure_lingshu_home,
    };

    // ── Macros ───────────────────────────────────────────────────────
    pub use lingshu_sdk_macros::lingshu_tool;

    // ── Re-export commonly needed crates ─────────────────────────────
    pub use async_trait::async_trait;
    pub use inventory;
    pub use serde_json;
}

// ── Top-level re-exports for `use lingshu_sdk::Agent` style ─────────
pub use lingshu_sdk_core::*;
pub use lingshu_sdk_macros::lingshu_tool;