@@ -94,6 +94,10 @@ function isAmdRyzenModel(model: ModelData) {
94
94
return model . tags . includes ( "ryzenai-hybrid" ) || model . tags . includes ( "ryzenai-npu" ) ;
95
95
}
96
96
97
+ function isCactusModel ( model : ModelData ) {
98
+ return model . tags . includes ( "cactus" ) ;
99
+ }
100
+
97
101
function isMlxModel ( model : ModelData ) {
98
102
return model . tags . includes ( "mlx" ) ;
99
103
}
@@ -361,6 +365,21 @@ const snippetLemonade = (model: ModelData, filepath?: string): LocalAppSnippet[]
361
365
] ;
362
366
} ;
363
367
368
+ const snippetCactus = ( model : ModelData , filepath ?: string ) : LocalAppSnippet [ ] => {
369
+ return [
370
+ {
371
+ title : "Install Cactus for Flutter" ,
372
+ setup : "flutter pub get cactus" ,
373
+ content : "Follow the documentation" ,
374
+ } ,
375
+ {
376
+ title : "Install Cactus for React Native" ,
377
+ setup : "npm install cactus-react-native" ,
378
+ content : "Follow the documentation" ,
379
+ } ,
380
+ ] ;
381
+ } ;
382
+
364
383
/**
365
384
* Add your new local app here.
366
385
*
@@ -545,6 +564,13 @@ export const LOCAL_APPS = {
545
564
displayOnModelPage : ( model ) => isLlamaCppGgufModel ( model ) || isAmdRyzenModel ( model ) ,
546
565
snippet : snippetLemonade ,
547
566
} ,
567
+ cactus : {
568
+ prettyLabel : "Cactus" ,
569
+ docsUrl : "https://cactuscompute.com/docs" ,
570
+ mainTask : "text-generation" ,
571
+ displayOnModelPage : isCactusModel ,
572
+ snippet : snippetCactus
573
+ } ,
548
574
} satisfies Record < string , LocalApp > ;
549
575
550
576
export type LocalAppKey = keyof typeof LOCAL_APPS ;
0 commit comments