diff --git a/lib/cli/src/crewai_cli/authentication/main.py b/lib/cli/src/crewai_cli/authentication/main.py index 0cf021970..2959f7864 100644 --- a/lib/cli/src/crewai_cli/authentication/main.py +++ b/lib/cli/src/crewai_cli/authentication/main.py @@ -2,13 +2,13 @@ import time from typing import TYPE_CHECKING, Any, TypeVar, cast import webbrowser +from crewai_core.token_manager import TokenManager import httpx from pydantic import BaseModel, Field from rich.console import Console from crewai_cli.authentication.utils import validate_jwt_token from crewai_cli.config import Settings -from crewai_cli.shared.token_manager import TokenManager console = Console() diff --git a/lib/cli/src/crewai_cli/authentication/token.py b/lib/cli/src/crewai_cli/authentication/token.py index 74e3c7974..7e966488c 100644 --- a/lib/cli/src/crewai_cli/authentication/token.py +++ b/lib/cli/src/crewai_cli/authentication/token.py @@ -1,4 +1,4 @@ -from crewai_cli.shared.token_manager import TokenManager +from crewai_core.token_manager import TokenManager class AuthError(Exception): diff --git a/lib/cli/src/crewai_cli/cli.py b/lib/cli/src/crewai_cli/cli.py index 3d683687c..f482e2b9a 100644 --- a/lib/cli/src/crewai_cli/cli.py +++ b/lib/cli/src/crewai_cli/cli.py @@ -6,6 +6,7 @@ import subprocess from typing import Any import click +from crewai_core.token_manager import TokenManager from crewai_cli.add_crew_to_flow import add_crew_to_flow from crewai_cli.authentication.main import AuthenticationCommand @@ -25,7 +26,6 @@ from crewai_cli.replay_from_task import replay_task_command from crewai_cli.reset_memories_command import reset_memories_command from crewai_cli.run_crew import run_crew from crewai_cli.settings.main import SettingsCommand -from crewai_cli.shared.token_manager import TokenManager from crewai_cli.task_outputs import load_task_outputs from crewai_cli.tools.main import ToolCommand from crewai_cli.train_crew import train_crew diff --git a/lib/cli/src/crewai_cli/config.py b/lib/cli/src/crewai_cli/config.py index 7c72c3347..d07518b03 100644 --- a/lib/cli/src/crewai_cli/config.py +++ b/lib/cli/src/crewai_cli/config.py @@ -16,3 +16,15 @@ from crewai_core.settings import ( Settings as Settings, get_writable_config_path as get_writable_config_path, ) + + +__all__ = [ + "CLI_SETTINGS_KEYS", + "DEFAULT_CLI_SETTINGS", + "DEFAULT_CONFIG_PATH", + "HIDDEN_SETTINGS_KEYS", + "READONLY_SETTINGS_KEYS", + "USER_SETTINGS_KEYS", + "Settings", + "get_writable_config_path", +] diff --git a/lib/cli/src/crewai_cli/shared/token_manager.py b/lib/cli/src/crewai_cli/shared/token_manager.py index b1f1c91b3..aeac1b77b 100644 --- a/lib/cli/src/crewai_cli/shared/token_manager.py +++ b/lib/cli/src/crewai_cli/shared/token_manager.py @@ -7,6 +7,9 @@ import warnings from crewai_core.token_manager import TokenManager as TokenManager +__all__ = ["TokenManager"] + + warnings.warn( "crewai_cli.shared.token_manager is deprecated; " "import from crewai_core.token_manager.", diff --git a/lib/cli/src/crewai_cli/utils.py b/lib/cli/src/crewai_cli/utils.py index fb344ed0c..e72e5a6ab 100644 --- a/lib/cli/src/crewai_cli/utils.py +++ b/lib/cli/src/crewai_cli/utils.py @@ -3,7 +3,7 @@ from __future__ import annotations import os from pathlib import Path import shutil -from typing import Any, cast +from typing import Any import click from crewai_core.project import ( @@ -21,7 +21,22 @@ from crewai_core.tool_credentials import ( ) from rich.console import Console -from crewai_cli.constants import ENV_VARS + +__all__ = [ + "build_env_with_all_tool_credentials", + "build_env_with_tool_repository_credentials", + "copy_template", + "fetch_and_json_env_file", + "get_project_description", + "get_project_name", + "get_project_version", + "load_env_vars", + "parse_toml", + "read_toml", + "tree_copy", + "tree_find_and_replace", + "write_env_file", +] console = Console() @@ -116,41 +131,6 @@ def load_env_vars(folder_path: Path) -> dict[str, Any]: return env_vars -def update_env_vars( - env_vars: dict[str, Any], provider: str, model: str -) -> dict[str, Any] | None: - """Updates environment variables with the API key for the selected provider and model.""" - provider_config = cast( - list[str], - ENV_VARS.get( - provider, - [ - click.prompt( - f"Enter the environment variable name for your {provider.capitalize()} API key", - type=str, - ) - ], - ), - ) - - api_key_var = provider_config[0] - - if api_key_var not in env_vars: - try: - env_vars[api_key_var] = click.prompt( - f"Enter your {provider.capitalize()} API key", type=str, hide_input=True - ) - except click.exceptions.Abort: - click.secho("Operation aborted by the user.", fg="red") - return None - else: - click.secho(f"API key already exists for {provider.capitalize()}.", fg="yellow") - - env_vars["MODEL"] = model - click.secho(f"Selected model: {model}", fg="green") - return env_vars - - def write_env_file(folder_path: Path, env_vars: dict[str, Any]) -> None: """Writes environment variables to a .env file in the specified folder.""" env_file_path = folder_path / ".env" diff --git a/lib/crewai-core/src/crewai_core/telemetry.py b/lib/crewai-core/src/crewai_core/telemetry.py index d69f5aeaa..20b990632 100644 --- a/lib/crewai-core/src/crewai_core/telemetry.py +++ b/lib/crewai-core/src/crewai_core/telemetry.py @@ -159,6 +159,7 @@ class Telemetry: def _safe_telemetry_operation( self, operation: Callable[[], Span | None] ) -> Span | None: + """Run a span-returning telemetry operation, swallowing failures.""" if not self._should_execute_telemetry(): return None try: @@ -167,14 +168,23 @@ class Telemetry: logger.debug("Telemetry operation failed: %s", e) return None + def _safe_telemetry_procedure(self, operation: Callable[[], None]) -> None: + """Run a void telemetry procedure, swallowing failures.""" + if not self._should_execute_telemetry(): + return + try: + operation() + except Exception as e: + logger.debug("Telemetry operation failed: %s", e) + def _add_attribute(self, span: Span | None, key: str, value: Any) -> None: if span is None: return def _operation() -> None: - return span.set_attribute(key, value) + span.set_attribute(key, value) - self._safe_telemetry_operation(_operation) + self._safe_telemetry_procedure(_operation) # --- CLI-facing spans --------------------------------------------------- @@ -186,7 +196,7 @@ class Telemetry: span = tracer.start_span("Deploy Signup Error") close_span(span) - self._safe_telemetry_operation(_operation) + self._safe_telemetry_procedure(_operation) def start_deployment_span(self, uuid: str | None = None) -> None: """Records the start of a deployment process.""" @@ -198,7 +208,7 @@ class Telemetry: self._add_attribute(span, "uuid", uuid) close_span(span) - self._safe_telemetry_operation(_operation) + self._safe_telemetry_procedure(_operation) def create_crew_deployment_span(self) -> None: """Records the creation of a new crew deployment.""" @@ -208,7 +218,7 @@ class Telemetry: span = tracer.start_span("Create Crew Deployment") close_span(span) - self._safe_telemetry_operation(_operation) + self._safe_telemetry_procedure(_operation) def get_crew_logs_span( self, uuid: str | None, log_type: str = "deployment" @@ -223,7 +233,7 @@ class Telemetry: self._add_attribute(span, "uuid", uuid) close_span(span) - self._safe_telemetry_operation(_operation) + self._safe_telemetry_procedure(_operation) def remove_crew_span(self, uuid: str | None = None) -> None: """Records the removal of a crew.""" @@ -235,7 +245,7 @@ class Telemetry: self._add_attribute(span, "uuid", uuid) close_span(span) - self._safe_telemetry_operation(_operation) + self._safe_telemetry_procedure(_operation) def flow_creation_span(self, flow_name: str) -> None: """Records the creation of a new flow.""" @@ -246,7 +256,7 @@ class Telemetry: self._add_attribute(span, "flow_name", flow_name) close_span(span) - self._safe_telemetry_operation(_operation) + self._safe_telemetry_procedure(_operation) def template_installed_span(self, template_name: str) -> None: """Records when a template is downloaded and installed.""" @@ -259,4 +269,4 @@ class Telemetry: self._add_attribute(span, "template_name", template_name) close_span(span) - self._safe_telemetry_operation(_operation) + self._safe_telemetry_procedure(_operation) diff --git a/lib/crewai/src/crewai/auth/token_manager.py b/lib/crewai/src/crewai/auth/token_manager.py index 73a1862d8..d7b31cbc8 100644 --- a/lib/crewai/src/crewai/auth/token_manager.py +++ b/lib/crewai/src/crewai/auth/token_manager.py @@ -7,6 +7,9 @@ import warnings from crewai_core.token_manager import TokenManager as TokenManager +__all__ = ["TokenManager"] + + warnings.warn( "crewai.auth.token_manager is deprecated; import from crewai_core.token_manager.", DeprecationWarning, diff --git a/lib/crewai/src/crewai/constants.py b/lib/crewai/src/crewai/constants.py index 81000cc21..4c9db2665 100644 --- a/lib/crewai/src/crewai/constants.py +++ b/lib/crewai/src/crewai/constants.py @@ -11,6 +11,21 @@ from crewai_core.constants import ( ) +__all__ = [ + "CREWAI_ENTERPRISE_DEFAULT_OAUTH2_AUDIENCE", + "CREWAI_ENTERPRISE_DEFAULT_OAUTH2_CLIENT_ID", + "CREWAI_ENTERPRISE_DEFAULT_OAUTH2_DOMAIN", + "CREWAI_ENTERPRISE_DEFAULT_OAUTH2_PROVIDER", + "DEFAULT_CREWAI_ENTERPRISE_URL", + "DEFAULT_LLM_MODEL", + "ENV_VARS", + "JSON_URL", + "LITELLM_PARAMS", + "MODELS", + "PROVIDERS", +] + + ENV_VARS: dict[str, list[dict[str, Any]]] = { "openai": [ { diff --git a/lib/crewai/src/crewai/events/utils/console_formatter.py b/lib/crewai/src/crewai/events/utils/console_formatter.py index 83e224d0c..203468db5 100644 --- a/lib/crewai/src/crewai/events/utils/console_formatter.py +++ b/lib/crewai/src/crewai/events/utils/console_formatter.py @@ -15,6 +15,13 @@ from rich.text import Text from crewai.version import is_current_version_yanked, is_newer_version_available +__all__ = [ + "ConsoleFormatter", + "set_suppress_console_output", + "should_suppress_console_output", +] + + _disable_version_check: ContextVar[bool] = ContextVar( "_disable_version_check", default=False ) diff --git a/lib/crewai/src/crewai/settings.py b/lib/crewai/src/crewai/settings.py index 3e3911152..e9d41243e 100644 --- a/lib/crewai/src/crewai/settings.py +++ b/lib/crewai/src/crewai/settings.py @@ -16,3 +16,15 @@ from crewai_core.settings import ( Settings as Settings, get_writable_config_path as get_writable_config_path, ) + + +__all__ = [ + "CLI_SETTINGS_KEYS", + "DEFAULT_CLI_SETTINGS", + "DEFAULT_CONFIG_PATH", + "HIDDEN_SETTINGS_KEYS", + "READONLY_SETTINGS_KEYS", + "USER_SETTINGS_KEYS", + "Settings", + "get_writable_config_path", +] diff --git a/lib/crewai/src/crewai/utilities/constants.py b/lib/crewai/src/crewai/utilities/constants.py index 92d438dec..918043951 100644 --- a/lib/crewai/src/crewai/utilities/constants.py +++ b/lib/crewai/src/crewai/utilities/constants.py @@ -11,6 +11,20 @@ from crewai_core.printer import PrinterColor from pydantic_core import CoreSchema +__all__ = [ + "CC_ENV_VAR", + "CODEX_ENV_VARS", + "CREWAI_TRAINED_AGENTS_FILE_ENV", + "CURSOR_ENV_VARS", + "EMITTER_COLOR", + "KNOWLEDGE_DIRECTORY", + "MAX_FILE_NAME_LENGTH", + "NOT_SPECIFIED", + "TRAINED_AGENTS_DATA_FILE", + "TRAINING_DATA_FILE", +] + + EMITTER_COLOR: Final[PrinterColor] = "bold_blue" CC_ENV_VAR: Final[str] = "CLAUDECODE" CODEX_ENV_VARS: Final[tuple[str, ...]] = ( diff --git a/lib/crewai/src/crewai/utilities/lock_store.py b/lib/crewai/src/crewai/utilities/lock_store.py index 875b1996d..b84fbd7db 100644 --- a/lib/crewai/src/crewai/utilities/lock_store.py +++ b/lib/crewai/src/crewai/utilities/lock_store.py @@ -7,6 +7,9 @@ import warnings from crewai_core.lock_store import lock as lock +__all__ = ["lock"] + + warnings.warn( "crewai.utilities.lock_store is deprecated; import from crewai_core.lock_store.", DeprecationWarning, diff --git a/lib/crewai/src/crewai/utilities/paths.py b/lib/crewai/src/crewai/utilities/paths.py index 59627fa3b..138288381 100644 --- a/lib/crewai/src/crewai/utilities/paths.py +++ b/lib/crewai/src/crewai/utilities/paths.py @@ -10,6 +10,9 @@ from crewai_core.paths import ( ) +__all__ = ["db_storage_path", "get_project_directory_name"] + + warnings.warn( "crewai.utilities.paths is deprecated; import from crewai_core.paths.", DeprecationWarning, diff --git a/lib/crewai/src/crewai/utilities/printer.py b/lib/crewai/src/crewai/utilities/printer.py index 56ceb14bb..24cc87648 100644 --- a/lib/crewai/src/crewai/utilities/printer.py +++ b/lib/crewai/src/crewai/utilities/printer.py @@ -12,6 +12,9 @@ from crewai_core.printer import ( ) +__all__ = ["PRINTER", "ColoredText", "Printer", "PrinterColor"] + + warnings.warn( "crewai.utilities.printer is deprecated; import from crewai_core.printer.", DeprecationWarning, diff --git a/lib/crewai/src/crewai/utilities/project_utils.py b/lib/crewai/src/crewai/utilities/project_utils.py index fa3e8a2e1..5bee9dd9f 100644 --- a/lib/crewai/src/crewai/utilities/project_utils.py +++ b/lib/crewai/src/crewai/utilities/project_utils.py @@ -32,6 +32,25 @@ from crewai.crew import Crew from crewai.flow import Flow +__all__ = [ + "build_env_with_all_tool_credentials", + "build_env_with_tool_repository_credentials", + "extract_available_exports", + "extract_tools_metadata", + "fetch_crews", + "get_crew_instance", + "get_crews", + "get_flow_instance", + "get_flows", + "get_project_description", + "get_project_name", + "get_project_version", + "is_valid_tool", + "parse_toml", + "read_toml", +] + + console = Console() diff --git a/lib/crewai/src/crewai/utilities/version.py b/lib/crewai/src/crewai/utilities/version.py index 8acdf9687..518e5ba70 100644 --- a/lib/crewai/src/crewai/utilities/version.py +++ b/lib/crewai/src/crewai/utilities/version.py @@ -7,6 +7,9 @@ import warnings from crewai_core.version import get_crewai_version as get_crewai_version +__all__ = ["get_crewai_version"] + + warnings.warn( "crewai.utilities.version is deprecated; import from crewai_core.version.", DeprecationWarning,