llmsdk_xai/lib.rs
1//! xAI provider for llmsdk.
2//!
3//! Rust port of [`@ai-sdk/xai`](https://github.com/vercel/ai/tree/main/packages/xai).
4//! Implements five model surfaces: Chat Completions ([`XaiChatModel`]),
5//! Responses API ([`XaiResponsesLanguageModel`]),
6//! Image Generation ([`XaiImageModel`]), Video Generation
7//! ([`XaiVideoModel`]), and Files upload ([`XaiFiles`]).
8// Rust guideline compliant 2026-05-25
9
10#![forbid(unsafe_code)]
11#![warn(missing_docs)]
12
13mod chat;
14mod config;
15mod files;
16mod image;
17mod responses;
18pub mod tools;
19mod video;
20
21pub use chat::XaiChatModel;
22pub use config::{Xai, XaiBuilder};
23pub use files::XaiFiles;
24pub use image::XaiImageModel;
25pub use responses::XaiResponsesLanguageModel;
26pub use video::XaiVideoModel;
27
28/// Default base URL for the xAI HTTP API.
29pub const DEFAULT_BASE_URL: &str = "https://api.x.ai/v1";
30
31/// Environment variable consulted when no explicit API key is given.
32pub const API_KEY_ENV_VAR: &str = "XAI_API_KEY";
33
34/// Provider id reported via the `LanguageModel::provider` trait method.
35pub const PROVIDER_ID: &str = "xai";