smart-thinking-mcp 11.0.5 → 11.0.6

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/build/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import './utils/logger';
package/build/cli.js ADDED
@@ -0,0 +1,471 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /* istanbul ignore file -- Point d'entrée CLI difficile à tester automatiquement */
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ require("./utils/logger");
9
+ const express_1 = __importDefault(require("express"));
10
+ const crypto_1 = require("crypto");
11
+ const fs_1 = require("fs");
12
+ const path_1 = __importDefault(require("path"));
13
+ const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
14
+ const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
15
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
16
+ const platform_stdio_1 = require("./utils/platform-stdio");
17
+ const path_utils_1 = require("./utils/path-utils");
18
+ const config_1 = require("./config");
19
+ const smart_thinking_server_1 = require("./server/smart-thinking-server");
20
+ (async () => {
21
+ const options = parseArgs(process.argv.slice(2));
22
+ try {
23
+ await ensureDataDirExists();
24
+ if (options.transport === 'stdio') {
25
+ await startStdIoServer(options);
26
+ }
27
+ else {
28
+ await startHttpServer(options);
29
+ }
30
+ }
31
+ catch (error) {
32
+ console.error('Smart-Thinking: échec du démarrage du serveur', error);
33
+ process.exit(1);
34
+ }
35
+ })();
36
+ function parseArgs(argv) {
37
+ const envMode = (process.env.SMART_THINKING_MODE ?? '').toLowerCase();
38
+ const defaultMode = envMode === 'connector' ? 'connector' : 'full';
39
+ const options = {
40
+ transport: 'stdio',
41
+ port: process.env.PORT ? Number(process.env.PORT) : 3000,
42
+ host: process.env.HOST ?? '0.0.0.0',
43
+ allowOrigins: [],
44
+ allowHosts: [],
45
+ enableSse: true,
46
+ enableStream: true,
47
+ mode: defaultMode
48
+ };
49
+ for (let i = 0; i < argv.length; i += 1) {
50
+ const arg = argv[i];
51
+ const [flag, inlineValue] = arg.includes('=') ? arg.split('=', 2) : [arg, undefined];
52
+ const readValue = () => {
53
+ if (inlineValue !== undefined) {
54
+ return inlineValue;
55
+ }
56
+ const nextArg = argv[i + 1];
57
+ if (nextArg && !nextArg.startsWith('--')) {
58
+ i += 1;
59
+ return nextArg;
60
+ }
61
+ return undefined;
62
+ };
63
+ switch (flag) {
64
+ case '--transport': {
65
+ const value = readValue();
66
+ if (value === 'stdio' || value === 'http' || value === 'sse' || value === 'stream') {
67
+ options.transport = value;
68
+ }
69
+ break;
70
+ }
71
+ case '--port': {
72
+ const value = readValue();
73
+ const port = value ? Number(value) : NaN;
74
+ if (!Number.isNaN(port)) {
75
+ options.port = port;
76
+ }
77
+ break;
78
+ }
79
+ case '--host': {
80
+ const value = readValue();
81
+ if (value) {
82
+ options.host = value;
83
+ }
84
+ break;
85
+ }
86
+ case '--allow-origin': {
87
+ const value = readValue();
88
+ if (value) {
89
+ options.allowOrigins.push(value);
90
+ }
91
+ break;
92
+ }
93
+ case '--allow-host': {
94
+ const value = readValue();
95
+ if (value) {
96
+ options.allowHosts.push(value);
97
+ }
98
+ break;
99
+ }
100
+ case '--disable-sse':
101
+ options.enableSse = false;
102
+ break;
103
+ case '--disable-stream':
104
+ options.enableStream = false;
105
+ break;
106
+ case '--mode': {
107
+ const value = readValue();
108
+ if (value === 'full' || value === 'connector') {
109
+ options.mode = value;
110
+ }
111
+ break;
112
+ }
113
+ default:
114
+ break;
115
+ }
116
+ }
117
+ if (options.transport === 'sse') {
118
+ options.enableSse = true;
119
+ options.enableStream = false;
120
+ }
121
+ else if (options.transport === 'stream') {
122
+ options.enableSse = false;
123
+ options.enableStream = true;
124
+ }
125
+ else if (options.transport === 'http') {
126
+ options.enableSse = options.enableSse !== false;
127
+ options.enableStream = options.enableStream !== false;
128
+ }
129
+ if (options.transport !== 'stdio' && !options.enableSse && !options.enableStream) {
130
+ options.enableStream = true;
131
+ }
132
+ return options;
133
+ }
134
+ async function startStdIoServer(options) {
135
+ configureStdoutFiltering();
136
+ if (options.mode === 'connector') {
137
+ console.error('Smart-Thinking: mode connecteur actif (outils search & fetch uniquement)');
138
+ }
139
+ const { server } = (0, smart_thinking_server_1.createSmartThinkingServer)(undefined, {
140
+ includeSmartThinkingTool: options.mode !== 'connector'
141
+ });
142
+ const transport = new platform_stdio_1.EnhancedStdioServerTransport();
143
+ try {
144
+ await server.connect(transport);
145
+ }
146
+ catch (error) {
147
+ console.error('Smart-Thinking: échec de la connexion STDIO', error);
148
+ throw error;
149
+ }
150
+ }
151
+ async function startHttpServer(options) {
152
+ const app = (0, express_1.default)();
153
+ app.use(express_1.default.json({ limit: '4mb' }));
154
+ app.use(createCorsMiddleware(options));
155
+ if (options.mode === 'connector') {
156
+ console.error('Smart-Thinking: mode connecteur actif (outils search & fetch uniquement)');
157
+ }
158
+ const sessions = new Map();
159
+ const dnsProtectionEnabled = options.allowHosts.length > 0 || options.allowOrigins.length > 0;
160
+ if (options.enableStream) {
161
+ app.all('/mcp', async (req, res) => {
162
+ try {
163
+ const sessionHeader = req.headers['mcp-session-id'];
164
+ const sessionId = Array.isArray(sessionHeader) ? sessionHeader[0] : sessionHeader;
165
+ if (sessionId) {
166
+ const state = sessions.get(sessionId);
167
+ if (!state || state.type !== 'stream') {
168
+ res.status(404).json({
169
+ jsonrpc: '2.0',
170
+ error: {
171
+ code: -32000,
172
+ message: 'Session inconnue pour le transport streamable HTTP'
173
+ },
174
+ id: null
175
+ });
176
+ return;
177
+ }
178
+ await state.transport.handleRequest(req, res, req.body);
179
+ return;
180
+ }
181
+ if (req.method !== 'POST' || !(0, types_js_1.isInitializeRequest)(req.body)) {
182
+ res.status(400).json({
183
+ jsonrpc: '2.0',
184
+ error: {
185
+ code: -32000,
186
+ message: 'Initialisation manquante ou requête invalide'
187
+ },
188
+ id: null
189
+ });
190
+ return;
191
+ }
192
+ const { server } = (0, smart_thinking_server_1.createSmartThinkingServer)(undefined, {
193
+ includeSmartThinkingTool: options.mode !== 'connector'
194
+ });
195
+ const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
196
+ sessionIdGenerator: () => (0, crypto_1.randomUUID)(),
197
+ enableDnsRebindingProtection: dnsProtectionEnabled,
198
+ allowedHosts: options.allowHosts.length ? options.allowHosts : undefined,
199
+ allowedOrigins: options.allowOrigins.length ? options.allowOrigins : undefined,
200
+ onsessioninitialized: (id) => {
201
+ sessions.set(id, {
202
+ transport,
203
+ serverClose: () => server.close().catch(() => undefined),
204
+ type: 'stream'
205
+ });
206
+ },
207
+ onsessionclosed: (id) => {
208
+ void cleanupSession(sessions, id, true);
209
+ }
210
+ });
211
+ transport.onerror = (error) => {
212
+ console.error('Smart-Thinking: erreur transport streamable', error);
213
+ };
214
+ transport.onclose = () => {
215
+ void cleanupSession(sessions, transport.sessionId, true);
216
+ };
217
+ await server.connect(transport);
218
+ await transport.handleRequest(req, res, req.body);
219
+ }
220
+ catch (error) {
221
+ if (!res.headersSent) {
222
+ res.status(500).json({
223
+ jsonrpc: '2.0',
224
+ error: {
225
+ code: -32603,
226
+ message: 'Erreur interne du serveur'
227
+ },
228
+ id: null
229
+ });
230
+ }
231
+ console.error('Smart-Thinking: erreur lors du traitement streamable HTTP', error);
232
+ }
233
+ });
234
+ }
235
+ else {
236
+ app.all('/mcp', (_req, res) => {
237
+ res.status(404).json({
238
+ jsonrpc: '2.0',
239
+ error: {
240
+ code: -32000,
241
+ message: 'Transport streamable HTTP désactivé sur ce serveur'
242
+ },
243
+ id: null
244
+ });
245
+ });
246
+ }
247
+ if (options.enableSse) {
248
+ app.get('/sse', async (req, res) => {
249
+ try {
250
+ const { server } = (0, smart_thinking_server_1.createSmartThinkingServer)(undefined, {
251
+ includeSmartThinkingTool: options.mode !== 'connector'
252
+ });
253
+ const transport = new sse_js_1.SSEServerTransport('/messages', res, {
254
+ enableDnsRebindingProtection: dnsProtectionEnabled,
255
+ allowedHosts: options.allowHosts.length ? options.allowHosts : undefined,
256
+ allowedOrigins: options.allowOrigins.length ? options.allowOrigins : undefined
257
+ });
258
+ const sessionId = transport.sessionId;
259
+ sessions.set(sessionId, {
260
+ transport,
261
+ serverClose: () => server.close().catch(() => undefined),
262
+ type: 'sse'
263
+ });
264
+ transport.onclose = () => {
265
+ void cleanupSession(sessions, sessionId, true);
266
+ };
267
+ transport.onerror = (error) => {
268
+ console.error('Smart-Thinking: erreur transport SSE', error);
269
+ };
270
+ await server.connect(transport);
271
+ }
272
+ catch (error) {
273
+ if (!res.headersSent) {
274
+ res.status(500).send('Erreur lors de l\'établissement du flux SSE');
275
+ }
276
+ console.error('Smart-Thinking: échec d\'initialisation SSE', error);
277
+ }
278
+ });
279
+ app.post('/messages', async (req, res) => {
280
+ try {
281
+ const queryParam = req.query.sessionId;
282
+ const sessionId = typeof queryParam === 'string'
283
+ ? queryParam
284
+ : Array.isArray(queryParam)
285
+ ? queryParam.find((value) => typeof value === 'string')
286
+ : undefined;
287
+ if (!sessionId) {
288
+ res.status(400).send('Paramètre sessionId manquant');
289
+ return;
290
+ }
291
+ const state = sessions.get(sessionId);
292
+ if (!state || state.type !== 'sse') {
293
+ res.status(404).send('Session SSE introuvable');
294
+ return;
295
+ }
296
+ await state.transport.handlePostMessage(req, res, req.body);
297
+ }
298
+ catch (error) {
299
+ if (!res.headersSent) {
300
+ res.status(500).send('Erreur traitement message SSE');
301
+ }
302
+ console.error('Smart-Thinking: erreur sur /messages', error);
303
+ }
304
+ });
305
+ }
306
+ else {
307
+ app.get('/sse', (_req, res) => {
308
+ res.status(404).send('Transport SSE désactivé');
309
+ });
310
+ app.post('/messages', (_req, res) => {
311
+ res.status(404).send('Transport SSE désactivé');
312
+ });
313
+ }
314
+ app.use((error, _req, res, _next) => {
315
+ if (!res.headersSent) {
316
+ res.status(500).json({ error: 'Erreur interne du serveur MCP' });
317
+ }
318
+ console.error('Smart-Thinking: middleware erreur', error);
319
+ });
320
+ await new Promise((resolve, reject) => {
321
+ const httpServer = app.listen(options.port, options.host, () => {
322
+ console.error(`Smart-Thinking: serveur MCP HTTP lancé sur http://${options.host}:${options.port}`);
323
+ if (options.enableStream) {
324
+ console.error(' • Endpoint streamable HTTP : /mcp');
325
+ }
326
+ if (options.enableSse) {
327
+ console.error(' • Endpoint SSE (legacy) : /sse + /messages');
328
+ }
329
+ });
330
+ httpServer.on('error', reject);
331
+ const shutdown = async () => {
332
+ console.error('Smart-Thinking: arrêt du serveur HTTP en cours...');
333
+ for (const [sessionId] of sessions) {
334
+ await cleanupSession(sessions, sessionId);
335
+ }
336
+ await new Promise((resolveClose) => {
337
+ httpServer.close(() => resolveClose());
338
+ });
339
+ resolve();
340
+ };
341
+ process.once('SIGINT', shutdown);
342
+ process.once('SIGTERM', shutdown);
343
+ });
344
+ }
345
+ function createCorsMiddleware(options) {
346
+ return (req, res, next) => {
347
+ const originHeader = Array.isArray(req.headers.origin) ? req.headers.origin[0] : req.headers.origin;
348
+ res.header('Vary', 'Origin');
349
+ if (options.allowOrigins.length > 0) {
350
+ if (originHeader && options.allowOrigins.includes(originHeader)) {
351
+ res.header('Access-Control-Allow-Origin', originHeader);
352
+ }
353
+ }
354
+ else if (originHeader) {
355
+ res.header('Access-Control-Allow-Origin', originHeader);
356
+ }
357
+ else {
358
+ res.header('Access-Control-Allow-Origin', '*');
359
+ }
360
+ res.header('Access-Control-Allow-Headers', 'Content-Type, MCP-Session-Id');
361
+ res.header('Access-Control-Expose-Headers', 'Mcp-Session-Id');
362
+ res.header('Access-Control-Allow-Methods', 'GET,POST,DELETE,OPTIONS');
363
+ if (req.method === 'OPTIONS') {
364
+ res.status(204).end();
365
+ return;
366
+ }
367
+ next();
368
+ };
369
+ }
370
+ async function cleanupSession(sessions, sessionId, skipTransportClose = false) {
371
+ if (!sessionId) {
372
+ return;
373
+ }
374
+ const state = sessions.get(sessionId);
375
+ if (!state) {
376
+ return;
377
+ }
378
+ sessions.delete(sessionId);
379
+ try {
380
+ if (!skipTransportClose) {
381
+ await state.transport.close();
382
+ }
383
+ }
384
+ catch (error) {
385
+ console.error(`Smart-Thinking: erreur fermeture transport ${sessionId}`, error);
386
+ }
387
+ try {
388
+ await state.serverClose();
389
+ }
390
+ catch (error) {
391
+ console.error(`Smart-Thinking: erreur fermeture serveur ${sessionId}`, error);
392
+ }
393
+ }
394
+ function configureStdoutFiltering() {
395
+ const originalStdoutWrite = process.stdout.write.bind(process.stdout);
396
+ function isValidJSON(str) {
397
+ if (typeof str !== 'string')
398
+ return false;
399
+ const trimmed = str.trim();
400
+ if (!trimmed)
401
+ return false;
402
+ if (!(trimmed.startsWith('{') && trimmed.endsWith('}')) &&
403
+ !(trimmed.startsWith('[') && trimmed.endsWith(']'))) {
404
+ return false;
405
+ }
406
+ try {
407
+ JSON.parse(trimmed);
408
+ return true;
409
+ }
410
+ catch {
411
+ return false;
412
+ }
413
+ }
414
+ process.stdout.write = function stdoutFilter(chunk, encoding, cb) {
415
+ if (typeof chunk === 'string') {
416
+ const trimmed = chunk.trim();
417
+ if ((trimmed.startsWith('{') || trimmed.startsWith('[')) && !isValidJSON(trimmed)) {
418
+ console.error('[ERREUR] JSON invalide détecté:', chunk);
419
+ try {
420
+ const safeMessage = JSON.stringify({
421
+ jsonrpc: '2.0',
422
+ result: {
423
+ content: [{ type: 'text', text: chunk }]
424
+ }
425
+ }) + (config_1.PlatformConfig.IS_WINDOWS ? '\n' : '');
426
+ return originalStdoutWrite(safeMessage, encoding, cb);
427
+ }
428
+ catch (error) {
429
+ console.error('[ERREUR] Impossible de corriger le JSON:', error);
430
+ process.stderr.write(chunk, encoding);
431
+ if (cb)
432
+ cb();
433
+ return true;
434
+ }
435
+ }
436
+ if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {
437
+ process.stderr.write(chunk, encoding);
438
+ if (cb)
439
+ cb();
440
+ return true;
441
+ }
442
+ }
443
+ return originalStdoutWrite(chunk, encoding, cb);
444
+ };
445
+ }
446
+ async function ensureDataDirExists() {
447
+ const dataDir = path_utils_1.PathUtils.getDataDirectory();
448
+ try {
449
+ await fs_1.promises.mkdir(dataDir, { recursive: true });
450
+ if (config_1.PlatformConfig.IS_WINDOWS) {
451
+ try {
452
+ await fs_1.promises.access(dataDir, fs_1.constants.W_OK);
453
+ }
454
+ catch {
455
+ console.warn('Smart-Thinking: permissions limitées sur le répertoire data, utilisation possible d\'un fallback.');
456
+ }
457
+ }
458
+ }
459
+ catch {
460
+ if (config_1.PlatformConfig.IS_WINDOWS) {
461
+ const altDataDir = path_1.default.join(process.env.USERPROFILE || '', 'Documents', 'Smart-Thinking', 'data');
462
+ try {
463
+ await fs_1.promises.mkdir(altDataDir, { recursive: true });
464
+ }
465
+ catch {
466
+ // Ignorer l'erreur, le gestionnaire de mémoire basculera en mémoire vive uniquement
467
+ }
468
+ }
469
+ }
470
+ }
471
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -1,2 +1,15 @@
1
- #!/usr/bin/env node
2
- import './utils/logger';
1
+ import { z } from 'zod';
2
+ import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ export declare const configSchema: z.ZodDefault<z.ZodObject<{
4
+ mode: z.ZodDefault<z.ZodEnum<["full", "connector"]>>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ mode: "full" | "connector";
7
+ }, {
8
+ mode?: "full" | "connector" | undefined;
9
+ }>>;
10
+ type ConfigSchema = z.infer<typeof configSchema>;
11
+ interface CreateServerArgs {
12
+ config?: ConfigSchema;
13
+ }
14
+ export default function createServer({ config }?: CreateServerArgs): Server;
15
+ export { createSmartThinkingServer } from './server/smart-thinking-server';
package/build/index.js CHANGED
@@ -1,471 +1,24 @@
1
- #!/usr/bin/env node
2
1
  "use strict";
3
- /* istanbul ignore file -- Point d'entrée CLI difficile à tester automatiquement */
4
- var __importDefault = (this && this.__importDefault) || function (mod) {
5
- return (mod && mod.__esModule) ? mod : { "default": mod };
6
- };
7
2
  Object.defineProperty(exports, "__esModule", { value: true });
8
- require("./utils/logger");
9
- const express_1 = __importDefault(require("express"));
10
- const crypto_1 = require("crypto");
11
- const fs_1 = require("fs");
12
- const path_1 = __importDefault(require("path"));
13
- const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
14
- const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
15
- const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
16
- const platform_stdio_1 = require("./utils/platform-stdio");
17
- const path_utils_1 = require("./utils/path-utils");
18
- const config_1 = require("./config");
3
+ exports.createSmartThinkingServer = exports.configSchema = void 0;
4
+ exports.default = createServer;
5
+ const zod_1 = require("zod");
19
6
  const smart_thinking_server_1 = require("./server/smart-thinking-server");
20
- (async () => {
21
- const options = parseArgs(process.argv.slice(2));
22
- try {
23
- await ensureDataDirExists();
24
- if (options.transport === 'stdio') {
25
- await startStdIoServer(options);
26
- }
27
- else {
28
- await startHttpServer(options);
29
- }
30
- }
31
- catch (error) {
32
- console.error('Smart-Thinking: échec du démarrage du serveur', error);
33
- process.exit(1);
34
- }
35
- })();
36
- function parseArgs(argv) {
37
- const envMode = (process.env.SMART_THINKING_MODE ?? '').toLowerCase();
38
- const defaultMode = envMode === 'connector' ? 'connector' : 'full';
39
- const options = {
40
- transport: 'stdio',
41
- port: process.env.PORT ? Number(process.env.PORT) : 3000,
42
- host: process.env.HOST ?? '0.0.0.0',
43
- allowOrigins: [],
44
- allowHosts: [],
45
- enableSse: true,
46
- enableStream: true,
47
- mode: defaultMode
7
+ const ModeSchema = zod_1.z.enum(['full', 'connector']).describe('Mode du serveur Smart-Thinking');
8
+ exports.configSchema = zod_1.z.object({
9
+ mode: ModeSchema.default('full')
10
+ }).default({ mode: 'full' });
11
+ function resolveServerOptions(config) {
12
+ return {
13
+ includeSmartThinkingTool: config.mode !== 'connector'
48
14
  };
49
- for (let i = 0; i < argv.length; i += 1) {
50
- const arg = argv[i];
51
- const [flag, inlineValue] = arg.includes('=') ? arg.split('=', 2) : [arg, undefined];
52
- const readValue = () => {
53
- if (inlineValue !== undefined) {
54
- return inlineValue;
55
- }
56
- const nextArg = argv[i + 1];
57
- if (nextArg && !nextArg.startsWith('--')) {
58
- i += 1;
59
- return nextArg;
60
- }
61
- return undefined;
62
- };
63
- switch (flag) {
64
- case '--transport': {
65
- const value = readValue();
66
- if (value === 'stdio' || value === 'http' || value === 'sse' || value === 'stream') {
67
- options.transport = value;
68
- }
69
- break;
70
- }
71
- case '--port': {
72
- const value = readValue();
73
- const port = value ? Number(value) : NaN;
74
- if (!Number.isNaN(port)) {
75
- options.port = port;
76
- }
77
- break;
78
- }
79
- case '--host': {
80
- const value = readValue();
81
- if (value) {
82
- options.host = value;
83
- }
84
- break;
85
- }
86
- case '--allow-origin': {
87
- const value = readValue();
88
- if (value) {
89
- options.allowOrigins.push(value);
90
- }
91
- break;
92
- }
93
- case '--allow-host': {
94
- const value = readValue();
95
- if (value) {
96
- options.allowHosts.push(value);
97
- }
98
- break;
99
- }
100
- case '--disable-sse':
101
- options.enableSse = false;
102
- break;
103
- case '--disable-stream':
104
- options.enableStream = false;
105
- break;
106
- case '--mode': {
107
- const value = readValue();
108
- if (value === 'full' || value === 'connector') {
109
- options.mode = value;
110
- }
111
- break;
112
- }
113
- default:
114
- break;
115
- }
116
- }
117
- if (options.transport === 'sse') {
118
- options.enableSse = true;
119
- options.enableStream = false;
120
- }
121
- else if (options.transport === 'stream') {
122
- options.enableSse = false;
123
- options.enableStream = true;
124
- }
125
- else if (options.transport === 'http') {
126
- options.enableSse = options.enableSse !== false;
127
- options.enableStream = options.enableStream !== false;
128
- }
129
- if (options.transport !== 'stdio' && !options.enableSse && !options.enableStream) {
130
- options.enableStream = true;
131
- }
132
- return options;
133
15
  }
134
- async function startStdIoServer(options) {
135
- configureStdoutFiltering();
136
- if (options.mode === 'connector') {
137
- console.error('Smart-Thinking: mode connecteur actif (outils search & fetch uniquement)');
138
- }
139
- const { server } = (0, smart_thinking_server_1.createSmartThinkingServer)(undefined, {
140
- includeSmartThinkingTool: options.mode !== 'connector'
141
- });
142
- const transport = new platform_stdio_1.EnhancedStdioServerTransport();
143
- try {
144
- await server.connect(transport);
145
- }
146
- catch (error) {
147
- console.error('Smart-Thinking: échec de la connexion STDIO', error);
148
- throw error;
149
- }
150
- }
151
- async function startHttpServer(options) {
152
- const app = (0, express_1.default)();
153
- app.use(express_1.default.json({ limit: '4mb' }));
154
- app.use(createCorsMiddleware(options));
155
- if (options.mode === 'connector') {
156
- console.error('Smart-Thinking: mode connecteur actif (outils search & fetch uniquement)');
157
- }
158
- const sessions = new Map();
159
- const dnsProtectionEnabled = options.allowHosts.length > 0 || options.allowOrigins.length > 0;
160
- if (options.enableStream) {
161
- app.all('/mcp', async (req, res) => {
162
- try {
163
- const sessionHeader = req.headers['mcp-session-id'];
164
- const sessionId = Array.isArray(sessionHeader) ? sessionHeader[0] : sessionHeader;
165
- if (sessionId) {
166
- const state = sessions.get(sessionId);
167
- if (!state || state.type !== 'stream') {
168
- res.status(404).json({
169
- jsonrpc: '2.0',
170
- error: {
171
- code: -32000,
172
- message: 'Session inconnue pour le transport streamable HTTP'
173
- },
174
- id: null
175
- });
176
- return;
177
- }
178
- await state.transport.handleRequest(req, res, req.body);
179
- return;
180
- }
181
- if (req.method !== 'POST' || !(0, types_js_1.isInitializeRequest)(req.body)) {
182
- res.status(400).json({
183
- jsonrpc: '2.0',
184
- error: {
185
- code: -32000,
186
- message: 'Initialisation manquante ou requête invalide'
187
- },
188
- id: null
189
- });
190
- return;
191
- }
192
- const { server } = (0, smart_thinking_server_1.createSmartThinkingServer)(undefined, {
193
- includeSmartThinkingTool: options.mode !== 'connector'
194
- });
195
- const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
196
- sessionIdGenerator: () => (0, crypto_1.randomUUID)(),
197
- enableDnsRebindingProtection: dnsProtectionEnabled,
198
- allowedHosts: options.allowHosts.length ? options.allowHosts : undefined,
199
- allowedOrigins: options.allowOrigins.length ? options.allowOrigins : undefined,
200
- onsessioninitialized: (id) => {
201
- sessions.set(id, {
202
- transport,
203
- serverClose: () => server.close().catch(() => undefined),
204
- type: 'stream'
205
- });
206
- },
207
- onsessionclosed: (id) => {
208
- void cleanupSession(sessions, id, true);
209
- }
210
- });
211
- transport.onerror = (error) => {
212
- console.error('Smart-Thinking: erreur transport streamable', error);
213
- };
214
- transport.onclose = () => {
215
- void cleanupSession(sessions, transport.sessionId, true);
216
- };
217
- await server.connect(transport);
218
- await transport.handleRequest(req, res, req.body);
219
- }
220
- catch (error) {
221
- if (!res.headersSent) {
222
- res.status(500).json({
223
- jsonrpc: '2.0',
224
- error: {
225
- code: -32603,
226
- message: 'Erreur interne du serveur'
227
- },
228
- id: null
229
- });
230
- }
231
- console.error('Smart-Thinking: erreur lors du traitement streamable HTTP', error);
232
- }
233
- });
234
- }
235
- else {
236
- app.all('/mcp', (_req, res) => {
237
- res.status(404).json({
238
- jsonrpc: '2.0',
239
- error: {
240
- code: -32000,
241
- message: 'Transport streamable HTTP désactivé sur ce serveur'
242
- },
243
- id: null
244
- });
245
- });
246
- }
247
- if (options.enableSse) {
248
- app.get('/sse', async (req, res) => {
249
- try {
250
- const { server } = (0, smart_thinking_server_1.createSmartThinkingServer)(undefined, {
251
- includeSmartThinkingTool: options.mode !== 'connector'
252
- });
253
- const transport = new sse_js_1.SSEServerTransport('/messages', res, {
254
- enableDnsRebindingProtection: dnsProtectionEnabled,
255
- allowedHosts: options.allowHosts.length ? options.allowHosts : undefined,
256
- allowedOrigins: options.allowOrigins.length ? options.allowOrigins : undefined
257
- });
258
- const sessionId = transport.sessionId;
259
- sessions.set(sessionId, {
260
- transport,
261
- serverClose: () => server.close().catch(() => undefined),
262
- type: 'sse'
263
- });
264
- transport.onclose = () => {
265
- void cleanupSession(sessions, sessionId, true);
266
- };
267
- transport.onerror = (error) => {
268
- console.error('Smart-Thinking: erreur transport SSE', error);
269
- };
270
- await server.connect(transport);
271
- }
272
- catch (error) {
273
- if (!res.headersSent) {
274
- res.status(500).send('Erreur lors de l\'établissement du flux SSE');
275
- }
276
- console.error('Smart-Thinking: échec d\'initialisation SSE', error);
277
- }
278
- });
279
- app.post('/messages', async (req, res) => {
280
- try {
281
- const queryParam = req.query.sessionId;
282
- const sessionId = typeof queryParam === 'string'
283
- ? queryParam
284
- : Array.isArray(queryParam)
285
- ? queryParam.find((value) => typeof value === 'string')
286
- : undefined;
287
- if (!sessionId) {
288
- res.status(400).send('Paramètre sessionId manquant');
289
- return;
290
- }
291
- const state = sessions.get(sessionId);
292
- if (!state || state.type !== 'sse') {
293
- res.status(404).send('Session SSE introuvable');
294
- return;
295
- }
296
- await state.transport.handlePostMessage(req, res, req.body);
297
- }
298
- catch (error) {
299
- if (!res.headersSent) {
300
- res.status(500).send('Erreur traitement message SSE');
301
- }
302
- console.error('Smart-Thinking: erreur sur /messages', error);
303
- }
304
- });
305
- }
306
- else {
307
- app.get('/sse', (_req, res) => {
308
- res.status(404).send('Transport SSE désactivé');
309
- });
310
- app.post('/messages', (_req, res) => {
311
- res.status(404).send('Transport SSE désactivé');
312
- });
313
- }
314
- app.use((error, _req, res, _next) => {
315
- if (!res.headersSent) {
316
- res.status(500).json({ error: 'Erreur interne du serveur MCP' });
317
- }
318
- console.error('Smart-Thinking: middleware erreur', error);
319
- });
320
- await new Promise((resolve, reject) => {
321
- const httpServer = app.listen(options.port, options.host, () => {
322
- console.error(`Smart-Thinking: serveur MCP HTTP lancé sur http://${options.host}:${options.port}`);
323
- if (options.enableStream) {
324
- console.error(' • Endpoint streamable HTTP : /mcp');
325
- }
326
- if (options.enableSse) {
327
- console.error(' • Endpoint SSE (legacy) : /sse + /messages');
328
- }
329
- });
330
- httpServer.on('error', reject);
331
- const shutdown = async () => {
332
- console.error('Smart-Thinking: arrêt du serveur HTTP en cours...');
333
- for (const [sessionId] of sessions) {
334
- await cleanupSession(sessions, sessionId);
335
- }
336
- await new Promise((resolveClose) => {
337
- httpServer.close(() => resolveClose());
338
- });
339
- resolve();
340
- };
341
- process.once('SIGINT', shutdown);
342
- process.once('SIGTERM', shutdown);
343
- });
344
- }
345
- function createCorsMiddleware(options) {
346
- return (req, res, next) => {
347
- const originHeader = Array.isArray(req.headers.origin) ? req.headers.origin[0] : req.headers.origin;
348
- res.header('Vary', 'Origin');
349
- if (options.allowOrigins.length > 0) {
350
- if (originHeader && options.allowOrigins.includes(originHeader)) {
351
- res.header('Access-Control-Allow-Origin', originHeader);
352
- }
353
- }
354
- else if (originHeader) {
355
- res.header('Access-Control-Allow-Origin', originHeader);
356
- }
357
- else {
358
- res.header('Access-Control-Allow-Origin', '*');
359
- }
360
- res.header('Access-Control-Allow-Headers', 'Content-Type, MCP-Session-Id');
361
- res.header('Access-Control-Expose-Headers', 'Mcp-Session-Id');
362
- res.header('Access-Control-Allow-Methods', 'GET,POST,DELETE,OPTIONS');
363
- if (req.method === 'OPTIONS') {
364
- res.status(204).end();
365
- return;
366
- }
367
- next();
368
- };
369
- }
370
- async function cleanupSession(sessions, sessionId, skipTransportClose = false) {
371
- if (!sessionId) {
372
- return;
373
- }
374
- const state = sessions.get(sessionId);
375
- if (!state) {
376
- return;
377
- }
378
- sessions.delete(sessionId);
379
- try {
380
- if (!skipTransportClose) {
381
- await state.transport.close();
382
- }
383
- }
384
- catch (error) {
385
- console.error(`Smart-Thinking: erreur fermeture transport ${sessionId}`, error);
386
- }
387
- try {
388
- await state.serverClose();
389
- }
390
- catch (error) {
391
- console.error(`Smart-Thinking: erreur fermeture serveur ${sessionId}`, error);
392
- }
393
- }
394
- function configureStdoutFiltering() {
395
- const originalStdoutWrite = process.stdout.write.bind(process.stdout);
396
- function isValidJSON(str) {
397
- if (typeof str !== 'string')
398
- return false;
399
- const trimmed = str.trim();
400
- if (!trimmed)
401
- return false;
402
- if (!(trimmed.startsWith('{') && trimmed.endsWith('}')) &&
403
- !(trimmed.startsWith('[') && trimmed.endsWith(']'))) {
404
- return false;
405
- }
406
- try {
407
- JSON.parse(trimmed);
408
- return true;
409
- }
410
- catch {
411
- return false;
412
- }
413
- }
414
- process.stdout.write = function stdoutFilter(chunk, encoding, cb) {
415
- if (typeof chunk === 'string') {
416
- const trimmed = chunk.trim();
417
- if ((trimmed.startsWith('{') || trimmed.startsWith('[')) && !isValidJSON(trimmed)) {
418
- console.error('[ERREUR] JSON invalide détecté:', chunk);
419
- try {
420
- const safeMessage = JSON.stringify({
421
- jsonrpc: '2.0',
422
- result: {
423
- content: [{ type: 'text', text: chunk }]
424
- }
425
- }) + (config_1.PlatformConfig.IS_WINDOWS ? '\n' : '');
426
- return originalStdoutWrite(safeMessage, encoding, cb);
427
- }
428
- catch (error) {
429
- console.error('[ERREUR] Impossible de corriger le JSON:', error);
430
- process.stderr.write(chunk, encoding);
431
- if (cb)
432
- cb();
433
- return true;
434
- }
435
- }
436
- if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {
437
- process.stderr.write(chunk, encoding);
438
- if (cb)
439
- cb();
440
- return true;
441
- }
442
- }
443
- return originalStdoutWrite(chunk, encoding, cb);
444
- };
445
- }
446
- async function ensureDataDirExists() {
447
- const dataDir = path_utils_1.PathUtils.getDataDirectory();
448
- try {
449
- await fs_1.promises.mkdir(dataDir, { recursive: true });
450
- if (config_1.PlatformConfig.IS_WINDOWS) {
451
- try {
452
- await fs_1.promises.access(dataDir, fs_1.constants.W_OK);
453
- }
454
- catch {
455
- console.warn('Smart-Thinking: permissions limitées sur le répertoire data, utilisation possible d\'un fallback.');
456
- }
457
- }
458
- }
459
- catch {
460
- if (config_1.PlatformConfig.IS_WINDOWS) {
461
- const altDataDir = path_1.default.join(process.env.USERPROFILE || '', 'Documents', 'Smart-Thinking', 'data');
462
- try {
463
- await fs_1.promises.mkdir(altDataDir, { recursive: true });
464
- }
465
- catch {
466
- // Ignorer l'erreur, le gestionnaire de mémoire basculera en mémoire vive uniquement
467
- }
468
- }
469
- }
16
+ function createServer({ config } = {}) {
17
+ const resolvedConfig = exports.configSchema.parse(config ?? {});
18
+ const options = resolveServerOptions(resolvedConfig);
19
+ const { server } = (0, smart_thinking_server_1.createSmartThinkingServer)(undefined, options);
20
+ return server.server;
470
21
  }
22
+ var smart_thinking_server_2 = require("./server/smart-thinking-server");
23
+ Object.defineProperty(exports, "createSmartThinkingServer", { enumerable: true, get: function () { return smart_thinking_server_2.createSmartThinkingServer; } });
471
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAsBA,+BAKC;AA3BD,6BAAwB;AAExB,0EAA4G;AAE5G,MAAM,UAAU,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAE/E,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;CACjC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAQ7B,SAAS,oBAAoB,CAAC,MAAoB;IAChD,OAAO;QACL,wBAAwB,EAAE,MAAM,CAAC,IAAI,KAAK,WAAW;KACtD,CAAC;AACJ,CAAC;AAED,SAAwB,YAAY,CAAC,EAAE,MAAM,KAAuB,EAAE;IACpE,MAAM,cAAc,GAAG,oBAAY,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACxD,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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "smart-thinking-mcp",
3
- "version": "11.0.5",
3
+ "version": "11.0.6",
4
4
  "description": "Un serveur MCP avancé pour le raisonnement multi-dimensionnel, adaptatif et collaboratif",
5
5
  "main": "build/index.js",
6
6
  "module": "./src/index.ts",
7
7
  "bin": {
8
- "smart-thinking-mcp": "build/index.js"
8
+ "smart-thinking-mcp": "build/cli.js"
9
9
  },
10
10
  "files": [
11
11
  "build",
@@ -14,11 +14,11 @@
14
14
  "scripts": {
15
15
  "build": "tsc && node scripts/make-executable.js",
16
16
  "prestart": "npm run build",
17
- "dev": "ts-node src/index.ts",
17
+ "dev": "ts-node src/cli.ts",
18
18
  "watch": "tsc --watch",
19
- "start": "node build/index.js",
20
- "start:http": "node build/index.js --transport=http",
21
- "start:sse": "node build/index.js --transport=sse",
19
+ "start": "node build/cli.js",
20
+ "start:http": "node build/cli.js --transport=http",
21
+ "start:sse": "node build/cli.js --transport=sse",
22
22
  "lint": "eslint --max-warnings=0 --ext .ts src",
23
23
  "test": "jest --runInBand",
24
24
  "test:coverage": "jest --coverage",
@@ -8,39 +8,38 @@ const { execSync } = require('child_process');
8
8
  const { join, resolve } = require('path');
9
9
 
10
10
  const isWindows = platform() === 'win32';
11
- const execPath = resolve(join(__dirname, '..', 'build', 'index.js'));
11
+ const targets = [
12
+ resolve(join(__dirname, '..', 'build', 'cli.js'))
13
+ ];
12
14
 
13
- console.log(`Smart-Thinking: Configuring executable at ${execPath}`);
14
- console.log(`Smart-Thinking: Detected platform: ${platform()}`);
15
+ for (const execPath of targets) {
16
+ console.log(`Smart-Thinking: Configuring executable at ${execPath}`);
17
+ console.log(`Smart-Thinking: Detected platform: ${platform()}`);
15
18
 
16
- try {
17
- // Vérification que le fichier existe
18
- fs.accessSync(execPath);
19
-
20
- if (!isWindows) {
21
- // Unix-like systems: utiliser chmod
22
- try {
23
- execSync(`chmod +x "${execPath}"`);
24
- console.log('Smart-Thinking: File permissions set successfully for Unix-like systems');
25
- } catch (err) {
26
- console.log(`Smart-Thinking: Warning - Could not set execution permissions: ${err.message}`);
27
- }
28
- } else {
29
- // Windows: aucune action spécifique nécessaire pour les permissions
30
- console.log('Smart-Thinking: File exists and is accessible on Windows');
31
-
32
- // Vérifier si le fichier a un shebang en première ligne pour Node.js
33
- const content = fs.readFileSync(execPath, 'utf8');
34
- if (!content.startsWith('#!/usr/bin/env node')) {
19
+ try {
20
+ fs.accessSync(execPath);
21
+
22
+ if (!isWindows) {
35
23
  try {
36
- // Ajouter un shebang au début du fichier si nécessaire
37
- fs.writeFileSync(execPath, `#!/usr/bin/env node\n${content}`);
38
- console.log('Smart-Thinking: Added Node.js shebang to ensure proper execution');
39
- } catch (writeErr) {
40
- console.log(`Smart-Thinking: Warning - Could not update file with shebang: ${writeErr.message}`);
24
+ execSync(`chmod +x "${execPath}"`);
25
+ console.log('Smart-Thinking: File permissions set successfully for Unix-like systems');
26
+ } catch (err) {
27
+ console.log(`Smart-Thinking: Warning - Could not set execution permissions: ${err.message}`);
28
+ }
29
+ } else {
30
+ console.log('Smart-Thinking: File exists and is accessible on Windows');
31
+
32
+ const content = fs.readFileSync(execPath, 'utf8');
33
+ if (!content.startsWith('#!/usr/bin/env node')) {
34
+ try {
35
+ fs.writeFileSync(execPath, `#!/usr/bin/env node\n${content}`);
36
+ console.log('Smart-Thinking: Added Node.js shebang to ensure proper execution');
37
+ } catch (writeErr) {
38
+ console.log(`Smart-Thinking: Warning - Could not update file with shebang: ${writeErr.message}`);
39
+ }
41
40
  }
42
41
  }
42
+ } catch (err) {
43
+ console.log(`Smart-Thinking: Script execution permissions setup skipped for ${execPath}: ${err.message}`);
43
44
  }
44
- } catch (err) {
45
- console.log(`Smart-Thinking: Script execution permissions setup skipped: ${err.message}`);
46
45
  }