diff options
| author | Aiden Cline <[email protected]> | 2025-10-20 15:15:14 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-10-20 15:15:14 -0500 |
| commit | 89b72e4442e4a4ce9379d95c96bd5ff29bb7ac6b (patch) | |
| tree | 2f5a0067eb762dbc49db6594d816c4101a07282b /packages | |
| parent | 7a7b3c63157f2f74ef4c332be16e6026d78aefea (diff) | |
| download | opencode-89b72e4442e4a4ce9379d95c96bd5ff29bb7ac6b.tar.gz opencode-89b72e4442e4a4ce9379d95c96bd5ff29bb7ac6b.zip | |
fix: bash tool permission merges (#3302)
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/agent/agent.ts | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 252c0bd6b..26a5a472a 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -176,6 +176,16 @@ export namespace Agent { } 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 let mergedBash if (merged.bash) { @@ -183,12 +193,10 @@ function mergeAgentPermissions(basePermission: any, overridePermission: any): Ag mergedBash = { "*": merged.bash, } - } - // if granular permissions are provided, default to "ask" - if (typeof merged.bash === "object") { + } else if (typeof merged.bash === "object") { mergedBash = mergeDeep( { - "*": "ask", + "*": "allow", }, merged.bash, ) |
