Forge
csharpdeeb25a2
1#nullable enable
2
3using CascadeIDE.Contracts;
4using CascadeIDE.Models;
5using CascadeIDE.Services;
6
7namespace CascadeIDE.Features.EnvironmentReadiness.DataAcquisition;
8
9/// <summary>
10/// Снимок переменных окружения, которые Cascade IDE реально читает для заметок/knowledge и отладки (ADR 0023, DAL).
11/// Значения не логируем целиком в UI — только факты проверки пути.
12/// </summary>
13public readonly record struct EnvironmentReadinessEnvSnapshot(
14 string? AgentNotesFile,
15 string? AgentNotesConfigPath,
16 string? NetcoreDbgPath)
17{
18 public static EnvironmentReadinessEnvSnapshot FromCurrentProcess() =>
19 new(
20 Environment.GetEnvironmentVariable(WellKnownEnv.AgentNotesFile),
21 null,
22 Environment.GetEnvironmentVariable(WellKnownEnv.NetcoreDbgPath));
23
24 public static EnvironmentReadinessEnvSnapshot FromSettings(CascadeIdeSettings settings) =>
25 new(
26 Environment.GetEnvironmentVariable(WellKnownEnv.AgentNotesFile),
27 AgentNotesRuntimeLoader.ResolveConfigPath(settings),
28 Environment.GetEnvironmentVariable(WellKnownEnv.NetcoreDbgPath));
29}
30
31/// <summary>Имена переменных — в одном месте (совпадают с AgentNotes.Core и разрешением netcoredbg в отладке).</summary>
32[IoBoundary]
33public static class WellKnownEnv
34{
35 public const string AgentNotesFile = "AGENT_NOTES_FILE";
36 public const string NetcoreDbgPath = "NETCOREDBG_PATH";
37
38 /// <summary>Sentinel <c>executable_env</c> / <c>cursor_acp_path_env</c> (ADR 0149) — не переменная <c>PATH</c> процесса.</summary>
39 public const string SettingsPathLookupSentinel = SettingsEnvResolver.PathLookupSentinel;
40
41 /// <summary>Опционально: именованная переменная с абсолютным путём, если не в PATH.</summary>
42 public const string CascadeIntercomServerExe = "CASCADE_INTERCOM_SERVER_EXE";
43 public const string CascadeIntercomBaseUrl = "CASCADE_INTERCOM_BASE_URL";
44 public const string CursorAcpAgentPath = "CURSOR_ACP_AGENT_PATH";
45}
46
View only · write via MCP/CIDE