UNPKG

veas

Version:

Veas CLI - Command-line interface for Veas platform

91 lines (89 loc) 2.7 kB
import { spinner } from '@clack/prompts'; import * as dotenv from 'dotenv'; import pc from 'picocolors'; import { AuthManager } from '../auth/auth-manager.js'; import { DirectMCPServer } from '../mcp/direct-server.js'; import { logger } from '../utils/logger.js'; dotenv.config({ path: '.env.local' }); dotenv.config(); export async function serve(options) { if (options.showConfig) { const config = { mcpServers: { veas: { command: 'veas', args: ['serve'], }, }, }; console.log(JSON.stringify(config, null, 2)); return; } const isMCPMode = process.env.MCP_MODE === 'true' || !process.stdout.isTTY; if (isMCPMode) { const originalLog = console.log; console.log = (...args) => { const msg = args.join(' '); if (!msg.trim().startsWith('{')) { process.stderr.write(`${msg}\n`); } else { originalLog(...args); } }; console.error = (...args) => process.stderr.write(`${args.join(' ')}\n`); } const s = isMCPMode ? null : spinner(); if (!isMCPMode) { s.start('Starting MCP server...'); } try { const authManager = AuthManager.getInstance(); const isAuthenticated = await authManager.isAuthenticated(); if (!isAuthenticated) { if (!isMCPMode) { s.stop(pc.red('Not authenticated')); logger.info(pc.yellow('Please run "veas login" first')); } process.exit(1); } const server = new DirectMCPServer({ port: Number.parseInt(options.port, 10), }); await server.initialize(); if (!isMCPMode) { s.stop(pc.green('MCP server initialized')); logger.info(pc.cyan(` Veas MCP Server (Direct Connection) =================================== Port: ${options.port} Cache: Disabled Mode: Direct MCP connection The server is running in stdio mode for MCP protocol. To use with Claude Desktop or other MCP clients, configure: { "mcpServers": { "veas": { "command": "veas", "args": ["serve"] } } } `)); } await server.start(); process.on('SIGINT', async () => { logger.info(pc.yellow('\nShutting down...')); await server.stop(); process.exit(0); }); } catch (error) { if (!isMCPMode && s) { s.stop(pc.red('Failed to start server')); } logger.error(error.message); process.exit(1); } } //# sourceMappingURL=serve.js.map