feat(X13 Tier-1): calibrate נט המשפט fetch — Camoufox python, proven on 46111-12-22
אומת end-to-end: פס"ד 34 עמ' של עת"מ 46111-12-22 הורד אוטונומית מלא, נטו קוד-פתוח, ללא כרטיס-חכם וללא פתרון-CAPTCHA. ממצאי-כיול עיקריים: - החיפוש+הניווט-לתיק ללא reCAPTCHA כלל. reCAPTCHA קיים רק בצופה ורק על שמירה/הדפסה מפורשת — לא על הצגת המסמך. - הצופה מגיש עמודים כ-PNG דרך PageMethod GetImages (4/batch); משיכה ב-fetch עם הכותרת X-Requested-With: XMLHttpRequest (חובה — F5 WAF חוסם בלעדיה) → הרכבת PDF (Pillow). שינויים: - camofox_client.py: שכתוב מלא — Camoufox דרך חבילת-הפייתון (in-process, לא שרת-Node REST). מסלול מכויל: home→btnExternalSearchCases→Bama fields→ CaseDetails→פסקי דין→DecisionList→NGCSViewerPage→GetImages→PDF. - pm2 config: app Xvfb :99 + DISPLAY=:99 (Camoufox קורס headless בלי צג וירטואלי). - pyproject: extra [court-fetch] = camoufox + faster-whisper (host-only; הקונטיינר לא מריץ דפדפן). Pillow כבר בבסיס. - X13 spec + SCRIPTS.md: עודכנו לממצאים (image-API, Xvfb, אימות). reCAPTCHA audio (Whisper) נשמר כ-fallback למסלול-השמירה-המפורש בלבד; המסלול הראשי אינו זקוק לו. Invariants: מקיים INV-CF1/CF4/CF6 (ללא שינוי). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,7 +34,9 @@ const env = {
|
||||
HOME: "/home/chaim",
|
||||
PATH: "/home/chaim/.local/bin:/usr/local/bin:/usr/bin:/bin",
|
||||
PYTHONUNBUFFERED: "1",
|
||||
// CAMOFOX_URL: "http://127.0.0.1:9377", // set when camofox-browser is up
|
||||
// Camoufox (headless Firefox) crashes on this server without a virtual
|
||||
// display, so the service points at the Xvfb companion app below (:99).
|
||||
DISPLAY: ":99",
|
||||
};
|
||||
try {
|
||||
const text = fs.readFileSync(ENV_FILE, "utf8");
|
||||
@@ -50,6 +52,16 @@ try {
|
||||
|
||||
module.exports = {
|
||||
apps: [
|
||||
{
|
||||
// Persistent virtual display for Camoufox (headless Firefox needs it on
|
||||
// this screenless server). Bound to :99 to match DISPLAY above.
|
||||
name: "legal-court-fetch-xvfb",
|
||||
script: "/usr/bin/Xvfb",
|
||||
args: ":99 -screen 0 1920x1080x24 -nolisten tcp",
|
||||
autorestart: true,
|
||||
max_restarts: 10,
|
||||
restart_delay: 3000,
|
||||
},
|
||||
{
|
||||
name: "legal-court-fetch-service",
|
||||
cwd: "/home/chaim/legal-ai/mcp-server",
|
||||
@@ -59,7 +71,9 @@ module.exports = {
|
||||
restart_delay: 5000,
|
||||
max_restarts: 10,
|
||||
autorestart: true,
|
||||
max_memory_restart: "1G",
|
||||
// A Firefox content process loading the heavy ASP.NET pages can spike;
|
||||
// give headroom but cap so a leak can't threaten Postgres.
|
||||
max_memory_restart: "1500M",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user