()
| 50 | * Returns model options for combobox subblocks, combining all provider sources. |
| 51 | */ |
| 52 | export function getModelOptions() { |
| 53 | const providersState = useProvidersStore.getState() |
| 54 | const baseModels = orderModelIdsByReleaseDate(providersState.providers.base.models) |
| 55 | const ollamaModels = providersState.providers.ollama.models |
| 56 | const ollamaCloudModels = providersState.providers['ollama-cloud'].models |
| 57 | const vllmModels = providersState.providers.vllm.models |
| 58 | const litellmModels = providersState.providers.litellm.models |
| 59 | const openrouterModels = providersState.providers.openrouter.models |
| 60 | const fireworksModels = providersState.providers.fireworks.models |
| 61 | const togetherModels = providersState.providers.together.models |
| 62 | const basetenModels = providersState.providers.baseten.models |
| 63 | const allModels = Array.from( |
| 64 | new Set([ |
| 65 | ...baseModels, |
| 66 | ...ollamaModels, |
| 67 | ...ollamaCloudModels, |
| 68 | ...vllmModels, |
| 69 | ...litellmModels, |
| 70 | ...openrouterModels, |
| 71 | ...fireworksModels, |
| 72 | ...togetherModels, |
| 73 | ...basetenModels, |
| 74 | ]) |
| 75 | ) |
| 76 | |
| 77 | return allModels.map((model) => { |
| 78 | const icon = getProviderIcon(model) |
| 79 | return { label: model, id: model, ...(icon && { icon }) } |
| 80 | }) |
| 81 | } |
| 82 | |
| 83 | /** |
| 84 | * Model options filtered to providers the Pi Coding Agent can run (see |
no test coverage detected