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 runner;
9pub mod shell_risk;
10pub mod skills;
11pub mod tool_repair;
12pub mod tools;
13
14pub use agent_loop::{AgentLoopHarness, CompactionPolicy};
15pub use compaction::{
16 estimate_messages_tokens, resolve_context_window_tokens, CompactionContext, CompactionError,
17 CompactionStrategy, SummarizeCompactionStrategy,
18};
19pub use context::jsonl::{append_context, load_context, rewrite_context};
20pub use event::{HarnessInternalEvent, HarnessUsage, NativeHarnessError, NativeTurnInput};
21pub use history_sanitize::{sanitize_history, SanitizeDiagnostics};
22pub use mcp::{
23 CompositeToolRuntime, McpClient, McpError, McpServerConfig, McpToolRuntime, McpTransport,
24 MCP_PROTOCOL_VERSION,
25};
26pub use model::{
27 collect_model_response, AnthropicConfig, AnthropicModelClient, AssistantThinking, ChatMessage,
28 ImageData, ImageSource, ModelChunk, ModelClient, ModelClientError, ModelResponse,
29 ModelTurnInput, OpenAiCompatibleConfig, OpenAiCompatibleModelClient, ScriptedModelClient,
30 ToolChoice, UserAttachment,
31};
32pub use runner::{FakeNativeHarness, NativeHarness, ToolCapableFakeHarness};
33pub use shell_risk::{classify_shell_command, ShellRiskDecision, ShellRiskLevel};
34pub use skills::{
35 parse_skill_frontmatter, LocalSkillSource, SkillError, SkillLoader, SkillMetadata,
36 SkillPromptRenderer, SkillSource, SkillsManager,
37};
38pub use tools::{
39 builtin_tool_specs, fs_glob, fs_glob_bounded, resolve_edit_search, simple_glob_match,
40 EditSearchError, MockToolRuntime, ResolvedEditSearch, ToolFailure, ToolFailureKind,
41 ToolInvocation, ToolOutcome, ToolRuntime, ToolRuntimeError, ToolSpec, FS_GLOB_IGNORED_DIRS,
42 MAX_FS_GLOB_RESULTS,
43};
44
45#[cfg(feature = "local-tools")]
47pub use tools::local::{EmitFn, LocalToolConfig, LocalToolRuntime};
48#[cfg(feature = "local-tools")]
49pub use tools::approval::{ApprovalGate, PlanApproval, YoloApproval};
50
51pub use tools::sandbox::{ExecResult, SandboxExecutor, SandboxToolConfig, SandboxToolRuntime};
53
54#[cfg(feature = "e2b")]
56pub use tools::e2b::{E2bConfig, E2bError, E2bToolRuntime};