Skip to main content

zeph_common/
lib.rs

1// SPDX-FileCopyrightText: 2026 Andrei G <bug-ops>
2// SPDX-License-Identifier: MIT OR Apache-2.0
3
4//! Shared utility functions and security primitives for Zeph crates.
5//!
6//! This crate provides pure utility functions (text manipulation, network helpers,
7//! sanitization primitives), security primitives (`Secret`, `VaultError`), and
8//! strongly-typed identifiers (`ToolName`, `SessionId`) that are needed by multiple crates.
9//! It has no `zeph-*` dependencies. The optional `treesitter` feature adds tree-sitter
10//! query constants and helpers.
11
12pub mod anchor;
13pub mod audit;
14pub mod clock;
15pub mod config;
16#[cfg(feature = "deep-link")]
17pub mod deep_link;
18pub mod error_taxonomy;
19pub mod fidelity;
20pub mod fs_secure;
21pub mod hash;
22pub mod hash_chain;
23#[cfg(feature = "http-middleware")]
24pub mod http_middleware;
25pub mod llm_response;
26pub mod math;
27pub mod memory;
28pub mod monotonic;
29pub mod net;
30pub mod path_guard;
31pub mod patterns;
32#[cfg(unix)]
33pub mod pidfile;
34pub mod policy;
35pub mod quarantine;
36pub mod sanitize;
37pub mod secret;
38pub mod secrets;
39pub mod security;
40pub mod security_event;
41pub mod spawner;
42pub mod task_supervisor;
43pub mod text;
44pub mod timestamp;
45pub mod tool_classification;
46pub mod trust_level;
47pub mod types;
48
49/// Prefix embedded in tool output bodies when the full output was stored externally.
50///
51/// Format: `[full output stored — ID: {uuid} — {bytes} bytes, use read_overflow tool to retrieve]`
52pub const OVERFLOW_NOTICE_PREFIX: &str = "[full output stored \u{2014} ID: ";
53
54pub use clock::{ClockSource, FixedClock, SystemClock};
55pub use fidelity::{ContextFidelity, PlannedToolHint};
56pub use math::{EmbeddingVector, Normalized, Unnormalized};
57pub use monotonic::monotonic_millis;
58pub use policy::{PolicyLlmClient, PolicyMessage, PolicyRole};
59pub use sanitize::{IdentitySanitizer, OutputSanitizer};
60pub use security_event::SecurityEventCategory;
61pub use spawner::BlockingSpawner;
62pub use task_supervisor::{
63    BlockingError, BlockingHandle, MAX_RESTART_DELAY, RestartPolicy, TaskDescriptor, TaskHandle,
64    TaskSnapshot, TaskStatus, TaskSupervisor,
65};
66pub use text::format_tokens;
67pub use trust_level::SkillTrustLevel;
68pub use types::{
69    ProviderName, SessionId, SessionIdError, SkillName, StopHint, ToolDefinition, ToolName,
70};
71
72#[cfg(feature = "treesitter")]
73pub mod treesitter;