Skip to content
Merged
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
15 changes: 13 additions & 2 deletions agentstack/cli/tools.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
from typing import Optional
import itertools
from difflib import get_close_matches
import inquirer
from agentstack import conf
from agentstack import conf, log
from agentstack.utils import term_color, is_snake_case
from agentstack import generation
from agentstack import repo
from agentstack._tools import get_all_tools
from agentstack._tools import get_all_tools, get_all_tool_names
from agentstack.agents import get_all_agents
from pathlib import Path
import sys
Expand Down Expand Up @@ -63,6 +64,16 @@ def add_tool(tool_name: Optional[str], agents=Optional[list[str]]):
"""
conf.assert_project()

all_tool_names = get_all_tool_names()
if tool_name and not tool_name in all_tool_names:
# tool was provided, but not found. make a suggestion.
suggestions = get_close_matches(tool_name, all_tool_names, n=1)
message = f"Tool '{tool_name}' not found."
if suggestions:
message += f"\nDid you mean '{suggestions[0]}'?"
log.error(message)
return

if not tool_name:
# Get all available tools including custom ones
available_tools = [t for t in get_all_tools() if t is not None]
Expand Down
Loading