+ {/* Model selector */}
+
+ {(() => {
+ const currentProvider = modelGroups.find((g) =>
+ g.models.some((m) => m.value === model),
+ )?.provider
+ if (currentProvider) {
+ const ProvIcon = PROVIDER_ICON[currentProvider]
+ return
+ }
+ return null
+ })()}
+
+ {isLoadingModels
+ ? 'Loading models...'
+ : availableModels.find((m) => m.value === model)?.displayName ?? model}
+
+
+
+
+ {/* Action icons */}
+
+
+
+
+ {/* Upward model dropdown */}
+ {modelDropdownOpen && availableModels.length > 0 && (
+
+ {modelGroups.length > 0
+ ? modelGroups.map((group) => {
+ const GIcon = PROVIDER_ICON[group.provider]
+ return (
+
+
+
+
+ {group.providerName}
+
+
+ {group.models.map((m, idx) => {
+ const isSelected = m.value === model
+ return (
+
+ )
+ })}
+
+ )
+ })
+ : availableModels.map((m) => {
+ const isSelected = m.value === model
+ return (
+
+ )
+ })}
+
+ )}