// Test the public local REA MCP entry point without inspecting WorkBuddy. import assert from 'node:assert/strict' import path from 'node:path' import { createRequire } from 'node:module' import { pathToFileURL } from 'node:url' const runtime = path.resolve('.tmp/rea-css-runtime') const require = createRequire(path.join(runtime, 'package.json')) const { Client } = await import(pathToFileURL(require.resolve('@modelcontextprotocol/client')).href) const { StdioClientTransport } = await import(pathToFileURL(require.resolve('@modelcontextprotocol/client/stdio')).href) const transport = new StdioClientTransport({ command: process.execPath, args: [path.join(runtime, 'scripts/rea.mjs'), 'mcp'], cwd: process.cwd(), stderr: 'pipe' }) const client = new Client({ name: 'ycode-local-rea-css-regression', version: '1' }) try { await client.connect(transport) assert.equal(client.getServerVersion()?.version, '6.5.0-visual.3') const listing = await client.listTools() const tool = listing.tools.find(tool => tool.name === 'inspect_electron_page') assert.ok(tool, 'Electron inspection tool is advertised') assert.ok(JSON.stringify(tool.inputSchema).includes('include_style_sources'), 'MCP input retains CSS option') assert.ok(JSON.stringify(tool.inputSchema).includes('include_visuals'), 'MCP input retains viewport option') assert.ok(JSON.stringify(tool.inputSchema).includes('visual_probe'), 'MCP input retains native visual probe option') console.log('REA CSS public MCP passed: local version, tool listing, CSS input option') } finally { await client.close() await transport.close() }