# Copyright (c) 2026 Roman Shaban. All rights reserved.

# Licensed under the Apache License 2.0.

# Part of the CIOS / Onto-Protocol Ecosystem.

from onto_models import OntoTask



def delegate_task(parent_task: OntoTask, new_agent: str, new_intent: str):

    print("\nDELEGATION INITIATED")


    subtask = OntoTask(

        agent={"name": new_agent},

        intent={"action": new_intent},

        input=parent_task.input,

        expected_output=parent_task.expected_output,

        permissions=parent_task.permissions,

        risk_level=parent_task.risk_level,

        human_review_required=parent_task.human_review_required,

        human_approved=parent_task.human_approved,

        parent_task_id=parent_task.task_id,

        depth=parent_task.depth + 1,

        result={"status": "pending", "output": None}

    )


    print(f"Delegated from {parent_task.agent.name} -> {new_agent}")

    print(f"New intent: {new_intent}")

    print(f"New depth: {subtask.depth}")

    print(f"Inherited human_approved: {subtask.human_approved}")


    return subtask