jules-sdk 0.1.0

Facade crate for Google's Jules SDK
//! Facade crate for Google's Jules SDK.
//!
//! This crate re-exports the public API from `jules-core` and `jules-api`,
//! as well as procedural macros from `jules-macros`.

#![deny(missing_docs)]

pub use jules_api;
pub use jules_core;

pub use jules_core::config::{Config, ConfigBuilder};
pub use jules_core::conversation::Conversation;
pub use jules_core::session::{Session, SessionBuilder};
pub use jules_core::traits::Client;

/// Re-exports of the real, network-capable client. Only available when the `middleware`
/// feature is enabled (the client relies on `jules_core`'s middleware pipeline) and on
/// non-wasm targets (it relies on `reqwest` for network I/O).
#[cfg(all(feature = "middleware", not(target_arch = "wasm32")))]
pub use jules_api::client::{JulesClient, JulesClientBuilder};

/// Tool calling abstractions and APIs.
///
/// This is only available when the `tools` feature is enabled.
#[cfg(feature = "tools")]
#[cfg_attr(docsrs, doc(cfg(feature = "tools")))]
pub use jules_core::tool::Tool;

pub use jules_macros::Placeholder;

/// Experimental features and APIs.
///
/// Items in this module are NOT considered stable and MAY change without notice.
/// This module is only available when the `experimental` feature is enabled.
#[cfg(feature = "experimental")]
#[cfg_attr(docsrs, doc(cfg(feature = "experimental")))]
pub mod experimental {
    // Experimental items will be added here
}