1pub mod agent_loop;
2pub mod compaction;
3pub mod context;
4pub mod event;
5pub mod history_sanitize;
6pub mod mcp;
7pub mod model;
8pub mod model_catalog;
9pub mod runner;
10pub mod shell_risk;
11pub mod skills;
12pub mod tool_repair;
13pub mod tools;
14
15pub use agent_loop::{AgentLoopHarness, CompactionPolicy, WebSearchMode};
16pub use compaction::{
17 estimate_messages_tokens, prune_tool_outputs, CompactionContext, CompactionError,
18 CompactionOutcome, CompactionStrategy, DefaultCompactionStrategy, SummarizeCompactionStrategy,
19 PRUNED_CONTENT_STUB, PRUNE_MINIMUM_TOKENS, PRUNE_MIN_CONTENT_TOKENS, PRUNE_PROTECT_TURNS,
20};
21pub use context::jsonl::{append_context, load_context, rewrite_context};
22pub use event::{HarnessInternalEvent, HarnessUsage, NativeHarnessError, NativeTurnInput};
23pub use history_sanitize::{sanitize_history, SanitizeDiagnostics};
24pub use mcp::{
25 CompositeToolRuntime, McpClient, McpError, McpServerConfig, McpToolRuntime, McpTransport,
26 MCP_PROTOCOL_VERSION,
27};
28pub use model::{
29 collect_model_response, AnthropicConfig, AnthropicModelClient, AssistantThinking,
30 CapabilitySupport, ChatMessage, HostedCapability, HostedTool, ImageData, ImageSource,
31 ModelChunk, ModelClient, ModelClientError, ModelResponse, ModelTurnInput,
32 OpenAiCompatibleConfig, OpenAiCompatibleModelClient, OpenAiResponsesConfig,
33 OpenAiResponsesModelClient, ScriptedModelClient, ToolChoice, UserAttachment,
34};
35pub use model_catalog::{
36 InterleavedReasoning, ModelCapabilities, ModelCatalog, ModelCatalogError, ModelLimits,
37 ModelRequestConfig, ReasoningConfig, ReasoningMode, ReasoningOption, ResolvedModelConfig,
38 WireProtocol,
39};
40pub use runner::{FakeNativeHarness, NativeHarness, ToolCapableFakeHarness};
41pub use shell_risk::{
42 classify_shell_command, classify_shell_command_with_policy, ShellRiskDecision, ShellRiskLevel,
43 ShellRiskPolicy, SHELL_RISK_POLICY_ENV,
44};
45pub use skills::{
46 parse_skill_frontmatter, LocalSkillSource, SkillError, SkillLoader, SkillMetadata,
47 SkillPromptRenderer, SkillSource, SkillsManager,
48};
49pub use tools::web_search::{
50 web_search_spec, BraveSearchConfig, BraveSearchProvider, WebSearchProvider,
51 WebSearchProviderError, WebSearchRequest, WebSearchResult, WebSearchToolRuntime,
52};
53pub use tools::{
54 builtin_tool_specs, fs_glob, fs_glob_bounded, resolve_edit_search, simple_glob_match,
55 EditSearchError, MockToolRuntime, ResolvedEditSearch, ToolFailure, ToolFailureKind,
56 ToolInvocation, ToolOutcome, ToolRuntime, ToolRuntimeError, ToolSpec, FS_GLOB_IGNORED_DIRS,
57 MAX_FS_GLOB_RESULTS,
58};
59
60#[cfg(feature = "local-tools")]
62pub use tools::approval::{ApprovalGate, PlanApproval, YoloApproval};
63#[cfg(feature = "local-tools")]
64pub use tools::local::{EmitFn, LocalToolConfig, LocalToolRuntime};
65
66pub use tools::sandbox::{ExecResult, SandboxExecutor, SandboxToolConfig, SandboxToolRuntime};
68
69#[cfg(feature = "e2b")]
71pub use tools::e2b::{E2bConfig, E2bError, E2bToolRuntime};