feat: support skill-scoped managed network domain overrides in skill config (#14522)

## Summary

This lets skill loading split `permissions.network` into two distinct
pieces:

- `permissions.network.enabled` still feeds the skill
`PermissionProfile` and remains the coarse gate for whether the skill
can use network access at all.
- `permissions.network.allowed_domains` and
`permissions.network.denied_domains` are lifted into a new
`SkillManagedNetworkOverride` so managed-network sessions can start
per-skill scoped proxies with the right domain overrides.

The change also updates `SkillMetadata` construction sites and adds
loader tests covering YAML parsing plus normalization of the network
gate vs. domain override fields.

## Follow-up
A PR that uses the network_override to spin up a skill-specific proxy if
network_override is not none.
This commit is contained in:
Celia Chen
2026-03-12 21:45:14 -07:00
committed by GitHub
parent 7c7e267501
commit 0c60eea4a5
11 changed files with 218 additions and 8 deletions

View File

@@ -998,6 +998,7 @@ async fn submission_prefers_selected_duplicate_skill_path() {
dependencies: None,
policy: None,
permission_profile: None,
managed_network_override: None,
path_to_skills_md: repo_skill_path,
scope: SkillScope::Repo,
},
@@ -1009,6 +1010,7 @@ async fn submission_prefers_selected_duplicate_skill_path() {
dependencies: None,
policy: None,
permission_profile: None,
managed_network_override: None,
path_to_skills_md: user_skill_path.clone(),
scope: SkillScope::User,
},