smart-thinking-mcp 11.0.6 → 12.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/README.md +18 -2
- package/build/cli.js +197 -18
- package/build/cli.js.map +1 -1
- package/build/index.d.ts +15 -6
- package/build/index.js +24 -4
- package/build/index.js.map +1 -1
- package/build/memory-manager.d.ts +6 -0
- package/build/memory-manager.js +38 -6
- package/build/memory-manager.js.map +1 -1
- package/build/server/contracts.d.ts +221 -0
- package/build/server/contracts.js +93 -0
- package/build/server/contracts.js.map +1 -0
- package/build/server/registrations/prompt-registrations.d.ts +2 -0
- package/build/server/registrations/prompt-registrations.js +60 -0
- package/build/server/registrations/prompt-registrations.js.map +1 -0
- package/build/server/registrations/resource-registrations.d.ts +3 -0
- package/build/server/registrations/resource-registrations.js +99 -0
- package/build/server/registrations/resource-registrations.js.map +1 -0
- package/build/server/registrations/tool-registrations.d.ts +7 -0
- package/build/server/registrations/tool-registrations.js +202 -0
- package/build/server/registrations/tool-registrations.js.map +1 -0
- package/build/server/server-metadata.d.ts +6 -0
- package/build/server/server-metadata.js +36 -0
- package/build/server/server-metadata.js.map +1 -0
- package/build/server/smart-thinking-server.d.ts +11 -344
- package/build/server/smart-thinking-server.js +19 -275
- package/build/server/smart-thinking-server.js.map +1 -1
- package/build/services/service-container.d.ts +17 -49
- package/build/services/service-container.js +12 -57
- package/build/services/service-container.js.map +1 -1
- package/build/services/verification-service.js +1 -1
- package/build/services/verification-service.js.map +1 -1
- package/build/test-utils/logger-setup.js +1 -1
- package/build/test-utils/logger-setup.js.map +1 -1
- package/build/tool-integrator.d.ts +11 -1
- package/build/tool-integrator.js +43 -11
- package/build/tool-integrator.js.map +1 -1
- package/build/utils/logger.js +4 -1
- package/build/utils/logger.js.map +1 -1
- package/build/verification-memory.d.ts +5 -0
- package/build/verification-memory.js +35 -5
- package/build/verification-memory.js.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -80,11 +80,27 @@ Smart-Thinking is validated across the most popular MCP clients and operating sy
|
|
|
80
80
|
|
|
81
81
|
> Need a minimal deployment footprint? Combine `--transport=http --mode=connector` with a reverse proxy (ngrok, fly.io, render, etc.) so remote clients can consume the server without exposing the full toolset.
|
|
82
82
|
|
|
83
|
+
For registry scanners and fallback metadata extraction, Smart-Thinking also exposes:
|
|
84
|
+
|
|
85
|
+
- `GET /.well-known/mcp/server-card.json`
|
|
86
|
+
|
|
83
87
|
## Configuration & Feature Flags
|
|
84
88
|
- `feature-flags.ts` toggles advanced behaviours such as external integrations (disabled by default) and verbose tracing.
|
|
85
89
|
- `config.ts` aligns platform-specific paths and verification thresholds.
|
|
86
90
|
- `memory-manager.ts` and `verification-memory.ts` store session graphs, metrics, and calculation results using deterministic JSON snapshots.
|
|
87
91
|
|
|
92
|
+
## Zero-API-Key Mode (Default)
|
|
93
|
+
- Smart-Thinking runs fully in local deterministic mode without any API key.
|
|
94
|
+
- External verification/search connectors are disabled by default in `ToolIntegrator`.
|
|
95
|
+
- To explicitly enable external connectors, set:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
export SMART_THINKING_ENABLE_EXTERNAL_TOOLS=true
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
- If external connectors are disabled (default), verification suggestions stay local (`executePython`, `executeJavaScript`) and external tool calls return a local fallback result.
|
|
102
|
+
- `FeatureFlags.externalLlmEnabled` and `FeatureFlags.externalEmbeddingEnabled` remain disabled by default, so no remote LLM/embedding provider is required.
|
|
103
|
+
|
|
88
104
|
## Development Workflow
|
|
89
105
|
```bash
|
|
90
106
|
npm run build # Compile TypeScript sources
|
|
@@ -94,11 +110,11 @@ npm run test:coverage # Jest coverage report
|
|
|
94
110
|
npm run watch # Incremental TypeScript compilation
|
|
95
111
|
```
|
|
96
112
|
|
|
97
|
-
See `
|
|
113
|
+
See `docs/modernisation-smart-thinking-v12-plan.md` for the modernization checklist and rollout tracking.
|
|
98
114
|
|
|
99
115
|
## Quality & Support
|
|
100
116
|
- Deterministic heuristics and verification eliminate dependency on remote LLMs.
|
|
101
|
-
-
|
|
117
|
+
- Latest validation (February 6, 2026): `80.47%` statements, `81.59%` lines, `84.34%` functions, `63.48%` branches.
|
|
102
118
|
- CI recommendations: run `npm run lint` and `npm run test:coverage` before each release candidate.
|
|
103
119
|
|
|
104
120
|
## Contributing
|
package/build/cli.js
CHANGED
|
@@ -17,6 +17,162 @@ const platform_stdio_1 = require("./utils/platform-stdio");
|
|
|
17
17
|
const path_utils_1 = require("./utils/path-utils");
|
|
18
18
|
const config_1 = require("./config");
|
|
19
19
|
const smart_thinking_server_1 = require("./server/smart-thinking-server");
|
|
20
|
+
const PROJECT_HOMEPAGE = 'https://github.com/Leghis/Smart-Thinking';
|
|
21
|
+
const PROJECT_ICON = 'https://raw.githubusercontent.com/Leghis/Smart-Thinking/main/logoSmart-thinking.png';
|
|
22
|
+
function parseCsvEnv(name) {
|
|
23
|
+
const raw = process.env[name];
|
|
24
|
+
if (!raw) {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
return raw.split(',').map(item => item.trim()).filter(Boolean);
|
|
28
|
+
}
|
|
29
|
+
function resolveDefaultAllowedHosts(host, port) {
|
|
30
|
+
const hosts = new Set([
|
|
31
|
+
'localhost',
|
|
32
|
+
`localhost:${port}`,
|
|
33
|
+
'127.0.0.1',
|
|
34
|
+
`127.0.0.1:${port}`
|
|
35
|
+
]);
|
|
36
|
+
if (host && host !== '0.0.0.0' && host !== '::') {
|
|
37
|
+
hosts.add(host);
|
|
38
|
+
hosts.add(`${host}:${port}`);
|
|
39
|
+
}
|
|
40
|
+
return Array.from(hosts);
|
|
41
|
+
}
|
|
42
|
+
function resolveDefaultAllowedOrigins(host, port) {
|
|
43
|
+
const origins = new Set([
|
|
44
|
+
`http://localhost:${port}`,
|
|
45
|
+
`http://127.0.0.1:${port}`,
|
|
46
|
+
`https://localhost:${port}`,
|
|
47
|
+
`https://127.0.0.1:${port}`
|
|
48
|
+
]);
|
|
49
|
+
if (host && host !== '0.0.0.0' && host !== '::') {
|
|
50
|
+
origins.add(`http://${host}:${port}`);
|
|
51
|
+
origins.add(`https://${host}:${port}`);
|
|
52
|
+
}
|
|
53
|
+
return Array.from(origins);
|
|
54
|
+
}
|
|
55
|
+
function loadPackageVersion() {
|
|
56
|
+
try {
|
|
57
|
+
const packageJsonPath = path_1.default.join(__dirname, '..', 'package.json');
|
|
58
|
+
const raw = (0, fs_1.readFileSync)(packageJsonPath, 'utf8');
|
|
59
|
+
const parsed = JSON.parse(raw);
|
|
60
|
+
return parsed.version ?? '0.0.0';
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return '0.0.0';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function buildServerCard(options) {
|
|
67
|
+
const version = loadPackageVersion();
|
|
68
|
+
const tools = [
|
|
69
|
+
{
|
|
70
|
+
name: 'search',
|
|
71
|
+
description: 'Recherche semantique dans les memoires locales Smart-Thinking.',
|
|
72
|
+
inputSchema: {
|
|
73
|
+
type: 'object',
|
|
74
|
+
properties: {
|
|
75
|
+
query: { type: 'string', description: 'Requete de recherche.' },
|
|
76
|
+
limit: { type: 'integer', minimum: 1, maximum: 20, default: 5, description: 'Nombre maximal de resultats.' },
|
|
77
|
+
sessionId: { type: 'string', description: 'Session cible optionnelle.' },
|
|
78
|
+
},
|
|
79
|
+
required: ['query'],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: 'fetch',
|
|
84
|
+
description: 'Recupere une memoire complete par identifiant.',
|
|
85
|
+
inputSchema: {
|
|
86
|
+
type: 'object',
|
|
87
|
+
properties: {
|
|
88
|
+
id: { type: 'string', description: 'Identifiant de la memoire.' },
|
|
89
|
+
sessionId: { type: 'string', description: 'Session cible optionnelle.' },
|
|
90
|
+
},
|
|
91
|
+
required: ['id'],
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
];
|
|
95
|
+
if (options.mode !== 'connector') {
|
|
96
|
+
tools.unshift({
|
|
97
|
+
name: 'smartthinking',
|
|
98
|
+
description: 'Pipeline de raisonnement graphe local, deterministe et persistant.',
|
|
99
|
+
inputSchema: {
|
|
100
|
+
type: 'object',
|
|
101
|
+
properties: {
|
|
102
|
+
thought: { type: 'string', description: 'Pensee a analyser.' },
|
|
103
|
+
thoughtType: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
enum: ['regular', 'revision', 'meta', 'hypothesis', 'conclusion'],
|
|
106
|
+
default: 'regular',
|
|
107
|
+
description: 'Type de pensee.',
|
|
108
|
+
},
|
|
109
|
+
sessionId: { type: 'string', description: 'Identifiant de session optionnel.' },
|
|
110
|
+
requestSuggestions: { type: 'boolean', default: false, description: 'Demande des suggestions d amelioration.' },
|
|
111
|
+
requestVerification: { type: 'boolean', default: false, description: 'Active la verification explicite.' },
|
|
112
|
+
containsCalculations: { type: 'boolean', default: false, description: 'Indique la presence de calculs.' },
|
|
113
|
+
generateVisualization: { type: 'boolean', default: false, description: 'Active la visualisation.' },
|
|
114
|
+
help: { type: 'boolean', default: false, description: 'Retourne le guide d utilisation.' },
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
serverInfo: {
|
|
121
|
+
name: 'smart-thinking-mcp',
|
|
122
|
+
title: 'Smart-Thinking',
|
|
123
|
+
version,
|
|
124
|
+
websiteUrl: PROJECT_HOMEPAGE,
|
|
125
|
+
icons: [
|
|
126
|
+
{
|
|
127
|
+
src: PROJECT_ICON,
|
|
128
|
+
mimeType: 'image/png',
|
|
129
|
+
sizes: ['512x512'],
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
tools,
|
|
134
|
+
prompts: [
|
|
135
|
+
{
|
|
136
|
+
name: 'smartthinking-reasoning-plan',
|
|
137
|
+
description: 'Construit un plan de raisonnement testable avant execution.',
|
|
138
|
+
arguments: [
|
|
139
|
+
{ name: 'objective', required: true, description: 'Objectif principal.' },
|
|
140
|
+
{ name: 'constraints', required: false, description: 'Contraintes.' },
|
|
141
|
+
{ name: 'depth', required: false, description: 'Niveau de profondeur (fast|balanced|deep).' },
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
name: 'smartthinking-verify-claim',
|
|
146
|
+
description: 'Genere une checklist de verification factuelle.',
|
|
147
|
+
arguments: [
|
|
148
|
+
{ name: 'claim', required: true, description: 'Affirmation a verifier.' },
|
|
149
|
+
],
|
|
150
|
+
},
|
|
151
|
+
],
|
|
152
|
+
resources: [
|
|
153
|
+
{
|
|
154
|
+
uri: 'smart-thinking://docs/about',
|
|
155
|
+
name: 'smartthinking-about',
|
|
156
|
+
description: 'Documentation du serveur.',
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
uri: 'smart-thinking://runtime/status',
|
|
160
|
+
name: 'smartthinking-runtime-status',
|
|
161
|
+
description: 'Etat runtime du serveur.',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
uriTemplate: 'smart-thinking://sessions/{sessionId}/recent',
|
|
165
|
+
name: 'smartthinking-session-recent',
|
|
166
|
+
description: 'Memoires recentes par session.',
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
uriTemplate: 'smart-thinking://memories/{memoryId}',
|
|
170
|
+
name: 'smartthinking-memory-by-id',
|
|
171
|
+
description: 'Memoire complete par identifiant.',
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
};
|
|
175
|
+
}
|
|
20
176
|
(async () => {
|
|
21
177
|
const options = parseArgs(process.argv.slice(2));
|
|
22
178
|
try {
|
|
@@ -39,9 +195,9 @@ function parseArgs(argv) {
|
|
|
39
195
|
const options = {
|
|
40
196
|
transport: 'stdio',
|
|
41
197
|
port: process.env.PORT ? Number(process.env.PORT) : 3000,
|
|
42
|
-
host: process.env.HOST ?? '
|
|
43
|
-
allowOrigins:
|
|
44
|
-
allowHosts:
|
|
198
|
+
host: process.env.HOST ?? '127.0.0.1',
|
|
199
|
+
allowOrigins: parseCsvEnv('SMART_THINKING_ALLOWED_ORIGINS'),
|
|
200
|
+
allowHosts: parseCsvEnv('SMART_THINKING_ALLOWED_HOSTS'),
|
|
45
201
|
enableSse: true,
|
|
46
202
|
enableStream: true,
|
|
47
203
|
mode: defaultMode
|
|
@@ -129,12 +285,18 @@ function parseArgs(argv) {
|
|
|
129
285
|
if (options.transport !== 'stdio' && !options.enableSse && !options.enableStream) {
|
|
130
286
|
options.enableStream = true;
|
|
131
287
|
}
|
|
288
|
+
if (options.allowHosts.length === 0) {
|
|
289
|
+
options.allowHosts = resolveDefaultAllowedHosts(options.host, options.port);
|
|
290
|
+
}
|
|
291
|
+
if (options.allowOrigins.length === 0) {
|
|
292
|
+
options.allowOrigins = resolveDefaultAllowedOrigins(options.host, options.port);
|
|
293
|
+
}
|
|
132
294
|
return options;
|
|
133
295
|
}
|
|
134
296
|
async function startStdIoServer(options) {
|
|
135
297
|
configureStdoutFiltering();
|
|
136
298
|
if (options.mode === 'connector') {
|
|
137
|
-
console.
|
|
299
|
+
console.info('Smart-Thinking: mode connecteur actif (outils search & fetch uniquement)');
|
|
138
300
|
}
|
|
139
301
|
const { server } = (0, smart_thinking_server_1.createSmartThinkingServer)(undefined, {
|
|
140
302
|
includeSmartThinkingTool: options.mode !== 'connector'
|
|
@@ -151,12 +313,16 @@ async function startStdIoServer(options) {
|
|
|
151
313
|
async function startHttpServer(options) {
|
|
152
314
|
const app = (0, express_1.default)();
|
|
153
315
|
app.use(express_1.default.json({ limit: '4mb' }));
|
|
316
|
+
app.use(createHostValidationMiddleware(options));
|
|
154
317
|
app.use(createCorsMiddleware(options));
|
|
318
|
+
app.get('/.well-known/mcp/server-card.json', (_req, res) => {
|
|
319
|
+
res.json(buildServerCard(options));
|
|
320
|
+
});
|
|
155
321
|
if (options.mode === 'connector') {
|
|
156
|
-
console.
|
|
322
|
+
console.info('Smart-Thinking: mode connecteur actif (outils search & fetch uniquement)');
|
|
157
323
|
}
|
|
158
324
|
const sessions = new Map();
|
|
159
|
-
const dnsProtectionEnabled =
|
|
325
|
+
const dnsProtectionEnabled = true;
|
|
160
326
|
if (options.enableStream) {
|
|
161
327
|
app.all('/mcp', async (req, res) => {
|
|
162
328
|
try {
|
|
@@ -319,17 +485,17 @@ async function startHttpServer(options) {
|
|
|
319
485
|
});
|
|
320
486
|
await new Promise((resolve, reject) => {
|
|
321
487
|
const httpServer = app.listen(options.port, options.host, () => {
|
|
322
|
-
console.
|
|
488
|
+
console.info(`Smart-Thinking: serveur MCP HTTP lance sur http://${options.host}:${options.port}`);
|
|
323
489
|
if (options.enableStream) {
|
|
324
|
-
console.
|
|
490
|
+
console.info(' • Endpoint streamable HTTP : /mcp');
|
|
325
491
|
}
|
|
326
492
|
if (options.enableSse) {
|
|
327
|
-
console.
|
|
493
|
+
console.info(' • Endpoint SSE (legacy) : /sse + /messages');
|
|
328
494
|
}
|
|
329
495
|
});
|
|
330
496
|
httpServer.on('error', reject);
|
|
331
497
|
const shutdown = async () => {
|
|
332
|
-
console.
|
|
498
|
+
console.info('Smart-Thinking: arret du serveur HTTP en cours...');
|
|
333
499
|
for (const [sessionId] of sessions) {
|
|
334
500
|
await cleanupSession(sessions, sessionId);
|
|
335
501
|
}
|
|
@@ -346,17 +512,13 @@ function createCorsMiddleware(options) {
|
|
|
346
512
|
return (req, res, next) => {
|
|
347
513
|
const originHeader = Array.isArray(req.headers.origin) ? req.headers.origin[0] : req.headers.origin;
|
|
348
514
|
res.header('Vary', 'Origin');
|
|
349
|
-
if (
|
|
350
|
-
if (
|
|
351
|
-
res.
|
|
515
|
+
if (originHeader) {
|
|
516
|
+
if (!options.allowOrigins.includes(originHeader)) {
|
|
517
|
+
res.status(403).json({ error: 'Origin non autorisee' });
|
|
518
|
+
return;
|
|
352
519
|
}
|
|
353
|
-
}
|
|
354
|
-
else if (originHeader) {
|
|
355
520
|
res.header('Access-Control-Allow-Origin', originHeader);
|
|
356
521
|
}
|
|
357
|
-
else {
|
|
358
|
-
res.header('Access-Control-Allow-Origin', '*');
|
|
359
|
-
}
|
|
360
522
|
res.header('Access-Control-Allow-Headers', 'Content-Type, MCP-Session-Id');
|
|
361
523
|
res.header('Access-Control-Expose-Headers', 'Mcp-Session-Id');
|
|
362
524
|
res.header('Access-Control-Allow-Methods', 'GET,POST,DELETE,OPTIONS');
|
|
@@ -367,6 +529,23 @@ function createCorsMiddleware(options) {
|
|
|
367
529
|
next();
|
|
368
530
|
};
|
|
369
531
|
}
|
|
532
|
+
function createHostValidationMiddleware(options) {
|
|
533
|
+
const allowedHosts = new Set(options.allowHosts.map(host => host.toLowerCase()));
|
|
534
|
+
return (req, res, next) => {
|
|
535
|
+
const hostHeader = Array.isArray(req.headers.host) ? req.headers.host[0] : req.headers.host;
|
|
536
|
+
if (!hostHeader) {
|
|
537
|
+
next();
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
const normalizedHost = hostHeader.toLowerCase();
|
|
541
|
+
const hostOnly = normalizedHost.split(':')[0];
|
|
542
|
+
if (!allowedHosts.has(normalizedHost) && !allowedHosts.has(hostOnly)) {
|
|
543
|
+
res.status(403).json({ error: 'Host non autorise' });
|
|
544
|
+
return;
|
|
545
|
+
}
|
|
546
|
+
next();
|
|
547
|
+
};
|
|
548
|
+
}
|
|
370
549
|
async function cleanupSession(sessions, sessionId, skipTransportClose = false) {
|
|
371
550
|
if (!sessionId) {
|
|
372
551
|
return;
|
package/build/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
3
|
export declare const configSchema: z.ZodDefault<z.ZodObject<{
|
|
4
|
-
mode: z.ZodDefault<z.ZodEnum<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
5
|
+
full: "full";
|
|
6
|
+
connector: "connector";
|
|
7
|
+
}>>;
|
|
8
|
+
includePrompts: z.ZodDefault<z.ZodBoolean>;
|
|
9
|
+
includeResources: z.ZodDefault<z.ZodBoolean>;
|
|
10
|
+
enableExternalTools: z.ZodDefault<z.ZodBoolean>;
|
|
11
|
+
logLevel: z.ZodDefault<z.ZodEnum<{
|
|
12
|
+
silent: "silent";
|
|
13
|
+
error: "error";
|
|
14
|
+
warn: "warn";
|
|
15
|
+
info: "info";
|
|
16
|
+
debug: "debug";
|
|
17
|
+
}>>;
|
|
18
|
+
}, z.core.$strip>>;
|
|
10
19
|
type ConfigSchema = z.infer<typeof configSchema>;
|
|
11
20
|
interface CreateServerArgs {
|
|
12
21
|
config?: ConfigSchema;
|
package/build/index.js
CHANGED
|
@@ -4,17 +4,37 @@ exports.createSmartThinkingServer = exports.configSchema = void 0;
|
|
|
4
4
|
exports.default = createServer;
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
const smart_thinking_server_1 = require("./server/smart-thinking-server");
|
|
7
|
-
const ModeSchema = zod_1.z.enum(['full', 'connector']).describe('Mode
|
|
7
|
+
const ModeSchema = zod_1.z.enum(['full', 'connector']).describe('Mode de disponibilite des outils exposees');
|
|
8
|
+
const LogLevelSchema = zod_1.z.enum(['silent', 'error', 'warn', 'info', 'debug']);
|
|
8
9
|
exports.configSchema = zod_1.z.object({
|
|
9
|
-
mode: ModeSchema.default('full')
|
|
10
|
-
|
|
10
|
+
mode: ModeSchema.default('full').describe('Mode full: smartthinking+search+fetch, mode connector: search+fetch'),
|
|
11
|
+
includePrompts: zod_1.z.boolean().default(true).describe('Expose les prompts MCP du serveur'),
|
|
12
|
+
includeResources: zod_1.z.boolean().default(true).describe('Expose les ressources MCP du serveur'),
|
|
13
|
+
enableExternalTools: zod_1.z.boolean().default(false).describe('Active les integrations externes optionnelles de ToolIntegrator'),
|
|
14
|
+
logLevel: LogLevelSchema.default('info').describe('Niveau de logs runtime pour Smart-Thinking'),
|
|
15
|
+
}).default({
|
|
16
|
+
mode: 'full',
|
|
17
|
+
includePrompts: true,
|
|
18
|
+
includeResources: true,
|
|
19
|
+
enableExternalTools: false,
|
|
20
|
+
logLevel: 'info',
|
|
21
|
+
});
|
|
11
22
|
function resolveServerOptions(config) {
|
|
12
23
|
return {
|
|
13
|
-
includeSmartThinkingTool: config.mode !== 'connector'
|
|
24
|
+
includeSmartThinkingTool: config.mode !== 'connector',
|
|
25
|
+
includePrompts: config.includePrompts,
|
|
26
|
+
includeResources: config.includeResources,
|
|
14
27
|
};
|
|
15
28
|
}
|
|
29
|
+
function applyRuntimeConfig(config) {
|
|
30
|
+
process.env.SMART_THINKING_ENABLE_EXTERNAL_TOOLS = config.enableExternalTools ? 'true' : 'false';
|
|
31
|
+
if (!process.env.SMART_THINKING_LOG_LEVEL) {
|
|
32
|
+
process.env.SMART_THINKING_LOG_LEVEL = config.logLevel;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
16
35
|
function createServer({ config } = {}) {
|
|
17
36
|
const resolvedConfig = exports.configSchema.parse(config ?? {});
|
|
37
|
+
applyRuntimeConfig(resolvedConfig);
|
|
18
38
|
const options = resolveServerOptions(resolvedConfig);
|
|
19
39
|
const { server } = (0, smart_thinking_server_1.createSmartThinkingServer)(undefined, options);
|
|
20
40
|
return server.server;
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA2CA,+BAOC;AAlDD,6BAAwB;AAExB,0EAA4G;AAE5G,MAAM,UAAU,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC;AACvG,MAAM,cAAc,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/D,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChH,cAAc,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACvF,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC5F,mBAAmB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC3H,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CAChG,CAAC,CAAC,OAAO,CAAC;IACT,IAAI,EAAE,MAAM;IACZ,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE,KAAK;IAC1B,QAAQ,EAAE,MAAM;CACjB,CAAC,CAAC;AAQH,SAAS,oBAAoB,CAAC,MAAoB;IAChD,OAAO;QACL,wBAAwB,EAAE,MAAM,CAAC,IAAI,KAAK,WAAW;QACrD,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAEjG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAwB,YAAY,CAAC,EAAE,MAAM,KAAuB,EAAE;IACpE,MAAM,cAAc,GAAG,oBAAY,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACxD,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,iDAAyB,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,wEAA2E;AAAlE,kIAAA,yBAAyB,OAAA"}
|
|
@@ -10,6 +10,8 @@ export declare class MemoryManager {
|
|
|
10
10
|
private dataDir;
|
|
11
11
|
private memoriesDir;
|
|
12
12
|
private knowledgeFilePath;
|
|
13
|
+
private initialization;
|
|
14
|
+
private saveQueue;
|
|
13
15
|
constructor(similarityEngine?: SimilarityEngine);
|
|
14
16
|
/**
|
|
15
17
|
* Fonction de log pour le débogage uniquement
|
|
@@ -17,6 +19,9 @@ export declare class MemoryManager {
|
|
|
17
19
|
*/
|
|
18
20
|
private debugLog;
|
|
19
21
|
private requestSave;
|
|
22
|
+
private enqueueSave;
|
|
23
|
+
private writeFileAtomic;
|
|
24
|
+
private writeJsonAtomic;
|
|
20
25
|
/**
|
|
21
26
|
* Génère un identifiant unique
|
|
22
27
|
*/
|
|
@@ -52,6 +57,7 @@ export declare class MemoryManager {
|
|
|
52
57
|
/**
|
|
53
58
|
* Sauvegarde l'état actuel dans le stockage persistant
|
|
54
59
|
*/
|
|
60
|
+
private saveToStorageInternal;
|
|
55
61
|
private saveToStorage;
|
|
56
62
|
/**
|
|
57
63
|
* Ajoute un élément à la mémoire
|
package/build/memory-manager.js
CHANGED
|
@@ -10,6 +10,7 @@ const path_utils_1 = require("./utils/path-utils");
|
|
|
10
10
|
const persistence_utils_1 = require("./utils/persistence-utils");
|
|
11
11
|
// Constante pour contrôler l'affichage des logs de débogage
|
|
12
12
|
const DEBUG_MODE = false;
|
|
13
|
+
const isTestEnvironment = process.env.NODE_ENV === 'test';
|
|
13
14
|
/**
|
|
14
15
|
* Classe qui gère la mémoire persistante des sessions précédentes
|
|
15
16
|
*/
|
|
@@ -21,6 +22,8 @@ class MemoryManager {
|
|
|
21
22
|
dataDir;
|
|
22
23
|
memoriesDir;
|
|
23
24
|
knowledgeFilePath;
|
|
25
|
+
initialization;
|
|
26
|
+
saveQueue = Promise.resolve();
|
|
24
27
|
constructor(similarityEngine) {
|
|
25
28
|
this.similarityEngine = similarityEngine;
|
|
26
29
|
// Initialiser les chemins de fichiers - utiliser des chemins absolus
|
|
@@ -33,7 +36,7 @@ class MemoryManager {
|
|
|
33
36
|
- memoriesDir: ${this.memoriesDir}
|
|
34
37
|
- knowledgeFilePath: ${this.knowledgeFilePath}`);
|
|
35
38
|
// Charger les mémoires et la base de connaissances depuis le stockage persistant
|
|
36
|
-
this.loadFromStorage();
|
|
39
|
+
this.initialization = this.loadFromStorage();
|
|
37
40
|
}
|
|
38
41
|
/**
|
|
39
42
|
* Fonction de log pour le débogage uniquement
|
|
@@ -45,10 +48,36 @@ class MemoryManager {
|
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
50
|
requestSave() {
|
|
48
|
-
|
|
51
|
+
if (isTestEnvironment) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.enqueueSave().catch(error => {
|
|
49
55
|
console.error('Smart-Thinking: Échec de la sauvegarde asynchrone:', error);
|
|
50
56
|
});
|
|
51
57
|
}
|
|
58
|
+
enqueueSave() {
|
|
59
|
+
this.saveQueue = this.saveQueue
|
|
60
|
+
.catch(() => undefined)
|
|
61
|
+
.then(async () => {
|
|
62
|
+
await this.initialization.catch(() => undefined);
|
|
63
|
+
await this.saveToStorageInternal();
|
|
64
|
+
});
|
|
65
|
+
return this.saveQueue;
|
|
66
|
+
}
|
|
67
|
+
async writeFileAtomic(filePath, content) {
|
|
68
|
+
const tempPath = `${filePath}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`;
|
|
69
|
+
try {
|
|
70
|
+
await fs_1.promises.writeFile(tempPath, content, 'utf8');
|
|
71
|
+
await fs_1.promises.rename(tempPath, filePath);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
await fs_1.promises.unlink(tempPath).catch(() => undefined);
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async writeJsonAtomic(filePath, payload) {
|
|
79
|
+
await this.writeFileAtomic(filePath, JSON.stringify(payload, null, 2));
|
|
80
|
+
}
|
|
52
81
|
/**
|
|
53
82
|
* Génère un identifiant unique
|
|
54
83
|
*/
|
|
@@ -278,7 +307,7 @@ class MemoryManager {
|
|
|
278
307
|
/**
|
|
279
308
|
* Sauvegarde l'état actuel dans le stockage persistant
|
|
280
309
|
*/
|
|
281
|
-
async
|
|
310
|
+
async saveToStorageInternal() {
|
|
282
311
|
try {
|
|
283
312
|
// S'assurer que les répertoires existent
|
|
284
313
|
await this.ensureDirectoriesExist();
|
|
@@ -296,11 +325,11 @@ class MemoryManager {
|
|
|
296
325
|
// Sauvegarder chaque groupe de mémoires dans un fichier par session
|
|
297
326
|
for (const [sessionId, memories] of memoriesBySession.entries()) {
|
|
298
327
|
const filePath = path_1.default.join(this.memoriesDir, `${sessionId}.json`);
|
|
299
|
-
await
|
|
328
|
+
await this.writeJsonAtomic(filePath, memories);
|
|
300
329
|
}
|
|
301
330
|
// Sauvegarder la base de connaissances
|
|
302
331
|
const knowledgePayload = (0, persistence_utils_1.sanitizeKnowledgeBase)(Object.fromEntries(this.knowledgeBase));
|
|
303
|
-
await
|
|
332
|
+
await this.writeJsonAtomic(this.knowledgeFilePath, knowledgePayload);
|
|
304
333
|
this.debugLog('Données sauvegardées avec succès');
|
|
305
334
|
}
|
|
306
335
|
catch (error) {
|
|
@@ -311,6 +340,9 @@ class MemoryManager {
|
|
|
311
340
|
this.debugLog('Base de connaissances qui aurait dû être sauvegardée: ' + this.knowledgeBase.size + ' éléments');
|
|
312
341
|
}
|
|
313
342
|
}
|
|
343
|
+
async saveToStorage() {
|
|
344
|
+
await this.enqueueSave();
|
|
345
|
+
}
|
|
314
346
|
/**
|
|
315
347
|
* Ajoute un élément à la mémoire
|
|
316
348
|
*
|
|
@@ -523,7 +555,7 @@ class MemoryManager {
|
|
|
523
555
|
try {
|
|
524
556
|
await this.ensureDirectoriesExist(); // Assure que le répertoire data existe
|
|
525
557
|
const filePath = path_1.default.join(this.dataDir, `graph_state_${sessionId}.json`);
|
|
526
|
-
await
|
|
558
|
+
await this.writeFileAtomic(filePath, graphStateJson);
|
|
527
559
|
this.debugLog(`État du graphe pour la session ${sessionId} sauvegardé dans ${filePath}`);
|
|
528
560
|
}
|
|
529
561
|
catch (error) {
|