mirror of
https://github.com/aaif-goose/goose.git
synced 2026-07-03 14:10:03 +02:00
feat(cli): add type-to-search filtering to select/multiselect dialogs (#6862)
Signed-off-by: Harrison <hcstebbins@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -565,6 +565,7 @@ pub async fn configure_provider_dialog() -> anyhow::Result<bool> {
|
||||
let provider_name = cliclack::select("Which model provider should we use?")
|
||||
.initial_value(&default_provider)
|
||||
.items(&provider_items)
|
||||
.filter_mode()
|
||||
.interact()?;
|
||||
|
||||
// Get the selected provider's metadata
|
||||
@@ -784,6 +785,7 @@ pub fn toggle_extensions_dialog() -> anyhow::Result<()> {
|
||||
.collect::<Vec<_>>(),
|
||||
)
|
||||
.initial_values(enabled_extensions)
|
||||
.filter_mode()
|
||||
.interact()?;
|
||||
|
||||
// Update enabled status for each extension
|
||||
@@ -1122,6 +1124,7 @@ pub fn remove_extension_dialog() -> anyhow::Result<()> {
|
||||
.map(|(name, _)| (name, name.as_str(), MULTISELECT_VISIBILITY_HINT))
|
||||
.collect::<Vec<_>>(),
|
||||
)
|
||||
.filter_mode()
|
||||
.interact()?;
|
||||
|
||||
for name in selected {
|
||||
@@ -1427,6 +1430,7 @@ pub async fn configure_tool_permissions_dialog() -> anyhow::Result<()> {
|
||||
.map(|ext| (ext.clone(), ext.clone(), ""))
|
||||
.collect::<Vec<_>>(),
|
||||
)
|
||||
.filter_mode()
|
||||
.interact()?;
|
||||
|
||||
let config = Config::global();
|
||||
@@ -1507,6 +1511,7 @@ pub async fn configure_tool_permissions_dialog() -> anyhow::Result<()> {
|
||||
})
|
||||
.collect::<Vec<_>>(),
|
||||
)
|
||||
.filter_mode()
|
||||
.interact()?;
|
||||
|
||||
// Find the selected tool
|
||||
@@ -1947,6 +1952,7 @@ fn remove_provider() -> anyhow::Result<()> {
|
||||
|
||||
let selected_id = cliclack::select("Which custom provider would you like to remove?")
|
||||
.items(&provider_items)
|
||||
.filter_mode()
|
||||
.interact()?;
|
||||
|
||||
remove_custom_provider(selected_id)?;
|
||||
|
||||
Reference in New Issue
Block a user