Skip to main content

defect_core/
llm.rs

1//! LLM provider abstraction — protocol-level types shared across the workspace.
2//!
3//! Sub-modules are split by responsibility (chunk / request / model / capability /
4//! error / provider). External access goes through this module's re-exports.
5//!
6//! The `registry` module is **not** here — it depends on the session capabilities config
7//! (a runtime concern) and lives in `defect-agent::llm::registry`. This module holds only
8//! the provider-protocol types that `defect-llm` needs to implement a provider without
9//! pulling in the agent runtime.
10
11pub mod capability;
12pub mod chunk;
13pub mod error;
14pub mod model;
15pub mod provider;
16pub mod request;
17
18pub use capability::{
19    Capabilities, FeatureSupport, HostedCapabilities, ModelCapabilityOverrides, ThinkingEcho,
20};
21pub use chunk::{ProviderChunk, StopReason, Usage};
22pub use error::{
23    ProviderError, ProviderErrorKind, RateLimitScope, RetryAction, RetryHint, TimeoutPhase,
24};
25pub use model::{ModelInfo, ProtocolId, ProviderInfo};
26pub use provider::{LlmProvider, ProviderStream};
27pub use request::{
28    CompletionRequest, ImageData, Message, MessageContent, ProviderActivityKind, ReasoningEffort,
29    Role, SamplingParams, ThinkingConfig, ToolChoice, ToolResultBody, ToolResultContent,
30};