vtcode_core/tools/registry/
timeout_facade.rs1use crate::config::TimeoutsConfig;
4
5use super::{ToolRegistry, ToolTimeoutPolicy};
6
7impl ToolRegistry {
8 pub fn apply_timeout_policy(&self, timeouts: &TimeoutsConfig) {
9 let policy = ToolTimeoutPolicy::from_config(timeouts);
10
11 match policy.validate() {
13 Ok(()) => {
14 *self.timeout_policy.write() = policy;
15 }
16 Err(e) => {
17 tracing::warn!(
18 error = %e,
19 "Invalid timeout configuration detected, using defaults"
20 );
21 *self.timeout_policy.write() = ToolTimeoutPolicy::default();
22 }
23 }
24
25 self.resiliency.lock().adaptive_tuning = super::config_helpers::load_adaptive_tuning_from_config(timeouts);
26 }
27
28 pub fn timeout_policy(&self) -> ToolTimeoutPolicy {
29 self.timeout_policy.read().clone()
30 }
31
32 pub fn rate_limit_per_minute(&self) -> Option<usize> {
33 self.execution_history.rate_limit_per_minute()
34 }
35}