using LazyBear.MCP.Services.Confluence; using LazyBear.MCP.Services.Jira; using LazyBear.MCP.Services.Kubernetes; using LazyBear.MCP.Services.Logging; using LazyBear.MCP.Services.ToolRegistry; using LazyBear.MCP.TUI; using ModelContextProtocol.Server; var builder = WebApplication.CreateBuilder(args); // ── InMemoryLogSink: регистрируем Singleton и кастомный логгер ─────────────── var logSink = new InMemoryLogSink(); builder.Services.AddSingleton(logSink); builder.Logging.AddProvider(new InMemoryLoggerProvider(logSink)); // ── MCP-провайдеры ─────────────────────────────────────────────────────────── builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); // ── ToolRegistry ───────────────────────────────────────────────────────────── builder.Services.AddSingleton(); // ── Модули инструментов (generic: добавь новый IToolModule — он появится в TUI) builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); // ── MCP-сервер ─────────────────────────────────────────────────────────────── builder.Services.AddMcpServer() .WithHttpTransport() .WithToolsFromAssembly(); // ── TUI как фоновый сервис ─────────────────────────────────────────────────── builder.Services.AddHostedService(); var app = builder.Build(); app.MapMcp(); app.Run("http://localhost:5000");