@@ -129,6 +129,10 @@ import {
129129import { resolveProviderOptionDescriptors } from "../../lib/providerOptions" ;
130130import { useComposerPathSearch } from "../../state/use-composer-path-search" ;
131131import { ComposerCommandPopover , type ComposerCommandItem } from "./ComposerCommandPopover" ;
132+ import {
133+ getProviderSkillsForSlashMenu ,
134+ getProviderSlashCommandsForSlashMenu ,
135+ } from "@t3tools/client-runtime/providerSkills" ;
132136import { matchesSlashSkillQuery } from "./composerSlashSkillSearch" ;
133137import {
134138 type ExistingThreadSettingsRouteSession ,
@@ -1297,8 +1301,20 @@ export const ThreadComposer = memo(function ThreadComposer(props: ThreadComposer
12971301 ] ;
12981302 const builtIn = allBuiltIn . filter ( ( item ) => item . command . includes ( q ) ) ;
12991303
1304+ // Shared with web so both clients agree on what the `/` menu contains.
1305+ // `showSkillsInSlashMenu` is passed as its contract default because the
1306+ // synced settings blob is web-only today; the enabled filter and the
1307+ // native-command dedupe do not depend on it.
1308+ const slashMenuSkills = getProviderSkillsForSlashMenu (
1309+ selectedProviderStatus ?. skills ?? [ ] ,
1310+ true ,
1311+ ) ;
1312+
13001313 const providerCommands : ComposerCommandItem [ ] = [ ] ;
1301- for ( const cmd of providerSlashCommands ) {
1314+ for ( const cmd of getProviderSlashCommandsForSlashMenu (
1315+ providerSlashCommands ,
1316+ slashMenuSkills ,
1317+ ) ) {
13021318 if ( ! cmd . name . toLowerCase ( ) . includes ( q ) ) continue ;
13031319 providerCommands . push ( {
13041320 id : `pcmd:${ cmd . name } ` ,
@@ -1309,7 +1325,7 @@ export const ThreadComposer = memo(function ThreadComposer(props: ThreadComposer
13091325 } ) ;
13101326 }
13111327
1312- const skillItems = ( selectedProviderStatus ?. skills ?? [ ] )
1328+ const skillItems = slashMenuSkills
13131329 . filter ( ( skill ) => matchesSlashSkillQuery ( skill , q ) )
13141330 . map ( ( skill ) => ( {
13151331 id : `skill:${ skill . name } ` ,
0 commit comments