Skip to main content

agent_sdk_foundation/
lib.rs

1//! # Agent SDK Core
2//!
3//! Shared contract types for the Agent SDK.
4//!
5//! This crate contains the **data-only** types that both the runtime
6//! (`agent-sdk`) and the server need: IDs, events, LLM messages, turn
7//! inputs/outcomes, and continuation payloads.
8//!
9//! It has no async traits, no runtime dependencies, and no provider
10//! implementations — just pure data structures with serde support.
11
12#![forbid(unsafe_code)]
13
14pub mod audit;
15pub mod events;
16pub mod llm;
17pub mod privacy;
18pub mod types;
19
20// ── Flat re-exports ──────────────────────────────────────────────────
21// Downstream crates can `use agent_sdk_foundation::ThreadId` without reaching
22// into sub-modules.
23
24pub use audit::{AuditProvenance, ToolAuditOutcome, ToolAuditRecord, ToolAuditRecordParams};
25pub use events::{AgentEvent, AgentEventEnvelope, SequenceCounter};
26pub use llm::{
27    ChatOutcome, ChatRequest, ChatResponse, Content, ContentBlock, ContentSource, Effort, Message,
28    Role, StopReason, ThinkingConfig, ThinkingMode, Tool, Usage,
29};
30pub use privacy::{
31    REDACTED_MARKER, RedactionLevel, RedactionPolicy, redact_error, redact_for_observability,
32    redact_string, redact_value,
33};
34pub use types::{
35    AgentConfig, AgentContinuation, AgentError, AgentInput, AgentRunState, AgentState,
36    CONTINUATION_VERSION, ContinuationEnvelope, ExecutionStatus, ExternalToolResult,
37    ListenExecutionContext, PendingToolCallInfo, RetryConfig, ThreadId, TokenUsage, ToolExecution,
38    ToolInvocation, ToolOutcome, ToolResult, ToolRuntime, ToolTier, TurnOptions, TurnOutcome,
39    TurnSummary,
40};