- Добавлен RazorConsole.Core для интерактивного TUI-дашборда - ToolRegistryService: живое включение/отключение модулей и отдельных методов - InMemoryLogSink: кольцевой буфер логов с фильтрацией по модулю - TUI: 3 таба (Overview, Logs, Settings) - IToolModule: generic-интерфейс для легкого добавления новых MCP-модулей - Guard-проверка TryCheckEnabled() во всех существующих инструментах
40 lines
1.5 KiB
Plaintext
40 lines
1.5 KiB
Plaintext
@using LazyBear.MCP.Services.ToolRegistry
|
|
@inject ToolRegistryService Registry
|
|
|
|
<Rows>
|
|
<Markup Content=" " />
|
|
@foreach (var module in Registry.GetModules())
|
|
{
|
|
var (active, total) = Registry.GetToolCounts(module.ModuleName);
|
|
var isEnabled = Registry.IsModuleEnabled(module.ModuleName);
|
|
var statusColor = isEnabled ? Spectre.Console.Color.Green : Spectre.Console.Color.Red;
|
|
var statusText = isEnabled ? "ENABLED" : "DISABLED";
|
|
var activeColor = active == total
|
|
? Spectre.Console.Color.Green
|
|
: (active == 0 ? Spectre.Console.Color.Red : Spectre.Console.Color.Yellow);
|
|
|
|
<Panel Title="@module.ModuleName"
|
|
BorderColor="@(isEnabled ? Spectre.Console.Color.Green3 : Spectre.Console.Color.Grey46)"
|
|
Expand="true">
|
|
<Columns>
|
|
<Rows>
|
|
<Columns>
|
|
<Markup Content="Status: " />
|
|
<Markup Content="@statusText" Foreground="@statusColor" />
|
|
</Columns>
|
|
<Columns>
|
|
<Markup Content="Tools: " />
|
|
<Markup Content="@($"{active}/{total} active")" Foreground="@activeColor" />
|
|
</Columns>
|
|
<Markup Content="@module.Description" Foreground="@Spectre.Console.Color.Grey" />
|
|
</Rows>
|
|
</Columns>
|
|
</Panel>
|
|
}
|
|
<Markup Content=" " />
|
|
<Markup Content="[grey]Go to Settings tab to toggle modules and tools[/]" />
|
|
</Rows>
|
|
|
|
@code {
|
|
}
|