"""Per-call context object for MCP tool execution."""

from __future__ import annotations

from dataclasses import dataclass
from typing import Any

from mcp.server.fastmcp import Context
from ragflow_sdk import RAGFlow

from ims_mcp.clients.dataset import DatasetLookup
from ims_mcp.config import RosettaConfig


@dataclass
class CallContext:
    config: RosettaConfig
    ragflow: RAGFlow
    dataset_lookup: DatasetLookup
    ctx: Context
    username: str
    repository: str
    tool_name: str
    params: dict[str, Any]
