verbose live UI + tool-level SSE events + Groq default + regression tests
This commit is contained in:
30
api/analyses/registry.py
Normal file
30
api/analyses/registry.py
Normal file
@@ -0,0 +1,30 @@
|
||||
"""Analysis registry — the planner reads this to know what's available."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from api.analyses.base import Analysis
|
||||
from api.analyses.compare_periods import ComparePeriods
|
||||
from api.analyses.direct_answer import DirectAnswer
|
||||
|
||||
REGISTRY: dict[str, Analysis] = {
|
||||
DirectAnswer.name: DirectAnswer(),
|
||||
ComparePeriods.name: ComparePeriods(),
|
||||
}
|
||||
|
||||
|
||||
def get(name: str) -> Analysis | None:
|
||||
return REGISTRY.get(name)
|
||||
|
||||
|
||||
def catalog() -> list[dict[str, Any]]:
|
||||
"""Plain-dict catalog for prompt injection into the planner."""
|
||||
return [
|
||||
{
|
||||
"name": a.name,
|
||||
"description": a.description,
|
||||
"args_schema": a.args_schema,
|
||||
}
|
||||
for a in REGISTRY.values()
|
||||
]
|
||||
Reference in New Issue
Block a user