mirror of
https://github.com/aljazceru/opencode.git
synced 2026-01-10 11:24:59 +01:00
fix: bash tool permission merges (#3302)
This commit is contained in:
@@ -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,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user