"""Anthropic SDK Bedrock client — used by the agentic edit pipeline (step-06)."""
from __future__ import annotations

import os

import anthropic

from shared.config import AGENT_MODEL_ID, BEDROCK_REGION


def _first(*keys: str) -> str | None:
    for k in keys:
        v = os.getenv(k)
        if v and v.strip():
            return v.strip()
    return None


AGENT_MODEL: str = AGENT_MODEL_ID


def build_bedrock_client() -> anthropic.AnthropicBedrock:
    """Return an AnthropicBedrock client from environment credentials."""
    access_key  = _first("AWS_ACCESS_KEY_ID", "AWS_ACCESS_KEY", "aws_access_key")
    secret_key  = _first("AWS_SECRET_ACCESS_KEY", "AWS_SECRET_KEY", "aws_secret_key")
    session_tok = _first("AWS_SESSION_TOKEN", "aws_session_token")

    kwargs: dict = {"aws_region": BEDROCK_REGION}
    if access_key and secret_key:
        kwargs["aws_access_key"] = access_key
        kwargs["aws_secret_key"] = secret_key
        if session_tok:
            kwargs["aws_session_token"] = session_tok

    return anthropic.AnthropicBedrock(**kwargs)
