import { Plugin } from "@opencode/plugin/tui" export default Plugin.define({ id: "oc-session-all", setup(context) { console.log("[oc-session-all] v2 Plugin loaded! Attempting command registration...") // ── 尝试注册命令 ────────────────────────────────────── const report = [] report.push("context keys: " + Object.keys(context).join(", ")) // 尝试 context.command.register if (context.command && typeof context.command.register === "function") { try { const unregister = context.command.register(() => [ { title: "Show All Sessions", value: "sessions-all", slash: { name: "sessions-all", aliases: ["sa"] }, description: "Display all session records in a dialog", onSelect: async () => { console.log("[oc-session-all] /sessions-all triggered") context.ui.toast.show({ message: "Sessions-all command executed!", variant: "success", duration: 3000, }) }, }, ]) report.push("command.register: SUCCESS, unregister: " + typeof unregister) console.log("[oc-session-all] command.register succeeded") } catch (e) { report.push("command.register ERROR: " + e.message) console.error("[oc-session-all] command.register failed:", e) } } else { report.push("context.command: " + (context.command ? "exists but no register" : "undefined")) } // 尝试 keymap 的其他方法 if (context.keymap) { const kmMethods = Object.getOwnPropertyNames(context.keymap) .filter(k => typeof context.keymap[k] === "function") report.push("keymap methods: " + kmMethods.join(", ")) // 尝试常见的 Keymap 方法 const tryMethods = ["bind", "on", "register", "registerLayer", "layer"] for (const m of tryMethods) { if (typeof context.keymap[m] === "function") { report.push("keymap." + m + " exists") } } } const msg = report.join(" | ") console.log("[oc-session-all] REGISTER PROBE: " + msg) context.ui.toast.show({ message: "Register probe: " + msg, variant: "info", duration: 15000, }) }, })