fix: bash tool permission merges (#3302)

This commit is contained in:
Aiden Cline
2025-10-20 15:15:14 -05:00
committed by GitHub
parent 7a7b3c6315
commit 89b72e4442

View File

@@ -176,6 +176,16 @@ export namespace Agent {
} }
function mergeAgentPermissions(basePermission: any, overridePermission: any): Agent.Info["permission"] { function mergeAgentPermissions(basePermission: any, overridePermission: any): Agent.Info["permission"] {
if (typeof basePermission.bash === "string") {
basePermission.bash = {
"*": basePermission.bash,
}
}
if (typeof overridePermission.bash === "string") {
overridePermission.bash = {
"*": overridePermission.bash,
}
}
const merged = mergeDeep(basePermission ?? {}, overridePermission ?? {}) as any const merged = mergeDeep(basePermission ?? {}, overridePermission ?? {}) as any
let mergedBash let mergedBash
if (merged.bash) { if (merged.bash) {
@@ -183,12 +193,10 @@ function mergeAgentPermissions(basePermission: any, overridePermission: any): Ag
mergedBash = { mergedBash = {
"*": merged.bash, "*": merged.bash,
} }
} } else if (typeof merged.bash === "object") {
// if granular permissions are provided, default to "ask"
if (typeof merged.bash === "object") {
mergedBash = mergeDeep( mergedBash = mergeDeep(
{ {
"*": "ask", "*": "allow",
}, },
merged.bash, merged.bash,
) )