From 08b0a7adca112104678466c23e413e100f0968d6 Mon Sep 17 00:00:00 2001 From: Hotakus Date: Mon, 29 Jun 2026 17:17:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(plugin):=20=E6=8B=86=E5=88=86=20server/tui?= =?UTF-8?q?=20=E5=85=A5=E5=8F=A3=E5=85=BC=E5=AE=B9=20OpenCode=20v1=20?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OpenCode v1 插件加载器按 package.json exports 的 ./server 和 ./tui 分别解析 server 与 TUI 插件,且要求两者互斥(PluginModule.tui 为 never)。本插件为纯 TUI 插件,但 package.json 暴露了 main 指向 dist/index.js(仅导出 { id, tui }),当用户经 Ctrl+P install plugin 将包写入 opencode.json 的 server 通道时,加载器以 kind=server 解析 该模块并抛出 must default export an object with server()。 修复方式: - 删除 main 字段,移除 exports[.] 通用入口,切断 server 通道对 TUI 模块的 fallback 解析路径。 - 新增 exports[./server] 指向 dist/server.js,导出空 server ({ id, server: async () => ({}) }),使 server 通道加载到合法 的 PluginModule 而非报错,TUI 功能仍由 ./tui 入口承载。 - 新增 src/server.ts 作为空 server 入口源文件。 同 opencode-subagent-magazine issue #8 的根因与修复方式。 --- package.json | 7 +++---- src/server.ts | 10 ++++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 src/server.ts diff --git a/package.json b/package.json index 9c5e06a..daad745 100644 --- a/package.json +++ b/package.json @@ -3,12 +3,11 @@ "version": "1.2.15", "description": "OpenCode TUI plugin displaying real-time token cache hit rate in the sidebar", "type": "module", - "main": "dist/index.js", "types": "dist/index.d.ts", "exports": { - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts" + "./server": { + "import": "./dist/server.js", + "types": "./dist/server.d.ts" }, "./tui": { "import": "./dist/tui.js", diff --git a/src/server.ts b/src/server.ts new file mode 100644 index 0000000..6228c7f --- /dev/null +++ b/src/server.ts @@ -0,0 +1,10 @@ +import type { Plugin, PluginModule } from "@opencode-ai/plugin" + +const server: Plugin = async () => ({}) + +const mod: PluginModule = { + id: "opencode-visual-cache", + server, +} + +export default mod