This repository has been archived on 2026-07-19 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
2569003f3304e6f8e370eb780715dd1fe4f7389d
Tasks created with parentType='Contact' (e.g. preparation calls linked to a case's contact) were invisible to AlertCalculator, CaseContextBuilder, and OfficeContextBuilder — all of which only queried parentType='Case'. This caused false "no preparation task" alerts in Shira's daily standup even when preparation tasks existed, because they were linked to the case's Contact instead of the Case entity directly. Changes: - AlertCalculator: getSummary, findOverdueTasks, findUpcomingTasks, getWorkloadByUser now query parentType=['Case','Contact'] - findUpcomingHearingsWithoutPrep: new caseHasPreparation() helper checks Case tasks, Contact tasks, and NhActivity-linked tasks - CaseContextBuilder.getOpenTasks: OR query across Case + Contact IDs - OfficeContextBuilder.buildCaseDrillDown: same OR query pattern - All three classes gain a getCaseContactIds() helper Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SmartAssistant - עוזר חכם
גרסה: 2.7.0 | מחבר: klear | EspoCRM: >= 8.0.0
תיאור
עוזר AI מאוחד למשרד עורכי דין. מספק ממשק צ'אט צף עם שני מצבי עבודה: מצב משרד (סקירה כללית, התראות, סטטיסטיקות) ומצב תיק (סיוע מעמיק בתיק ספציפי). כולל מערכת זיכרון תיק מובנית, ביצוע פעולות באישור המשתמש, ואינטגרציה עם Stream של EspoCRM.
תלויות
- Webhook חיצוני (n8n או דומה) לעיבוד AI
- NetworkStorageIntegration / NextCloudIntegration (אופציונלי — לניתוח מסמכים)
התקנה
- התקנה דרך Admin > Extensions
- הגדרת Webhook: Admin > Integrations > Smart Assistant
הגדרות אינטגרציה
| שדה | תיאור | דוגמה |
|---|---|---|
| webhookUrl | כתובת Webhook לשירות AI | https://n8n.example.com/webhook/assistant/chat |
| apiKey | מפתח אימות (אופציונלי) | sk-... |
| maxMessagesPerHour | הגבלת קצב הודעות | 30 |
| inactivityWarningDays | סף אזהרה לחוסר פעילות בתיק | 14 |
| inactivityCriticalDays | סף קריטי לחוסר פעילות | 30 |
| upcomingHearingDays | חלון דיונים קרובים (ימים) | 7 |
אנטיטי: CaseMemory — זיכרון תיק
מאגר ידע מובנה לכל תיק, מחולק לקטגוריות:
| קטגוריה | תיאור |
|---|---|
| key_facts | עובדות מפתח |
| strategy | אסטרטגיה |
| decisions | החלטות |
| contacts_notes | הערות על אנשי קשר |
| timeline | ציר זמן |
| documents_notes | הערות על מסמכים |
| billing_notes | הערות חיוב |
מקורות: ידני (manual), עוזר AI (assistant), אוטומטי (auto — hooks)
רמות חשיבות: low, normal, high, critical
רכיבים
Backend (PHP)
| רכיב | קובץ | תיאור |
|---|---|---|
| Controller | Controllers/SmartAssistant.php |
API endpoints |
| שירות ראשי | Services/SmartAssistantService.php |
תזמור צ'אט, שיחות, פעולות |
| בונה הקשר תיק | Services/CaseContextBuilder.php |
אוסף נתוני תיק מלאים (אנשי קשר, משימות, מסמכים, זיכרון) |
| בונה הקשר משרד | Services/OfficeContextBuilder.php |
סטטיסטיקות, התראות, עומס עבודה |
| מחשבון התראות | Services/AlertCalculator.php |
זיהוי תיקים לא פעילים, משימות באיחור, דיונים קרובים |
| מבצע פעולות | Services/ActionExecutor.php |
ביצוע פעולות שאושרו (משימה, פתק, דיון, שינוי סטטוס) |
| שירות זיכרון | Services/CaseMemoryService.php |
CRUD לזיכרון תיק |
| ספק הקשר זיכרון | Services/CaseMemoryContextProvider.php |
הזרקת זיכרון להקשר AI |
| מאגר שיחות | Services/ConversationRepository.php |
שמירה ואחזור שיחות |
| מנתח מסמכים | Services/DocumentAnalyzer.php |
סריקת מסמכים וסיווג |
Hooks
| Hook | תיאור |
|---|---|
Case/CaseFieldChangeMemory |
יצירת זיכרון אוטומטית בשינוי שדות תיק (סטטוס, שופט, דיון) |
Meeting/HearingScheduledMemory |
יצירת זיכרון בקביעת דיון חדש |
Frontend (JavaScript)
| רכיב | תיאור |
|---|---|
floating-chat.js |
ממשק צ'אט צף (FAB) עם מגירת היסטוריה וזיכרון |
dashlets/smart-assistant.js |
דשלט עם מדדים והתראות |
stream/notes/smart-request.js |
תצוגת הודעת משתמש ב-Stream |
stream/notes/smart-response.js |
תצוגת תשובת עוזר ב-Stream |
stream/notes/smart-action.js |
תצוגת פעולה שבוצעה ב-Stream |
case/modals/add-memory.js |
מודל להוספת זיכרון ידנית |
site/navbar.js |
אינטגרציית התראות בסרגל ניווט |
API Routes
| נתיב | Method | תיאור |
|---|---|---|
/SmartAssistant/action/chat |
POST | שליחת הודעה לעוזר |
/SmartAssistant/action/execute |
POST | ביצוע פעולה שאושרה |
/SmartAssistant/action/summary |
GET | סיכום משרדי + התראות |
/SmartAssistant/action/alerts |
GET | רשימת התראות |
/SmartAssistant/action/history |
GET | היסטוריית שיחות |
/SmartAssistant/action/conversations |
GET | רשימת שיחות אחרונות |
/SmartAssistant/action/conversationMessages |
GET | הודעות שיחה ספציפית |
/SmartAssistant/action/searchHistory |
GET | חיפוש בשיחות |
/SmartAssistant/action/caseMemory |
GET | אחזור זיכרון תיק |
/SmartAssistant/action/saveMemory |
POST | שמירת זיכרון ידנית |
פעולות עוזר
פעולות מיידיות (ללא אישור)
list_documents— רשימת מסמכים בתיקsave_memory— שמירת זיכרון תיק
פעולות הדורשות אישור
create_task— יצירת משימהadd_note— הוספת הערהchange_status— שינוי סטטוס תיקcreate_meeting— יצירת פגישהschedule_hearing— קביעת דיוןanalyze_document— ניתוח מסמךrename_document— שינוי שם מסמך
מערכת התראות
| סוג | סף ברירת מחדל | חומרה |
|---|---|---|
| תיק לא פעיל | 14 יום | אזהרה |
| תיק לא פעיל | 30 יום | קריטי |
| משימה באיחור | תאריך יעד עבר | קריטי |
| דיון קרוב | 7 ימים | אזהרה |
| תיק ללא שיוך | חדש ללא assignedUser | אזהרה |
| משימה בעדיפות גבוהה | 5 ימים | אזהרה |
Description
Releases
51
Languages
PHP
76.4%
JavaScript
23.3%
Shell
0.3%