import { useKeyboard } from "@opentui/solid"; import { onMount, onCleanup } from "solid-js"; import type { CliRenderer } from "@opentui/core"; import { useKeyboardNav } from "../context/keyboard.js"; import { spawnPager } from "../util/editor.js"; import { buildManPage } from "../util/help-content.js"; interface HelpOverlayProps { onDismiss: () => void; renderer: CliRenderer; } export function HelpOverlay(props: HelpOverlayProps) { const { setOverlayActive } = useKeyboardNav(); onMount(() => setOverlayActive(true)); onCleanup(() => setOverlayActive(false)); useKeyboard((event) => { event.preventDefault(); if (event.name === "m") { props.onDismiss(); void spawnPager(buildManPage(), props.renderer); } else { props.onDismiss(); } }); return ( Keybindings Ctrl+E Open $EDITOR (preserves input) Ctrl+C Clear input / exit Ctrl+B Toggle sidebar Escape Abort / resume queue PgUp/Dn Scroll messages Core /set Edit global settings /q /q! Quit (! = skip sync) /provider Manage LLM providers /me Edit your data /d /d <name> Edit persona details Persona /p /p new /p update /context Message context /pause /resume Rooms /r /r new Room picker / create /activate Advance active node /silence Pass your turn Extended /tools Tool providers /auth spotify Spotify OAuth /queue /dlq Inspect queues m - full manual | any key - dismiss Ei - 永 (ei) - eternal ); }