ds_api/agent/mod.rs
1/*!
2Agent module
3
4This module is split into focused submodules:
5
6- `agent_core` — the public agent struct, event/response types and tool
7 registration logic.
8- `executor` — pure business-logic functions: building requests, fetching
9 responses, opening SSE streams, executing tools. No `Poll` or `Context`
10 here — just `async fn`s that do real work.
11- `stream` — the asynchronous `AgentStream` state machine that schedules
12 calls into `executor` and drives the full agent loop.
13
14Public types are re-exported at the crate level so callers never need to
15reach into the submodules directly.
16*/
17
18pub mod agent_core;
19pub(crate) mod executor;
20pub mod stream;
21
22pub use agent_core::{AgentEvent, DeepseekAgent, ToolCallInfo, ToolCallResult};
23pub use stream::AgentStream;
24pub use tokio::sync::mpsc::UnboundedSender as InterruptSender;