Skip to main content

harness/
lib.rs

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// ── New: local tool runtime ───────────────────────────────────────────────────
46#[cfg(feature = "local-tools")]
47pub use tools::local::{EmitFn, LocalToolConfig, LocalToolRuntime};
48#[cfg(feature = "local-tools")]
49pub use tools::approval::{ApprovalGate, PlanApproval, YoloApproval};
50
51// ── New: sandbox tool runtime ─────────────────────────────────────────────────
52pub use tools::sandbox::{ExecResult, SandboxExecutor, SandboxToolConfig, SandboxToolRuntime};
53
54// ── New: e2b sandbox ──────────────────────────────────────────────────────────
55#[cfg(feature = "e2b")]
56pub use tools::e2b::{E2bConfig, E2bError, E2bToolRuntime};