Change summary
functions/_synu_agents/aider.fish | 16 +++++++++---
functions/_synu_agents/claude.fish | 38 ++++++++++++++++++++---------
functions/_synu_agents/llxprt.fish | 9 +++++-
functions/_synu_agents/opencode.fish | 9 +++++-
functions/_synu_agents/qwen.fish | 9 +++++-
5 files changed, 59 insertions(+), 22 deletions(-)
Detailed changes
@@ -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 | \
@@ -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')
@@ -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 | \
@@ -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 | \
@@ -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 | \