26 lines
853 B
Python
26 lines
853 B
Python
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from civilplan_mcp.db.bootstrap import load_json_data
|
|
from civilplan_mcp.models import ProjectDomain
|
|
from civilplan_mcp.tools._base import wrap_response
|
|
|
|
|
|
def get_applicable_guidelines(*, domain: ProjectDomain | str, procedure_ids: list[str], project_type: str) -> dict[str, Any]:
|
|
resolved_domain = domain if isinstance(domain, ProjectDomain) else ProjectDomain(domain)
|
|
guidelines = load_json_data("guidelines_catalog.json")["guidelines"]
|
|
matched = [
|
|
item
|
|
for item in guidelines
|
|
if item["domain"] in {resolved_domain.value, ProjectDomain.복합.value}
|
|
]
|
|
return wrap_response(
|
|
{
|
|
"project_type": project_type,
|
|
"procedure_ids": procedure_ids,
|
|
"guidelines": matched,
|
|
},
|
|
resolved_domain,
|
|
)
|