Frankenstein-Labs's picture
feat: add extensible orchestration foundation
91c4b21
Raw History Blame Contribute Delete
1.63 kB
"""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}])