diff --git a/functions/_synu_agents/aider.fish b/functions/_synu_agents/aider.fish index 92560ef560b7b274efe9c488a3569d3ce9072ae1..6fe30c72d433dc8fa052344acbb73cf469a03d87 100644 --- a/functions/_synu_agents/aider.fish +++ b/functions/_synu_agents/aider.fish @@ -93,10 +93,18 @@ function _synu_agent_aider_interactive --description "Interactive model selectio # Build flags array set -l flags + # Get current models for display + set -l current_model_id (_synu_aider_default model) + set -l current_model_name (echo $models_json | \ + jq -r --arg id "$current_model_id" '.data[] | select(.id == $id) | .name // "unknown"') + set -l current_editor_id (_synu_aider_default editor_model) + set -l current_editor_name (echo $models_json | \ + jq -r --arg id "$current_editor_id" '.data[] | select(.id == $id) | .name // "unknown"') + # Select main model set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select main model for Aider" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select main model for Aider (current: $current_model_id)" \ + --selected "$current_model_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \ @@ -112,8 +120,8 @@ function _synu_agent_aider_interactive --description "Interactive model selectio # Select editor model if requested if test "$use_editor_model" = "Yes (architect + editor mode)" set -l editor_model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select editor model for Aider" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select editor model for Aider (current: $current_editor_id)" \ + --selected "$current_editor_name" --placeholder "Filter models...") or return 1 set -l editor_model_id (echo $models_json | \ diff --git a/functions/_synu_agents/claude.fish b/functions/_synu_agents/claude.fish index 92d7674f4538403fb4173d808837149f64d0bb34..2c17c6d8c907bb6653178be5f5e6a529bb04122c 100644 --- a/functions/_synu_agents/claude.fish +++ b/functions/_synu_agents/claude.fish @@ -106,6 +106,20 @@ function _synu_agent_claude_interactive --description "Interactive model selecti set -l model_names (echo $models_json | jq -r '.data[].name') or return 1 + # Get current models for display + set -l current_opus_id (_synu_claude_default opus) + set -l current_sonnet_id (_synu_claude_default sonnet) + set -l current_haiku_id (_synu_claude_default haiku) + set -l current_agent_id (_synu_claude_default agent) + set -l current_opus_name (echo $models_json | \ + jq -r --arg id "$current_opus_id" '.data[] | select(.id == $id) | .name // "unknown"') + set -l current_sonnet_name (echo $models_json | \ + jq -r --arg id "$current_sonnet_id" '.data[] | select(.id == $id) | .name // "unknown"') + set -l current_haiku_name (echo $models_json | \ + jq -r --arg id "$current_haiku_id" '.data[] | select(.id == $id) | .name // "unknown"') + set -l current_agent_name (echo $models_json | \ + jq -r --arg id "$current_agent_id" '.data[] | select(.id == $id) | .name // "unknown"') + # Prompt for groups vs individual set -l mode (gum choose --limit 1 --header "How do you want to select models?" \ "Groups" "Individual models") @@ -124,8 +138,8 @@ function _synu_agent_claude_interactive --description "Interactive model selecti for group in $groups if test "$group" = "Large (Opus, Sonnet, Sub-agent)" set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select model for Large group" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select model for Large group (opus: $current_opus_id, sonnet: $current_sonnet_id, agent: $current_agent_id)" \ + --selected "$current_opus_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \ jq -r --arg name "$model_name" '.data[] | select(.name == $name) | .id') @@ -134,8 +148,8 @@ function _synu_agent_claude_interactive --description "Interactive model selecti end else if test "$group" = "Light (Haiku)" set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select model for Light group" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select model for Light group (haiku: $current_haiku_id)" \ + --selected "$current_haiku_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \ jq -r --arg name "$model_name" '.data[] | select(.name == $name) | .id') @@ -155,8 +169,8 @@ function _synu_agent_claude_interactive --description "Interactive model selecti switch $model_type case "Opus" set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select Opus model" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select Opus model (current: $current_opus_id)" \ + --selected "$current_opus_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \ jq -r --arg name "$model_name" '.data[] | select(.name == $name) | .id') @@ -165,8 +179,8 @@ function _synu_agent_claude_interactive --description "Interactive model selecti end case "Sonnet" set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select Sonnet model" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select Sonnet model (current: $current_sonnet_id)" \ + --selected "$current_sonnet_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \ jq -r --arg name "$model_name" '.data[] | select(.name == $name) | .id') @@ -175,8 +189,8 @@ function _synu_agent_claude_interactive --description "Interactive model selecti end case "Haiku" set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select Haiku model" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select Haiku model (current: $current_haiku_id)" \ + --selected "$current_haiku_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \ jq -r --arg name "$model_name" '.data[] | select(.name == $name) | .id') @@ -185,8 +199,8 @@ function _synu_agent_claude_interactive --description "Interactive model selecti end case "Sub-agent" set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select Sub-agent model" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select Sub-agent model (current: $current_agent_id)" \ + --selected "$current_agent_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \ jq -r --arg name "$model_name" '.data[] | select(.name == $name) | .id') diff --git a/functions/_synu_agents/llxprt.fish b/functions/_synu_agents/llxprt.fish index 0a6f0c24fa11ff3f07981ddd334e4009e58e0908..f3da9b5937707b7d828c1d7785018d81d3172166 100644 --- a/functions/_synu_agents/llxprt.fish +++ b/functions/_synu_agents/llxprt.fish @@ -65,10 +65,15 @@ function _synu_agent_llxprt_interactive --description "Interactive model selecti set -l model_names (echo $models_json | jq -r '.data[].name') or return 1 + # Get current model for display + set -l current_id (_synu_llxprt_default) + set -l current_name (echo $models_json | \ + jq -r --arg id "$current_id" '.data[] | select(.id == $id) | .name // "unknown"') + # Select model set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select model for llxprt" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select model for llxprt (current: $current_id)" \ + --selected "$current_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \ diff --git a/functions/_synu_agents/opencode.fish b/functions/_synu_agents/opencode.fish index c88750ef4ad534b3109bd25d4ae428ffd4d5f8d4..1dca60cc87e11235a06ffbe33fc769112b5f8de7 100644 --- a/functions/_synu_agents/opencode.fish +++ b/functions/_synu_agents/opencode.fish @@ -61,10 +61,15 @@ function _synu_agent_opencode_interactive --description "Interactive model selec set -l model_names (echo $models_json | jq -r '.data[].name') or return 1 + # Get current model for display + set -l current_id (_synu_opencode_default) + set -l current_name (echo $models_json | \ + jq -r --arg id "$current_id" '.data[] | select(.id == $id) | .name // "unknown"') + # Select model set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select model for OpenCode" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select model for OpenCode (current: $current_id)" \ + --selected "$current_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \ diff --git a/functions/_synu_agents/qwen.fish b/functions/_synu_agents/qwen.fish index 58116f4d4538bfd3e6fbfaf8799fbc797f0569e6..313eb9e3864b594511cb59b8ee73ecd21c7bcfdc 100644 --- a/functions/_synu_agents/qwen.fish +++ b/functions/_synu_agents/qwen.fish @@ -66,10 +66,15 @@ function _synu_agent_qwen_interactive --description "Interactive model selection set -l model_names (echo $models_json | jq -r '.data[].name') or return 1 + # Get current model for display + set -l current_id (_synu_qwen_default) + set -l current_name (echo $models_json | \ + jq -r --arg id "$current_id" '.data[] | select(.id == $id) | .name // "unknown"') + # Select model set -l model_name (printf "%s\n" $model_names | \ - gum filter --limit 1 --header "Select model for Qwen Code" \ - --placeholder "Filter models...") + gum filter --limit 1 --header "Select model for Qwen Code (current: $current_id)" \ + --selected "$current_name" --placeholder "Filter models...") or return 1 set -l model_id (echo $models_json | \