Merge pull request 'feat(plans): משיכת תב"ע מ-מנהל-התכנון (mavat) — Phase C backend-slice' (#292) from worktree-plan-fetch-mavat into main
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 1m28s
G12 Leak-Guard / leak-guard (push) Successful in 5s
Lint — undefined names / undefined-names (push) Successful in 10s

This commit was merged in pull request #292.
This commit is contained in:
2026-06-17 11:14:44 +00:00
6 changed files with 442 additions and 0 deletions

View File

@@ -37,6 +37,28 @@ async def extract_plans(case_number: str) -> str:
return err(str(e))
async def plan_fetch(plan_number: str) -> str:
"""משיכת זהות+תוקף של תב"ע מ-מנהל-התכנון (mavat) — מועמד-לאישור, לא כתיבה.
מחזיר את שדות-התכנית כפי שנמשכו (display_name/plan_type/purpose/gazette_date/
yalkut_number/source_url). כל ערך נושא source_url (INV-AH); שדה שהמקור אינו
חושף חוזר ריק — לא מומצא. אינו כותב למרשם: הקורא (טופס-היו"ר / plan_upsert)
מחליט; הרשומה תמיד עוברת שער-יו"ר (review_status) לפני ציטוט בבלוק ט.
Args:
plan_number: מספר-התכנית למשיכה (למשל "101-1031020", "מי/820")
"""
from legal_mcp.services import plans_fetch
try:
plan = await plans_fetch.fetch_plan(plan_number)
return ok(plan)
except plans_fetch.PlanFetchUnavailable as e:
return err(f"שירות-המשיכה אינו זמין: {e}")
except Exception as e: # noqa: BLE001 — surface, don't swallow
return err(str(e))
async def plan_get(plan_number: str) -> str:
"""קריאת תכנית מהמרשם לפי מספר (מנורמל; נופל ל-alias). ה-get הזול."""
try: