Unified slash-command registry.
Every slash command is declared once as a SlashCommand entry in COMMANDS.
Bypass-tier frozensets and autocomplete entries are derived automatically — no
other file should hard-code command metadata.
All slash commands.
Commands that execute regardless of any busy state.
Commands that bypass only during initial server connection.
Commands that open modal UI immediately, deferring real work.
Exact selector-opening forms that bypass the queue without mutating state.
Commands whose side effect fires immediately; chat output deferred until idle.
Commands that must wait in the queue when the app is busy.
Power-user commands kept out of autocomplete and help.
QUEUED-tier commands that must still run when startup has failed.
When the configured model can't be built (e.g. its provider package is
missing) the server never starts and the app holds a _server_startup_error
state that parks queued messages. These are the recovery escape hatches for
that state — install the missing package, reload config/env, or upgrade the
tool — so they must bypass the queue rather than sit behind the very failure
they repair. /model and /auth already escape via IMMEDIATE_UI (which
opens a modal and defers the real work); the commands here instead perform
their repair work directly, so they stay QUEUED and rely on this exemption.
The bypass itself is gated in _can_bypass_queue. Every entry is also
QUEUE_BOUND — the recovery exemption is orthogonal to the normal queue.
Union of all tiers plus hidden commands — used by drift tests.
Return autocomplete entries for slash commands.
Extract skill name and args from a /skill:<name> command.
Build autocomplete entries for discovered skills.
Each skill becomes a /skill:<name> entry with its description
and the skill name as a hidden keyword for fuzzy matching. Plugin skills
keep their namespaced machine name for matching/insertion but present a
short, source-tagged label in the popup.
Skills that already have a dedicated slash command in COMMANDS
(e.g., remember → /remember) are excluded to avoid duplicate
autocomplete entries.
Extended skill metadata for CLI display, adds source tracking.
Classification that controls whether a command can skip the message queue.
A single slash-command definition.
A single autocomplete entry for the slash-command controller.