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
8 changes: 6 additions & 2 deletions shell-plugin/lib/actions/auth.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

# Action handler: Login to provider
function _forge_action_login() {
local input_text="$1"
echo
local selected
selected=$(_forge_select_provider)
# Pass input_text as query parameter for fuzzy search
selected=$(_forge_select_provider "" "" "" "$input_text")
if [[ -n "$selected" ]]; then
# Extract the second field (provider ID)
local provider=$(echo "$selected" | awk '{print $2}')
Expand All @@ -16,9 +18,11 @@ function _forge_action_login() {

# Action handler: Logout from provider
function _forge_action_logout() {
local input_text="$1"
echo
local selected
selected=$(_forge_select_provider "\[yes\]")
# Pass input_text as query parameter for fuzzy search
selected=$(_forge_select_provider "\[yes\]" "" "" "$input_text")
if [[ -n "$selected" ]]; then
# Extract the second field (provider ID)
local provider=$(echo "$selected" | awk '{print $2}')
Expand Down
13 changes: 11 additions & 2 deletions shell-plugin/lib/actions/config.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,12 @@ function _forge_action_agent() {

# Action handler: Select provider
function _forge_action_provider() {
local input_text="$1"
echo
local selected
# Only show LLM providers (exclude context_engine and other non-LLM types)
selected=$(_forge_select_provider "" "" "llm")
# Pass input_text as query parameter for fuzzy search
selected=$(_forge_select_provider "" "" "llm" "$input_text")

if [[ -n "$selected" ]]; then
# Extract the second field (provider ID) from the selected line
Expand All @@ -90,7 +92,8 @@ function _forge_action_provider() {

# Action handler: Select model
function _forge_action_model() {
_forge_select_and_set_config "list models" "model" "Model" "$($_FORGE_BIN config get model --porcelain)" "2,3.."
local input_text="$1"
_forge_select_and_set_config "list models" "model" "Model" "$($_FORGE_BIN config get model --porcelain)" "2,3.." "$input_text"
}

# Action handler: Sync workspace for codebase search
Expand All @@ -108,6 +111,7 @@ function _forge_select_and_set_config() {
local prompt_text="$3"
local default_value="$4"
local with_nth="${5:-}" # Optional column selection parameter
local query="${6:-}" # Optional query parameter for fuzzy search
(
echo
local output
Expand All @@ -128,6 +132,11 @@ function _forge_select_and_set_config() {
fzf_args+=(--with-nth="$with_nth")
fi

# Add query parameter if provided
if [[ -n "$query" ]]; then
fzf_args+=(--query="$query")
fi

if [[ -n "$default_value" ]]; then
# For models, compare against the first field (model_id)
local index=$(_forge_find_index "$output" "$default_value" 1)
Expand Down
8 changes: 7 additions & 1 deletion shell-plugin/lib/actions/provider.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
# Provider selection helper

# Helper function to select a provider from the list
# Usage: _forge_select_provider [filter_status] [current_provider] [filter_type]
# Usage: _forge_select_provider [filter_status] [current_provider] [filter_type] [query]
# Returns: selected provider line (via stdout)
function _forge_select_provider() {
local filter_status="${1:-}"
local current_provider="${2:-}"
local filter_type="${3:-}"
local query="${4:-}"
local output

# Build the command with type filter if specified
Expand Down Expand Up @@ -47,6 +48,11 @@ function _forge_select_provider() {
--with-nth=1,3..
)

# Add query parameter if provided
if [[ -n "$query" ]]; then
fzf_args+=(--query="$query")
fi

# Position cursor on current provider if available
if [[ -n "$current_provider" ]]; then
# For providers, compare against the first field (display name)
Expand Down
8 changes: 4 additions & 4 deletions shell-plugin/lib/dispatcher.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -157,10 +157,10 @@ function forge-accept-line() {
_forge_action_conversation "$input_text"
;;
provider|p)
_forge_action_provider
_forge_action_provider "$input_text"
Comment thread
laststylebender14 marked this conversation as resolved.
;;
model|m)
_forge_action_model
_forge_action_model "$input_text"
;;
tools|t)
_forge_action_tools
Expand Down Expand Up @@ -193,10 +193,10 @@ function forge-accept-line() {
_forge_action_sync
;;
login)
_forge_action_login
_forge_action_login "$input_text"
;;
logout)
_forge_action_logout
_forge_action_logout "$input_text"
;;
doctor)
_forge_action_doctor
Expand Down
Loading