"""CORTEX Engine integration boundary; the model remains owned by CORTEX AI.""" from __future__ import annotations from dataclasses import dataclass from typing import Any from .jobs import JobManager from .policy import Policy from .providers import ProviderRegistry from .router import CapabilityRouter from .schemas import Capability, UnifiedResult @dataclass class OrchestrationEngine: router: CapabilityRouter providers: ProviderRegistry policy: Policy jobs: JobManager def plan(self, text: str, hints=()): return self.router.route(text, hints) def execute(self, text: str, *, hints=(), preferred_provider: str | None = None, payload: dict[str, Any] | None = None) -> UnifiedResult | Any: request = self.plan(text, hints) if request.capabilities == (Capability.TEXT_GENERATION,): return UnifiedResult(text=text, provenance=[{"component": "cortex_ai", "mode": "model"}]) cap = next((c for c in request.capabilities if c not in (Capability.REASONING, Capability.STRUCTURED_DATA)), request.capabilities[0]) provider = self.providers.select(cap, preferred_provider) self.policy.check_provider(provider.id, local=provider.local) body = {"text": text, **(payload or {})} if request.requires_async: return self.jobs.submit(provider.id, cap.value, provider.generate, body) result = provider.generate(body) return UnifiedResult(text=result.output if isinstance(result.output, str) else "", structured_data=result.output if isinstance(result.output, dict) else None, provenance=[{"provider": result.provider, **result.metadata}])