pub(super) const BUILTIN_TOML: &str = include_str!("../capabilities.toml");
pub(super) const BUILTIN_PROVIDERS_TOML: &str = include_str!("../providers.toml");
mod audit;
mod lookup;
#[cfg(test)]
mod lookup_tests_gateway;
#[cfg(test)]
mod lookup_tests_kimi;
#[cfg(test)]
mod lookup_tests_responses;
#[cfg(test)]
mod lookup_tests_system_placement;
mod model;
mod overrides;
mod rule;
mod tool_format;
pub(crate) use lookup::should_use_responses_transport;
pub(crate) use overrides::swap_user_overrides;
pub use audit::{
audit_builtin_catalogued_chat_model_tool_capabilities,
audit_catalogued_chat_model_tool_capabilities, matrix_rows, ProviderCapabilityMatrixRow,
ToolCapabilityAuditGap, ToolCapabilityAuditReport,
};
pub use lookup::{
builtin_file, clear_user_overrides, lookup, lookup_with_base_file, lookup_with_user_overrides,
parse_capabilities_toml, provider_limit_providers, provider_limits_for, set_user_overrides,
set_user_overrides_from_manifest_toml, set_user_overrides_toml,
};
pub use model::{
Capabilities, CapabilitiesFile, ComputerUseStyle, GovernorBackoff, ProviderDefaults,
ProviderLimits, ReasoningHistoryWireField, ScreenshotScaling, SystemMessagePlacement,
WireDialect,
};
pub(crate) fn resolve_system_message_placement(caps: &Capabilities) -> SystemMessagePlacement {
if let Some(explicit) = caps.system_message_placement {
return explicit;
}
match caps.message_wire_format {
WireDialect::OpenAiCompat | WireDialect::Ollama => SystemMessagePlacement::Inline,
WireDialect::Anthropic | WireDialect::Gemini => SystemMessagePlacement::Fold,
}
}
pub use rule::ProviderRule;
pub use tool_format::{
no_viable_tool_channel, no_viable_tool_channel_with_caps, validate_tool_format,
validate_tool_format_with_caps, ToolFormatDecision, ToolFormatWire,
};