summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/agent/agent.ts16
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,
)