diff --git a/mcp-server/src/legal_mcp/tools/cases.py b/mcp-server/src/legal_mcp/tools/cases.py index 0219de5..1ebd8de 100644 --- a/mcp-server/src/legal_mcp/tools/cases.py +++ b/mcp-server/src/legal_mcp/tools/cases.py @@ -377,19 +377,30 @@ async def case_get_final_text(case_number: str, max_chars: int = 0) -> str: בניגוד ל-`document_get_text` שעובד על שורות בטבלת `documents`, הקובץ הסופי הוא רק קובץ בתיקייה (נוצר על ידי `api_mark_final`). + תומך בכל הפורמטים ש-extractor.extract_text מטפל בהם — מנסה + `.docx` תחילה, ואז `.pdf`, `.doc`, `.rtf`, `.txt`, `.md`. Args: case_number: מספר תיק הערר max_chars: אם >0, חתוך את הטקסט המוחזר לאורך הזה. 0 = הכל. """ case_dir = config.find_case_dir(case_number) - final_path = case_dir / "exports" / f"סופי-{case_number}.docx" + exports_dir = case_dir / "exports" + final_stem = f"סופי-{case_number}" - if not final_path.exists(): + final_path = None + for ext in (".docx", ".pdf", ".doc", ".rtf", ".txt", ".md"): + candidate = exports_dir / f"{final_stem}{ext}" + if candidate.exists(): + final_path = candidate + break + + if final_path is None: return json.dumps({ "status": "not_found", "case_number": case_number, - "expected_path": str(final_path), + "expected_path": str(exports_dir / f"{final_stem}.docx"), + "tried_extensions": [".docx", ".pdf", ".doc", ".rtf", ".txt", ".md"], "hint": ( "ההחלטה הסופית עדיין לא סומנה כ'סופית' ב-UI. " "דפנה צריכה ללחוץ 'סמן כסופי' על קובץ הטיוטה הנכון."