@@ -14,6 +14,7 @@ import GoogleGeminiLogo from "@cocalc/frontend/components/google-gemini-avatar";
1414import { LanguageModelVendorAvatar } from "@cocalc/frontend/components/language-model-icon" ;
1515import MistralAvatar from "@cocalc/frontend/components/mistral-avatar" ;
1616import OpenAIAvatar from "@cocalc/frontend/components/openai-avatar" ;
17+ import XAIAvatar from "@cocalc/frontend/components/xai-avatar" ;
1718import { LLMModelPrice } from "@cocalc/frontend/frame-editors/llm/llm-selector" ;
1819import { useUserDefinedLLM } from "@cocalc/frontend/frame-editors/llm/use-userdefined-llm" ;
1920import { useProjectContext } from "@cocalc/frontend/project/context" ;
@@ -37,6 +38,7 @@ import {
3738 toCustomOpenAIModel ,
3839 toOllamaModel ,
3940 toUserLLMModelName ,
41+ XAI_MODELS ,
4042} from "@cocalc/util/db-schema/llm-utils" ;
4143import { cmp , timestamp_cmp , trunc_middle } from "@cocalc/util/misc" ;
4244import { CustomLLMPublic } from "@cocalc/util/types/llm" ;
@@ -204,6 +206,32 @@ function mentionableUsers({
204206 }
205207 }
206208
209+ if ( enabledLLMs . xai ) {
210+ for ( const m of XAI_MODELS ) {
211+ if ( ! selectableLLMs . includes ( m ) ) continue ;
212+ const show_llm_main_menu = m === model ;
213+ const size = show_llm_main_menu ? avatarUserSize : avatarLLMSize ;
214+ const name = LLM_USERNAMES [ m ] ?? m ;
215+ const vendor = model2vendor ( m ) ;
216+ const search_term =
217+ `${ vendor . name } ${ m . replace ( / - / g, "" ) } ${ name . replace ( / / g, "" ) } ` . toLowerCase ( ) ;
218+ if ( ! search || search_term . includes ( search ) ) {
219+ mentions . push ( {
220+ value : model2service ( m ) ,
221+ label : (
222+ < LLMTooltip model = { m } >
223+ < XAIAvatar size = { size } /> { name } { " " }
224+ < LLMModelPrice model = { m } floatRight />
225+ </ LLMTooltip >
226+ ) ,
227+ search : search_term ,
228+ is_llm : true ,
229+ show_llm_main_menu,
230+ } ) ;
231+ }
232+ }
233+ }
234+
207235 if ( enabledLLMs . mistralai ) {
208236 for ( const m of MISTRAL_MODELS ) {
209237 if ( ! selectableLLMs . includes ( m ) ) continue ;
0 commit comments