chore: remove ai-gateway plugin deployment from install scripts

Legal tools (generate_initial_report) are now built into shira-hermes
(mcp_server/tools/legal_tools.py). The AfterInstall no longer needs to
deploy tools.json and prompts.json to ai-gateway's plugins/ directory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-13 19:47:30 +00:00
parent ffc60a6c0f
commit 15602a976f
2 changed files with 19 additions and 88 deletions
+7 -54
View File
@@ -2,9 +2,11 @@
/************************************************************************
* LegalAssistance Extension — AfterInstall
*
* 1. Deploy plugin files to ai-gateway plugins/ directory
* 2. Create DocumentTemplate for the direct access report
* 3. Clear cache
* 1. Create DocumentTemplate for the direct access report
* 2. Clear cache
*
* Note: ai-gateway plugin deployment removed — legal tools are now
* built into shira-hermes (api/services/legal_tools.py) since Phase 3.
************************************************************************/
use Espo\Core\Container;
@@ -28,13 +30,10 @@ class AfterInstall
$config = $container->getByClass(Config::class);
$this->ensureI18nDirectories($config, $log);
// 1. Deploy ai-gateway plugin files
$this->deployPluginFiles($log);
// 2. Create DocumentTemplate
// 1. Create DocumentTemplate
$this->createDocumentTemplate($entityManager, $log);
// 3. Clear cache
// 2. Clear cache
try {
$dataManager = $container->getByClass(DataManager::class);
$dataManager->clearCache();
@@ -67,52 +66,6 @@ class AfterInstall
}
}
private function deployPluginFiles(Log $log): void
{
// Source: extension's plugins/ directory (relative to EspoCRM root after install)
$sourceDir = 'custom/Espo/Modules/LegalAssistance/../../../../../../plugins/legal-assistance';
// Try common ai-gateway locations
$gatewayPaths = [
'/home/chaim/ai-gateway/plugins/legal-assistance',
'/opt/ai-gateway/plugins/legal-assistance',
];
// Find actual source files within the extension package
$extPluginDir = __DIR__ . '/../plugins/legal-assistance';
if (!is_dir($extPluginDir)) {
$log->warning("LegalAssistance: Plugin source directory not found at {$extPluginDir}");
return;
}
foreach ($gatewayPaths as $targetDir) {
$parentDir = dirname($targetDir);
if (!is_dir($parentDir)) {
continue;
}
if (!is_dir($targetDir)) {
mkdir($targetDir, 0755, true);
}
$files = ['tools.json', 'prompts.json'];
foreach ($files as $file) {
$src = $extPluginDir . '/' . $file;
$dst = $targetDir . '/' . $file;
if (file_exists($src)) {
copy($src, $dst);
$log->info("LegalAssistance: Deployed {$file} to {$targetDir}");
}
}
$log->info("LegalAssistance: Plugin files deployed to {$targetDir}");
return;
}
$log->warning('LegalAssistance: Could not find ai-gateway plugins directory. Deploy manually.');
}
private function createDocumentTemplate(EntityManager $entityManager, Log $log): void
{
// Check if template already exists
+12 -34
View File
@@ -2,11 +2,13 @@
/************************************************************************
* LegalAssistance Extension — AfterUninstall
*
* 1. Remove plugin files from ai-gateway
* 2. Drop LegalAid and DirectAccessReport DB tables (with warning log)
* 3. Remove LegalAssistance-specific columns from Case table
* 4. Remove DocumentTemplate records created by this extension
* 5. Clear cache
* 1. Drop LegalAid and DirectAccessReport DB tables (with warning log)
* 2. Remove LegalAssistance-specific columns from Case table
* 3. Remove DocumentTemplate records created by this extension
* 4. Clear cache
*
* Note: ai-gateway plugin cleanup removed — legal tools are now
* built into shira-hermes since Phase 3.
************************************************************************/
use Espo\Core\Container;
@@ -25,22 +27,19 @@ class AfterUninstall
$log->info('LegalAssistance: Running AfterUninstall...');
// 1. Remove ai-gateway plugin files
$this->removePluginFiles($log);
// 2. Drop tables created by this extension
// 1. Drop tables created by this extension
$this->dropTables($entityManager, $log);
// 3. Remove LegalAssistance-specific columns from Case
// 2. Remove LegalAssistance-specific columns from Case
$this->cleanCaseColumns($entityManager, $log);
// 4. Remove DocumentTemplate records
// 3. Remove DocumentTemplate records
$this->removeDocumentTemplates($entityManager, $log);
// 5. Remove custom i18n files
// 4. Remove custom i18n files
$this->removeCustomI18n($log);
// 6. Clear cache
// 5. Clear cache
try {
$dataManager = $container->getByClass(DataManager::class);
$dataManager->clearCache();
@@ -52,27 +51,6 @@ class AfterUninstall
$log->info('LegalAssistance: AfterUninstall completed.');
}
private function removePluginFiles(Log $log): void
{
$gatewayPaths = [
'/home/chaim/ai-gateway/plugins/legal-assistance',
'/opt/ai-gateway/plugins/legal-assistance',
];
foreach ($gatewayPaths as $dir) {
if (is_dir($dir)) {
$files = glob($dir . '/*');
foreach ($files as $file) {
if (is_file($file)) {
unlink($file);
}
}
rmdir($dir);
$log->info("LegalAssistance: Removed plugin files from {$dir}");
}
}
}
private function dropTables(EntityManager $entityManager, Log $log): void
{
$pdo = $entityManager->getPDO();