Forge
csharpdeeb25a2
1using CascadeIDE.Models;
2
3namespace CascadeIDE.Services;
4
5/// <summary>Валидация пути оверлея KB-Base: должен содержать <c>knowledge/</c>.</summary>
6internal static class KbBaseOverlayPathResolver
7{
8 internal static string? TryResolveCanonRoot(CascadeIdeSettings settings)
9 {
10 ArgumentNullException.ThrowIfNull(settings);
11 var raw = settings.AgentNotes.ResolveKbBaseOverlayPath().Trim();
12 if (raw.Length == 0)
13 return null;
14
15 var expanded = Environment.ExpandEnvironmentVariables(raw);
16 var path = Path.IsPathRooted(expanded)
17 ? CanonicalFilePath.Normalize(expanded)
18 : CanonicalFilePath.Normalize(Path.Combine(UserSettingsPaths.GetSettingsDirectory(), expanded));
19
20 var knowledge = Path.Combine(path, "knowledge");
21 return Directory.Exists(knowledge) ? path : null;
22 }
23}
24
View only · write via MCP/CIDE