import os

from crewai import LLM
from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task







@CrewBase
class TheTransferProtocolAutonomousHumanPivotEngineCrew:
    """TheTransferProtocolAutonomousHumanPivotEngine crew"""

    
    @agent
    def logistics_demolitionist___core_capability_extractor(self) -> Agent:
        
        
        return Agent(
            config=self.agents_config["logistics_demolitionist___core_capability_extractor"],
            
            
            tools=[],
            reasoning=False,
            max_reasoning_attempts=None,
            inject_date=True,
            allow_delegation=False,
            max_iter=25,
            max_rpm=None,
            
            
            max_execution_time=None,
            llm=LLM(
                model="openai/gpt-4o-mini",
                
                
            ),
            
        )
        
    
    @agent
    def modern_matrix_mapper___tech_substrate_matcher(self) -> Agent:
        
        
        return Agent(
            config=self.agents_config["modern_matrix_mapper___tech_substrate_matcher"],
            
            
            tools=[],
            reasoning=False,
            max_reasoning_attempts=None,
            inject_date=True,
            allow_delegation=False,
            max_iter=25,
            max_rpm=None,
            
            
            max_execution_time=None,
            llm=LLM(
                model="openai/gpt-4o-mini",
                
                
            ),
            
        )
        
    
    @agent
    def profile_rewriter___resume_and_bio_refactor_engine(self) -> Agent:
        
        
        return Agent(
            config=self.agents_config["profile_rewriter___resume_and_bio_refactor_engine"],
            
            
            tools=[],
            reasoning=False,
            max_reasoning_attempts=None,
            inject_date=True,
            allow_delegation=False,
            max_iter=25,
            max_rpm=None,
            
            
            max_execution_time=None,
            llm=LLM(
                model="openai/gpt-4o-mini",
                
                
            ),
            
        )
        
    
    @agent
    def action_directing_officer___project_onboarding_assistant(self) -> Agent:
        
        
        return Agent(
            config=self.agents_config["action_directing_officer___project_onboarding_assistant"],
            
            
            tools=[],
            reasoning=False,
            max_reasoning_attempts=None,
            inject_date=True,
            allow_delegation=False,
            max_iter=25,
            max_rpm=None,
            
            
            max_execution_time=None,
            llm=LLM(
                model="openai/gpt-4o-mini",
                
                
            ),
            
        )
        
    
    @agent
    def career_intake_specialist___narrative_builder(self) -> Agent:
        
        
        return Agent(
            config=self.agents_config["career_intake_specialist___narrative_builder"],
            
            
            tools=[],
            reasoning=False,
            max_reasoning_attempts=None,
            inject_date=True,
            allow_delegation=False,
            max_iter=25,
            max_rpm=None,
            
            
            max_execution_time=None,
            llm=LLM(
                model="openai/gpt-4o-mini",
                
                
            ),
            
        )
        
    

    
    @task
    def build_career_narrative_from_seed_info(self) -> Task:
        return Task(
            config=self.tasks_config["build_career_narrative_from_seed_info"],
            markdown=False,
            
            
        )
    
    @task
    def extract_core_operational_capabilities(self) -> Task:
        return Task(
            config=self.tasks_config["extract_core_operational_capabilities"],
            markdown=False,
            
            
        )
    
    @task
    def map_capabilities_to_tech_roles(self) -> Task:
        return Task(
            config=self.tasks_config["map_capabilities_to_tech_roles"],
            markdown=False,
            
            
        )
    
    @task
    def rewrite_career_profile_as_domain_translation_manifesto(self) -> Task:
        return Task(
            config=self.tasks_config["rewrite_career_profile_as_domain_translation_manifesto"],
            markdown=False,
            
            
        )
    
    @task
    def generate_activation_checklist(self) -> Task:
        return Task(
            config=self.tasks_config["generate_activation_checklist"],
            markdown=False,
            
            
        )
    

    @crew
    def crew(self) -> Crew:
        """Creates the TheTransferProtocolAutonomousHumanPivotEngine crew"""

        return Crew(
            agents=self.agents,  # Automatically created by the @agent decorator
            tasks=self.tasks,  # Automatically created by the @task decorator
            process=Process.sequential,
            verbose=True,

            chat_llm=LLM(model="openai/gpt-4o-mini"),
        )


