(
spec: &mut WorkerAgentSpec,
tools: &[String],
disallowed_tools: &[String],
)
| 740 | } |
| 741 | |
| 742 | fn apply_claude_style_tools_to_spec( |
| 743 | spec: &mut WorkerAgentSpec, |
| 744 | tools: &[String], |
| 745 | disallowed_tools: &[String], |
| 746 | ) { |
| 747 | if tools.is_empty() && disallowed_tools.is_empty() { |
| 748 | return; |
| 749 | } |
| 750 | |
| 751 | let base = if tools.is_empty() { |
| 752 | spec.permissions |
| 753 | .clone() |
| 754 | .unwrap_or_else(|| spec.kind.default_permissions()) |
| 755 | } else { |
| 756 | allow_only_permission_policy(tools) |
| 757 | }; |
| 758 | spec.permissions = Some(add_denied_tools(base, disallowed_tools)); |
| 759 | if spec.confirmation_inheritance.is_none() { |
| 760 | spec.confirmation_inheritance = Some(ConfirmationInheritance::AutoApprove); |
| 761 | } |
| 762 | } |
| 763 | |
| 764 | fn parse_worker_yaml_value( |
| 765 | value: serde_yaml::Value, |
no test coverage detected