feat: add MCP and LSP tooling support

Add global MCP/LSP settings, per-session Activity toggles, sidecar runtime integration, tests, and documentation updates.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-23 22:51:03 +01:00
co-authored by Copilot
parent 50a8e5dfbe
commit efa5c44e07
26 changed files with 3196 additions and 47 deletions
@@ -113,6 +113,36 @@ public sealed class RunTurnCommandDto : SidecarCommandEnvelope
public string WorkspaceKind { get; init; } = "project";
public PatternDefinitionDto Pattern { get; init; } = new();
public IReadOnlyList<ChatMessageDto> Messages { get; init; } = [];
public RunTurnToolingConfigDto? Tooling { get; init; }
}
public sealed class RunTurnToolingConfigDto
{
public IReadOnlyList<RunTurnMcpServerConfigDto> McpServers { get; init; } = [];
public IReadOnlyList<RunTurnLspProfileConfigDto> LspProfiles { get; init; } = [];
}
public sealed class RunTurnMcpServerConfigDto
{
public string Id { get; init; } = string.Empty;
public string Name { get; init; } = string.Empty;
public string Transport { get; init; } = "local";
public IReadOnlyList<string> Tools { get; init; } = [];
public int? TimeoutMs { get; init; }
public string? Command { get; init; }
public IReadOnlyList<string>? Args { get; init; }
public string? Cwd { get; init; }
public string? Url { get; init; }
}
public sealed class RunTurnLspProfileConfigDto
{
public string Id { get; init; } = string.Empty;
public string Name { get; init; } = string.Empty;
public string Command { get; init; } = string.Empty;
public IReadOnlyList<string> Args { get; init; } = [];
public string LanguageId { get; init; } = string.Empty;
public IReadOnlyList<string> FileExtensions { get; init; } = [];
}
public abstract class SidecarEventDto