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.
Files
chaim 3178904b28 feat: place generated report in the CaseFiles case folder (P7)
DirectAccessReportGenerator now, when CaseFilesCore is installed (soft-detected,
no hard dependency), sets the generated Document's folderId to the case
"מסמכים" folder via CaseFolderService so it shows in the CaseDocs panel. The
existing Case link + best-effort NetworkStorage upload are unchanged.

Verified on dev (P7_OK): php -l clean; Case.documents relate is visible via
Document.cases (shared junction); folder placement works.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 10:53:23 +00:00

2.9 KiB
Raw Permalink Blame History

LegalAssistance — Architecture (developer reference)

Internal developer doc. Not shipped to clients. Customer overview: README.md. Security/dead-code: _AUDIT/LegalAssistance/findings.md.

Module: LegalAssistance · Load order: 25 · Version: 2.0.10 · Author: Marcus-Law · Requires: EspoCRM ≥ 8.0.0

What it is

Generates the Israeli legal-aid "דוח גישה ישירה" (direct-access report) as a DOCX, straight from JSON params (no intermediate entity), and uploads it to the case folder. It is reached as a SmartAssistant agent tool — Shira runs an 8-step Hebrew interview to collect the data, then calls the tool. Since Phase 3, the legal tools live in shira-hermes, not ai-gateway; this extension is now minimal.

File-by-file

File Purpose
files/.../SmartAssistant/Tools/DirectAccessReportGenerator.php Core: JSON params → DOCX via PHPWord TemplateProcessor (checkbox mapping) → upload to case folder via NetworkStorageIntegration (local fallback). IDOR via caseId — S1; param→DOCX injection — S3; temp file — S4.
files/.../Resources/module.json Module order 25.
files/.../Resources/metadata/app/smartAssistant.json Registers the generate_direct_access_report tool handler.
files/.../Resources/metadata/entityDefs/Case.json Empty {} (no Case extension in v2.0.10) — D5.
files/.../Resources/i18n/{en_US,he_IL,fa_IR}/Case.json Light "LegalAssistance" tab labels. (Global.json empty — D3.)
plugins/legal-assistance/tools.json Shira tool schema for generate_direct_access_report (50+ params).
plugins/legal-assistance/prompts.json Hebrew casePromptAppend — the 8-step interview flow.
templates/direct-access-report.docx The DOCX template (39 KB binary).
scripts/AfterInstall.php Creates the DocumentTemplate, clears cache, ensures i18n dirs. ai-gateway deploy removed (Phase 3) — only a doc-comment remains.
scripts/AfterUninstall.php ⚠️ Drops phantom v1.x tables + Case columns + i18n — destructive + dead (S2/D1).

Dead/reference clutter (not packaged, but in the repo — D2/D4)

docs/examples/entity-reference-legalaid.md (59 KB, removed architecture), field_mapping.md, legal-docx-v3-fixed/ (Node.js reference), .env.example, טופס, old zips v1.0.01.3.2.

Dependencies

  • NetworkStorageIntegration (strong, graceful): report upload to the case folder; falls back to local attachment storage if disabled.
  • SmartAssistant (hard, runtime): the tool is only reachable via SmartAssistant's executeTool — it inherits SmartAssistant's IDOR (S1).
  • shira-hermes (soft): Shira loads the plugins/ tool + prompt to drive the interview.

Post-install gotchas

  • Requires SmartAssistant + Shira configured; NetworkStorageIntegration recommended for case-folder filing.
  • Fix the destructive AfterUninstall (S2) before any external release — it can wipe legal-aid data.