Files
cc-web/fixtures/gitea-workflow/mock-gitea-mcp.js

29 lines
949 B
JavaScript

'use strict';
// 仅用于离线回归:模拟官方 gitea-mcp 的 JSONL initialize 行为。
const readline = require('readline');
const mode = String(process.env.GITEA_MCP_FIXTURE_MODE || 'success');
const reader = readline.createInterface({ input: process.stdin });
reader.on('line', (line) => {
let request;
try { request = JSON.parse(line); } catch { return; }
if (request.method !== 'initialize') return;
if (mode === 'timeout') return;
if (mode === 'exit') process.exit(17);
if (mode === 'error') {
process.stdout.write(`${JSON.stringify({
jsonrpc: '2.0', id: request.id, error: { code: -32000, message: 'fixture handshake failed' },
})}\n`);
return;
}
process.stdout.write(`${JSON.stringify({
jsonrpc: '2.0', id: request.id,
result: {
protocolVersion: '2024-11-05',
capabilities: { tools: {} },
serverInfo: { name: 'fixture-gitea-mcp', version: '0.0.0' },
},
})}\n`);
});