smart-thinking-mcp 1.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Smart-Thinking Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,104 @@
1
+ # Smart-Thinking MCP Server
2
+
3
+ Un serveur MCP (Model Context Protocol) qui fournit un cadre de raisonnement multi-dimensionnel, adaptatif et collaboratif pour les assistants IA comme Claude.
4
+
5
+ ## Caractéristiques
6
+
7
+ - 🧠 **Architecture de raisonnement multi-dimensionnelle** basée sur un graphe plutôt qu'une séquence linéaire
8
+ - 🔄 **Estimation dynamique et auto-adaptative** du nombre de pensées nécessaires
9
+ - 💾 **Intégration d'une mémoire persistante** pour les sessions précédentes
10
+ - 📈 **Mécanismes d'auto-apprentissage** pour améliorer le raisonnement au fil du temps
11
+ - 🔍 **Intégration native de la recherche** et de la vérification des faits
12
+ - 👤 **Personnalisation adaptée à l'utilisateur** pour un raisonnement plus pertinent
13
+ - 📊 **Visualisations avancées** du processus de raisonnement
14
+ - ⚖️ **Système d'évaluation de la qualité** du raisonnement
15
+ - 👥 **Capacités de collaboration avancées** pour le travail d'équipe
16
+ - 🔌 **Écosystème d'outils MCP** profondément intégré
17
+ - 🤔 **Fonctionnalités de méta-cognition avancées** pour l'auto-analyse
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ # Installer depuis npm
23
+ npm install -g smart-thinking-mcp
24
+
25
+ # Ou depuis GitHub
26
+ git clone https://github.com/votre-nom/smart-thinking-mcp.git
27
+ cd smart-thinking-mcp
28
+ npm install
29
+ npm run build
30
+ ```
31
+
32
+ ## Configuration avec Claude Desktop
33
+
34
+ Ajoutez cette configuration à votre fichier `claude_desktop_config.json` :
35
+
36
+ ```json
37
+ {
38
+ "mcpServers": {
39
+ "smart-thinking": {
40
+ "command": "npx",
41
+ "args": ["-y", "smart-thinking-mcp"]
42
+ }
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## Utilisation
48
+
49
+ Une fois configuré, Smart-Thinking peut être utilisé par Claude pour structurer son raisonnement. Les paramètres disponibles incluent :
50
+
51
+ - `thought`: Le contenu de la pensée actuelle
52
+ - `thoughtType`: Le type de pensée (regular, revision, meta, hypothesis, conclusion)
53
+ - `connections`: Connexions à d'autres pensées
54
+ - `requestSuggestions`: Demander des suggestions d'amélioration
55
+ - `generateVisualization`: Générer une visualisation du graphe de pensée
56
+ - `suggestTools`: Suggérer des outils MCP pertinents
57
+
58
+ ### Exemples d'utilisation
59
+
60
+ 1. **Raisonnement simple**
61
+ ```
62
+ Utilise l'outil Smart-Thinking pour analyser les avantages et inconvénients des énergies renouvelables.
63
+ ```
64
+
65
+ 2. **Avec visualisation**
66
+ ```
67
+ Utilise Smart-Thinking avec visualisation pour développer une stratégie marketing.
68
+ ```
69
+
70
+ 3. **Avec recherche intégrée**
71
+ ```
72
+ Utilise Smart-Thinking avec recherche pour analyser les dernières avancées en IA.
73
+ ```
74
+
75
+ ## Comparaison avec Sequential-Thinking
76
+
77
+ Smart-Thinking représente une évolution majeure par rapport à Sequential-Thinking, apportant:
78
+
79
+ 1. Une structure de pensée multidimensionnelle plutôt que linéaire
80
+ 2. Une capacité d'adaptation dynamique au contexte et aux besoins
81
+ 3. Des fonctionnalités avancées de mémoire, d'auto-apprentissage et de collaboration
82
+ 4. Une intégration plus profonde avec l'écosystème d'outils MCP
83
+
84
+ ## Architecture technique
85
+
86
+ ```
87
+ smart-thinking-mcp/
88
+ ├── src/
89
+ │ ├── index.ts # Point d'entrée du serveur MCP
90
+ │ ├── thought-graph.ts # Implémentation du graphe de pensée
91
+ │ ├── memory-manager.ts # Gestionnaire de mémoire persistante
92
+ │ ├── tool-integrator.ts # Intégration avec d'autres outils MCP
93
+ │ ├── quality-evaluator.ts # Évaluation de la qualité des pensées
94
+ │ ├── visualizer.ts # Générateur de visualisations
95
+ │ └── types.ts # Définitions des types TypeScript
96
+ ├── package.json
97
+ ├── tsconfig.json
98
+ ├── README.md
99
+ └── LICENSE
100
+ ```
101
+
102
+ ## Licence
103
+
104
+ MIT
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/build/index.js ADDED
@@ -0,0 +1,296 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
5
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
+ const zod_1 = require("zod");
7
+ const thought_graph_1 = require("./thought-graph");
8
+ const memory_manager_1 = require("./memory-manager");
9
+ const tool_integrator_1 = require("./tool-integrator");
10
+ const quality_evaluator_1 = require("./quality-evaluator");
11
+ const visualizer_1 = require("./visualizer");
12
+ /**
13
+ * Point d'entrée du serveur MCP Smart-Thinking
14
+ */
15
+ // Afficher un message de bienvenue sur stderr (n'affecte pas la communication JSON)
16
+ console.error(`
17
+ ╔══════════════════════════════════════════════════════════════╗
18
+ ║ ║
19
+ ║ Smart-Thinking MCP Server ║
20
+ ║ Un outil de raisonnement multi-dimensionnel avancé ║
21
+ ║ ║
22
+ ║ Version: 1.0.0 ║
23
+ ║ ║
24
+ ║ Démarrage du serveur... ║
25
+ ║ ║
26
+ ╚══════════════════════════════════════════════════════════════╝
27
+ `);
28
+ // Créer une instance de chaque composant
29
+ const thoughtGraph = new thought_graph_1.ThoughtGraph();
30
+ const memoryManager = new memory_manager_1.MemoryManager();
31
+ const toolIntegrator = new tool_integrator_1.ToolIntegrator();
32
+ const qualityEvaluator = new quality_evaluator_1.QualityEvaluator();
33
+ const visualizer = new visualizer_1.Visualizer();
34
+ // Créer une instance du serveur MCP
35
+ const server = new mcp_js_1.McpServer({
36
+ name: "smart-thinking-mcp",
37
+ version: "1.0.0",
38
+ capabilities: {}
39
+ });
40
+ // Définir le schéma des paramètres pour l'outil smartthinking
41
+ const SmartThinkingParamsSchema = zod_1.z.object({
42
+ thought: zod_1.z.string().describe('Le contenu de la pensée actuelle - OBLIGATOIRE - Exemple: "L\'intelligence artificielle va transformer profondément le marché du travail" - ' +
43
+ 'Smart-Thinking est un outil de raisonnement multi-dimensionnel qui organise les pensées en graphe plutôt qu\'en séquence linéaire, ' +
44
+ 'permettant une analyse plus riche, flexible et interconnectée des problèmes complexes.'),
45
+ thoughtType: zod_1.z.enum(['regular', 'revision', 'meta', 'hypothesis', 'conclusion']).default('regular')
46
+ .describe('Le type de pensée - Définit la nature et la fonction de cette pensée dans le graphe:\n' +
47
+ '- "regular": Pensée standard/normale pour développer une idée\n' +
48
+ '- "meta": Réflexion sur le processus de pensée lui-même pour évaluer la démarche\n' +
49
+ '- "revision": Modification ou amélioration d\'une pensée précédente\n' +
50
+ '- "hypothesis": Formulation d\'une hypothèse à tester ou explorer\n' +
51
+ '- "conclusion": Synthèse finale ou déduction globale'),
52
+ connections: zod_1.z.array(zod_1.z.any()).default([])
53
+ .describe('Connexions à d\'autres pensées - Permet de créer des liens entre les pensées pour former un graphe - ' +
54
+ 'Format: [{targetId: "id-pensée-précédente", type: "type-connexion", strength: 0.8}] - ' +
55
+ 'Types de connexions disponibles:\n' +
56
+ '- "supports": Pensée qui renforce une autre\n' +
57
+ '- "contradicts": Pensée qui s\'oppose à une autre\n' +
58
+ '- "refines": Pensée qui précise ou améliore une autre\n' +
59
+ '- "branches": Pensée qui explore une nouvelle direction\n' +
60
+ '- "derives": Pensée qui découle logiquement d\'une autre\n' +
61
+ '- "associates": Pensée simplement liée à une autre'),
62
+ requestSuggestions: zod_1.z.boolean().default(false)
63
+ .describe('Demander des suggestions d\'amélioration du raisonnement - Exemple: true - ' +
64
+ 'Fournit des recommandations spécifiques pour améliorer la qualité, la pertinence et la rigueur de la pensée actuelle, ' +
65
+ 'et détecte les biais cognitifs potentiels'),
66
+ generateVisualization: zod_1.z.boolean().default(false)
67
+ .describe('Générer une visualisation du graphe de pensée - Exemple: true - ' +
68
+ 'Crée une représentation visuelle du réseau de pensées et leurs connexions selon le type de visualisation choisi'),
69
+ visualizationType: zod_1.z.enum(['graph', 'chronological', 'thematic']).default('graph')
70
+ .describe('Type de visualisation à générer:\n' +
71
+ '- "graph": Réseau de connexions entre pensées montrant les relations directes\n' +
72
+ '- "chronological": Timeline séquentielle montrant l\'évolution temporelle du raisonnement\n' +
73
+ '- "thematic": Clusters par thème regroupant les pensées selon leurs similitudes conceptuelles'),
74
+ suggestTools: zod_1.z.boolean().default(true)
75
+ .describe('Suggérer des outils MCP pertinents pour cette étape - Exemple: true - ' +
76
+ 'Recommande des outils externes (recherche web, exécution de code, etc.) basés sur le contenu de la pensée ' +
77
+ 'pour enrichir le raisonnement avec des données ou des analyses complémentaires'),
78
+ sessionId: zod_1.z.string().optional()
79
+ .describe('Identifiant de session pour maintenir l\'\u00e9tat entre les appels - Optionnel - ' +
80
+ 'Permet de conserver le graphe de pensées entre plusieurs invocations et de bâtir un raisonnement progressif'),
81
+ userId: zod_1.z.string().optional()
82
+ .describe('Identifiant de l\'utilisateur pour la personnalisation - Optionnel - ' +
83
+ 'Adapte les recommandations aux préférences et au style de raisonnement de l\'utilisateur'),
84
+ help: zod_1.z.boolean().default(true)
85
+ .describe('Afficher le guide d\'utilisation complet - Exemple: true - ' +
86
+ 'Renvoie une documentation détaillée sur l\'utilisation de Smart-Thinking, ses fonctionnalités et des exemples d\'utilisation')
87
+ });
88
+ // Le guide d'utilisation est maintenant intégré directement dans les descriptions des paramètres
89
+ // Définir l'outil smartthinking
90
+ server.tool('smartthinking', SmartThinkingParamsSchema.shape, async (params) => {
91
+ // Si le paramètre help est activé et qu'aucune pensée n'est fournie, afficher le guide d'utilisation
92
+ if (params.help && !params.thought) {
93
+ const guideContent = `# Guide d'utilisation de Smart-Thinking
94
+
95
+ ## Qu'est-ce que Smart-Thinking?
96
+
97
+ Smart-Thinking est un outil de raisonnement avancé qui permet d'organiser les pensées en un graphe multi-dimensionnel plutôt qu'en une séquence linéaire. Il représente une évolution majeure par rapport au raisonnement séquentiel classique.
98
+
99
+ ## Principales caractéristiques
100
+
101
+ ### 1. Structure en graphe multi-dimensionnel
102
+ - **Organisation non-linéaire** des pensées avec des connexions multiples
103
+ - **Types de pensées variés**:
104
+ - **regular**: Pensée standard/normale
105
+ - **meta**: Réflexion sur le processus de pensée lui-même
106
+ - **hypothesis**: Formulation d'une hypothèse à tester
107
+ - **revision**: Modification ou amélioration d'une pensée précédente
108
+ - **conclusion**: Synthèse ou déduction finale
109
+ - **Types de connexions**:
110
+ - **supports**: Pensée qui renforce une autre
111
+ - **contradicts**: Pensée qui s'oppose à une autre
112
+ - **refines**: Pensée qui précise ou améliore une autre
113
+ - **branches**: Pensée qui explore une nouvelle direction
114
+ - **derives**: Pensée qui découle logiquement d'une autre
115
+ - **associates**: Pensée simplement liée à une autre
116
+
117
+ ### 2. Évaluation automatique de la qualité
118
+ - Mesure de **confiance** (degré de certitude)
119
+ - Mesure de **pertinence** (lien avec le contexte)
120
+ - Mesure de **qualité globale** (structure, clarté, profondeur)
121
+ - Détection des **biais cognitifs potentiels**
122
+
123
+ ### 3. Mémoire persistante
124
+ - Conservation des pensées entre les sessions
125
+ - Récupération contextuelle d'informations pertinentes
126
+ - Enrichissement progressif de la base de connaissances
127
+
128
+ ### 4. Visualisations avancées
129
+ - **graph**: Réseau de connexions entre pensées
130
+ - **chronological**: Timeline du développement du raisonnement
131
+ - **thematic**: Regroupement par clusters thématiques
132
+
133
+ ### 5. Intégration d'outils externes
134
+ - Suggestions contextuelles d'outils MCP pertinents
135
+ - Priorisation intelligente selon le contexte actuel
136
+
137
+ ## Exemples d'utilisation
138
+
139
+ ### Exemple 1: Pensée initiale simple
140
+ \`\`\`
141
+ Utilise l'outil smartthinking avec thought="L'intelligence artificielle va transformer profondément le marché du travail dans les prochaines décennies."
142
+ \`\`\`
143
+
144
+ ### Exemple 2: Avec visualisation
145
+ \`\`\`
146
+ Utilise l'outil smartthinking avec:
147
+ thought="Les énergies renouvelables représentent une solution viable au changement climatique, mais posent des défis d'implémentation."
148
+ generateVisualization=true
149
+ \`\`\`
150
+
151
+ ### Exemple 3: Pensée de type hypothèse avec suggestions
152
+ \`\`\`
153
+ Utilise l'outil smartthinking avec:
154
+ thought="Si nous réduisons les émissions de carbone de 50% d'ici 2030, nous pourrons limiter le réchauffement global à moins de 2°C."
155
+ thoughtType="hypothesis"
156
+ requestSuggestions=true
157
+ \`\`\`
158
+
159
+ ### Exemple 4: Connexion à une pensée précédente
160
+ \`\`\`
161
+ Utilise l'outil smartthinking avec:
162
+ thought="Cette approche présente toutefois des défis économiques importants pour les pays en développement."
163
+ connections=[{targetId:"PENSEE-ID-PRECEDENTE", type:"refines", strength:0.8}]
164
+ \`\`\`
165
+
166
+ ## Conseils d'utilisation avancée
167
+
168
+ 1. **Commencez simplement**: Débutez avec des pensées de type "regular" avant d'explorer des types plus spécifiques
169
+ 2. **Utilisez les méta-pensées**: Évaluez régulièrement votre processus avec des pensées de type "meta"
170
+ 3. **Créez des connexions riches**: Variez les types de connexions pour un réseau de pensée plus nuancé
171
+ 4. **Alternez analyse et synthèse**: Combinez l'exploration détaillée avec des moments de synthèse
172
+ 5. **Exploitez les visualisations**: Utilisez différents types de visualisation selon vos besoins d'analyse
173
+
174
+ Pour plus d'informations, consultez le paramètre help=true de l'outil.
175
+ `;
176
+ return {
177
+ content: [
178
+ {
179
+ type: 'text',
180
+ text: guideContent
181
+ }
182
+ ]
183
+ };
184
+ }
185
+ // Vérifier explicitement si le paramètre 'thought' est présent
186
+ if (!params.thought) {
187
+ console.error('Smart-Thinking: ERROR - Paramètre "thought" manquant');
188
+ return {
189
+ isError: true,
190
+ content: [
191
+ {
192
+ type: 'text',
193
+ text: JSON.stringify({
194
+ error: "Le paramètre 'thought' est obligatoire.",
195
+ example: "Pour utiliser cet outil correctement, veuillez fournir une pensée à analyser.",
196
+ usage: {
197
+ thought: "Voici ma pensée à analyser",
198
+ thoughtType: "regular",
199
+ generateVisualization: true
200
+ },
201
+ tip: "Utilisez help=true pour afficher le guide d'utilisation complet."
202
+ }, null, 2)
203
+ }
204
+ ]
205
+ };
206
+ }
207
+ // Utiliser console.error pour les messages de débogage qui ne seront pas interprétés comme JSON
208
+ console.error('Smart-Thinking: traitement de la pensée:', params.thought);
209
+ // Ajouter la pensée au graphe
210
+ const thoughtId = thoughtGraph.addThought(params.thought, params.thoughtType, params.connections);
211
+ // Évaluer la qualité de la pensée
212
+ const qualityMetrics = qualityEvaluator.evaluate(thoughtId, thoughtGraph);
213
+ // Mettre à jour les métriques dans le graphe
214
+ thoughtGraph.updateThoughtMetrics(thoughtId, qualityMetrics);
215
+ // Préparer la réponse
216
+ const response = {
217
+ thoughtId,
218
+ thought: params.thought,
219
+ thoughtType: params.thoughtType || 'regular',
220
+ qualityMetrics
221
+ };
222
+ // Si demandé, suggérer des outils
223
+ if (params.suggestTools) {
224
+ response.suggestedTools = toolIntegrator.suggestTools(params.thought);
225
+ }
226
+ // Si demandé, générer une visualisation
227
+ if (params.generateVisualization) {
228
+ const visualizationType = params.visualizationType || 'graph';
229
+ switch (visualizationType) {
230
+ case 'chronological':
231
+ response.visualization = visualizer.generateChronologicalVisualization(thoughtGraph);
232
+ break;
233
+ case 'thematic':
234
+ response.visualization = visualizer.generateThematicVisualization(thoughtGraph);
235
+ break;
236
+ case 'graph':
237
+ default:
238
+ response.visualization = visualizer.generateVisualization(thoughtGraph, thoughtId);
239
+ break;
240
+ }
241
+ }
242
+ // Récupérer les mémoires pertinentes
243
+ response.relevantMemories = memoryManager.getRelevantMemories(params.thought);
244
+ // Suggérer les prochaines étapes
245
+ response.suggestedNextSteps = thoughtGraph.suggestNextSteps();
246
+ // Stocker la pensée actuelle dans la mémoire pour les sessions futures
247
+ if (response.qualityMetrics.quality > 0.7) {
248
+ // Ne stocker que les pensées de haute qualité
249
+ const tags = params.thought
250
+ .toLowerCase()
251
+ .split(/\W+/)
252
+ .filter((word) => word.length > 4)
253
+ .slice(0, 5);
254
+ memoryManager.addMemory(params.thought, tags);
255
+ }
256
+ console.error('Smart-Thinking: pensée traitée avec succès, id:', thoughtId);
257
+ // Formater la réponse pour MCP (doit inclure le champ content obligatoire)
258
+ return {
259
+ content: [
260
+ {
261
+ type: 'text',
262
+ text: JSON.stringify(response, null, 2)
263
+ }
264
+ ]
265
+ };
266
+ });
267
+ // Créer et connecter le transport
268
+ const transport = new stdio_js_1.StdioServerTransport();
269
+ // Démarrer le serveur
270
+ async function start() {
271
+ try {
272
+ await server.connect(transport);
273
+ // Utiliser console.error pour éviter que ces messages soient interprétés comme du JSON
274
+ console.error('Smart-Thinking MCP Server démarré avec succès.');
275
+ console.error('L\'outil "smartthinking" est maintenant disponible pour Claude.');
276
+ console.error('La documentation est automatiquement fournie à Claude lors de la première utilisation.');
277
+ // Afficher un exemple d'utilisation pour aider les utilisateurs
278
+ console.error('\n-------------------- EXEMPLE D\'UTILISATION --------------------');
279
+ console.error('Pour utiliser l\'outil correctement, demandez à Claude:');
280
+ console.error('"Utilise l\'outil smartthinking avec la pensée suivante: Voici ma pensée à analyser"');
281
+ console.error('ou');
282
+ console.error('"Utilise l\'outil smartthinking avec les paramètres suivants:\n');
283
+ console.error('thought: Voici ma pensée à analyser\n');
284
+ console.error('thoughtType: regular\n');
285
+ console.error('generateVisualization: true"');
286
+ console.error('\nPar défaut, l\'outil fournit sa documentation à Claude. Si vous voulez désactiver cela:');
287
+ console.error('"Utilise l\'outil smartthinking avec help=false et thought=..."');
288
+ console.error('----------------------------------------------------------------\n');
289
+ }
290
+ catch (error) {
291
+ console.error('Erreur lors du démarrage du serveur:', error);
292
+ process.exit(1);
293
+ }
294
+ }
295
+ start();
296
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,oEAAoE;AACpE,wEAAiF;AACjF,6BAAwB;AACxB,mDAA+C;AAC/C,qDAAiD;AACjD,uDAAmD;AACnD,2DAAuD;AACvD,6CAA0C;AAG1C;;GAEG;AAEH,oFAAoF;AACpF,OAAO,CAAC,KAAK,CAAC;;;;;;;;;;;CAWb,CAAC,CAAC;AAEH,yCAAyC;AACzC,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;AACxC,MAAM,aAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;AAC1C,MAAM,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;AAC5C,MAAM,gBAAgB,GAAG,IAAI,oCAAgB,EAAE,CAAC;AAChD,MAAM,UAAU,GAAG,IAAI,uBAAU,EAAE,CAAC;AAEpC,oCAAoC;AACpC,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;IAC3B,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,EAAE;CACjB,CAAC,CAAC;AAEH,8DAA8D;AAC9D,MAAM,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAC1B,8IAA8I;QAC9I,qIAAqI;QACrI,wFAAwF,CACzF;IAED,WAAW,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;SAChG,QAAQ,CACP,wFAAwF;QACxF,iEAAiE;QACjE,oFAAoF;QACpF,uEAAuE;QACvE,qEAAqE;QACrE,sDAAsD,CACvD;IAEH,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACtC,QAAQ,CACP,uGAAuG;QACvG,wFAAwF;QACxF,oCAAoC;QACpC,+CAA+C;QAC/C,qDAAqD;QACrD,yDAAyD;QACzD,2DAA2D;QAC3D,4DAA4D;QAC5D,oDAAoD,CACrD;IAEH,kBAAkB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SAC3C,QAAQ,CACP,6EAA6E;QAC7E,wHAAwH;QACxH,2CAA2C,CAC5C;IAEH,qBAAqB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SAC9C,QAAQ,CACP,kEAAkE;QAClE,iHAAiH,CAClH;IAEH,iBAAiB,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;SAC/E,QAAQ,CACP,oCAAoC;QACpC,iFAAiF;QACjF,6FAA6F;QAC7F,+FAA+F,CAChG;IAEH,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SACpC,QAAQ,CACP,wEAAwE;QACxE,4GAA4G;QAC5G,gFAAgF,CACjF;IAEH,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CACP,oFAAoF;QACpF,6GAA6G,CAC9G;IAEH,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CACP,uEAAuE;QACvE,0FAA0F,CAC3F;IAEH,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5B,QAAQ,CACP,6DAA6D;QAC7D,8HAA8H,CAC/H;CACJ,CAAC,CAAC;AAEH,iGAAiG;AAEjG,gCAAgC;AAChC,MAAM,CAAC,IAAI,CACT,eAAe,EACf,yBAAyB,CAAC,KAAK,EAE/B,KAAK,EAAE,MAA2B,EAAE,EAAE;IACtC,qGAAqG;IACrG,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFtB,CAAC;QAEI,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;iBACnB;aACF;SACF,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,yCAAyC;wBAChD,OAAO,EAAE,+EAA+E;wBACxF,KAAK,EAAE;4BACL,OAAO,EAAE,4BAA4B;4BACrC,WAAW,EAAE,SAAS;4BACtB,qBAAqB,EAAE,IAAI;yBAC5B;wBACD,GAAG,EAAE,kEAAkE;qBACxE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC;IAED,gGAAgG;IAChG,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAE1E,8BAA8B;IAC9B,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CACvC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,WAAW,CACnB,CAAC;IAEF,kCAAkC;IAClC,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAE1E,6CAA6C;IAC7C,YAAY,CAAC,oBAAoB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE7D,sBAAsB;IACtB,MAAM,QAAQ,GAA0B;QACtC,SAAS;QACT,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,SAAS;QAC5C,cAAc;KACf,CAAC;IAEF,kCAAkC;IAClC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IAED,wCAAwC;IACxC,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC;QAE9D,QAAQ,iBAAiB,EAAE,CAAC;YAC1B,KAAK,eAAe;gBAClB,QAAQ,CAAC,aAAa,GAAG,UAAU,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;gBACrF,MAAM;YACR,KAAK,UAAU;gBACb,QAAQ,CAAC,aAAa,GAAG,UAAU,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC;gBAChF,MAAM;YACR,KAAK,OAAO,CAAC;YACb;gBACE,QAAQ,CAAC,aAAa,GAAG,UAAU,CAAC,qBAAqB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBACnF,MAAM;QACV,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,QAAQ,CAAC,gBAAgB,GAAG,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE9E,iCAAiC;IACjC,QAAQ,CAAC,kBAAkB,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC;IAE9D,uEAAuE;IACvE,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;QAC1C,8CAA8C;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO;aACxB,WAAW,EAAE;aACb,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACzC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,SAAS,CAAC,CAAC;IAE5E,2EAA2E;IAC3E,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aACxC;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kCAAkC;AAClC,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;AAE7C,sBAAsB;AACtB,KAAK,UAAU,KAAK;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,uFAAuF;QACvF,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;QAExG,gEAAgE;QAChE,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;QACtG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;QAC3G,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACtF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,EAAE,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { MemoryItem } from './types';
2
+ /**
3
+ * Classe qui gère la mémoire persistante des sessions précédentes
4
+ */
5
+ export declare class MemoryManager {
6
+ private memories;
7
+ private knowledgeBase;
8
+ constructor();
9
+ /**
10
+ * Génère un identifiant unique
11
+ */
12
+ private generateUniqueId;
13
+ /**
14
+ * Charge les mémoires et la base de connaissances depuis le stockage persistant
15
+ * Dans une implémentation réelle, cela pourrait être un fichier, une base de données, etc.
16
+ */
17
+ private loadFromStorage;
18
+ /**
19
+ * Simule la récupération de mémoires sauvegardées
20
+ * Dans une implémentation réelle, remplacer par une lecture de fichier/DB
21
+ */
22
+ private getSavedMemories;
23
+ /**
24
+ * Simule la récupération de connaissances sauvegardées
25
+ * Dans une implémentation réelle, remplacer par une lecture de fichier/DB
26
+ */
27
+ private getSavedKnowledge;
28
+ /**
29
+ * Sauvegarde l'état actuel dans le stockage persistant
30
+ * Dans une implémentation réelle, cela pourrait être un fichier, une base de données, etc.
31
+ */
32
+ private saveToStorage;
33
+ /**
34
+ * Ajoute un élément à la mémoire
35
+ *
36
+ * @param content Le contenu de l'élément de mémoire
37
+ * @param tags Les tags associés
38
+ * @returns L'identifiant de l'élément ajouté
39
+ */
40
+ addMemory(content: string, tags?: string[]): string;
41
+ /**
42
+ * Récupère un élément de mémoire par son identifiant
43
+ *
44
+ * @param id L'identifiant de l'élément
45
+ * @returns L'élément de mémoire ou undefined si non trouvé
46
+ */
47
+ getMemory(id: string): MemoryItem | undefined;
48
+ /**
49
+ * Récupère les éléments de mémoire les plus récents
50
+ *
51
+ * @param limit Le nombre maximum d'éléments à récupérer
52
+ * @returns Un tableau des éléments les plus récents
53
+ */
54
+ getRecentMemories(limit?: number): MemoryItem[];
55
+ /**
56
+ * Récupère les éléments de mémoire les plus pertinents pour un contexte donné
57
+ *
58
+ * @param context Le contexte pour lequel chercher des éléments pertinents
59
+ * @param limit Le nombre maximum d'éléments à récupérer
60
+ * @returns Un tableau des éléments les plus pertinents
61
+ */
62
+ getRelevantMemories(context: string, limit?: number): MemoryItem[];
63
+ /**
64
+ * Récupère les éléments de mémoire par tag
65
+ *
66
+ * @param tag Le tag à rechercher
67
+ * @param limit Le nombre maximum d'éléments à récupérer
68
+ * @returns Un tableau des éléments correspondant au tag
69
+ */
70
+ getMemoriesByTag(tag: string, limit?: number): MemoryItem[];
71
+ /**
72
+ * Ajoute ou met à jour un élément dans la base de connaissances
73
+ *
74
+ * @param key La clé de l'élément
75
+ * @param value La valeur de l'élément
76
+ */
77
+ setKnowledge(key: string, value: any): void;
78
+ /**
79
+ * Récupère un élément de la base de connaissances
80
+ *
81
+ * @param key La clé de l'élément
82
+ * @returns La valeur de l'élément ou undefined si non trouvé
83
+ */
84
+ getKnowledge(key: string): any;
85
+ /**
86
+ * Efface toutes les mémoires et connaissances
87
+ */
88
+ clear(): void;
89
+ }