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.
v2.10.0
Make every text artifact that goes into Shira's system prompt editable from
the EspoCRM admin UI, with code-level defaults kept as a safety floor.
* AssistantRule + CaseMemory: flip `tab: true` so admins can browse/edit from
the navbar. No longer invisible.
* New entity AssistantPrompt — one row per prompt section (tool_rules,
writing_style, legal_assistance, personality_case, personality_office,
other_rules_case, other_rules_office). Edits in the UI override the
in-code defaults; an inactive or missing row falls back to code.
Seeded on install with the current Python defaults via AfterInstall.
* New entity UserProfile — replaces /opt/data/profiles/{uid}.md. ACL is
own/all/no so each lawyer sees their own, admins see all. Injected into
the prompt's '=== ABOUT THIS USER ===' block.
* New entity AssistantSkill — replaces /opt/data/skills/. Tab-visible.
Context provider returns metadata only; full body fetched on demand.
* 3 new ContextProviders (AssistantPrompt, UserProfile, AssistantSkill)
injected into context by SmartAssistantService::chat at the same point
AssistantRule has been injecting since 2026-05-27.
* 3 new Controller classes (one-liner extends Record) — without these
EspoCRM returns 404 on the REST endpoint even when scopes/entityDefs
are correct. Same pattern as the AssistantRule fix in 2.9.2.
* New custom view smart-assistant:views/fields/prompt-editor — monospace
font, dir=auto for mixed RTL/LTR, taller textarea. Used by all three
long-text content fields.
* New admin panel 'ניהול שירה' that groups all five surfaces (prompts,
rules, skills, user profiles, case memory) under one Admin section.
* Hebrew labels for all new scopes added to fa_IR/Global.json.
Paired with shira-hermes (separate commit): prompt_builder.py refactored
to read each section from context['assistantPrompts'] with code defaults
as fallback; save_memory tool now goes through SmartAssistant/action/executeTool
so CaseMemory actually gets populated instead of dropping 'm Notes.
Migration script scripts/migrate_legacy_memory_notes.py in shira-hermes
moves existing 'm Notes into CaseMemory rows (one-shot, idempotent).
Refs Task Master none — schema additions, no destructive changes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
SmartAssistant - עוזר חכם
גרסה: 2.8.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%