opencode-agent[bot] 2 месяцев назад
Родитель
Сommit
355a0bcf5b

+ 4 - 6
packages/opencode/test/server/httpapi-exercise/index.ts

@@ -578,12 +578,10 @@ const scenarios: Scenario[] = [
     .get("/experimental/session", "experimental.session.list")
     .get("/experimental/session", "experimental.session.list")
     .at((ctx) => ({ path: "/experimental/session?roots=false&archived=false", headers: ctx.headers() }))
     .at((ctx) => ({ path: "/experimental/session?roots=false&archived=false", headers: ctx.headers() }))
     .json(200, array),
     .json(200, array),
-  http.protected
-    .get("/experimental/capabilities", "experimental.capabilities.get")
-    .json(200, (body) => {
-      check(typeof body === "object" && body !== null, "capabilities should be an object")
-      check("backgroundSubagents" in body, "capabilities should report background subagents")
-    }),
+  http.protected.get("/experimental/capabilities", "experimental.capabilities.get").json(200, (body) => {
+    check(typeof body === "object" && body !== null, "capabilities should be an object")
+    check("backgroundSubagents" in body, "capabilities should report background subagents")
+  }),
   http.protected
   http.protected
     .post("/experimental/session/{sessionID}/background", "experimental.session.background")
     .post("/experimental/session/{sessionID}/background", "experimental.session.background")
     .mutating()
     .mutating()

+ 64 - 0
packages/sdk/openapi.json

@@ -810,6 +810,60 @@
         ]
         ]
       }
       }
     },
     },
+    "/experimental/capabilities": {
+      "get": {
+        "tags": ["experimental"],
+        "operationId": "experimental.capabilities.get",
+        "parameters": [
+          {
+            "name": "directory",
+            "in": "query",
+            "schema": {
+              "type": "string"
+            },
+            "required": false
+          },
+          {
+            "name": "workspace",
+            "in": "query",
+            "schema": {
+              "type": "string"
+            },
+            "required": false
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "Experimental capabilities",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/ExperimentalCapabilities"
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Bad request",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/BadRequestError"
+                }
+              }
+            }
+          }
+        },
+        "description": "Get experimental features enabled on the OpenCode server.",
+        "summary": "Get experimental capabilities",
+        "x-codeSamples": [
+          {
+            "lang": "js",
+            "source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.capabilities.get({\n  ...\n})"
+          }
+        ]
+      }
+    },
     "/experimental/console": {
     "/experimental/console": {
       "get": {
       "get": {
         "tags": ["experimental"],
         "tags": ["experimental"],
@@ -21024,6 +21078,16 @@
         "required": ["id", "name", "source", "env", "options", "models"],
         "required": ["id", "name", "source", "env", "options", "models"],
         "additionalProperties": false
         "additionalProperties": false
       },
       },
+      "ExperimentalCapabilities": {
+        "type": "object",
+        "properties": {
+          "backgroundSubagents": {
+            "type": "boolean"
+          }
+        },
+        "required": ["backgroundSubagents"],
+        "additionalProperties": false
+      },
       "ConsoleState": {
       "ConsoleState": {
         "type": "object",
         "type": "object",
         "properties": {
         "properties": {

+ 1 - 5
packages/tui/src/context/sync.tsx

@@ -489,11 +489,7 @@ export const {
               setStore("provider", reconcile(providers.providers))
               setStore("provider", reconcile(providers.providers))
               setStore("provider_default", reconcile(providers.default))
               setStore("provider_default", reconcile(providers.default))
               setStore("provider_next", reconcile(providerList))
               setStore("provider_next", reconcile(providerList))
-              setStore(
-                "capabilities",
-                "experimentalBackgroundSubagents",
-                capabilities?.backgroundSubagents === true,
-              )
+              setStore("capabilities", "experimentalBackgroundSubagents", capabilities?.backgroundSubagents === true)
               setStore("console_state", reconcile(consoleState))
               setStore("console_state", reconcile(consoleState))
               setStore("agent", reconcile(agents))
               setStore("agent", reconcile(agents))
               setStore("config", reconcile(config))
               setStore("config", reconcile(config))