File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 3030 "Qwen/Qwen3-Coder-4B" : "z-lab/Qwen3-Coder-4B-DFlash" ,
3131 "Qwen/Qwen3-Coder-8B" : "z-lab/Qwen3-Coder-8B-DFlash" ,
3232 "Qwen/Qwen3-Coder-30B-A3B" : "z-lab/Qwen3-Coder-30B-A3B-DFlash" ,
33+ "Qwen/Qwen3-Coder-Next" : "z-lab/Qwen3-Coder-Next-DFlash" ,
3334 # ----- Qwen3.5 family -----
3435 "Qwen/Qwen3.5-4B" : "z-lab/Qwen3.5-4B-DFlash" ,
3536 "Qwen/Qwen3.5-7B" : "z-lab/Qwen3.5-7B-DFlash" ,
5455 "mlx-community/Qwen3-8B-bf16" : "Qwen/Qwen3-8B" ,
5556 "mlx-community/Qwen3-8B-4bit" : "Qwen/Qwen3-8B" ,
5657 "mlx-community/Qwen3-8B-8bit" : "Qwen/Qwen3-8B" ,
58+ "lmstudio-community/Qwen3-Coder-Next-MLX-4bit" : "Qwen/Qwen3-Coder-Next" ,
5759 "mlx-community/Qwen3.5-4B-bf16" : "Qwen/Qwen3.5-4B" ,
5860 "mlx-community/Qwen3.5-7B-bf16" : "Qwen/Qwen3.5-7B" ,
5961 "mlx-community/Qwen3.5-14B-bf16" : "Qwen/Qwen3.5-14B" ,
Original file line number Diff line number Diff line change @@ -1529,6 +1529,7 @@ export default function App() {
15291529 totalMemoryGb = { workspace . system . totalMemoryGb }
15301530 availableCacheStrategies = { workspace . system . availableCacheStrategies }
15311531 dflashInfo = { workspace . system . dflash }
1532+ turboInstalled = { Boolean ( workspace . system . llamaServerTurboPath ) }
15321533 onInstallPackage = { handleInstallPackage }
15331534 installingPackage = { installingPackage }
15341535 />
@@ -1628,6 +1629,7 @@ export default function App() {
16281629 availableCacheStrategies = { workspace . system . availableCacheStrategies }
16291630 dflashInfo = { workspace . system . dflash }
16301631 installingPackage = { installingPackage }
1632+ turboInstalled = { Boolean ( workspace . system . llamaServerTurboPath ) }
16311633 onPendingLaunchChange = { setPendingLaunch }
16321634 onLaunchModelSearchChange = { setLaunchModelSearch }
16331635 onLaunchSettingChange = { updateLaunchSetting }
Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ export interface LaunchModalProps {
1919 availableCacheStrategies : SystemStats [ "availableCacheStrategies" ] | undefined ;
2020 dflashInfo ?: SystemStats [ "dflash" ] ;
2121 installingPackage : string | null ;
22+ turboInstalled ?: boolean ;
2223 onPendingLaunchChange : ( value : PendingLaunch | null | ( ( prev : PendingLaunch | null ) => PendingLaunch | null ) ) => void ;
2324 onLaunchModelSearchChange : ( value : string ) => void ;
2425 onLaunchSettingChange : < K extends keyof LaunchPreferences > ( key : K , value : LaunchPreferences [ K ] ) => void ;
@@ -38,6 +39,7 @@ export function LaunchModal({
3839 availableCacheStrategies,
3940 dflashInfo,
4041 installingPackage,
42+ turboInstalled,
4143 onPendingLaunchChange,
4244 onLaunchModelSearchChange,
4345 onLaunchSettingChange,
@@ -74,6 +76,7 @@ export function LaunchModal({
7476 availableCacheStrategies = { availableCacheStrategies }
7577 dflashInfo = { dflashInfo }
7678 installingPackage = { installingPackage }
79+ turboInstalled = { turboInstalled }
7780 onSelectedKeyChange = { setSelectedLaunchKey }
7881 onSearchChange = { onLaunchModelSearchChange }
7982 onSettingChange = { onLaunchSettingChange }
Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ export interface ModelLaunchModalProps {
1919 availableCacheStrategies : SystemStats [ "availableCacheStrategies" ] | undefined ;
2020 dflashInfo ?: SystemStats [ "dflash" ] ;
2121 installingPackage : string | null ;
22+ turboInstalled ?: boolean ;
2223 onSelectedKeyChange : ( key : string ) => void ;
2324 onSearchChange : ( value : string ) => void ;
2425 onSettingChange : < K extends keyof LaunchPreferences > ( key : K , value : LaunchPreferences [ K ] ) => void ;
@@ -42,6 +43,7 @@ export function ModelLaunchModal({
4243 availableCacheStrategies,
4344 dflashInfo,
4445 installingPackage,
46+ turboInstalled,
4547 onSelectedKeyChange,
4648 onSearchChange,
4749 onSettingChange,
@@ -164,6 +166,7 @@ export function ModelLaunchModal({
164166 selectedModelRef = { selectedOption ?. modelRef }
165167 selectedCanonicalRepo = { selectedOption ?. canonicalRepo }
166168 selectedModelName = { selectedOption ?. model }
169+ turboInstalled = { turboInstalled }
167170 compact
168171 />
169172 </ div >
Original file line number Diff line number Diff line change @@ -281,10 +281,12 @@ export function RuntimeControls({
281281 const isExpanded = expandedInfo === strategy . id ;
282282 const incompatReason = strategyIncompatReason ( strategy . id , selectedBackend ) ;
283283 const isIncompat = incompatReason != null ;
284- const isDisabled = ! strategy . available || ( specActive && strategy . id !== "native" ) || isIncompat ;
284+ const needsTurbo = strategy . requiredLlamaBinary === "turbo" ;
285+ const turboMissing = needsTurbo && turboInstalled === false ;
286+ const isDisabled = ! strategy . available || ( specActive && strategy . id !== "native" ) || isIncompat || turboMissing ;
285287
286288 return (
287- < div key = { strategy . id } className = { `cache-strategy-card${ isSelected ? " cache-strategy-card--active" : "" } ${ isDisabled ? " cache-strategy-card--disabled" : "" } ` } title = { incompatReason ?? undefined } >
289+ < div key = { strategy . id } className = { `cache-strategy-card${ isSelected ? " cache-strategy-card--active" : "" } ${ isDisabled ? " cache-strategy-card--disabled" : "" } ` } title = { incompatReason ?? ( turboMissing ? "Requires llama-server-turbo binary. Run scripts/build-llama-turbo.sh to install." : undefined ) } >
288290 < div className = "cache-strategy-card-header" >
289291 < button
290292 type = "button"
@@ -296,10 +298,10 @@ export function RuntimeControls({
296298 < span className = "cache-strategy-card-name" > { strategy . name } </ span >
297299 < span
298300 className = { `cache-strategy-badge cache-strategy-badge--${
299- isIncompat ? "warning" : strategy . available ? "ready" : strategy . availabilityTone ?? "install"
301+ isIncompat ? "warning" : turboMissing ? "warning" : strategy . available ? "ready" : strategy . availabilityTone ?? "install"
300302 } `}
301303 >
302- { isIncompat ? "N/A" : strategy . available ? "Ready" : strategy . availabilityBadge ?? "Install" }
304+ { isIncompat ? "N/A" : turboMissing ? "No turbo binary" : strategy . available ? "Ready" : strategy . availabilityBadge ?? "Install" }
303305 </ span >
304306 </ button >
305307 { info ? (
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ export interface BenchmarkRunTabProps {
1818 availableMemoryGb : number ;
1919 totalMemoryGb : number ;
2020 availableCacheStrategies : SystemStats [ "availableCacheStrategies" ] ;
21+ llamaServerTurboPath ?: string | null ;
2122 } ;
2223 } ;
2324 benchmarkDraft : BenchmarkRunPayload ;
@@ -218,6 +219,7 @@ export function BenchmarkRunTab({
218219 availableCacheStrategies = { workspace . system . availableCacheStrategies }
219220 onInstallPackage = { onInstallPackage }
220221 installingPackage = { installingPackage }
222+ turboInstalled = { Boolean ( workspace . system . llamaServerTurboPath ) }
221223 showTemperature = { false }
222224 showPreview = { false }
223225 />
Original file line number Diff line number Diff line change @@ -48,6 +48,7 @@ interface CompareViewProps {
4848 totalMemoryGb : number ;
4949 availableCacheStrategies ?: SystemStats [ "availableCacheStrategies" ] ;
5050 dflashInfo ?: SystemStats [ "dflash" ] ;
51+ turboInstalled ?: boolean ;
5152 onInstallPackage ?: ( strategyId : string ) => void ;
5253 installingPackage ?: string | null ;
5354}
@@ -252,6 +253,7 @@ export function CompareView({
252253 totalMemoryGb,
253254 availableCacheStrategies,
254255 dflashInfo,
256+ turboInstalled,
255257 onInstallPackage,
256258 installingPackage,
257259} : CompareViewProps ) {
@@ -700,6 +702,7 @@ export function CompareView({
700702 availableCacheStrategies = { availableCacheStrategies }
701703 dflashInfo = { dflashInfo }
702704 installingPackage = { installingPackage ?? null }
705+ turboInstalled = { turboInstalled }
703706 onSelectedKeyChange = { setPickerDraftKey }
704707 onSearchChange = { setPickerSearch }
705708 onSettingChange = { ( key , value ) => {
You can’t perform that action at this time.
0 commit comments