Skip to main content

zeph_tools/
lib.rs

1// SPDX-FileCopyrightText: 2026 Andrei G <bug-ops>
2// SPDX-License-Identifier: MIT OR Apache-2.0
3
4//! Tool execution abstraction and shell backend.
5
6#[cfg(feature = "policy-enforcer")]
7pub mod adversarial_gate;
8#[cfg(feature = "policy-enforcer")]
9pub mod adversarial_policy;
10pub mod anomaly;
11pub mod audit;
12pub mod cache;
13pub mod composite;
14pub mod config;
15pub mod cwd;
16pub mod diagnostics;
17pub mod error_taxonomy;
18pub mod executor;
19pub mod file;
20pub mod filter;
21pub mod net;
22pub mod patterns;
23pub mod permissions;
24#[cfg(feature = "policy-enforcer")]
25pub mod policy;
26#[cfg(feature = "policy-enforcer")]
27pub mod policy_gate;
28pub mod registry;
29pub mod schema_filter;
30pub mod scrape;
31pub mod search_code;
32pub mod shell;
33pub mod tool_filter;
34pub mod trust_gate;
35pub mod trust_level;
36pub mod utility;
37pub mod verifier;
38
39#[cfg(feature = "policy-enforcer")]
40pub use adversarial_gate::AdversarialPolicyGateExecutor;
41#[cfg(feature = "policy-enforcer")]
42pub use adversarial_policy::{
43    PolicyDecision as AdversarialPolicyDecision, PolicyLlmClient, PolicyMessage, PolicyRole,
44    PolicyValidator, parse_policy_lines,
45};
46pub use anomaly::{AnomalyDetector, AnomalySeverity, is_reasoning_model};
47pub use audit::{AuditEntry, AuditLogger, AuditResult, chrono_now};
48pub use cache::{CacheKey, ToolResultCache, is_cacheable};
49pub use composite::CompositeExecutor;
50#[cfg(feature = "policy-enforcer")]
51pub use config::AdversarialPolicyConfig;
52pub use config::{
53    AnomalyConfig, AuditConfig, DependencyConfig, FileConfig, OverflowConfig, ResultCacheConfig,
54    RetryConfig, ScrapeConfig, ShellConfig, TafcConfig, ToolDependency, ToolsConfig,
55    UtilityScoringConfig,
56};
57pub use cwd::SetCwdExecutor;
58pub use diagnostics::DiagnosticsExecutor;
59pub use error_taxonomy::{
60    ErrorDomain, ToolErrorCategory, ToolErrorFeedback, ToolInvocationPhase, classify_http_status,
61    classify_io_error,
62};
63pub use executor::{
64    ClaimSource, DiffData, DynExecutor, ErasedToolExecutor, ErrorKind, FilterStats,
65    MAX_TOOL_OUTPUT_CHARS, ToolCall, ToolError, ToolEvent, ToolEventTx, ToolExecutor, ToolOutput,
66    truncate_tool_output, truncate_tool_output_at,
67};
68pub use file::FileExecutor;
69pub use filter::{
70    CommandMatcher, FilterConfidence, FilterConfig, FilterMetrics, FilterResult, OutputFilter,
71    OutputFilterRegistry, sanitize_output, strip_ansi,
72};
73pub use net::is_private_ip;
74pub use permissions::{
75    AutonomyLevel, PermissionAction, PermissionPolicy, PermissionRule, PermissionsConfig,
76};
77#[cfg(feature = "policy-enforcer")]
78pub use policy::{
79    DefaultEffect, PolicyCompileError, PolicyConfig, PolicyContext, PolicyDecision, PolicyEffect,
80    PolicyEnforcer, PolicyRuleConfig,
81};
82#[cfg(feature = "policy-enforcer")]
83pub use policy_gate::PolicyGateExecutor;
84pub use registry::ToolRegistry;
85pub use schema_filter::{
86    DependencyExclusion, InclusionReason, ToolDependencyGraph, ToolEmbedding, ToolFilterResult,
87    ToolSchemaFilter,
88};
89pub use scrape::WebScrapeExecutor;
90pub use search_code::{
91    LspSearchBackend, SearchCodeExecutor, SearchCodeHit, SearchCodeSource, SemanticSearchBackend,
92};
93pub use shell::{
94    DEFAULT_BLOCKED_COMMANDS, SHELL_INTERPRETERS, ShellExecutor, ShellOutputEnvelope,
95    check_blocklist, effective_shell_command,
96};
97pub use tool_filter::ToolFilter;
98pub use trust_gate::TrustGateExecutor;
99pub use trust_level::TrustLevel;
100pub use utility::{UtilityContext, UtilityScore, UtilityScorer};
101pub use verifier::{
102    DestructiveCommandVerifier, DestructiveVerifierConfig, FirewallVerifier,
103    FirewallVerifierConfig, InjectionPatternVerifier, InjectionVerifierConfig,
104    PreExecutionVerifier, PreExecutionVerifierConfig, UrlGroundingVerifier,
105    UrlGroundingVerifierConfig, VerificationResult,
106};