Skip to content
Open
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
32 changes: 24 additions & 8 deletions wake_ai/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import rich.traceback
from rich.console import Console
from rich.logging import RichHandler
from wake_ai.utils.logging import get_logger, set_debug
from wake_ai.utils.logging import get_logger, set_verbose_level

if TYPE_CHECKING:
from wake_ai import AIWorkflow
Expand Down Expand Up @@ -256,8 +256,13 @@ def get_class_that_defined_method(meth):
@click.option(
"--verbose",
"-v",
is_flag=True,
help="Enable verbose logging (debug level)"
count=True,
help="Enable verbose logging (-v: info, -vv: debug, -vvv: trace)"
)
@click.option(
"--verbose-filter",
type=str,
help="Filter verbose output by tool names (comma-separated, e.g., 'Bash,Edit,Glob,Grep,MultiEdit,NotebookEdit,NotebookRead,Read,Task,TodoWrite,WebFetch,WebSearch,Write,mcp__wake,mcp__wake__function_name')"
)
@click.option(
"--no-progress",
Expand All @@ -271,18 +276,29 @@ def get_class_that_defined_method(meth):
help="List all available workflows"
)
@click.pass_context
def main(ctx: click.Context, working_dir: str | None, model: str, resume: bool, execution_dir: str | None, export: str | None, no_cleanup: bool, verbose: bool, no_progress: bool, list: bool):
def main(ctx: click.Context, working_dir: str | None, model: str, resume: bool, execution_dir: str | None, export: str | None, no_cleanup: bool, verbose: int, verbose_filter: str | None, no_progress: bool, list: bool):
"""AI-powered smart contract security analysis.

This command runs various AI workflows for smart contract analysis
using Claude to identify potential vulnerabilities and issues.
"""
rich.traceback.install(console=console)

# Set logging level based on verbose flag
if verbose:
set_debug(True)
console.print("[dim]Debug logging enabled[/dim]")
# Set logging level based on verbose count
if verbose >= 1:
set_verbose_level(verbose)
if verbose == 1:
console.print("[dim]Verbose logging enabled (info level)[/dim]")
elif verbose == 2:
console.print("[dim]Debug logging enabled[/dim]")
elif verbose >= 3:
console.print("[dim]Trace logging enabled (maximum verbosity)[/dim]")
# TODO: Implement trace level logging if needed

if verbose_filter:
from wake_ai.utils.logging import set_verbose_filters
set_verbose_filters(verbose_filter)
console.print(f"[dim]Verbose output filtered to: {verbose_filter}[/dim]")

# Handle list flag
if list:
Expand Down
Loading