Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/ai-guiders_cascade-ide.json
T

1 line
24 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "ai-guiders/cascade-ide", "files": {"Models/AiSettings.cs": {"be6a6bf94415ad63a1ddde1aef9e12b3dba2c6a4": {"t": 1785746189.9684365, "n": 4002, "h": "f370791a957b12f5", "c": "using System.Text.Json.Serialization;\nusing CascadeIDE.Services;\n\nnamespace CascadeIDE.Models;\n\n/// <summary>Контур AI в <c>[ai]</c> (<c>settings.toml</c>). ADR 0083: <c>mode</c> и вложенные таблицы.</summary>\npublic sealed class AiSettings\n{\n /// <summary>Один из: <c>local</c>, <c>acp</c>, <c>mcp_only</c>, <c>cloud</c>.</summary>\n public string Mode { get; set; } = \"local\";\n\n public AiLocalSettings Local { get; set; } = new();\n\n public AiAcpSettings Acp { get; set; } = new();\n\n public AiMcpOnlySettings McpOnly { get; set; } = new();\n\n public AiCloudSettings Cloud { get; set; } = new();\n\n public AiChatSettings Chat { get; set; } = new();\n\n /// <summary>Ключ провайдера для существующего кода чата (Ollama, Anthropic, …).</summary>\n public string ResolveEffectiveProviderUiKey()\n {\n return NormalizeMode(Mode) switch\n {\n \"local\" => \"Ollama\",\n \"acp\" => \"CursorACP\",\n \"mcp_only\" => \"Ollama\",\n \"cloud\" => NormalizeCloudProvider(Cloud.ActiveProvider) switch\n {\n \"anthropic\" => \"Anthropic\",\n \"openai\" => \"OpenAI\",\n \"deepseek\" => \"DeepSeek\",\n _ => \"Anthropic\"\n },\n _ => \"Ollama\"\n };\n }\n\n public static string NormalizeMode(string? mode)\n {\n var m = (mode ?? \"local\").Trim().ToLowerInvariant();\n return m is \"local\" or \"acp\" or \"mcp_only\" or \"cloud\" ? m : \"local\";\n }\n\n public static string NormalizeCloudProvider(string? p)\n {\n var x = (p ?? \"anthropic\").Trim().ToLowerInvariant();\n return x is \"anthropic\" or \"openai\" or \"deepseek\" ? x : \"anthropic\";\n }\n}\n\n/// <summary>TOML: <c>[ai.local]</c> и <c>[ai.local.ollama]</c>.</summary>\npublic sealed class AiLocalSettings\n{\n /// <summary>Например <c>ollama</c>; должен совпадать с активной подтаблицей.</summary>\n public string Backend { get; set; } = \"ollama\";\n\n public AiLocalOllamaSettings Ollama { get; set; } = new();\n}\n\n/// <summary>TOML: <c>[ai.local.ollama]</c>.</summary>\npublic sealed class AiLocalOllamaSettings\n{\n public string Model { get; set; } = \"qwen2.5-coder:7b\";\n}\n\n/// <summary>TOML: <c>[ai.acp]</c>.</summary>\npublic sealed class AiAcpSettings\n{\n public string CursorAcpPath { get; set; } = \"\";\n\n /// <summary>TOML: <c>cursor_acp_path_env</c> — <c>PATH</c> или имя переменной с путём (ADR 0149).</summary>\n public string CursorAcpPathEnv { get; set; } = \"\";\n\n public string CursorAcpModelId { get; set; } = \"\";\n\n public string ResolveCursorAcpPath() =>\n SettingsEnvResolver.ResolveLaunchPath(CursorAcpPath, CursorAcpPathEnv);\n}\n\n/// <summary>TOML: <c>[ai.mcp_only]</c> — зарезервировано под флаги режима.</summary>\npublic sealed class AiMcpOnlySettings\n{\n}\n\n/// <summary>TOML: <c>[ai.cloud]</c> и <c>[ai.cloud.*]</c>.</summary>\npublic sealed class AiCloudSettings\n{\n public string ActiveProvider { get; set; } = \"anthropic\";\n\n [JsonPropertyName(\"anthropic\")]\n public AiCloudAnthropicSettings Anthropic { get; set; } = new();\n\n [JsonPropertyName(\"openai\")]\n public AiCloudOpenAiSettings OpenAi { get; set; } = new();\n\n [JsonPropertyName(\"deepseek\")]\n public AiCloudDeepSeekSettings DeepSeek { get; set; } = new();\n}\n\npublic sealed class AiCloudAnthropicSettings\n{\n public string Model { get; set; } = \"claude-sonnet-4-20250514\";\n}\n\npublic sealed class AiCloudOpenAiSettings\n{\n public string BaseUrl { get; set; } = \"https://api.openai.com\";\n\n public string Model { get; set; } = \"gpt-4o\";\n}\n\npublic sealed class AiCloudDeepSeekSettings\n{\n public string BaseUrl { get; set; } = \"https://api.deepseek.com\";\n\n public string Model { get; set; } = \"deepseek-chat\";\n}\n\n/// <summary>TOML: <c>[ai.chat]</c>.</summary>\npublic sealed class AiChatSettings\n{\n /// <summary><c>mfd</c> | <c>window</c>.</summary>\n public string SettingsPresentation { get; set; } = \"mfd\";\n\n public bool ShowThinkingInHistory { get; set; } = true;\n}\n"}, "d05466adeddbfc60c9ca858288a95515a4b724b4": {"t": 1785760473.8805573, "n": 4002, "h": "f370791a957b12f5", "c": "using System.Text.Json.Serialization;\nusing CascadeIDE.Services;\n\nnamespace CascadeIDE.Models;\n\n/// <summary>Контур AI в <c>[ai]</c> (<c>settings.toml</c>). ADR 0083: <c>mode</c> и вложенные таблицы.</summary>\npublic sealed class AiSettings\n{\n /// <summary>Один из: <c>local</c>, <c>acp</c>, <c>mcp_only</c>, <c>cloud</c>.</summary>\n public string Mode { get; set; } = \"local\";\n\n public AiLocalSettings Local { get; set; } = new();\n\n public AiAcpSettings Acp { get; set; } = new();\n\n public AiMcpOnlySettings McpOnly { get; set; } = new();\n\n public AiCloudSettings Cloud { get; set; } = new();\n\n public AiChatSettings Chat { get; set; } = new();\n\n /// <summary>Ключ провайдера для существующего кода чата (Ollama, Anthropic, …).</summary>\n public string ResolveEffectiveProviderUiKey()\n {\n return NormalizeMode(Mode) switch\n {\n \"local\" => \"Ollama\",\n \"acp\" => \"CursorACP\",\n \"mcp_only\" => \"Ollama\",\n \"cloud\" => NormalizeCloudProvider(Cloud.ActiveProvider) switch\n {\n \"anthropic\" => \"Anthropic\",\n \"openai\" => \"OpenAI\",\n \"deepseek\" => \"DeepSeek\",\n _ => \"Anthropic\"\n },\n _ => \"Ollama\"\n };\n }\n\n public static string NormalizeMode(string? mode)\n {\n var m = (mode ?? \"local\").Trim().ToLowerInvariant();\n return m is \"local\" or \"acp\" or \"mcp_only\" or \"cloud\" ? m : \"local\";\n }\n\n public static string NormalizeCloudProvider(string? p)\n {\n var x = (p ?? \"anthropic\").Trim().ToLowerInvariant();\n return x is \"anthropic\" or \"openai\" or \"deepseek\" ? x : \"anthropic\";\n }\n}\n\n/// <summary>TOML: <c>[ai.local]</c> и <c>[ai.local.ollama]</c>.</summary>\npublic sealed class AiLocalSettings\n{\n /// <summary>Например <c>ollama</c>; должен совпадать с активной подтаблицей.</summary>\n public string Backend { get; set; } = \"ollama\";\n\n public AiLocalOllamaSettings Ollama { get; set; } = new();\n}\n\n/// <summary>TOML: <c>[ai.local.ollama]</c>.</summary>\npublic sealed class AiLocalOllamaSettings\n{\n public string Model { get; set; } = \"qwen2.5-coder:7b\";\n}\n\n/// <summary>TOML: <c>[ai.acp]</c>.</summary>\npublic sealed class AiAcpSettings\n{\n public string CursorAcpPath { get; set; } = \"\";\n\n /// <summary>TOML: <c>cursor_acp_path_env</c> — <c>PATH</c> или имя переменной с путём (ADR 0149).</summary>\n public string CursorAcpPathEnv { get; set; } = \"\";\n\n public string CursorAcpModelId { get; set; } = \"\";\n\n public string ResolveCursorAcpPath() =>\n SettingsEnvResolver.ResolveLaunchPath(CursorAcpPath, CursorAcpPathEnv);\n}\n\n/// <summary>TOML: <c>[ai.mcp_only]</c> — зарезервировано под флаги режима.</summary>\npublic sealed class AiMcpOnlySettings\n{\n}\n\n/// <summary>TOML: <c>[ai.cloud]</c> и <c>[ai.cloud.*]</c>.</summary>\npublic sealed class AiCloudSettings\n{\n public string ActiveProvider { get; set; } = \"anthropic\";\n\n [JsonPropertyName(\"anthropic\")]\n public AiCloudAnthropicSettings Anthropic { get; set; } = new();\n\n [JsonPropertyName(\"openai\")]\n public AiCloudOpenAiSettings OpenAi { get; set; } = new();\n\n [JsonPropertyName(\"deepseek\")]\n public AiCloudDeepSeekSettings DeepSeek { get; set; } = new();\n}\n\npublic sealed class AiCloudAnthropicSettings\n{\n public string Model { get; set; } = \"claude-sonnet-4-20250514\";\n}\n\npublic sealed class AiCloudOpenAiSettings\n{\n public string BaseUrl { get; set; } = \"https://api.openai.com\";\n\n public string Model { get; set; } = \"gpt-4o\";\n}\n\npublic sealed class AiCloudDeepSeekSettings\n{\n public string BaseUrl { get; set; } = \"https://api.deepseek.com\";\n\n public string Model { get; set; } = \"deepseek-chat\";\n}\n\n/// <summary>TOML: <c>[ai.chat]</c>.</summary>\npublic sealed class AiChatSettings\n{\n /// <summary><c>mfd</c> | <c>window</c>.</summary>\n public string SettingsPresentation { get; set; } = \"mfd\";\n\n public bool ShowThinkingInHistory { get; set; } = true;\n}\n"}, "7d8ebb7a322607995e9bba7aebd99cfa9d8bf8ab": {"t": 1785760476.712415, "n": 3681, "h": "3075c0031591bf8a", "c": "using System.Text.Json.Serialization;\n\nnamespace CascadeIDE.Models;\n\n/// <summary>Контур AI в <c>[ai]</c> (<c>settings.toml</c>). ADR 0083: <c>mode</c> и вложенные таблицы.</summary>\npublic sealed class AiSettings\n{\n /// <summary>Один из: <c>local</c>, <c>acp</c>, <c>mcp_only</c>, <c>cloud</c>.</summary>\n public string Mode { get; set; } = \"local\";\n\n public AiLocalSettings Local { get; set; } = new();\n\n public AiAcpSettings Acp { get; set; } = new();\n\n public AiMcpOnlySettings McpOnly { get; set; } = new();\n\n public AiCloudSettings Cloud { get; set; } = new();\n\n public AiChatSettings Chat { get; set; } = new();\n\n /// <summary>Ключ провайдера для существующего кода чата (Ollama, Anthropic, …).</summary>\n public string ResolveEffectiveProviderUiKey()\n {\n return NormalizeMode(Mode) switch\n {\n \"local\" => \"Ollama\",\n \"acp\" => \"CursorACP\",\n \"mcp_only\" => \"Ollama\",\n \"cloud\" => NormalizeCloudProvider(Cloud.ActiveProvider) switch\n {\n \"anthropic\" => \"Anthropic\",\n \"openai\" => \"OpenAI\",\n \"deepseek\" => \"DeepSeek\",\n _ => \"Anthropic\"\n },\n _ => \"Ollama\"\n };\n }\n\n public static string NormalizeMode(string? mode)\n {\n var m = (mode ?? \"local\").Trim().ToLowerInvariant();\n return m is \"local\" or \"acp\" or \"mcp_only\" or \"cloud\" ? m : \"local\";\n }\n\n public static string NormalizeCloudProvider(string? p)\n {\n var x = (p ?? \"anthropic\").Trim().ToLowerInvariant();\n return x is \"anthropic\" or \"openai\" or \"deepseek\" ? x : \"anthropic\";\n }\n}\n\n/// <summary>TOML: <c>[ai.local]</c> и <c>[ai.local.ollama]</c>.</summary>\npublic sealed class AiLocalSettings\n{\n /// <summary>Например <c>ollama</c>; должен совпадать с активной подтаблицей.</summary>\n public string Backend { get; set; } = \"ollama\";\n\n public AiLocalOllamaSettings Ollama { get; set; } = new();\n}\n\n/// <summary>TOML: <c>[ai.local.ollama]</c>.</summary>\npublic sealed class AiLocalOllamaSettings\n{\n public string Model { get; set; } = \"qwen2.5-coder:7b\";\n}\n\n/// <summary>TOML: <c>[ai.acp]</c>.</summary>\npublic sealed class AiAcpSettings\n{\n public string CursorAcpPath { get; set; } = \"\";\n\n public string CursorAcpModelId { get; set; } = \"\";\n}\n\n/// <summary>TOML: <c>[ai.mcp_only]</c> — зарезервировано под флаги режима.</summary>\npublic sealed class AiMcpOnlySettings\n{\n}\n\n/// <summary>TOML: <c>[ai.cloud]</c> и <c>[ai.cloud.*]</c>.</summary>\npublic sealed class AiCloudSettings\n{\n public string ActiveProvider { get; set; } = \"anthropic\";\n\n [JsonPropertyName(\"anthropic\")]\n public AiCloudAnthropicSettings Anthropic { get; set; } = new();\n\n [JsonPropertyName(\"openai\")]\n public AiCloudOpenAiSettings OpenAi { get; set; } = new();\n\n [JsonPropertyName(\"deepseek\")]\n public AiCloudDeepSeekSettings DeepSeek { get; set; } = new();\n}\n\npublic sealed class AiCloudAnthropicSettings\n{\n public string Model { get; set; } = \"claude-sonnet-4-20250514\";\n}\n\npublic sealed class AiCloudOpenAiSettings\n{\n public string BaseUrl { get; set; } = \"https://api.openai.com\";\n\n public string Model { get; set; } = \"gpt-4o\";\n}\n\npublic sealed class AiCloudDeepSeekSettings\n{\n public string BaseUrl { get; set; } = \"https://api.deepseek.com\";\n\n public string Model { get; set; } = \"deepseek-chat\";\n}\n\n/// <summary>TOML: <c>[ai.chat]</c>.</summary>\npublic sealed class AiChatSettings\n{\n /// <summary><c>mfd</c> | <c>window</c>.</summary>\n public string SettingsPresentation { get; set; } = \"mfd\";\n\n public bool ShowThinkingInHistory { get; set; } = true;\n}\n"}, "93ccfed5b94f2a499e1c6d6822bf925eb4f805f1": {"t": 1785760478.9009008, "n": 1968, "h": "211a55aeb07059f2", "c": "namespace CascadeIDE.Models;\n\n/// <summary>AI-провайдеры, модели и путь Cursor ACP (<c>[ai]</c> в <c>settings.toml</c>).</summary>\npublic sealed class AiSettings\n{\n /// <summary>Ollama-модель по умолчанию для чата (TOML: <c>default_ollama_model</c>).</summary>\n public string DefaultOllamaModel { get; set; } = \"qwen2.5-coder:7b\";\n\n /// <summary>Активный провайдер: Ollama, Anthropic, OpenAI, DeepSeek, CursorACP (TOML: <c>provider</c>).</summary>\n public string Provider { get; set; } = \"Ollama\";\n\n public string AnthropicModel { get; set; } = \"claude-sonnet-4-20250514\";\n public string OpenAiBaseUrl { get; set; } = \"https://api.openai.com\";\n public string OpenAiModel { get; set; } = \"gpt-4o\";\n public string DeepSeekBaseUrl { get; set; } = \"https://api.deepseek.com\";\n public string DeepSeekModel { get; set; } = \"deepseek-chat\";\n\n /// <summary>Путь к <c>cursor-agent.cmd</c> или каталогу с <c>dist-package\\\\cursor-agent.cmd</c>; если пусто — поиск <c>cursor-agent</c> в PATH (TOML: <c>cursor_acp_path</c>).</summary>\n public string CursorAcpPath { get; set; } = \"\";\n\n /// <summary>\n /// Где показывать «Параметры AI и чата»: <c>mfd</c> — страница вторичного контура (зона Mfd); <c>window</c> — отдельное окно со всеми настройками (TOML: <c>ai_chat_settings_presentation</c>).\n /// </summary>\n public string AiChatSettingsPresentation { get; set; } = \"mfd\";\n\n /// <summary>\n /// Не вызывать встроенный провайдер (Ollama/облако/Cursor ACP) после отправки user-сообщения — ответы только через внешний MCP (<c>send_chat</c> с <c>role=assistant</c>). TOML: <c>chat_mcp_only</c>.\n /// </summary>\n public bool ChatMcpOnly { get; set; }\n\n /// <summary>\n /// Показывать reasoning/thinking сообщения в истории после завершения ответа. Если false — thinking виден только во время стриминга. TOML: <c>show_thinking_in_history</c>.\n /// </summary>\n public bool ShowThinkingInHistory { get; set; } = true;\n}\n"}, "9616a050ff590489a09f8ee186ba41fbba03d662": {"t": 1785760482.2228022, "n": 1646, "h": "d42cf59a400f9177", "c": "namespace CascadeIDE.Models;\n\n/// <summary>AI-провайдеры, модели и путь Cursor ACP (<c>[ai]</c> в <c>settings.toml</c>).</summary>\npublic sealed class AiSettings\n{\n /// <summary>Ollama-модель по умолчанию для чата (TOML: <c>default_ollama_model</c>).</summary>\n public string DefaultOllamaModel { get; set; } = \"qwen2.5-coder:7b\";\n\n /// <summary>Активный провайдер: Ollama, Anthropic, OpenAI, DeepSeek, CursorACP (TOML: <c>provider</c>).</summary>\n public string Provider { get; set; } = \"Ollama\";\n\n public string AnthropicModel { get; set; } = \"claude-sonnet-4-20250514\";\n public string OpenAiBaseUrl { get; set; } = \"https://api.openai.com\";\n public string OpenAiModel { get; set; } = \"gpt-4o\";\n public string DeepSeekBaseUrl { get; set; } = \"https://api.deepseek.com\";\n public string DeepSeekModel { get; set; } = \"deepseek-chat\";\n\n /// <summary>Путь к <c>cursor-agent.cmd</c> или каталогу с <c>dist-package\\\\cursor-agent.cmd</c> (TOML: <c>cursor_acp_path</c>).</summary>\n public string CursorAcpPath { get; set; } = \"\";\n\n /// <summary>\n /// Где показывать «Параметры AI и чата»: <c>mfd</c> — страница вторичного контура (зона Mfd); <c>window</c> — отдельное окно со всеми настройками (TOML: <c>ai_chat_settings_presentation</c>).\n /// </summary>\n public string AiChatSettingsPresentation { get; set; } = \"mfd\";\n\n /// <summary>\n /// Не вызывать встроенный провайдер (Ollama/облако/Cursor ACP) после отправки user-сообщения — ответы только через внешний MCP (<c>send_chat</c> с <c>role=assistant</c>). TOML: <c>chat_mcp_only</c>.\n /// </summary>\n public bool ChatMcpOnly { get; set; }\n}\n"}, "713be2241fe15695a3d44fa799a83ca54f71703a": {"t": 1785760483.6246045, "n": 1676, "h": "ed9c1d287d25a3f2", "c": "namespace CascadeIDE.Models;\r\n\r\n/// <summary>AI-провайдеры, модели и путь Cursor ACP (<c>[ai]</c> в <c>settings.toml</c>).</summary>\r\npublic sealed class AiSettings\r\n{\r\n /// <summary>Ollama-модель по умолчанию для чата (TOML: <c>default_ollama_model</c>).</summary>\r\n public string DefaultOllamaModel { get; set; } = \"qwen2.5-coder:7b\";\r\n\r\n /// <summary>Активный провайдер: Ollama, Anthropic, OpenAI, DeepSeek, CursorACP (TOML: <c>provider</c>).</summary>\r\n public string Provider { get; set; } = \"Ollama\";\r\n\r\n public string AnthropicModel { get; set; } = \"claude-sonnet-4-20250514\";\r\n public string OpenAiBaseUrl { get; set; } = \"https://api.openai.com\";\r\n public string OpenAiModel { get; set; } = \"gpt-4o\";\r\n public string DeepSeekBaseUrl { get; set; } = \"https://api.deepseek.com\";\r\n public string DeepSeekModel { get; set; } = \"deepseek-chat\";\r\n\r\n /// <summary>Путь к <c>cursor-agent.cmd</c> или каталогу с <c>dist-package\\\\cursor-agent.cmd</c> (TOML: <c>cursor_acp_path</c>).</summary>\r\n public string CursorAcpPath { get; set; } = \"\";\r\n\r\n /// <summary>\r\n /// Где показывать «Параметры AI и чата»: <c>mfd</c> — страница вторичного контура (зона Mfd); <c>window</c> — отдельное окно со всеми настройками (TOML: <c>ai_chat_settings_presentation</c>).\r\n /// </summary>\r\n public string AiChatSettingsPresentation { get; set; } = \"mfd\";\r\n\r\n /// <summary>\r\n /// Не вызывать встроенный провайдер (Ollama/облако/Cursor ACP) после отправки user-сообщения — ответы только через внешний MCP (<c>send_chat</c> с <c>role=assistant</c>). TOML: <c>chat_mcp_only</c>.\r\n /// </summary>\r\n public bool ChatMcpOnly { get; set; }\r\n}\r\n"}, "b728906672d4341efff115bc806386763288954e": {"t": 1785760485.8993125, "n": 1646, "h": "d42cf59a400f9177", "c": "namespace CascadeIDE.Models;\n\n/// <summary>AI-провайдеры, модели и путь Cursor ACP (<c>[ai]</c> в <c>settings.toml</c>).</summary>\npublic sealed class AiSettings\n{\n /// <summary>Ollama-модель по умолчанию для чата (TOML: <c>default_ollama_model</c>).</summary>\n public string DefaultOllamaModel { get; set; } = \"qwen2.5-coder:7b\";\n\n /// <summary>Активный провайдер: Ollama, Anthropic, OpenAI, DeepSeek, CursorACP (TOML: <c>provider</c>).</summary>\n public string Provider { get; set; } = \"Ollama\";\n\n public string AnthropicModel { get; set; } = \"claude-sonnet-4-20250514\";\n public string OpenAiBaseUrl { get; set; } = \"https://api.openai.com\";\n public string OpenAiModel { get; set; } = \"gpt-4o\";\n public string DeepSeekBaseUrl { get; set; } = \"https://api.deepseek.com\";\n public string DeepSeekModel { get; set; } = \"deepseek-chat\";\n\n /// <summary>Путь к <c>cursor-agent.cmd</c> или каталогу с <c>dist-package\\\\cursor-agent.cmd</c> (TOML: <c>cursor_acp_path</c>).</summary>\n public string CursorAcpPath { get; set; } = \"\";\n\n /// <summary>\n /// Где показывать «Параметры AI и чата»: <c>mfd</c> — страница вторичного контура (зона Mfd); <c>window</c> — отдельное окно со всеми настройками (TOML: <c>ai_chat_settings_presentation</c>).\n /// </summary>\n public string AiChatSettingsPresentation { get; set; } = \"mfd\";\n\n /// <summary>\n /// Не вызывать встроенный провайдер (Ollama/облако/Cursor ACP) после отправки user-сообщения — ответы только через внешний MCP (<c>send_chat</c> с <c>role=assistant</c>). TOML: <c>chat_mcp_only</c>.\n /// </summary>\n public bool ChatMcpOnly { get; set; }\n}\n"}, "3493c2d1f08263e575de65a4aec1ea6fc7e58e67": {"t": 1785760489.6121445, "n": 1362, "h": "9e8c48922bde5689", "c": "namespace CascadeIDE.Models;\n\n/// <summary>AI-провайдеры, модели и путь Cursor ACP (<c>[ai]</c> в <c>settings.toml</c>).</summary>\npublic sealed class AiSettings\n{\n /// <summary>Ollama-модель по умолчанию для чата (TOML: <c>default_ollama_model</c>).</summary>\n public string DefaultOllamaModel { get; set; } = \"qwen2.5-coder:7b\";\n\n /// <summary>Активный провайдер: Ollama, Anthropic, OpenAI, DeepSeek, CursorACP (TOML: <c>provider</c>).</summary>\n public string Provider { get; set; } = \"Ollama\";\n\n public string AnthropicModel { get; set; } = \"claude-sonnet-4-20250514\";\n public string OpenAiBaseUrl { get; set; } = \"https://api.openai.com\";\n public string OpenAiModel { get; set; } = \"gpt-4o\";\n public string DeepSeekBaseUrl { get; set; } = \"https://api.deepseek.com\";\n public string DeepSeekModel { get; set; } = \"deepseek-chat\";\n\n /// <summary>Путь к <c>cursor-agent.cmd</c> или каталогу с <c>dist-package\\\\cursor-agent.cmd</c> (TOML: <c>cursor_acp_path</c>).</summary>\n public string CursorAcpPath { get; set; } = \"\";\n\n /// <summary>\n /// Где показывать «Параметры AI и чата»: <c>mfd</c> — страница вторичного контура (зона Mfd); <c>window</c> — отдельное окно со всеми настройками (TOML: <c>ai_chat_settings_presentation</c>).\n /// </summary>\n public string AiChatSettingsPresentation { get; set; } = \"mfd\";\n}\n"}, "715bc9a08e27e31f5efee1369f27ae4c509046e3": {"t": 1785760490.8713155, "n": 1099, "h": "e4d8b2c6f25bc92b", "c": "namespace CascadeIDE.Models;\r\r\n\r\r\n/// <summary>AI-провайдеры, модели и путь Cursor ACP (<c>[ai]</c> в <c>settings.toml</c>).</summary>\r\r\npublic sealed class AiSettings\r\r\n{\r\r\n /// <summary>Ollama-модель по умолчанию для чата (TOML: <c>default_ollama_model</c>).</summary>\r\r\n public string DefaultOllamaModel { get; set; } = \"qwen2.5-coder:7b\";\r\r\n\r\r\n /// <summary>Активный провайдер: Ollama, Anthropic, OpenAI, DeepSeek, CursorACP (TOML: <c>provider</c>).</summary>\r\r\n public string Provider { get; set; } = \"Ollama\";\r\r\n\r\r\n public string AnthropicModel { get; set; } = \"claude-sonnet-4-20250514\";\r\r\n public string OpenAiBaseUrl { get; set; } = \"https://api.openai.com\";\r\r\n public string OpenAiModel { get; set; } = \"gpt-4o\";\r\r\n public string DeepSeekBaseUrl { get; set; } = \"https://api.deepseek.com\";\r\r\n public string DeepSeekModel { get; set; } = \"deepseek-chat\";\r\r\n\r\r\n /// <summary>Путь к <c>cursor-agent.cmd</c> или каталогу с <c>dist-package\\\\cursor-agent.cmd</c> (TOML: <c>cursor_acp_path</c>).</summary>\r\r\n public string CursorAcpPath { get; set; } = \"\";\r\r\n}\r\r\n"}}}}