Forge
csharp4405de34
1using CascadeIDE.Features.WebAiPortal.Application;
2using CommunityToolkit.Mvvm.ComponentModel;
3
4namespace CascadeIDE.ViewModels;
5
6/// <summary>Страница MFD «веб-портал» (ADR 0108): URL, результат последнего вызова моста, <see cref="WebAiPortalCommandBridge"/>.</summary>
7public partial class MainWindowViewModel
8{
9 private readonly WebAiPortalCommandBridge _webAiPortalBridge;
10
11 /// <summary>Мост <c>invokeCSharpAction</c> → IdeCommands (whitelist).</summary>
12 public WebAiPortalCommandBridge WebAiPortalBridge => _webAiPortalBridge;
13
14 [ObservableProperty]
15 private string _webAiPortalUrlText = "about:blank";
16
17 [ObservableProperty]
18 private string _webAiPortalLastBridgeResult = "";
19
20 /// <summary>После ответа моста копировать полный текст в системный буфер (удобная вставка в веб-чат).</summary>
21 [ObservableProperty]
22 private bool _webAiPortalCopyFullBridgeResultToClipboard = true;
23
24 /// <summary>Пробовать дописать ответ IDE в активное поле страницы (textarea/input/contenteditable; эвристика).</summary>
25 [ObservableProperty]
26 private bool _webAiPortalTryInjectResultIntoFocusedComposer;
27
28 /// <summary>Если ответ моста длинный — подмешивать компакт с HCI/<c>json-cascade</c>, а не сырой JSON (лимиты веб-чата).</summary>
29 [ObservableProperty]
30 private bool _webAiPortalPreferCompactComposerForChat = true;
31
32 /// <summary>
33 /// Авто-цикл ADR 0108: периодически искать последнюю <c>json-cascade</c> в DOM и выполнять мост без кнопки и без буфера обмена.
34 /// Требует «Принял политику» и «Мост включён». Отправка сообщения на стороне сайта — по-прежнему задача веб-UI (IDE не жмёт Send).
35 /// </summary>
36 [ObservableProperty]
37 private bool _webAiPortalAutoDomBridgePolling;
38}
39
View only · write via MCP/CIDE