Open Net Worth
Open Net Worth는 직접 운영하는 오픈소스 개인 AI 자산 비서로, 전체 재무를 하나의 원장에 기록하고 사용자가 제어하는 AI가 관리
아직 감지된 업데이트가 없습니다. 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 전문 보기 ↗