This commit is contained in:
Alex Emmet 2026-07-11 17:06:21 +02:00
commit 65d92ed22e
2 changed files with 14 additions and 12 deletions

20
Cargo.lock generated
View file

@ -135,9 +135,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]] [[package]]
name = "bytes" name = "bytes"
version = "1.12.0" version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593" checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
[[package]] [[package]]
name = "cc" name = "cc"
@ -617,9 +617,9 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.8.2" version = "2.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
[[package]] [[package]]
name = "minimal-lexical" name = "minimal-lexical"
@ -1079,9 +1079,9 @@ dependencies = [
[[package]] [[package]]
name = "rustversion" name = "rustversion"
version = "1.0.22" version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
[[package]] [[package]]
name = "ryu" name = "ryu"
@ -1785,18 +1785,18 @@ dependencies = [
[[package]] [[package]]
name = "zerocopy" name = "zerocopy"
version = "0.8.53" version = "0.8.54"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1" checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19"
dependencies = [ dependencies = [
"zerocopy-derive", "zerocopy-derive",
] ]
[[package]] [[package]]
name = "zerocopy-derive" name = "zerocopy-derive"
version = "0.8.53" version = "0.8.54"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71" checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",

View file

@ -634,6 +634,7 @@ macro_rules! tool {
deprecation_message: String::new(), deprecation_message: String::new(),
execution_context: ExecutionContext::default(), execution_context: ExecutionContext::default(),
context_visibility: ContextVisibility::default(), context_visibility: ContextVisibility::default(),
required_depth: 0,
} }
}; };
($name:expr, $desc:expr, $cat:expr, $dangerous:expr, $approval:expr, $scoped:expr, $params:expr, $timeout:expr) => { ($name:expr, $desc:expr, $cat:expr, $dangerous:expr, $approval:expr, $scoped:expr, $params:expr, $timeout:expr) => {
@ -651,6 +652,7 @@ macro_rules! tool {
deprecation_message: String::new(), deprecation_message: String::new(),
execution_context: ExecutionContext::default(), execution_context: ExecutionContext::default(),
context_visibility: ContextVisibility::default(), context_visibility: ContextVisibility::default(),
required_depth: 0,
} }
}; };
} }
@ -1834,7 +1836,7 @@ pub fn tool_ids_for_agent_type(agent_type: &crate::agents::AgentType) -> Option<
.collect::<Vec<String>>() .collect::<Vec<String>>()
}; };
let ids = Some(match agent_type { let mut ids = match agent_type {
crate::agents::AgentType::BuildAgent => curated(&[ crate::agents::AgentType::BuildAgent => curated(&[
"read_file", "read_file",
"write_file", "write_file",
@ -1890,7 +1892,7 @@ pub fn tool_ids_for_agent_type(agent_type: &crate::agents::AgentType) -> Option<
"web_search", "web_search",
"web_fetch", "web_fetch",
]), ]),
}); };
// Filter by depth: remove tools whose required_depth exceeds the agent's max_depth // Filter by depth: remove tools whose required_depth exceeds the agent's max_depth
let policy = crate::agents::AgentPolicy::defaults_for(agent_type); let policy = crate::agents::AgentPolicy::defaults_for(agent_type);