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 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// ── New: local tool runtime ───────────────────────────────────────────────────
61#[cfg(feature = "local-tools")]
62pub use tools::approval::{ApprovalGate, PlanApproval, YoloApproval};
63#[cfg(feature = "local-tools")]
64pub use tools::local::{EmitFn, LocalToolConfig, LocalToolRuntime};
65
66// ── New: sandbox tool runtime ─────────────────────────────────────────────────
67pub use tools::sandbox::{ExecResult, SandboxExecutor, SandboxToolConfig, SandboxToolRuntime};
68
69// ── New: e2b sandbox ──────────────────────────────────────────────────────────
70#[cfg(feature = "e2b")]
71pub use tools::e2b::{E2bConfig, E2bError, E2bToolRuntime};