opencode-agent[bot] преди 3 месеца
родител
ревизия
baef5cd43b
променени са 3 файла, в които са добавени 20 реда и са изтрити 3 реда
  1. 4 1
      packages/opencode/src/config/config.ts
  2. 4 1
      packages/sdk/js/src/v2/gen/types.gen.ts
  3. 12 1
      packages/sdk/openapi.json

+ 4 - 1
packages/opencode/src/config/config.ts

@@ -60,7 +60,10 @@ function mergeConfigConcatArrays(target: Info, source: Info): Info {
   // Each layer keeps the raw shape the user wrote on disk; consumers should use
   // ConfigPermission.toLayers to normalise.
   if (source.permission) {
-    merged.permission = [...ConfigPermission.toLayers(target.permission), ...ConfigPermission.toLayers(source.permission)]
+    merged.permission = [
+      ...ConfigPermission.toLayers(target.permission),
+      ...ConfigPermission.toLayers(source.permission),
+    ]
   }
   return merged
 }

+ 4 - 1
packages/sdk/js/src/v2/gen/types.gen.ts

@@ -1263,7 +1263,10 @@ export type Config = {
       }
   instructions?: Array<string>
   layout?: LayoutConfig
-  permission?: PermissionConfig
+  /**
+   * Permission configuration. Accepts a single object (per-tool action map) or an array of layered configs; arrays are merged in order so later layers override earlier ones.
+   */
+  permission?: PermissionConfig | Array<PermissionConfig>
   tools?: {
     [key: string]: boolean
   }

+ 12 - 1
packages/sdk/openapi.json

@@ -12407,7 +12407,18 @@
             "$ref": "#/components/schemas/LayoutConfig"
           },
           "permission": {
-            "$ref": "#/components/schemas/PermissionConfig"
+            "anyOf": [
+              {
+                "$ref": "#/components/schemas/PermissionConfig"
+              },
+              {
+                "type": "array",
+                "items": {
+                  "$ref": "#/components/schemas/PermissionConfig"
+                }
+              }
+            ],
+            "description": "Permission configuration. Accepts a single object (per-tool action map) or an array of layered configs; arrays are merged in order so later layers override earlier ones."
           },
           "tools": {
             "type": "object",