@@ -4,12 +4,19 @@ import { useSync } from "@tui/context/sync"
44import { map , pipe , flatMap , entries , filter , isDeepEqual , sortBy } from "remeda"
55import { DialogSelect , type DialogSelectRef } from "@tui/ui/dialog-select"
66import { useDialog } from "@tui/ui/dialog"
7+ import { useTheme } from "../context/theme"
8+
9+ function Free ( ) {
10+ const { theme } = useTheme ( )
11+ return < span style = { { fg : theme . secondary } } > Free</ span >
12+ }
713
814export function DialogModel ( ) {
915 const local = useLocal ( )
1016 const sync = useSync ( )
1117 const dialog = useDialog ( )
1218 const [ ref , setRef ] = createSignal < DialogSelectRef < unknown > > ( )
19+ const { theme } = useTheme ( )
1320
1421 const options = createMemo ( ( ) => {
1522 return [
@@ -29,6 +36,7 @@ export function DialogModel() {
2936 title : model . name ?? item . modelID ,
3037 description : provider . name ,
3138 category : "Recent" ,
39+ footer : model . cost . input === 0 && provider . id === "opencode" ? < Free /> : undefined ,
3240 } ,
3341 ]
3442 } )
@@ -51,6 +59,7 @@ export function DialogModel() {
5159 title : info . name ?? model ,
5260 description : provider . name ,
5361 category : provider . name ,
62+ footer : info . cost . input === 0 && provider . id === "opencode" ? < Free /> : undefined ,
5463 } ) ) ,
5564 filter ( ( x ) => Boolean ( ref ( ) ?. filter ) || ! local . model . recent ( ) . find ( ( y ) => isDeepEqual ( y , x . value ) ) ) ,
5665 ) ,
0 commit comments