diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx index e427e24e952..f013adc1408 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx @@ -11,6 +11,31 @@ export function DialogStatus() { const enabledFormatters = createMemo(() => sync.data.formatter.filter((f) => f.enabled)) + const plugins = createMemo(() => { + const list = sync.data.config.plugin ?? [] + const result = list.map((value) => { + if (value.startsWith("file://")) { + const path = value.substring("file://".length) + const parts = path.split("/") + const filename = parts.pop() || path + if (!filename.includes(".")) return { name: filename } + const basename = filename.split(".")[0] + if (basename === "index") { + const dirname = parts.pop() + const name = dirname || basename + return { name } + } + return { name: basename } + } + const index = value.lastIndexOf("@") + if (index <= 0) return { name: value, version: "latest" } + const name = value.substring(0, index) + const version = value.substring(index + 1) + return { name, version } + }) + return result.toSorted((a, b) => a.name.localeCompare(b.name)) + }) + return ( @@ -99,6 +124,29 @@ export function DialogStatus() { + 0} fallback={No Plugins}> + + {plugins().length} Plugins + + {(item) => ( + + + • + + + {item.name} + {item.version && @{item.version}} + + + )} + + + ) } diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 82c2e4abbba..54118de1c05 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -24,4 +24,4 @@ "typescript": "catalog:", "@typescript/native-preview": "catalog:" } -} \ No newline at end of file +} diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index af8034808e1..075201c931d 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -26,4 +26,4 @@ "publishConfig": { "directory": "dist" } -} \ No newline at end of file +}