feat: add shared fund quote capability

This commit is contained in:
2026-09-09 23:40:35 +08:00
parent ca680ca46f
commit 46fc976b24
22 changed files with 1561 additions and 8 deletions
+11 -4
View File
@@ -1,7 +1,9 @@
from functools import lru_cache
from typing import Any, cast
from app.core.fund_contracts import FundQuoteQuery
from app.service.agent.factory import AgentFactory
from app.service.fund_quote_service import query_fund_quote_tool
from app.service.intent_classifier import IntentClassifier
from app.service.model_gateway import (
DatabaseModelEndpointResolver,
@@ -9,10 +11,7 @@ from app.service.model_gateway import (
ModelDispatchService,
ModelGenerationService,
)
from app.service.suitability_service import (
SuitabilityToolInput,
suitability_tool_handler,
)
from app.service.suitability_service import SuitabilityToolInput, suitability_tool_handler
from app.service.tool_executor import ToolDefinition, ToolExecutor, ToolRegistry
@@ -27,6 +26,14 @@ def get_agent_factory() -> AgentFactory:
required_permission="suitability:read",
allowed_roles=("customer", "advisor", "operator", "admin"),
))
registry.register(ToolDefinition(
name="query_fund_quote",
input_model=FundQuoteQuery,
handler=cast(Any, query_fund_quote_tool),
required_permission="fund:quote:read",
allowed_roles=("customer", "advisor", "operator", "risk_operator", "admin"),
timeout_seconds=5,
))
model_service = ModelGenerationService(ModelDispatchService(DatabaseModelGateway()))
endpoint_resolver = DatabaseModelEndpointResolver()
return AgentFactory(