59 lines
2.2 KiB
JavaScript
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 };
|