pub const conversation = @import("conversation.zig"); pub const provider = @import("provider.zig"); pub const agent = @import("agent.zig"); pub const config = @import("config.zig"); pub const sse = @import("sse.zig"); pub const tool = @import("tool.zig"); pub const tool_source = @import("tool_source.zig"); pub const tool_registry = @import("tool_registry.zig"); // Re-exports for ergonomic embedder use. pub const Tool = tool.Tool; pub const ToolSource = tool_source.ToolSource; pub const ToolDecl = tool_source.ToolDecl; pub const ToolCall = tool_source.Call; pub const ToolCallResult = tool_source.CallResult; pub const ToolRegistry = tool_registry.ToolRegistry; // Internal modules. Not part of the public API — callers construct providers // via `provider.Provider.init(allocator, io, config)`, which picks the right // concrete implementation based on the config's API style. These are exposed // here only so `refAllDecls` picks up their tests. const openai_chat_json = @import("openai_chat_json.zig"); const provider_openai_chat = @import("provider_openai_chat.zig"); const anthropic_messages_json = @import("anthropic_messages_json.zig"); const provider_anthropic_messages = @import("provider_anthropic_messages.zig"); test { const std = @import("std"); std.testing.refAllDecls(@This()); std.testing.refAllDecls(openai_chat_json); std.testing.refAllDecls(provider_openai_chat); std.testing.refAllDecls(anthropic_messages_json); std.testing.refAllDecls(provider_anthropic_messages); }