Spaces:
Running
Running
| """Declarative Tool Runner hooks for research activity narration.""" | |
| from __future__ import annotations | |
| from fast_agent.hooks import HookContext | |
| try: | |
| from .activity_narrator import activity_batch_from_hook, current_activity_narrator | |
| except ImportError: # loaded directly from the fast-agent home | |
| from research.activity_narrator import ( | |
| activity_batch_from_hook, | |
| current_activity_narrator, | |
| ) | |
| async def capture_after_llm(ctx: HookContext) -> None: | |
| narrator = current_activity_narrator.get() | |
| if narrator is None: | |
| return | |
| try: | |
| narrator.observe(activity_batch_from_hook(ctx)) | |
| except Exception: | |
| # Narration is presentation-only and must never affect the research loop. | |
| return | |