Sebastian Herrlinger 1 місяць тому
батько
коміт
8b45247d24
2 змінених файлів з 46 додано та 0 видалено
  1. 33 0
      .opencode/plugins/tui-smoke.tsx
  2. 13 0
      .opencode/tui.json

+ 33 - 0
.opencode/plugins/tui-smoke.tsx

@@ -0,0 +1,33 @@
+/** @jsxImportSource @opentui/solid */
+import mytheme from "../themes/mytheme.json" with { type: "json" }
+
+const slot = (label) => ({
+  id: "workspace-smoke",
+  slots: {
+    home_hint() {
+      return <text> [plugin:{label}]</text>
+    },
+    home_footer() {
+      return <text> theme:workspace-plugin-smoke</text>
+    },
+    session_footer(_ctx, props) {
+      return <text> session:{props.session_id.slice(0, 8)}</text>
+    },
+  },
+})
+
+const themes = {
+  "workspace-plugin-smoke": mytheme,
+}
+
+const tui = async (input, options) => {
+  if (options?.enabled === false) return
+  const label = typeof options?.label === "string" ? options.label : "smoke"
+  input.slots.register(slot(label))
+  console.error(`[workspace-smoke] tui plugin initialized (${label})`)
+}
+
+export default {
+  themes,
+  tui,
+}

+ 13 - 0
.opencode/tui.json

@@ -0,0 +1,13 @@
+{
+  "$schema": "https://opencode.ai/tui.json",
+  "theme": "workspace-plugin-smoke",
+  "plugin": [
+    [
+      "./plugins/tui-smoke.tsx",
+      {
+        "enabled": true,
+        "label": "workspace"
+      }
+    ]
+  ]
+}