"""Signal Engine — delegates initiative steering to Kernel Spine v0.1.""" from __future__ import annotations from typing import Any, Literal from steering.kernel import evaluate_steering from steering.signals import default_rules from steering.strategies.next_action.default_strategy import default_strategy from steering.strategies.next_action.registry import get_next_action_strategy from tenant_context import TenantContext SignalKind = Literal["attention", "next_action"] def evaluate( ctx: TenantContext, kind: SignalKind = "attention", *, limit: int = 10, initiative_id: str | None = None, ) -> list[dict[str, Any]]: if initiative_id: evaluation = evaluate_steering( ctx, initiative_id=initiative_id, next_work_limit=limit, attention_limit=max(limit, 10), ) if kind == "next_action": return evaluation.next_work return evaluation.attention if kind == "attention": return default_rules.get_attention_items(ctx) strategy = get_next_action_strategy("default") or default_strategy return strategy.evaluate(ctx, initiative_id=None, limit=limit)