@cachly-dev/mcp-server 0.5.46 → 0.5.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cachly-dev/mcp-server",
3
- "version": "0.5.46",
3
+ "version": "0.5.48",
4
4
  "mcpName": "io.github.cachly-dev/mcp-server",
5
5
  "description": "AI memory brain for Claude Code, Cursor, Copilot & Windsurf — persistent sessions, lessons learned, semantic search, team brain. 51 MCP tools.",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -55,7 +55,7 @@ import { Redis } from 'ioredis';
55
55
  const API_URL = process.env.CACHLY_API_URL ?? 'https://api.cachly.dev';
56
56
  const JWT = process.env.CACHLY_JWT ?? '';
57
57
  const EMBED_MODEL = process.env.CACHLY_EMBED_MODEL ?? '';
58
- const CURRENT_VERSION = '0.5.26';
58
+ const CURRENT_VERSION = '0.5.48';
59
59
  /**
60
60
  * ┌──────────────────────────────────────────────────────────────────────┐
61
61
  * │ EMBEDDING PROVIDER — pluggable, client-side first │
@@ -504,12 +504,22 @@ function katakanaToRomaji(kata: string): string {
504
504
  /**
505
505
  * Arabic light stemmer — strips definite article and common prefix particles.
506
506
  * Handles: ال (al-), و (wa-), ب (bi-), ل (li-), ف (fa-), ك (ka-).
507
+ * Runs iteratively (max 3 passes) so compound prefixes like فال- are fully
508
+ * resolved: فالخطأ → الخطأ → خطأ.
507
509
  * Only strips when the result is still ≥ 3 chars to avoid over-stemming.
508
510
  */
509
511
  function arabicLightStem(word: string): string {
510
- if (word.startsWith('ال') && word.length > 4) return word.slice(2);
511
- if (word.length > 3 && 'وبلفك'.includes(word[0]) && RTL_RE.test(word[1])) return word.slice(1);
512
- return word;
512
+ let result = word;
513
+ for (let i = 0; i < 3; i++) {
514
+ const prev = result;
515
+ if (result.startsWith('ال') && result.length > 4) {
516
+ result = result.slice(2);
517
+ } else if (result.length > 3 && 'وبلفك'.includes(result[0]) && RTL_RE.test(result[1])) {
518
+ result = result.slice(1);
519
+ }
520
+ if (result === prev) break; // stable — no more prefixes to strip
521
+ }
522
+ return result;
513
523
  }
514
524
 
515
525
  // ── Cross-lingual tech term dictionary ────────────────────────────────────────
@@ -520,43 +530,44 @@ function arabicLightStem(word: string): string {
520
530
  // Keys must be lowercase. CJK values will be bigram-expanded at use time.
521
531
  const CROSS_LINGUAL_MAP = new Map<string, string[]>([
522
532
  // English → all
523
- ['deploy', ['デプロイ', '部署', '배포', 'deployment', 'deploying']],
524
- ['deployment', ['デプロイ', '部署', '배포', 'deploy']],
533
+ ['deploy', ['デプロイ', '部署', '배포', 'deployment', 'deploying', 'نشر', 'bereitstellen', 'bereitstellung', 'déployer', 'déploiement', 'desplegar', 'despliegue', 'distribuire', 'distribuzione', 'implantar', 'implantação']],
534
+ ['deployment', ['デプロイ', '部署', '배포', 'deploy', 'bereitstellung', 'déploiement', 'despliegue', 'distribuzione', 'implantação']],
525
535
  ['container', ['コンテナ', '容器', '컨테이너', 'docker']],
526
536
  ['server', ['サーバー', 'サーバ', '服务器', '서버', 'سيرفر', 'שרת']],
527
- ['database', ['データベース', '数据库', '데이터베이스', 'db', 'قاعدة البيانات']],
537
+ ['database', ['データベース', '数据库', '데이터베이스', 'db', 'قاعدة البيانات', 'datenbank', 'base de données', 'base de datos', 'banco de dados']],
528
538
  ['cache', ['キャッシュ', '缓存', '캐시', 'كاش', 'מטמון']],
529
- ['error', ['エラー', '错误', '오류', 'خطأ', 'שגיאה', 'exception', 'err']],
539
+ ['error', ['エラー', '错误', '오류', 'خطأ', 'שגיאה', 'exception', 'err', 'fehler', 'erreur', 'fallo', 'errore', 'erro']],
530
540
  ['bug', ['バグ', '缺陷', '버그', 'issue', 'defect', 'خلل']],
531
- ['fix', ['修正', '修复', '수정', 'bugfix', 'patch', 'hotfix', 'إصلاح', 'תיקון']],
532
- ['build', ['ビルド', '构建', '빌드', 'بناء', 'בנייה']],
533
- ['test', ['テスト', '测试', '테스트', 'اختبار', 'בדיקה']],
534
- ['auth', ['認証', '认证', '인증', 'authentication', 'login', 'oauth', 'مصادقة', 'אימות']],
541
+ ['fix', ['修正', '修复', '수정', 'bugfix', 'patch', 'hotfix', 'إصلاح', 'תיקון', 'beheben', 'behoben', 'réparer', 'correction', 'arreglar', 'corrección', 'correggere', 'corrigir']],
542
+ ['build', ['ビルド', '构建', '빌드', 'بناء', 'בנייה', 'bauen', 'construire', 'construir', 'costruire']],
543
+ ['test', ['テスト', '测试', '테스트', 'اختبار', 'בדיקה', 'testen', 'tester', 'probar', 'testare', 'testar']],
544
+ ['auth', ['認証', '认证', '인증', 'authentication', 'login', 'oauth', 'مصادقة', 'אימות', 'authentifizierung', 'authentification', 'autenticación', 'autenticazione', 'autenticação']],
545
+ ['authentication', ['auth', 'مصادقة', 'אימות', '認証', '认证', '인증', 'login', 'oauth']],
535
546
  ['kubernetes', ['クベルネテス', 'k8s', 'kube']],
536
- ['network', ['ネットワーク', '网络', '네트워크', 'شبكة', 'רשת']],
547
+ ['network', ['ネットワーク', '网络', '네트워크', 'شبكة', 'רשת', 'netzwerk', 'réseau', 'red', 'rete', 'rede']],
537
548
  ['timeout', ['タイムアウト', '超时', '타임아웃', 'مهلة']],
538
- ['memory', ['メモリ', '内存', '메모리', 'ram', 'ذاكرة', 'זיכרון']],
539
- ['config', ['設定', '配置', '설정', 'configuration', 'settings', 'conf', 'إعدادات', 'הגדרות']],
540
- ['install', ['インストール', '安装', '설치', 'تثبيت', 'התקנה']],
541
- ['update', ['アップデート', '更新', '업데이트', 'upgrade', 'تحديث', 'עדכון']],
542
- ['log', ['ログ', '日志', '로그', 'logging', 'سجل', 'יומן']],
549
+ ['memory', ['メモリ', '内存', '메모리', 'ram', 'ذاكرة', 'זיכרון', 'speicher', 'mémoire', 'memoria', 'memória']],
550
+ ['config', ['設定', '配置', '설정', 'configuration', 'settings', 'conf', 'إعدادات', 'הגדרות', 'konfiguration', 'einstellungen', 'configuración', 'configurazione', 'configuração']],
551
+ ['install', ['インストール', '安装', '설치', 'تثبيت', 'התקנה', 'installieren', 'installer', 'instalar', 'installare']],
552
+ ['update', ['アップデート', '更新', '업데이트', 'upgrade', 'تحديث', 'עדכון', 'aktualisieren', 'aktualisierung', 'actualizar', 'aggiornare', 'atualizar']],
553
+ ['log', ['ログ', '日志', '로그', 'logging', 'سجل', 'יומן', 'protokoll', 'protokolle', 'journal', 'registro']],
543
554
  ['port', ['ポート', '端口', '포트', 'منفذ', 'פורט']],
544
555
  ['file', ['ファイル', '文件', '파일', 'ملف', 'קובץ']],
545
- ['image', ['イメージ', '镜像', '이미지', 'صورة', 'תמונה']],
556
+ ['image', ['イメージ', '镜像', '이미지', 'صورة', 'תמונה', 'abbild', 'imagen', 'imagem']],
546
557
  ['volume', ['ボリューム', '卷', '볼륨']],
547
558
  ['cluster', ['クラスター', '集群', '클러스터']],
548
559
  ['node', ['ノード', '节点', '노드']],
549
- ['service', ['サービス', '服务', '서비스', 'svc', 'خدمة', 'שירות']],
560
+ ['service', ['サービス', '服务', '서비스', 'svc', 'خدمة', 'שירות', 'dienst', 'servicio', 'servizio', 'serviço']],
550
561
  ['certificate', ['証明書', '证书', '인증서', 'cert', 'ssl', 'tls', 'شهادة', 'תעודה']],
551
562
  ['password', ['パスワード', '密码', '비밀번호', 'passwd', 'pwd', 'كلمة المرور', 'סיסמה']],
552
563
  ['token', ['トークン', '令牌', '토큰', 'jwt', 'secret', 'رمز', 'אסימון']],
553
564
  ['health', ['ヘルス', '健康', '헬스', 'healthcheck', 'probe', 'صحة']],
554
565
  ['migration', ['マイグレーション', '迁移', '마이그레이션', 'migrate', 'هجرة']],
555
- ['backup', ['バックアップ', '备份', '백업', 'نسخ احتياطي', 'גיבוי']],
556
- ['monitor', ['モニター', '监控', '모니터링', 'monitoring', 'metrics', 'alert', 'مراقبة', 'ניטור']],
557
- ['performance', ['パフォーマンス', '性能', '성능', 'latency', 'throughput']],
558
- ['connection', ['接続', '连接', '연결', 'conn', 'socket', 'اتصال', 'חיבור']],
559
- ['queue', ['キュー', '队列', '큐', 'طابور']],
566
+ ['backup', ['バックアップ', '备份', '백업', 'نسخ احتياطي', 'גיבוי', 'sicherung', 'sauvegarde', 'respaldo', 'cópia de segurança']],
567
+ ['monitor', ['モニター', '监控', '모니터링', 'monitoring', 'metrics', 'alert', 'مراقبة', 'ניטור', 'überwachung', 'surveiller', 'monitoreo', 'monitorare', 'monitorar']],
568
+ ['performance', ['パフォーマンス', '性能', '성능', 'latency', 'throughput', 'leistung', 'performances', 'rendimiento', 'prestazioni', 'desempenho']],
569
+ ['connection', ['接続', '连接', '연결', 'conn', 'socket', 'اتصال', 'חיבור', 'verbindung', 'connexion', 'conexión', 'connessione', 'conexão']],
570
+ ['queue', ['キュー', '队列', '큐', 'طابور', 'warteschlange', 'file d\'attente', 'cola', 'coda', 'fila']],
560
571
  ['redis', ['レディス', '레디스']],
561
572
  ['nginx', ['エンジンエックス']],
562
573
  ['linux', ['リナックス', 'لينكس']],
@@ -569,10 +580,10 @@ const CROSS_LINGUAL_MAP = new Map<string, string[]>([
569
580
  ['git', ['version control', 'repo', 'repository', 'commit', 'push', 'pull']],
570
581
  ['ci', ['pipeline', 'github actions', 'gitlab', 'jenkins', 'build']],
571
582
  ['cd', ['deploy', 'deployment', 'release']],
572
- ['debug', ['デバッグ', '调试', '디버그', 'debugging', 'breakpoint', 'تصحيح', 'איתור באגים']],
573
- ['crash', ['クラッシュ', '崩溃', '크래시', 'panic', 'segfault', 'انهيار']],
574
- ['restart', ['再起動', '重启', '재시작', 'reboot', 'إعادة تشغيل', 'הפעלה מחדש']],
575
- ['permission', ['権限', '权限', '권한', 'access', 'acl', 'chmod', 'صلاحية', 'הרשאה']],
583
+ ['debug', ['デバッグ', '调试', '디버그', 'debugging', 'breakpoint', 'تصحيح', 'איתור באגים', 'debuggen', 'déboguer', 'depurar']],
584
+ ['crash', ['クラッシュ', '崩溃', '크래시', 'panic', 'segfault', 'انهيار', 'קריסה', 'absturz', 'panne', 'plantage', 'caída', 'falha']],
585
+ ['restart', ['再起動', '重启', '재시작', 'reboot', 'إعادة تشغيل', 'הפעלה מחדש', 'neustart', 'redémarrer', 'reiniciar', 'riavviare']],
586
+ ['permission', ['権限', '权限', '권한', 'access', 'acl', 'chmod', 'صلاحية', 'הרשאה', 'berechtigung', 'berechtigungen', 'permiso', 'permesso', 'permissão']],
576
587
  // Japanese katakana → English
577
588
  ['デプロイ', ['deploy', 'deployment']],
578
589
  ['コンテナ', ['container', 'docker']],
@@ -671,43 +682,79 @@ const CROSS_LINGUAL_MAP = new Map<string, string[]>([
671
682
  ['재시작', ['restart']],
672
683
  ['권한', ['permission']],
673
684
  // Arabic → English
674
- ['خطأ', ['error']],
675
- ['إصلاح', ['fix']],
676
- ['بناء', ['build']],
677
- ['اختبار', ['test']],
678
- ['مصادقة', ['auth']],
679
- ['إعدادات', ['config']],
680
- ['تثبيت', ['install']],
681
- ['تحديث', ['update']],
682
- ['سجل', ['log']],
683
- ['صورة', ['image']],
684
- ['خدمة', ['service']],
685
- ['نسخ احتياطي', ['backup']],
686
- ['مراقبة', ['monitor']],
687
- ['اتصال', ['connection']],
688
- ['ذاكرة', ['memory']],
689
- ['تصحيح', ['debug']],
690
- ['شبكة', ['network']],
685
+ ['خطأ', ['error']],
686
+ ['إصلاح', ['fix']],
687
+ ['بناء', ['build']],
688
+ ['اختبار', ['test']],
689
+ ['مصادقة', ['auth', 'authentication']],
690
+ ['إعدادات', ['config', 'configuration']],
691
+ ['تثبيت', ['install']],
692
+ ['تحديث', ['update', 'upgrade']],
693
+ ['سجل', ['log']],
694
+ ['صورة', ['image']],
695
+ ['خدمة', ['service']],
696
+ ['نسخ احتياطي', ['backup']],
697
+ ['مراقبة', ['monitor', 'monitoring']],
698
+ ['اتصال', ['connection']],
699
+ ['ذاكرة', ['memory']],
700
+ ['تصحيح', ['debug', 'debugging']],
701
+ ['شبكة', ['network']],
702
+ // Additional Arabic → English (covering blog post examples + common terms)
703
+ ['نشر', ['deploy', 'deployment']],
704
+ ['انهيار', ['crash', 'panic']],
705
+ ['طابور', ['queue']],
706
+ ['رمز', ['token', 'secret']],
707
+ ['كاش', ['cache']],
708
+ ['منفذ', ['port']],
709
+ ['سيرفر', ['server']],
710
+ ['قاعدة البيانات', ['database', 'db']],
711
+ ['إعادة تشغيل', ['restart', 'reboot']],
712
+ ['صلاحية', ['permission', 'access']],
713
+ ['تطبيق', ['application', 'app']],
714
+ ['مفتاح', ['key', 'token', 'secret']],
715
+ ['واجهة برمجية', ['api', 'interface']],
716
+ ['فحص الصحة', ['healthcheck', 'health']],
717
+ ['حاوية', ['container', 'docker']],
718
+ ['عقدة', ['node']],
719
+ ['سرعة', ['performance', 'speed']],
720
+ ['قرص', ['disk', 'storage']],
721
+ ['خادم', ['server']],
722
+ ['برنامج', ['application', 'software', 'app']],
691
723
  // Hebrew → English
692
- ['שגיאה', ['error']],
693
- ['תיקון', ['fix']],
694
- ['בנייה', ['build']],
695
- ['בדיקה', ['test']],
696
- ['אימות', ['auth']],
697
- ['הגדרות', ['config']],
698
- ['התקנה', ['install']],
699
- ['עדכון', ['update']],
700
- ['יומן', ['log']],
701
- ['שרת', ['server']],
702
- ['שירות', ['service']],
703
- ['גיבוי', ['backup']],
704
- ['ניטור', ['monitor']],
705
- ['חיבור', ['connection']],
706
- ['זיכרון', ['memory']],
707
- ['רשת', ['network']],
708
- ['תמונה', ['image']],
709
- ['סיסמה', ['password']],
710
- ['הרשאה', ['permission']],
724
+ ['שגיאה', ['error']],
725
+ ['תיקון', ['fix']],
726
+ ['בנייה', ['build']],
727
+ ['בדיקה', ['test']],
728
+ ['אימות', ['auth', 'authentication']],
729
+ ['הגדרות', ['config', 'configuration']],
730
+ ['התקנה', ['install']],
731
+ ['עדכון', ['update', 'upgrade']],
732
+ ['יומן', ['log']],
733
+ ['שרת', ['server']],
734
+ ['שירות', ['service']],
735
+ ['גיבוי', ['backup']],
736
+ ['ניטור', ['monitor', 'monitoring']],
737
+ ['חיבור', ['connection']],
738
+ ['זיכרון', ['memory']],
739
+ ['רשת', ['network']],
740
+ ['תמונה', ['image']],
741
+ ['סיסמה', ['password']],
742
+ ['הרשאה', ['permission', 'access']],
743
+ // Additional Hebrew → English (covering blog post examples + common terms)
744
+ ['קריסה', ['crash', 'panic']],
745
+ ['תור', ['queue']],
746
+ ['מטמון', ['cache']],
747
+ ['אסימון', ['token', 'secret']],
748
+ ['פורט', ['port']],
749
+ ['איתור באגים', ['debug', 'debugging']],
750
+ ['הפעלה מחדש', ['restart', 'reboot']],
751
+ ['מיכל', ['container', 'docker']],
752
+ ['יישום', ['application', 'app']],
753
+ ['מפתח', ['key', 'token', 'secret']],
754
+ ['בדיקת תקינות', ['healthcheck', 'health']],
755
+ ['ממשק תכנות', ['api', 'interface']],
756
+ ['ביצועים', ['performance']],
757
+ ['אחסון', ['storage', 'disk']],
711
758
 
712
759
  // ── European languages → English ─────────────────────────────────────────
713
760
  // German (Deutsch) → English