diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 17ed421fa..e7025b507 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -13,6 +13,7 @@ from crewai.knowledge.source.base_knowledge_source import BaseKnowledgeSource from crewai.knowledge.utils.knowledge_utils import extract_knowledge_context from crewai.llm import LLM from crewai.memory.contextual.contextual_memory import ContextualMemory +from crewai.security import Fingerprint from crewai.task import Task from crewai.tools import BaseTool from crewai.tools.agent_tools.agent_tools import AgentTools @@ -28,7 +29,6 @@ from crewai.utilities.events.crewai_event_bus import crewai_event_bus from crewai.utilities.llm_utils import create_llm from crewai.utilities.token_counter_callback import TokenCalcHandler from crewai.utilities.training_handler import CrewTrainingHandler -from crewai.security import Fingerprint class Agent(BaseAgent): diff --git a/src/crewai/agents/agent_builder/base_agent.py b/src/crewai/agents/agent_builder/base_agent.py index 2e6af85f2..0b9ecc9a9 100644 --- a/src/crewai/agents/agent_builder/base_agent.py +++ b/src/crewai/agents/agent_builder/base_agent.py @@ -20,7 +20,7 @@ from crewai.agents.cache.cache_handler import CacheHandler from crewai.agents.tools_handler import ToolsHandler from crewai.knowledge.knowledge import Knowledge from crewai.knowledge.source.base_knowledge_source import BaseKnowledgeSource -from crewai.security.config import SecurityConfig +from crewai.security.security_config import SecurityConfig from crewai.tools.base_tool import BaseTool, Tool from crewai.utilities import I18N, Logger, RPMController from crewai.utilities.config import process_config diff --git a/src/crewai/crew.py b/src/crewai/crew.py index 463a7f5d6..070c80b1a 100644 --- a/src/crewai/crew.py +++ b/src/crewai/crew.py @@ -32,6 +32,7 @@ from crewai.memory.long_term.long_term_memory import LongTermMemory from crewai.memory.short_term.short_term_memory import ShortTermMemory from crewai.memory.user.user_memory import UserMemory from crewai.process import Process +from crewai.security import Fingerprint, SecurityConfig from crewai.task import Task from crewai.tasks.conditional_task import ConditionalTask from crewai.tasks.task_output import TaskOutput @@ -62,7 +63,6 @@ from crewai.utilities.llm_utils import create_llm from crewai.utilities.planning_handler import CrewPlanner from crewai.utilities.task_output_storage_handler import TaskOutputStorageHandler from crewai.utilities.training_handler import CrewTrainingHandler -from crewai.security import Fingerprint, SecurityConfig warnings.filterwarnings("ignore", category=SyntaxWarning, module="pysbd") diff --git a/src/crewai/security/fingerprint.py b/src/crewai/security/fingerprint.py index 6bc7a6fdf..7e85278dd 100644 --- a/src/crewai/security/fingerprint.py +++ b/src/crewai/security/fingerprint.py @@ -6,8 +6,8 @@ for CrewAI agents. These identifiers are used for tracking, auditing, and securi """ import uuid -from typing import Optional, Dict, Any from datetime import datetime +from typing import Any, Dict, Optional from pydantic import BaseModel, Field diff --git a/src/crewai/security/config.py b/src/crewai/security/security_config.py similarity index 88% rename from src/crewai/security/config.py rename to src/crewai/security/security_config.py index 22d6991f8..7a4cab940 100644 --- a/src/crewai/security/config.py +++ b/src/crewai/security/security_config.py @@ -10,10 +10,13 @@ The SecurityConfig class is the primary interface for managing security settings in CrewAI applications. """ -from typing import Dict, Any +from typing import Any, Dict + from pydantic import BaseModel, Field + from crewai.security.fingerprint import Fingerprint + class SecurityConfig(BaseModel): """ Configuration for CrewAI security features. @@ -33,17 +36,14 @@ class SecurityConfig(BaseModel): class Config: arbitrary_types_allowed = True - def __init__(self): + def __init__(self, fingerprint: Fingerprint = None): """ Initialize a new SecurityConfig instance. Args: - **kwargs: Additional kwargs will be merged with additional_config + fingerprint: Fingerprint to use for the component """ - # Initialize parent class with all values - super().__init__( - fingerprint=Fingerprint(), - ) + self.fingerprint = fingerprint or Fingerprint() def to_dict(self) -> Dict[str, Any]: """ diff --git a/tests/security/test_deterministic_fingerprints.py b/tests/security/test_deterministic_fingerprints.py index 14e76129e..82cb3bb00 100644 --- a/tests/security/test_deterministic_fingerprints.py +++ b/tests/security/test_deterministic_fingerprints.py @@ -1,8 +1,9 @@ """Tests for deterministic fingerprints in CrewAI components.""" -import pytest from datetime import datetime +import pytest + from crewai import Agent, Crew, Task from crewai.security import Fingerprint, SecurityConfig diff --git a/tests/security/test_fingerprint.py b/tests/security/test_fingerprint.py index ce641a332..8444556bf 100644 --- a/tests/security/test_fingerprint.py +++ b/tests/security/test_fingerprint.py @@ -1,8 +1,8 @@ """Test for the Fingerprint class.""" +import json import uuid from datetime import datetime, timedelta -import json import pytest from pydantic import ValidationError diff --git a/tests/security/test_security_config.py b/tests/security/test_security_config.py index b2cd454df..39f43218b 100644 --- a/tests/security/test_security_config.py +++ b/tests/security/test_security_config.py @@ -3,8 +3,6 @@ import json from datetime import datetime -import pytest - from crewai.security import Fingerprint, SecurityConfig