Skip to main content

gglib_core/request_pipeline/
mod.rs

1#![doc = include_str!("README.md")]
2pub mod apply;
3pub(crate) mod constrain;
4pub(crate) mod content;
5pub(crate) mod effort_gate;
6pub mod explain;
7pub(crate) mod messages;
8pub(crate) mod model_context;
9pub mod profile_route;
10pub(crate) mod request_shape;
11pub mod resolve;
12pub(crate) mod sampling;
13pub(crate) mod sampling_log;
14pub(crate) mod tools;
15pub(crate) mod truncation;
16pub(crate) mod truncation_parts;
17pub mod validate;
18
19pub use apply::{PipelineReport, apply};
20pub use constrain::{DISABLE_GRAMMAR_ENV, constrain_tool_calls};
21pub use content::{append_text, for_each_text_mut, text_len, text_parts};
22pub use effort_gate::{SuppressedEffort, suppress_stored_effort, suppress_unsupported_effort};
23pub use explain::explain_stored;
24pub use messages::shape_messages;
25pub use model_context::ModelContext;
26pub use profile_route::{ModelRoute, resolve_route};
27pub use request_shape::carries_tools;
28pub use resolve::resolve;
29pub use sampling::{
30    CLIENT_AUTHORITATIVE_KEYS, DISABLE_AGENTIC_SAMPLING_ENV, FloorClass, LADDER_RUNGS,
31    SamplingDecision, SamplingLayers, resolve_sampling,
32};
33pub use tools::strip_unsupported_tools;
34pub use truncation::{CHARS_PER_TOKEN_APPROX, TruncationError, TruncationReport, truncate_history};
35pub use validate::{Verdict, Violation, ViolationKind, validate_tool_calls};
36
37#[cfg(test)]
38mod tests_support {
39    use crate::ports::ModelSummary;
40
41    /// A minimal, inert [`ModelSummary`]. Tests set only the fields they care
42    /// about, so adding a field to `ModelSummary` doesn't touch every test.
43    pub(super) fn summary() -> ModelSummary {
44        ModelSummary {
45            dialect: None,
46            template_caps: None,
47            id: 7,
48            name: "qwen3".to_string(),
49            tags: Vec::new(),
50            capabilities: crate::domain::ModelCapabilities::empty(),
51            param_count: "7B".to_string(),
52            quantization: None,
53            architecture: None,
54            created_at: 0,
55            file_size: 0,
56            context_length: None,
57            inference_defaults: None,
58            defaults_origin: None,
59            server_defaults: None,
60        }
61    }
62}