agent-harness-rs 0.2.17

Agent loop harness with local and sandbox tool runtimes, context management, and MCP support
Documentation
pub mod agent_loop;
pub mod compaction;
pub mod context;
pub mod event;
pub mod history_sanitize;
pub mod mcp;
pub mod model;
pub mod model_catalog;
pub mod runner;
pub mod shell_risk;
pub mod skills;
pub mod tool_repair;
pub mod tools;

pub use agent_loop::{AgentLoopHarness, CompactionPolicy, WebSearchMode, DEFAULT_TURN_END_GRACE};
pub use compaction::{
    estimate_messages_tokens, prune_tool_outputs, CompactionContext, CompactionError,
    CompactionOutcome, CompactionStrategy, DefaultCompactionStrategy, SummarizeCompactionStrategy,
    PRUNED_CONTENT_STUB, PRUNE_MINIMUM_TOKENS, PRUNE_MIN_CONTENT_TOKENS, PRUNE_PROTECT_TURNS,
};
pub use context::jsonl::{append_context, load_context, rewrite_context};
pub use event::{HarnessInternalEvent, HarnessUsage, NativeHarnessError, NativeTurnInput};
pub use history_sanitize::{sanitize_history, SanitizeDiagnostics};
pub use mcp::{
    CompositeToolRuntime, McpClient, McpError, McpServerConfig, McpToolRuntime, McpTransport,
    MCP_PROTOCOL_VERSION,
};
pub use model::{
    collect_model_response, AnthropicConfig, AnthropicModelClient, AssistantThinking,
    CapabilitySupport, ChatMessage, HostedCapability, HostedTool, ImageData, ImageSource,
    ModelChunk, ModelClient, ModelClientError, ModelResponse, ModelTurnInput,
    OpenAiCompatibleConfig, OpenAiCompatibleModelClient, OpenAiResponsesConfig,
    OpenAiResponsesModelClient, ScriptedModelClient, ToolChoice, UserAttachment,
};
pub use model_catalog::{
    InterleavedReasoning, LimitsSource, ModelCapabilities, ModelCatalog, ModelCatalogError,
    ModelLimits, ModelRequestConfig, ReasoningConfig, ReasoningMode, ReasoningOption,
    ResolvedModelConfig, WireProtocol, DEFAULT_CONTEXT_LIMIT, DEFAULT_OUTPUT_LIMIT,
};
pub use runner::{FakeNativeHarness, NativeHarness, ToolCapableFakeHarness};
pub use shell_risk::{
    classify_shell_command, classify_shell_command_with_policy, ShellRiskDecision, ShellRiskLevel,
    ShellRiskPolicy, SHELL_RISK_POLICY_ENV,
};
pub use skills::{
    parse_skill_frontmatter, LocalSkillSource, SkillError, SkillLoader, SkillMetadata,
    SkillPromptRenderer, SkillSource, SkillsManager,
};
pub use tools::web_search::{
    web_search_spec, BraveSearchConfig, BraveSearchProvider, ExaSearchConfig, ExaSearchProvider,
    WebSearchProvider, WebSearchProviderError, WebSearchRequest, WebSearchResult,
    WebSearchToolRuntime,
};
pub use tools::{
    builtin_tool_specs, fs_glob, fs_glob_bounded, resolve_edit_search, simple_glob_match,
    EditSearchError, MockToolRuntime, ResolvedEditSearch, ToolFailure, ToolFailureKind,
    ToolInvocation, ToolOutcome, ToolRuntime, ToolRuntimeError, ToolSpec, FS_GLOB_IGNORED_DIRS,
    MAX_FS_GLOB_RESULTS,
};

// ── New: local tool runtime ───────────────────────────────────────────────────
#[cfg(feature = "local-tools")]
pub use tools::approval::{ApprovalGate, PlanApproval, YoloApproval};
#[cfg(feature = "local-tools")]
pub use tools::local::{EmitFn, LocalToolConfig, LocalToolRuntime};

// ── New: sandbox tool runtime ─────────────────────────────────────────────────
pub use tools::sandbox::{ExecResult, SandboxExecutor, SandboxToolConfig, SandboxToolRuntime};

// ── New: e2b sandbox ──────────────────────────────────────────────────────────
#[cfg(feature = "e2b")]
pub use tools::e2b::{E2bConfig, E2bError, E2bToolRuntime};