"""Utility modules for open-agent-kit."""

from open_agent_kit.utils.console import (
    clear_line,
    confirm,
    get_console,
    print_banner,
    print_code_block,
    print_dict,
    print_divider,
    print_error,
    print_header,
    print_info,
    print_key_value,
    print_list,
    print_muted,
    print_numbered_list,
    print_panel,
    print_status,
    print_success,
    print_table,
    print_warning,
    prompt,
)
from open_agent_kit.utils.env_utils import (
    add_gitignore_entries,
    ensure_gitignore_has_ci_data,
    ensure_gitignore_has_env,
    ensure_gitignore_has_issue_context,
    remove_gitignore_entries,
    update_env_file,
)
from open_agent_kit.utils.file_utils import (
    cleanup_empty_directories,
    copy_dir,
    copy_file,
    delete_dir,
    delete_file,
    dir_exists,
    ensure_dir,
    file_exists,
    find_files_by_extension,
    find_files_by_name,
    get_file_modified_time,
    get_file_size,
    get_git_root,
    get_project_root,
    get_relative_path,
    is_empty_dir,
    is_git_repo,
    list_dirs,
    list_files,
    read_file,
    read_yaml,
    sanitize_filename,
    write_file,
    write_yaml,
)
from open_agent_kit.utils.interactive import (
    SelectOption,
    multi_select,
    password_prompt,
    select,
    select_with_search,
)
from open_agent_kit.utils.platform import (
    IS_POSIX,
    IS_WINDOWS,
    acquire_file_lock,
    find_pid_by_port,
    force_terminate_process,
    get_process_detach_kwargs,
    get_uv_tools_path_pattern,
    is_process_running,
    is_uv_tool_install,
    release_file_lock,
    terminate_process,
)
from open_agent_kit.utils.step_tracker import (
    ProgressTracker,
    SimpleProgress,
    StepTracker,
    TaskList,
)
from open_agent_kit.utils.template_utils import (
    has_jinja2_syntax,
)
from open_agent_kit.utils.validation import (
    parse_rfc_filename,
    parse_rfc_number,
    sanitize_title,
    validate_agent_type,
    validate_dir_path,
    validate_email,
    validate_file_path,
    validate_markdown_syntax,
    validate_rfc_content,
    validate_rfc_filename,
    validate_rfc_number,
    validate_rfc_status,
    validate_url,
    validate_version,
    validate_yaml_config,
)
from open_agent_kit.utils.version import (
    get_package_version,
)

__all__ = [
    # Console utilities
    "get_console",
    "print_banner",
    "print_success",
    "print_error",
    "print_warning",
    "print_info",
    "print_muted",
    "print_panel",
    "print_table",
    "print_divider",
    "print_header",
    "print_list",
    "print_numbered_list",
    "print_status",
    "print_key_value",
    "print_dict",
    "print_code_block",
    "clear_line",
    "confirm",
    "prompt",
    # File utilities
    "ensure_dir",
    "read_file",
    "write_file",
    "copy_file",
    "copy_dir",
    "delete_file",
    "delete_dir",
    "file_exists",
    "dir_exists",
    "list_files",
    "list_dirs",
    "read_yaml",
    "write_yaml",
    "get_file_size",
    "get_file_modified_time",
    "is_empty_dir",
    "cleanup_empty_directories",
    "get_relative_path",
    "find_files_by_name",
    "find_files_by_extension",
    "sanitize_filename",
    "get_project_root",
    "is_git_repo",
    "get_git_root",
    # Interactive utilities
    "SelectOption",
    "select",
    "multi_select",
    "password_prompt",
    "select_with_search",
    # Step tracking
    "StepTracker",
    "ProgressTracker",
    "SimpleProgress",
    "TaskList",
    # Validation
    "validate_rfc_number",
    "validate_rfc_filename",
    "parse_rfc_number",
    "parse_rfc_filename",
    "validate_rfc_status",
    "validate_agent_type",
    "validate_file_path",
    "validate_dir_path",
    "validate_rfc_content",
    "validate_yaml_config",
    "validate_markdown_syntax",
    "sanitize_title",
    "validate_email",
    "validate_url",
    "validate_version",
    # Version utilities
    "get_package_version",
    # Template utilities
    "has_jinja2_syntax",
    # Platform utilities
    "IS_WINDOWS",
    "IS_POSIX",
    "acquire_file_lock",
    "release_file_lock",
    "get_process_detach_kwargs",
    "is_process_running",
    "terminate_process",
    "force_terminate_process",
    "find_pid_by_port",
    "get_uv_tools_path_pattern",
    "is_uv_tool_install",
    # Environment utilities
    "update_env_file",
    "ensure_gitignore_has_env",
    "ensure_gitignore_has_issue_context",
    "ensure_gitignore_has_ci_data",
    "add_gitignore_entries",
    "remove_gitignore_entries",
]
