尚未检测到更新。GitHub 发布版本后会显示在这里。
正在加载完整 README。 以下为已保存的摘录。
יישום דפדפן פרטי לניתוח דוחות בנק וכרטיסי אשראי, מעקב אחר תקציב, תחזית תזרים והמלצות פעולה. הקבצים נקראים מקומית בדפדפן ואינם נשלחים לשרת.查看完整 README ↗
יישום דפדפן פרטי לניתוח דוחות בנק וכרטיסי אשראי, מעקב אחר תקציב, תחזית תזרים והמלצות פעולה. הקבצים נקראים מקומית בדפדפן ואינם נשלחים לשרת.
כל הסוכנים מחושבים מחדש מהמידע המקומי ואינם שולחים תנועות לשירות חיצוני. התוצאות הן אינדיקציות לבדיקה ולא קביעות חשבונאיות.
האלגוריתמים הטהורים והטיפוסים שלהם נמצאים ב־fe/src/financial-agents.ts. כל מנוע מממש FinancialAgentStrategy, והמחלקה FinancialAgentsOrchestrator מקבלת את האסטרטגיות ב־dependency injection ומחזירה תוצאה טיפוסית אחת; runFinancialAgents הוא Facade תואם לשכבת התצוגה. RuleBasedTransactionCategorizer מרכז את סדר הקדימויות: שיוך ידני, כלל מאושר, זיהוי הכנסה ולבסוף „אחר”. העברות בין חשבונות ומשיכה לחשבון מסווגות כ״חיסכון והעברות״, ומזונות היוצאים מסווגים בקטגוריה משלהם; מזונות שנכנסים הם הכנסה; תיאור לא מספק אינו מסווג בניחוש. שכבת התצוגה והאישור נמצאת ב־fe/src/app.ts. כלל שנלמד נשמר במערך rules; תקרת תקציב שאושרה נשמרת ב־budgets. הממצאים והזדמנויות החיסכון נגזרים מחדש ואינם נשמרים כמצב נוסף.
נדרשים Node.js, npm ו־Python 3.12.
npm install
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements-dev.txt
npm run build # כולל strict typecheck לגבולות החדשים
npm run typecheck:strict # בדיקת strict עצמאית
להרצת האתר דרך שרת מקומי:
ruby -run -ehttpd . -p 8765
לאחר מכן פותחים את http://127.0.0.1:8765/mazan-habait.html.
npm run debug
הפקודה מריצה את המהדר במצב --watch עם source maps ומעלה שרת סטטי על פורט 8765 (אם כבר רץ שרת על הפורט — למשל זה שנשאר מבדיקות הדפדפן — היא משתמשת בו במקום לנסות להאזין שוב). אפשר לשנות פורט באמצעות APP_PORT.
ה־source maps הם העיקר: בלעדיהם הדפדפן מציג את ה־JavaScript המהודר שב־dist/, ואי אפשר לשים breakpoint בקוד ה־TypeScript שנכתב בפועל. מכיוון שהשרת מגיש את שורש הפרויקט, dist/app.js.map מפנה אל fe/src/app.ts והדפדפן טוען את המקור המקורי — ב־DevTools → Sources → 127.0.0.1:8765 → fe/src/. שמירה של קובץ מהדרת מחדש; מספיק לרענן את הדף.
נקודות עצירה שימושיות לייבוא דוחות: handleFiles ב־fe/src/app.ts לבדיקת הקובץ שנבחר, readWorkbook ב־fe/src/spreadsheet-reader.ts כדי לראות לאיזה פורמט הקובץ נותב, ו־headerMap ב־fe/src/credit-card-importer.ts כדי לראות אילו עמודות זוהו.
קובצי ה־.map נשארים ב־dist/ בלבד, ש־gitignore מתעלם ממנו, ו־prepare-vercel-output מסנן אותם בעת ההעתקה ל־public/ כדי שקוד המקור לא ייארז לפריסה. הסינון מתבצע בהעתקה ולא במחיקה מ־dist/, כדי ש־npm run build לא ישבור סשן ניפוי שגיאות שרץ במקביל. עם זאת npm run build מהדר בלי source maps ולכן מסיר את הפניות ה־sourceMappingURL; כדי לחזור לנפות שגיאות מריצים שוב npm run debug.
לשני הצדדים אותו פורמט רשומה — שורת JSON אחת לכל אירוע — כדי שאפשר יהיה לקרוא לוג של דפדפן ולוג של שרת יחד, למיין לפי ts ולהבחין ביניהם לפי source:
{"ts":"2026-08-28T09:15:00.000Z","level":"info","source":"web","event":"report.read","context":{"format":"xlsx","sheets":1,"rows":42}}
בדפדפן אין מערכת קבצים, ולכן הלוג הוא חוצץ טבעתי בזיכרון בגודל קבוע (500 רשומות; הישנות נדחקות החוצה) שגם נכתב ל־console. הוא זמין כ־window.__log, ומייצאים אותו מה־DevTools:
copy(__log.toText()) // כל הרשומות כ־JSON Lines, מוכן להדבקה בדוח תקלה
__log.setLevel('debug')
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗