feat(webui): add dollar skill shortcuts

Add a WebUI-only $<skill> completion shortcut without changing slash command behavior.

Keep slash autocomplete command-only and allow dollar skill shortcuts anywhere in the composer.

Co-authored-by: Alan Chen <zc2610@nyu.edu>
This commit is contained in:
chengyongru
2026-07-01 19:51:01 +08:00
committed by Xubin Ren
co-authored by Alan Chen
parent a6d5e4f3b5
commit 2ec4044217
4 changed files with 97 additions and 4 deletions
@@ -32,6 +32,7 @@ import type {
ChatSummary,
SettingsPayload,
SlashCommand,
SkillSummary,
UIMessage,
WorkspaceScopePayload,
WorkspacesPayload,
@@ -142,6 +143,7 @@ interface ThreadShellProps {
onWorkspaceScopeChange?: (scope: WorkspaceScopePayload) => void;
settingsSnapshot?: SettingsPayload | null;
onOpenModelSettings?: () => void;
skills?: SkillSummary[];
}
function toModelBadgeLabel(modelName: string | null): string | null {
@@ -292,6 +294,7 @@ export function ThreadShell({
onWorkspaceScopeChange,
settingsSnapshot = null,
onOpenModelSettings,
skills = [],
}: ThreadShellProps) {
const { t } = useTranslation();
const chatId = session?.chatId ?? null;
@@ -726,6 +729,7 @@ export function ThreadShell({
slashCommands={slashCommands}
cliApps={cliApps}
mcpPresets={mcpPresets}
skills={skills}
onStop={stop}
onTranscribeAudio={transcribeAudio}
runStartedAt={runStartedAt}
@@ -758,6 +762,7 @@ export function ThreadShell({
slashCommands={slashCommands}
cliApps={cliApps}
mcpPresets={mcpPresets}
skills={skills}
runStartedAt={runStartedAt}
onTranscribeAudio={transcribeAudio}
goalState={goalState}