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.