smart-thinking-mcp
Version:
Un serveur MCP avancé pour le raisonnement multi-dimensionnel, adaptatif et collaboratif
55 lines • 2.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EnhancedStdioServerTransport = void 0;
/**
* Transport StdioServer amélioré pour une meilleure compatibilité cross-plateforme
* Compatible avec Windows, Mac et Linux
*/
const os_1 = require("os");
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
/**
* Transport StdioServer amélioré pour la compatibilité cross-plateforme
* Gère spécifiquement les problèmes connus sur Windows
*/
class EnhancedStdioServerTransport extends stdio_js_1.StdioServerTransport {
constructor() {
super();
const currentPlatform = (0, os_1.platform)();
console.error(`Smart-Thinking: Initialisation du transport stdio pour ${currentPlatform}`);
// Configuration spécifique pour Windows
if (currentPlatform === 'win32') {
this.configureWindowsStdio();
}
}
/**
* Configure les flux stdin/stdout pour Windows
* Résout plusieurs problèmes connus avec les flux sur Windows
*/
configureWindowsStdio() {
try {
// Définir l'encodage UTF-8 pour stdin/stdout
process.stdin.setEncoding('utf8');
process.stdout.setDefaultEncoding('utf8');
// Éviter les problèmes de buffering sur Windows
const stdoutExt = process.stdout;
if (stdoutExt._handle && stdoutExt._handle.setBlocking) {
stdoutExt._handle.setBlocking(true);
}
const stderrExt = process.stderr;
if (stderrExt._handle && stderrExt._handle.setBlocking) {
stderrExt._handle.setBlocking(true);
}
// Désactiver le buffering du stdout en définissant une taille de buffer de 0
// Aide à résoudre les problèmes de communication sur Windows
if (stdoutExt._handle && stdoutExt._handle.setBlocking) {
stdoutExt._handle.setBlocking(true);
}
console.error('Smart-Thinking: Configuration Windows appliquée pour les flux stdio');
}
catch (error) {
console.error(`Smart-Thinking: Erreur lors de la configuration des flux stdio: ${error instanceof Error ? error.message : String(error)}`);
}
}
}
exports.EnhancedStdioServerTransport = EnhancedStdioServerTransport;
//# sourceMappingURL=platform-stdio.js.map