fix(health): complete consultation evidence contract

This commit is contained in:
Jesse_Chen
2026-09-04 03:20:29 +08:00
parent cf6c8a9c36
commit 837bd0820d
4 changed files with 185 additions and 4 deletions
+1 -1
View File
@@ -1847,7 +1847,7 @@ _ROUTE_REQUIRED_LAYERS = {
'career': ('D1', 'D10', 'A10', 'dasha_boundaries', 'narayana_dasha'),
'marriage': ('D1', 'D9', 'UL', 'A7', 'dasha_boundaries'),
'wealth': ('D1', 'D2', 'D11', 'ashtakavarga', 'dasha_boundaries'),
'health': ('D1', 'D6', 'D8', 'D9', 'dasha_boundaries'),
'health': ('D1', 'D6', 'D8', 'D30', 'dasha_boundaries'),
'education': ('D1', 'D9', 'D24', 'dasha_boundaries'),
'migration': ('D1', 'D4', 'D12', 'dasha_boundaries'),
'family': ('D1', 'D7', 'D9', 'D12', 'dasha_boundaries'),
+20 -3
View File
@@ -951,6 +951,11 @@ class UnifiedConsultationOrchestrator:
or official.get("raw")
)
official_state = self._vedastro_cloud_state(vedastro_official)
route_name = str(
(route_packet or {}).get("question_type")
or (route_packet or {}).get("primary_theme")
or "general"
)
raw_response_section = (
self._section(raw_response, "vedastro_official.raw_response")
if official_state == "official_verified"
@@ -1012,6 +1017,20 @@ class UnifiedConsultationOrchestrator:
"sudarshana": self._section(sudarshana_packet, "chart.modules.sudarshana"),
"sahams": self._section(sahams_packet, "chart.modules.sahams"),
}
if route_name == "health":
transits = modules.get("transits") if isinstance(modules.get("transits"), dict) else {}
sections["transit"] = {
"status": (
"used"
if str(transits.get("status") or "").lower() in {"executed", "used", "ready"}
else "blocked"
),
"source_path": "modules.transits",
}
sections["non_medical_boundary"] = {
"status": "used",
"source_path": "route_profile_contract.health.non_medical_boundary",
}
for division in FORMAL_DIVISIONS:
if division == 1:
continue
@@ -1033,9 +1052,7 @@ class UnifiedConsultationOrchestrator:
return {
"status": "complete" if not missing else "partial",
"route": dict(route_packet),
"required_sections": self.evidence_packet_required_sections(
str((route_packet or {}).get("question_type") or (route_packet or {}).get("primary_theme") or "general")
),
"required_sections": self.evidence_packet_required_sections(route_name),
"sections": sections,
"functional_benefic_malefic": functional_layer,
"signals": [item for item in signals if isinstance(item, dict)],