feat(upstream): merge a6f47abd engine, MCP, and orchestrator
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled

Three-way-merge calculation modules and pl9-export into the product fork while keeping commercial API routes, Raman ayanamsa, and the consultation contract as a keypath superset.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-03 20:28:57 +08:00
co-authored by Cursor
parent 45d132588f
commit f224146348
30 changed files with 17151 additions and 248 deletions
+6
View File
@@ -16,7 +16,9 @@ from ayanamsa_utils import (
DEFAULT_AYANAMSA_NAME,
UnsupportedAyanamsaError,
apply_ayanamsa,
is_supported_ayanamsa_name,
normalize_ayanamsa_name,
supported_ayanamsa_names,
)
from dasha_analyzer import build_dasha_timeline, lon_to_nakshatra
from jyotish_engine import SIGNS, compute_chart_data
@@ -285,6 +287,10 @@ def compute_transit_longitude(
local_dt = datetime.strptime(reference_date[:10], "%Y-%m-%d").replace(hour=12)
except (TypeError, ValueError) as exc:
raise CalculationError("reference_date must be YYYY-MM-DD") from exc
if not is_supported_ayanamsa_name(ayanamsa):
raise CalculationError(
f"unsupported ayanamsa: {ayanamsa!r}. Supported values: {', '.join(supported_ayanamsa_names())}"
)
ayanamsa_name = normalize_ayanamsa_name(ayanamsa)
with _SWISSEPH_LOCK:
apply_ayanamsa(ayanamsa_name, swe)