Quellcode durchsuchen

fix mcp tools corrupting session

Dax Raad vor 7 Monaten
Ursprung
Commit
0d50c867ff
2 geänderte Dateien mit 20 neuen und 8 gelöschten Zeilen
  1. 6 0
      opencode.json
  2. 14 8
      packages/opencode/src/session/index.ts

+ 6 - 0
opencode.json

@@ -1,5 +1,11 @@
 {
   "$schema": "https://opencode.ai/config.json",
+  "mcp": {
+    "weather": {
+      "type": "local",
+      "command": ["opencode", "x", "@h1deya/mcp-server-weather"]
+    }
+  },
   "experimental": {
     "hook": {
       "file_edited": {

+ 14 - 8
packages/opencode/src/session/index.ts

@@ -496,14 +496,20 @@ export namespace Session {
       const execute = item.execute
       if (!execute) continue
       item.execute = async (args, opts) => {
-        try {
-          const result = await execute(args, opts)
-          return result.content
-            .filter((x: any) => x.type === "text")
-            .map((x: any) => x.text)
-            .join("\n\n")
-        } catch (e: any) {
-          return e.toString()
+        const result = await execute(args, opts)
+        const output = result.content
+          .filter((x: any) => x.type === "text")
+          .map((x: any) => x.text)
+          .join("\n\n")
+
+        return {
+          output,
+        }
+      }
+      item.toModelOutput = (result) => {
+        return {
+          type: "text",
+          value: result.output,
         }
       }
       tools[key] = item