Skip to main content

Crate defect_core

Crate defect_core 

Source
Expand description

defect-core — foundational shared types for the defect workspace.

This crate holds the pure types and traits that both the agent runtime (defect-agent) and the provider/transport crates (defect-llm, defect-http) need, with zero dependency on the agent runtime (no session / turn loop / hooks). Pulling these out of defect-agent lets a provider or HTTP-stack crate be depended on independently — e.g. via a git dependency — without dragging in the whole session machinery.

defect-agent re-exports everything here under its original paths (defect_agent::error, defect_agent::llm::*, defect_agent::http, defect_agent::tool::ToolSchema), so existing call sites are unaffected.

What lives here: error::BoxError, the LLM protocol types in llm, the http::HttpClient trait, and tool::ToolSchema. What does not: the ProviderRegistry (depends on session capabilities config), the full Tool trait / ToolContext, events, policy, and the session runtime — those stay in defect-agent.

Modules§

error
Cross-module error utilities.
http
HTTP fetch backend abstraction.
llm
LLM provider abstraction — protocol-level types shared across the workspace.
tool
Tool schema — the wire-facing description of a tool’s parameters.