import asyncio from typing import Any from marketing_intelligence.core.config import settings async def run( task: str, params: dict[str, Any] | None = None, run_id: str | None = None, model_id: str | None = None, allowed_tools: set[str] | None = None, ) -> str: if settings.agent_backend == "anthropic": from marketing_intelligence.agent.anthropic.agent import AnthropicAgent return await AnthropicAgent(model_id=model_id).run( task, params or {}, run_id, allowed_tools ) if settings.agent_backend == "bedrock": from marketing_intelligence.agent.bedrock.agent import BedrockAgent return await BedrockAgent(model_id=model_id).run( task, params or {}, run_id, allowed_tools ) raise ValueError( f"Unknown agent_backend: {settings.agent_backend!r}. Use 'anthropic' or 'bedrock'." ) def run_sync( task: str, params: dict[str, Any] | None = None, run_id: str | None = None, model_id: str | None = None, allowed_tools: set[str] | None = None, ) -> str: return asyncio.run(run(task, params, run_id, model_id, allowed_tools))