Files
oc_session/tui-plugins/oc-session-all-debug.js
T

59 lines
2.2 KiB
JavaScript

/**
* OpenCode TUI Plugin: Show All Sessions (DEBUG VERSION)
*
* Minimal version to test if plugin loads without crashes.
* Only includes basic MCP toast suppression and keymap.
*/
// ── Plugin ─────────────────────────────────────────────────────────────
const tui = async (api) => {
// Log that we're alive
console.log("[oc-session-all] Plugin loaded successfully!");
// ─── MCP Error Toast Suppression ─────────────────────────────────────
api.event.on("tui.toast.show", (event) => {
const props = event.properties;
if (
props.variant === "error" &&
typeof props.message === "string" &&
(props.message.toLowerCase().includes("mcp") ||
props.message.toLowerCase().includes("mcp server") ||
props.message.toLowerCase().includes("mcp error") ||
props.message.toLowerCase().includes("failed to connect") ||
props.message.toLowerCase().includes("connection refused"))
) {
props.variant = "info";
props.message = "MCP server offline (auto-reconnect when available)";
props.duration = 2000;
}
});
// ─── Minimal keymap (just to test registration works) ─────────────────
try {
api.keymap.registerLayer({
bindings: [
{
key: "ctrl+o",
desc: "All sessions picker (debug)",
preventDefault: true,
cmd: () => {
console.log("[oc-session-all] Ctrl+O pressed!");
api.ui.toast({
message: "Plugin loaded! Ctrl+O works!",
variant: "info",
});
},
},
],
});
console.log("[oc-session-all] Keymap registered successfully!");
} catch (err) {
console.error("[oc-session-all] Keymap registration failed:", err);
}
};
// ── Export ──────────────────────────────────────────────────────────────
export default { id: "oc-session-all-debug", tui };