Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 0 additions & 59 deletions src/commands/pr_comments.ts

This file was deleted.

54 changes: 0 additions & 54 deletions src/commands/refreshCommands.ts

This file was deleted.

60 changes: 28 additions & 32 deletions src/ui/components/ModelListManager.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export function ModelListManager({ onClose }: Props): React.ReactNode {
const theme = getTheme()
const [selectedIndex, setSelectedIndex] = useState(0)
const [showModelSelector, setShowModelSelector] = useState(false)
const [editingModelName, setEditingModelName] = useState<string | null>(null)
const [isDeleteMode, setIsDeleteMode] = useState(false)
const [refreshKey, setRefreshKey] = useState(0)
const exitState = useExitOnCtrlCD(onClose)
Expand Down Expand Up @@ -66,11 +67,19 @@ export function ModelListManager({ onClose }: Props): React.ReactNode {
}

const handleAddNewModel = () => {
setEditingModelName(null)
setIsDeleteMode(false)
setShowModelSelector(true)
}

const handleEditModel = (modelName: string) => {
setEditingModelName(modelName)
setShowModelSelector(true)
}

const handleModelConfigurationComplete = () => {
setShowModelSelector(false)
setEditingModelName(null)
setRefreshKey(prev => prev + 1)
}

Expand All @@ -82,7 +91,7 @@ export function ModelListManager({ onClose }: Props): React.ReactNode {
} else {
onClose()
}
} else if (input === 'd' && !isDeleteMode && availableModels.length > 1) {
} else if (input === 'd' && !isDeleteMode && availableModels.length > 0) {
setIsDeleteMode(true)
} else if (key.upArrow) {
setSelectedIndex(prev => Math.max(0, prev - 1))
Expand All @@ -92,17 +101,11 @@ export function ModelListManager({ onClose }: Props): React.ReactNode {
const item = menuItems[selectedIndex]

if (isDeleteMode && item.type === 'model') {
if (availableModels.length <= 1) {
setIsDeleteMode(false)
return
}
if (config.modelPointers?.main === item.id) {
setIsDeleteMode(false)
return
}
handleDeleteModel(item.id)
} else if (item.type === 'action') {
handleAddNewModel()
} else if (item.type === 'model') {
handleEditModel(item.id)
}
}
},
Expand All @@ -112,12 +115,18 @@ export function ModelListManager({ onClose }: Props): React.ReactNode {
useInput(handleInput, { isActive: !showModelSelector })

if (showModelSelector) {
const editingModel =
editingModelName === null
? undefined
: availableModels.find(model => model.modelName === editingModelName)

return (
<ModelSelector
onDone={handleModelConfigurationComplete}
onCancel={handleModelConfigurationComplete}
skipModelType={true}
isOnboarding={false}
initialModelProfile={editingModel}
abortController={new AbortController()}
/>
)
Expand All @@ -140,11 +149,7 @@ export function ModelListManager({ onClose }: Props): React.ReactNode {
</Text>
<Text dimColor>
{isDeleteMode ? (
availableModels.length <= 1 ? (
'Cannot delete the last model, Esc to cancel'
) : (
'Press Enter/Space to DELETE selected model (cannot delete main), Esc to cancel'
)
'Press Enter/Space to DELETE selected model, Esc to cancel'
) : (
<>
Navigate: ↑↓ | Select: Enter |{' '}
Expand Down Expand Up @@ -204,16 +209,11 @@ export function ModelListManager({ onClose }: Props): React.ReactNode {
</Text>
</Box>
)}
{isSelected &&
isDeleteMode &&
item.type === 'model' &&
config.modelPointers?.main === item.id && (
<Box paddingLeft={2} marginTop={1}>
<Text color="yellow">
Cannot delete: This model is currently set as main
</Text>
</Box>
)}
{isSelected && !isDeleteMode && item.type === 'model' && (
<Box paddingLeft={2} marginTop={1}>
<Text dimColor>Edit this model configuration</Text>
</Box>
)}
</Box>
)
})}
Expand All @@ -226,20 +226,16 @@ export function ModelListManager({ onClose }: Props): React.ReactNode {
>
<Text dimColor>
{isDeleteMode ? (
availableModels.length <= 1 ? (
'Cannot delete the last model - press Esc to cancel'
) : (
'DELETE MODE: Press Enter/Space to delete (cannot delete main model), Esc to cancel'
)
) : availableModels.length <= 1 ? (
'Use ↑/↓ to navigate, Enter to add new, Esc to exit (cannot delete last model)'
'DELETE MODE: Press Enter/Space to delete. Pointers will be reassigned or cleared.'
) : availableModels.length === 0 ? (
'Use ↑/↓ to navigate, Enter to add new, Esc to exit'
) : (
<>
Use ↑/↓ to navigate,{' '}
<Text bold color="red">
d to delete model
</Text>
, Enter to add new, Esc to exit
, Enter to add/edit, Esc to exit
</>
)}
</Text>
Expand Down
Loading
Loading