from __future__ import annotations from typing import Any from uuid import uuid4 from app.agents.isolation.strategy_selector import IsolationDecision def prepare_session_isolation( *, state: dict[str, Any], decision: IsolationDecision, role_value: str, sub_commander: str, ) -> dict[str, Any]: isolation_id = f"session-{uuid4().hex[:8]}" return { "mode": "session", "isolation_id": isolation_id, "workspace_path": None, "parent_conversation_id": str(state.get("conversation_id") or "") or None, "metadata": { **dict(decision.metadata or {}), "reason": decision.reason, "role": role_value, "sub_commander": sub_commander, "tool_names": list(decision.tool_names), "capability_ids": list(decision.capability_ids), "status": "active", }, }