在 Windows 上配置 webSearchTool 指向 .bat 文件时,因 Node.js v20+ 已移除 child_process.spawn 对 .bat/.cmd 文件的自动 cmd.exe /c 路由,抛出 spawn EINVAL。 稳定复现步骤 1. 创建任意 .bat 文件,例如: [bat] @echo off echo {"results":[{"title":"test"}]} 2. 配置 settings.json: [json] "webSearchTool": "C:/path/to/script.bat" 3. 在对话中调用 WebSearch 工具 4. 结果:spawn EINVAL Node.js 验证 [javascript] const { spawn } = require('child_process'); spawn('C:/path/to/script.bat', ['query'], { stdio: ['ignore', 'pipe', 'pipe'] }); // → Error: spawn EINVAL (Node v24.15.0, Windows) 建议修复 在 src/tools/web-search-handler.ts 的 runWebSearchScript 中根据平台添加 shell: true: [diff] const child = spawn(scriptPath, [query], { cwd: context.projectRoot, + shell: process.platform === "win32", env: { ...process.env, ...configuredEnv }, stdio: ["ignore", "pipe", "pipe"], });
Activity