smart-thinking-mcp 10.0.0 → 11.0.0

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.
Files changed (72) hide show
  1. package/README.md +49 -333
  2. package/build/config.d.ts +0 -10
  3. package/build/config.js +1 -11
  4. package/build/config.js.map +1 -1
  5. package/build/embedding-service.d.ts +19 -57
  6. package/build/embedding-service.js +79 -192
  7. package/build/embedding-service.js.map +1 -1
  8. package/build/examples/demo-session.d.ts +1 -0
  9. package/build/examples/demo-session.js +141 -0
  10. package/build/examples/demo-session.js.map +1 -0
  11. package/build/feature-flags.d.ts +18 -0
  12. package/build/feature-flags.js +22 -0
  13. package/build/feature-flags.js.map +1 -0
  14. package/build/heuristics/constants.d.ts +14 -0
  15. package/build/heuristics/constants.js +55 -0
  16. package/build/heuristics/constants.js.map +1 -0
  17. package/build/index.d.ts +1 -1
  18. package/build/index.js +29 -247
  19. package/build/index.js.map +1 -1
  20. package/build/memory-manager.d.ts +4 -3
  21. package/build/memory-manager.js +56 -41
  22. package/build/memory-manager.js.map +1 -1
  23. package/build/metrics-calculator.d.ts +18 -1
  24. package/build/metrics-calculator.js +357 -239
  25. package/build/metrics-calculator.js.map +1 -1
  26. package/build/quality-evaluator.js +34 -13
  27. package/build/quality-evaluator.js.map +1 -1
  28. package/build/reasoning-orchestrator.d.ts +37 -0
  29. package/build/reasoning-orchestrator.js +360 -0
  30. package/build/reasoning-orchestrator.js.map +1 -0
  31. package/build/services/service-container.d.ts +3 -3
  32. package/build/services/service-container.js +5 -5
  33. package/build/services/verification-service.js +26 -30
  34. package/build/services/verification-service.js.map +1 -1
  35. package/build/similarity-engine.d.ts +21 -0
  36. package/build/similarity-engine.js +153 -0
  37. package/build/similarity-engine.js.map +1 -0
  38. package/build/test-utils/logger-setup.d.ts +1 -0
  39. package/build/test-utils/logger-setup.js +7 -0
  40. package/build/test-utils/logger-setup.js.map +1 -0
  41. package/build/thought-graph.d.ts +3 -3
  42. package/build/thought-graph.js +174 -58
  43. package/build/thought-graph.js.map +1 -1
  44. package/build/tool-integrator.js +1 -3
  45. package/build/tool-integrator.js.map +1 -1
  46. package/build/types.d.ts +61 -0
  47. package/build/utils/logger.d.ts +26 -0
  48. package/build/utils/logger.js +136 -0
  49. package/build/utils/logger.js.map +1 -0
  50. package/build/utils/math-evaluator.js +1 -1
  51. package/build/utils/math-evaluator.js.map +1 -1
  52. package/build/utils/openrouter-client.d.ts +1 -36
  53. package/build/utils/openrouter-client.js +10 -258
  54. package/build/utils/openrouter-client.js.map +1 -1
  55. package/build/utils/persistence-utils.d.ts +40 -0
  56. package/build/utils/persistence-utils.js +209 -0
  57. package/build/utils/persistence-utils.js.map +1 -0
  58. package/build/verification-memory.d.ts +17 -5
  59. package/build/verification-memory.js +207 -148
  60. package/build/verification-memory.js.map +1 -1
  61. package/build/visualizer.js +75 -14
  62. package/build/visualizer.js.map +1 -1
  63. package/package.json +9 -4
  64. package/build/utils/e2b-calculator.d.ts +0 -118
  65. package/build/utils/e2b-calculator.js +0 -365
  66. package/build/utils/e2b-calculator.js.map +0 -1
  67. package/build/utils/e2b-client.d.ts +0 -53
  68. package/build/utils/e2b-client.js +0 -185
  69. package/build/utils/e2b-client.js.map +0 -1
  70. package/build/utils/enhanced-math-evaluator.d.ts +0 -42
  71. package/build/utils/enhanced-math-evaluator.js +0 -110
  72. package/build/utils/enhanced-math-evaluator.js.map +0 -1
package/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/leghis-smart-thinking-badge.png)](https://mseep.ai/app/leghis-smart-thinking)
2
+
1
3
  # Smart-Thinking
2
4
 
3
5
  [![smithery badge](https://smithery.ai/badge/@Leghis/smart-thinking)](https://smithery.ai/server/@Leghis/smart-thinking)
@@ -8,371 +10,85 @@
8
10
  [![Platform: macOS](https://img.shields.io/badge/Platform-macOS-blue)](https://github.com/Leghis/smart-thinking-mcp)
9
11
  [![Platform: Linux](https://img.shields.io/badge/Platform-Linux-blue)](https://github.com/Leghis/smart-thinking-mcp)
10
12
 
11
- <a href="https://glama.ai/mcp/servers/@Leghis/Smart-Thinking">
12
- <img width="380" height="200" src="https://glama.ai/mcp/servers/@Leghis/Smart-Thinking/badge" alt="Smart-Thinking MCP server" />
13
- </a>
14
-
15
- ## Vue d'ensemble
16
-
17
- Smart-Thinking est un serveur MCP (Model Context Protocol) sophistiqué qui fournit un cadre de raisonnement multi-dimensionnel, adaptatif et auto-vérifiable pour les assistants IA comme Claude. Contrairement aux approches de raisonnement linéaire, Smart-Thinking utilise une architecture basée sur des graphes qui permet des connexions complexes entre les pensées, offrant ainsi une capacité de raisonnement plus nuancée et plus proche de la cognition humaine.
18
-
19
- Smart-Thinking est entièrement compatible avec toutes les plateformes (Windows, macOS, Linux) et s'intègre parfaitement avec de nombreux clients MCP, notamment Claude Desktop, Cline, Windsurf et d'autres applications compatibles MCP.
13
+ Smart-Thinking is a Model Context Protocol (MCP) server that delivers graph-based, multi-step reasoning without relying on external AI APIs. Everything happens locally: similarity search, heuristic-based scoring, verification tracking, memory, and visualization all run in a deterministic pipeline designed for transparency and reproducibility.
20
14
 
21
- ## Caractéristiques clés
15
+ ## Core Capabilities
16
+ - Graph-first reasoning that connects thoughts with rich relationships (supports, contradicts, refines, contextual links, and more).
17
+ - Local TF-IDF + cosine similarity engine powering memory lookups and graph expansion without third-party embedding services.
18
+ - Heuristic quality evaluation that scores confidence, relevance, and quality using transparent rules instead of LLM calls.
19
+ - Verification workflow with detailed statuses and calculation tracing to surface facts, guardrails, and uncertainties.
20
+ - Persistent sessions that can be resumed across runs, keeping both the reasoning graph and verification ledger in sync.
22
21
 
23
- ### Architecture cognitive avancée
24
- - Graphe de pensée multi-dimensionnel remplaçant les séquences linéaires traditionnelles
25
- - Estimation dynamique et auto-adaptative du nombre de pensées nécessaires
26
- - Types de connexions riches et nuancés entre les pensées (supports, contradicts, refines, etc.)
27
- - Métriques de pensée contextuelles (confidence, relevance, quality)
22
+ ## Reasoning Flow
23
+ 1. **Session bootstrap** `ReasoningOrchestrator` initializes a session, restores any saved graph state, and prepares feature flags.
24
+ 2. **Pre-verification** deterministic guards inspect the incoming thought, perform light-weight calculation checks, and annotate the payload.
25
+ 3. **Graph integration** the thought is inserted into `ThoughtGraph`, linking to context, prior thoughts, and relevant memories.
26
+ 4. **Heuristic evaluation** `QualityEvaluator` and `MetricsCalculator` compute weighted scores and traces that explain the decision path.
27
+ 5. **Verification feedback** – statuses from `VerificationService` and heuristic traces are attached to the node and propagated across connections.
28
+ 6. **Persistence & response** – updates are written to `MemoryManager`/`VerificationMemory`, and a structured MCP response is returned with a timeline of reasoning steps.
28
29
 
29
- ### Système de vérification robuste
30
- - Vérification automatique des faits et calculs avec 8 statuts différents
31
- - Détection des contradictions et incertitudes dans le raisonnement
32
- - Scores de fiabilité adaptés à chaque type de vérification
33
- - Génération de résumés de certitude adaptés au contexte
34
-
35
- ### Fonctionnalités avancées
36
- - Mémoire persistante pour les sessions précédentes
37
- - Mécanismes d'auto-apprentissage pour améliorer le raisonnement
38
- - Personnalisation adaptée à l'utilisateur pour un raisonnement pertinent
39
- - Visualisations interactives du processus de raisonnement
40
- - Collaboration multi-agents pour le travail d'équipe
41
- - Intégration transparente avec l'écosystème d'outils MCP
42
-
43
- ### Compatibilité cross-plateforme
44
- - Fonctionne de manière identique sur Windows, macOS et Linux
45
- - Compatible avec NVM (Node Version Manager) sur toutes les plateformes
46
- - Gestion automatique des chemins de fichiers selon la plateforme
47
- - Configuration simplifiée pour chaque environnement
48
- - Résolution automatique des problèmes spécifiques à chaque OS
30
+ Each step is logged with structured metadata so you can visualize the reasoning fabric, audit decisions, and replay sessions deterministically.
49
31
 
50
32
  ## Installation
33
+ Smart-Thinking ships as an npm package compatible with Windows, macOS, and Linux.
51
34
 
52
- ### Option 1: Installation globale (recommandée)
53
-
35
+ ### Global install (recommended)
54
36
  ```bash
55
- # Sur macOS/Linux
56
- npm install -g smart-thinking-mcp
57
-
58
- # Sur Windows (depuis PowerShell ou CMD)
59
37
  npm install -g smart-thinking-mcp
60
38
  ```
61
39
 
62
- ### Option 2: Installation via Smithery
63
-
64
- Pour installer Smart-Thinking automatiquement via [Smithery](https://smithery.ai/server/@Leghis/smart-thinking):
65
-
40
+ ### Run with npx
66
41
  ```bash
67
- npx -y @smithery/cli install @Leghis/smart-thinking --client claude
42
+ npx -y smart-thinking-mcp
68
43
  ```
69
44
 
70
- ### Option 3: Utilisation via npx (sans installation)
71
-
45
+ ### Install via Smithery
72
46
  ```bash
73
- # Sur macOS/Linux
74
- npx -y smart-thinking-mcp
75
-
76
- # Sur Windows (moins recommandé, préférez l'installation globale)
77
- npx -y smart-thinking-mcp
47
+ npx -y @smithery/cli install @Leghis/smart-thinking --client claude
78
48
  ```
79
49
 
80
- ### Option 4: Installation depuis le code source
81
-
50
+ ### From source
82
51
  ```bash
83
- # Cloner le dépôt
84
52
  git clone https://github.com/Leghis/Smart-Thinking.git
85
53
  cd Smart-Thinking
86
-
87
- # Installer les dépendances
88
54
  npm install
89
-
90
- # Compiler le projet
91
55
  npm run build
92
-
93
- # Créer un lien npm global
94
56
  npm link
95
57
  ```
96
58
 
97
- ## Configuration avec Claude Desktop
98
-
99
- ### Configuration sur macOS
100
-
101
- Ajoutez cette configuration à votre fichier `~/Library/Application Support/Claude/claude_desktop_config.json` :
102
-
103
- ```json
104
- {
105
- "mcpServers": {
106
- "smart-thinking": {
107
- "command": "smart-thinking-mcp"
108
- }
109
- }
110
- }
111
- ```
112
-
113
- OU via npx:
114
-
115
- ```json
116
- {
117
- "mcpServers": {
118
- "smart-thinking": {
119
- "command": "npx",
120
- "args": ["-y", "smart-thinking-mcp"]
121
- }
122
- }
123
- }
124
- ```
125
-
126
- ### Configuration sur Windows
127
-
128
- Ajoutez cette configuration à votre fichier `%APPDATA%\Claude\claude_desktop_config.json` :
129
-
130
- ```json
131
- {
132
- "mcpServers": {
133
- "smart-thinking": {
134
- "command": "C:/Users/VotreNom/AppData/Roaming/npm/smart-thinking-mcp.cmd"
135
- }
136
- }
137
- }
138
- ```
139
-
140
- OU avec le chemin complet vers Node.js (recommandé pour Windows):
141
-
142
- ```json
143
- {
144
- "mcpServers": {
145
- "smart-thinking": {
146
- "command": "C:/Program Files/nodejs/node.exe",
147
- "args": ["C:/Users/VotreNom/AppData/Roaming/npm/node_modules/smart-thinking-mcp/build/index.js"]
148
- }
149
- }
150
- }
151
- ```
152
-
153
- **Important**:
154
- - Remplacez `VotreNom` par votre nom d'utilisateur Windows.
155
- - Utilisez des forward slashes (`/`) dans les chemins Windows, même si l'OS utilise des backslashes (`\`).
156
-
157
- Pour des instructions d'installation détaillées, consultez le [Guide d'installation](./GUIDE_INSTALLATION.md).
158
-
159
- ## Système de fichiers cross-plateforme
160
-
161
- Smart-Thinking implémente une gestion avancée du système de fichiers compatible avec toutes les plateformes:
162
-
163
- ### Fonctionnalités du système de fichiers
164
-
165
- - **Normalisation automatique des chemins**: Conversion transparente entre les séparateurs de chemin Windows (`\`) et Unix (`/`)
166
- - **Détection de plateforme intégrée**: Adaptation automatique selon l'OS (Windows, macOS, Linux)
167
- - **Gestion des chemins spéciaux**: Support pour les chemins UNC Windows, WSL et les chemins avec espaces
168
- - **Répertoire de données auto-configuré**: Création et gestion automatique du répertoire de données
169
- - **Fallback intelligent**: Création automatique d'un répertoire alternatif en cas de problème d'accès
170
- - **Chemins de configuration spécifiques à la plateforme**: Localisation correcte des fichiers de configuration selon l'OS
171
-
172
- ### Configuration du répertoire de données
173
-
174
- Par défaut, Smart-Thinking crée et utilise un dossier `data` dans son répertoire de travail. Vous pouvez également spécifier un répertoire personnalisé avec la variable d'environnement `SMART_THINKING_DATA_DIR`:
175
-
176
- ```json
177
- {
178
- "mcpServers": {
179
- "smart-thinking": {
180
- "command": "smart-thinking-mcp",
181
- "env": {
182
- "SMART_THINKING_DATA_DIR": "/chemin/absolu/vers/data"
183
- }
184
- }
185
- }
186
- }
187
- ```
188
-
189
- ### Support pour NVM (Node Version Manager)
190
-
191
- Smart-Thinking détecte automatiquement si Node.js est installé via NVM et adapte les chemins en conséquence, offrant une compatibilité parfaite sur toutes les plateformes, y compris Windows avec NVM.
192
-
193
- ## Utilisation
194
-
195
- ### Paramètres principaux
196
-
197
- | Paramètre | Type | Description |
198
- |-----------|------|-------------|
199
- | `thought` | string | Contenu de la pensée à analyser (obligatoire) |
200
- | `thoughtType` | string | Type de pensée ('regular', 'revision', 'meta', 'hypothesis', 'conclusion') |
201
- | `connections` | array | Connexions à d'autres pensées |
202
- | `requestVerification` | boolean | Activer la vérification automatique |
203
- | `containsCalculations` | boolean | Indiquer si la pensée contient des calculs |
204
- | `generateVisualization` | boolean | Générer une visualisation du graphe de pensée |
205
- | `suggestTools` | boolean | Suggérer des outils MCP pertinents |
206
- | `sessionId` | string | Identifiant de session pour la persistance |
207
-
208
- ### Exemples d'utilisation
209
-
210
- #### Raisonnement simple
211
- ```
212
- Utilise l'outil Smart-Thinking pour analyser les avantages et inconvénients des énergies renouvelables.
213
- ```
214
-
215
- #### Avec vérification automatique
216
- ```
217
- Utilise Smart-Thinking avec vérification (requestVerification=true) pour évaluer les affirmations suivantes sur le changement climatique.
218
- ```
219
-
220
- #### Avec visualisation
221
- ```
222
- Utilise Smart-Thinking avec visualisation (generateVisualization=true) pour développer une stratégie marketing multicouche.
223
- ```
224
-
225
- #### Analyse collaborative
226
- ```
227
- Utilise Smart-Thinking avec un identifiant de session (sessionId="projet-innovation") pour analyser ce problème complexe d'optimisation.
228
- ```
229
-
230
- ## Système de vérification
231
-
232
- Smart-Thinking intègre un système sophistiqué de vérification qui évalue la fiabilité des informations et des calculs. Il prend en charge 8 statuts de vérification distincts :
233
-
234
- | Statut | Description |
235
- |--------|-------------|
236
- | `verified` | Information vérifiée avec confiance |
237
- | `partially_verified` | Information partiellement vérifiée |
238
- | `unverified` | Information non vérifiée |
239
- | `contradicted` | Information contredite par d'autres sources |
240
- | `inconclusive` | Vérification non concluante |
241
- | `absence_of_information` | Absence d'information sur le sujet |
242
- | `uncertain` | Information incertaine à cause de contradictions |
243
- | `contradictory` | Information intrinsèquement contradictoire |
244
-
245
- Le système calcule un score de fiabilité qui combine ces statuts avec d'autres métriques comme la confiance, la pertinence et la qualité.
246
-
247
- ### Calcul du score de fiabilité
248
-
249
- Le score de fiabilité est calculé selon une formule qui équilibre :
250
- - Les métriques de base (confiance, pertinence, qualité)
251
- - Le statut de vérification
252
- - Les résultats de vérification des calculs (si présents)
253
- - L'historique des scores précédents (pour un lissage temporel)
254
-
255
- Les seuils et les scores ont été optimisés par simulation pour garantir une cohérence maximale.
256
-
257
- ## Visualisation
258
-
259
- Smart-Thinking propose plusieurs types de visualisations du graphe de pensée :
260
-
261
- - **Graphe standard**: Disposition standard du réseau de pensées
262
- - **Chronologique**: Organisation temporelle des pensées
263
- - **Thématique**: Clusters par thèmes similaires
264
- - **Hiérarchique**: Structure arborescente
265
- - **Force**: Disposition basée sur les forces d'attraction/répulsion
266
- - **Radiale**: Cercles concentriques autour d'une pensée centrale
59
+ > Need platform-specific configuration details? See `GUIDE_INSTALLATION.md` for step-by-step instructions covering Windows, macOS, Linux, and Claude Desktop integration.
267
60
 
268
- Les visualisations peuvent être filtrées selon :
269
- - Types de pensées
270
- - Types de connexions
271
- - Seuils de métriques
272
- - Recherche textuelle
273
- - Plages de dates
61
+ ## Quick Tour
62
+ - `smart-thinking-mcp` start the MCP server (globally installed package).
63
+ - `npx -y smart-thinking-mcp` — launch without a global install.
64
+ - `npm run start` — execute the built server from source.
65
+ - `npm run demo:session` — run the built-in CLI walkthrough that feeds sample thoughts through the reasoning pipeline and prints the resulting timeline.
274
66
 
275
- ## Persistance des données
67
+ The demo script showcases how the orchestrator adds nodes, evaluates heuristics, and records verification feedback step by step.
276
68
 
277
- Smart-Thinking implémente un système robuste de persistance des données qui stocke :
278
- - Les graphes de pensée par session
279
- - Les résultats de vérification pour une réutilisation future
280
- - Les métriques calculées pour analyse et amélioration
281
- - Les préférences utilisateur pour personnalisation
282
-
283
- Les données sont stockées de manière compatible cross-plateforme dans des fichiers JSON structurés sur le système de fichiers, garantissant la persistance entre les sessions.
284
-
285
- ## Compatibilité avec les clients MCP
286
-
287
- Smart-Thinking est compatible avec de nombreux clients MCP, dont :
288
-
289
- - **Claude Desktop App**: Support complet des outils, ressources et prompts
290
- - **Cline**: Support pour les outils et ressources
291
- - **Continue**: Support complet pour toutes les fonctionnalités MCP
292
- - **5ire**: Support pour les outils
293
- - **Cursor**: Support pour les outils
294
- - **Windsurf Editor**: Support pour les outils AI Flow
295
- - **Et plus encore...**
296
-
297
- ## Comparaison avec Sequential-Thinking
298
-
299
- | Fonctionnalité | Sequential-Thinking | Smart-Thinking |
300
- |----------------|---------------------|---------------|
301
- | Structure de pensée | Linéaire | Multi-dimensionnelle (graphe) |
302
- | Types de connexions | Limités | Riches et nuancés (16+ types) |
303
- | Adaptation | Statique | Dynamique et contextuelle |
304
- | Vérification | Basique | Avancée (8 statuts différents) |
305
- | Visualisation | Simple | Interactive et paramétrable |
306
- | Mémoire | Temporaire | Persistante avec vectorisation |
307
- | Collaboration | Non | Oui (multi-agents) |
308
- | Personnalisation | Limitée | Adaptative à l'utilisateur |
309
- | Auto-apprentissage | Non | Oui |
310
- | Métriques | Basiques | Contextuelle et multi-facteurs |
311
- | Compatibilité plateforme | Limitée | Complète (Windows, macOS, Linux) |
312
-
313
- ## API et intégration
314
-
315
- Smart-Thinking peut être intégré dans d'autres applications Node.js :
316
-
317
- ```javascript
318
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
319
- import { SmartThinking } from 'smart-thinking-mcp';
320
-
321
- // Initialiser Smart-Thinking
322
- const smartThinking = new SmartThinking({
323
- persistenceEnabled: true,
324
- verificationEnabled: true
325
- });
326
-
327
- // Utiliser les fonctionnalités
328
- const result = await smartThinking.processThought({
329
- thought: "Cette pensée sera analysée et vérifiée",
330
- requestVerification: true
331
- });
332
-
333
- console.log(result.qualityMetrics);
334
- console.log(result.verificationStatus);
335
- ```
336
-
337
- ## Résolution des problèmes
338
-
339
- ### Vérification rapide du fonctionnement
340
-
341
- Pour vérifier que Smart-Thinking fonctionne correctement:
69
+ ## Configuration & Feature Flags
70
+ - `feature-flags.ts` toggles advanced behaviours such as external integrations (disabled by default) and verbose tracing.
71
+ - `config.ts` aligns platform-specific paths and verification thresholds.
72
+ - `memory-manager.ts` and `verification-memory.ts` store session graphs, metrics, and calculation results using deterministic JSON snapshots.
342
73
 
74
+ ## Development Workflow
343
75
  ```bash
344
- # Sur macOS/Linux
345
- smart-thinking-mcp
346
-
347
- # Sur Windows
348
- smart-thinking-mcp.cmd
76
+ npm run build # Compile TypeScript sources
77
+ npm run lint # ESLint across src/
78
+ npm run test # Jest test suite
79
+ npm run test:coverage # Jest coverage report
80
+ npm run watch # Incremental TypeScript compilation
349
81
  ```
350
82
 
351
- Vous devriez voir le message de démarrage du serveur.
352
-
353
- ### Consulter les logs
354
-
355
- Si vous rencontrez des difficultés, consultez les logs de Claude Desktop :
356
-
357
- - Sur macOS : `~/Library/Logs/Claude/mcp*.log`
358
- - Sur Windows : `%USERPROFILE%\AppData\Local\Claude\logs\mcp*.log`
359
- - Sur Linux : `~/.local/share/Claude/logs/mcp*.log`
360
-
361
- ### Problèmes courants et solutions
362
-
363
- | Problème | Solution |
364
- |----------|----------|
365
- | Smart-Thinking n'apparaît pas dans Claude | Vérifiez les chemins dans la configuration, redémarrez Claude Desktop |
366
- | Erreurs d'accès aux fichiers | Vérifiez les permissions du répertoire de données |
367
- | Problèmes de connexion sur Windows | Utilisez des chemins complets et absolus avec forward slashes |
368
- | Erreurs avec NVM sur Windows | Utilisez le chemin complet vers la version active de Node.js |
369
-
370
- Pour les problèmes spécifiques à Windows et NVM, consultez la section dédiée dans le [Guide d'installation](./GUIDE_INSTALLATION.md).
371
-
372
- ## Contribution
83
+ See `TRANSFORMATION_PLAN.md` for the full transformation history and the checklist that drives ongoing hardening.
373
84
 
374
- Les contributions sont les bienvenues ! Consultez notre [Guide de contribution](./CONTRIBUTING.md) pour plus d'informations.
85
+ ## Quality & Support
86
+ - Deterministic heuristics and verification eliminate dependency on remote LLMs.
87
+ - Coverage targets: ≥80 % on persistence modules, ≥60 % branch coverage across orchestrator logic.
88
+ - CI recommendations: run `npm run lint` and `npm run test:coverage` before each release candidate.
375
89
 
376
- ## Licence
90
+ ## Contributing
91
+ Contributions are welcome. Please open an issue or pull request describing the change, and run the quality checks above before submitting.
377
92
 
93
+ ## License
378
94
  [MIT](./LICENSE)
package/build/config.d.ts CHANGED
@@ -21,16 +21,6 @@ export declare const VerificationConfig: {
21
21
  DEFAULT_SESSION_TTL: number;
22
22
  };
23
23
  };
24
- /**
25
- * Configuration pour le service d'embeddings
26
- */
27
- export declare const EmbeddingConfig: {
28
- MODEL: string;
29
- INPUT_TYPE: string;
30
- BATCH_SIZE: number;
31
- RETRY_ATTEMPTS: number;
32
- RETRY_DELAY: number;
33
- };
34
24
  /**
35
25
  * Constantes générales du système
36
26
  */
package/build/config.js CHANGED
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.PlatformConfig = exports.SystemConfig = exports.EmbeddingConfig = exports.VerificationConfig = void 0;
36
+ exports.PlatformConfig = exports.SystemConfig = exports.VerificationConfig = void 0;
37
37
  /**
38
38
  * config.ts
39
39
  *
@@ -68,16 +68,6 @@ exports.VerificationConfig = {
68
68
  DEFAULT_SESSION_TTL: 86400000 // Durée de vie d'une session par défaut (24h)
69
69
  }
70
70
  };
71
- /**
72
- * Configuration pour le service d'embeddings
73
- */
74
- exports.EmbeddingConfig = {
75
- MODEL: 'embed-multilingual-v3.0', // Modèle d'embedding à utiliser
76
- INPUT_TYPE: 'search_document', // Type d'entrée pour l'API d'embeddings
77
- BATCH_SIZE: 20, // Taille maximale des lots pour les requêtes d'embedding
78
- RETRY_ATTEMPTS: 3, // Nombre de tentatives en cas d'échec
79
- RETRY_DELAY: 1000 // Délai entre les tentatives en milliseconds
80
- };
81
71
  /**
82
72
  * Constantes générales du système
83
73
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,2BAA8B;AAE9B,2CAA6B;AAE7B;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC,2CAA2C;IAC3C,UAAU,EAAE;QACV,iBAAiB,EAAE,GAAG,EAAS,oEAAoE;QACnG,qBAAqB,EAAE,GAAG,EAAM,gEAAgE;QAChG,eAAe,EAAE,IAAI,EAAW,wCAAwC;QACxE,cAAc,EAAE,GAAG,CAAa,wCAAwC;KACzE;IAED,uDAAuD;IACvD,UAAU,EAAE;QACV,WAAW,EAAE,IAAI,EAAe,2DAA2D;QAC3F,eAAe,EAAE,IAAI,EAAW,wFAAwF;QACxH,iBAAiB,EAAE,IAAI,EAAS,qGAAqG;QACrI,cAAc,EAAE,IAAI,EAAY,6FAA6F;QAC7H,UAAU,EAAE,IAAI,CAAgB,kFAAkF;KACnH;IAED,6CAA6C;IAC7C,MAAM,EAAE;QACN,cAAc,EAAE,IAAI,EAAY,yCAAyC;QACzE,gBAAgB,EAAE,OAAO,EAAO,8DAA8D;QAC9F,mBAAmB,EAAE,QAAQ,CAAG,8CAA8C;KAC/E;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,eAAe,GAAG;IAC7B,KAAK,EAAE,yBAAyB,EAAG,gCAAgC;IACnE,UAAU,EAAE,iBAAiB,EAAO,wCAAwC;IAC5E,UAAU,EAAE,EAAE,EAAsB,yDAAyD;IAC7F,cAAc,EAAE,CAAC,EAAmB,sCAAsC;IAC1E,WAAW,EAAE,IAAI,CAAmB,6CAA6C;CAClF,CAAC;AAEF;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,kBAAkB,EAAE,SAAS;IAC7B,kBAAkB,EAAE,KAAK,EAAW,+CAA+C;IACnF,eAAe,EAAE,EAAE,CAAiB,0CAA0C;CAC/E,CAAC;AAEF;;;GAGG;AACU,QAAA,cAAc,GAAG;IAC5B,UAAU,EAAE,IAAA,aAAQ,GAAE,KAAK,OAAO;IAClC,MAAM,EAAE,IAAA,aAAQ,GAAE,KAAK,QAAQ;IAC/B,QAAQ,EAAE,IAAA,aAAQ,GAAE,KAAK,OAAO;IAEhC;;OAEG;IACH,aAAa,EAAE,GAAW,EAAE;QAC1B,IAAI,IAAA,aAAQ,GAAE,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO;gBACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAClD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACvF,CAAC;aAAM,IAAI,IAAA,aAAQ,GAAE,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;QAC/F,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW,EAAE,GAAW,EAAE;QACxB,OAAO,IAAI,CAAC,IAAI,CACd,IAAA,aAAQ,GAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EACjE,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,gBAAgB,EAAE,GAAY,EAAE;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAChD,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC,IAAA,aAAQ,GAAE,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAChF,CAAC;IAED;;;OAGG;IACH,cAAc,EAAE,GAAkB,EAAE;QAClC,IAAI,CAAC,sBAAc,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAA,aAAQ,GAAE,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,OAAO,OAAO,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,89 +1,51 @@
1
1
  /**
2
- * Service qui gère les embeddings vectoriels avec l'API Cohere
3
- * Version optimisée avec batching et LRU cache avec expiration
2
+ * Service d'embeddings local sans dépendance externe.
3
+ *
4
+ * Phase 1 retire les appels Cohere et remplace la génération de vecteurs
5
+ * par une représentation déterministe construite à partir du texte.
4
6
  */
5
7
  export declare class EmbeddingService {
6
- private client;
7
8
  private cache;
8
9
  private cacheSize;
9
10
  private maxCacheSize;
10
11
  private cacheExpiration;
11
- private batchQueue;
12
- private batchTimeout;
13
- private batchSize;
14
- private batchDelay;
15
- constructor(apiKey: string);
12
+ private static warnedExternalUsage;
13
+ constructor();
16
14
  /**
17
- * Génère un embedding pour un texte donné
18
- * Utilise une file d'attente pour regrouper les requêtes en batch
19
- *
20
- * @param text Le texte pour lequel générer un embedding
21
- * @returns Un vecteur d'embedding
15
+ * Génère un embedding déterministe à partir du texte (analyse de fréquence).
22
16
  */
23
- getEmbedding(text: string): Promise<number[]>;
24
- /**
25
- * Traite la file d'attente des embeddings en lot
26
- */
27
- private processBatch;
17
+ private buildLocalEmbedding;
18
+ private warnFeatureDisabled;
19
+ private addToCache;
28
20
  /**
29
- * Ajoute un embedding au cache LRU avec expiration
30
- *
31
- * @param text Le texte clé
32
- * @param embedding Le vecteur à mettre en cache
21
+ * Génère un embedding pour un texte donné.
33
22
  */
34
- private addToCache;
23
+ getEmbedding(text: string): Promise<number[]>;
35
24
  /**
36
- * Génère des embeddings pour plusieurs textes
37
- * avec gestion optimisée des batchs et du cache
38
- *
39
- * @param texts Les textes pour lesquels générer des embeddings
40
- * @returns Un tableau de vecteurs d'embedding
25
+ * Génère des embeddings pour plusieurs textes.
41
26
  */
42
27
  getEmbeddings(texts: string[]): Promise<number[][]>;
43
28
  /**
44
- * Calcule la similarité cosinus entre deux vecteurs
45
- *
46
- * @param vecA Premier vecteur
47
- * @param vecB Second vecteur
48
- * @returns Score de similarité entre 0 et 1
29
+ * Calcule la similarité cosinus entre deux vecteurs.
49
30
  */
50
31
  calculateCosineSimilarity(vecA: number[], vecB: number[]): number;
51
32
  /**
52
- * Trouve les textes les plus similaires à un texte de référence
53
- * Utilise KNN pour la recherche de similarité
54
- *
55
- * @param referenceText Texte de référence
56
- * @param candidateTexts Textes candidats
57
- * @param limit Nombre maximum de résultats
58
- * @param threshold Seuil de similarité minimum (optionnel)
59
- * @returns Les textes les plus similaires avec leurs scores
33
+ * Trouve les textes les plus similaires.
60
34
  */
61
35
  findSimilarTexts(referenceText: string, candidateTexts: string[], limit?: number, threshold?: number): Promise<Array<{
62
36
  text: string;
63
37
  score: number;
64
38
  }>>;
65
39
  /**
66
- * Efface le cache d'embeddings ou supprime les entrées expirées
67
- *
68
- * @param all Si true, efface tout le cache, sinon seulement les entrées expirées
40
+ * Efface le cache ou supprime les entrées expirées.
69
41
  */
70
42
  clearCache(all?: boolean): void;
71
43
  /**
72
- * Ajuste les paramètres du cache
73
- *
74
- * @param maxSize Taille maximale du cache
75
- * @param expiration Durée de validité en millisecondes
44
+ * Ajuste les paramètres du cache.
76
45
  */
77
46
  configureCacheParams(maxSize?: number, expiration?: number): void;
78
47
  /**
79
- * Réduit la taille du cache en supprimant les entrées les plus anciennes
80
- */
81
- private reduceCache;
82
- /**
83
- * Configure les paramètres de batch
84
- *
85
- * @param batchSize Taille maximale des lots
86
- * @param batchDelay Délai en ms pour regrouper les requêtes
48
+ * Paramètres de batch conservés pour compatibilité (aucun effet en mode local).
87
49
  */
88
- configureBatchParams(batchSize?: number, batchDelay?: number): void;
50
+ configureBatchParams(_batchSize?: number, _batchDelay?: number): void;
89
51
  }