| 1 | namespace CascadeIDE.Models; |
| 2 | |
| 3 | /// <summary>Agent-centric harness (ADR 0166). TOML: <c>[agent.harness]</c>.</summary> |
| 4 | public sealed class AgentHarnessSettings |
| 5 | { |
| 6 | /// <summary>После загрузки Intercom-сессии вызвать <c>read_hot_context</c> in-proc (P0.1 interim).</summary> |
| 7 | public bool LoadHotContextOnSessionStart { get; set; } = true; |
| 8 | |
| 9 | /// <summary>После <c>/topic create</c> / fork — обновить hot block для ветки.</summary> |
| 10 | public bool LoadHotContextOnTopicFork { get; set; } = true; |
| 11 | |
| 12 | /// <summary>Опциональный <c>active_scope</c> для read_hot_context.</summary> |
| 13 | public string? HotContextActiveScope { get; set; } |
| 14 | |
| 15 | /// <summary>Видимый checkpoint в ленте (P0.2 parity с Cursor stop hook).</summary> |
| 16 | public bool CheckpointEnabled { get; set; } = true; |
| 17 | |
| 18 | public int CheckpointThresholdUserTurns { get; set; } = 40; |
| 19 | |
| 20 | public int CheckpointRepeatEveryUserTurns { get; set; } = 40; |
| 21 | |
| 22 | /// <summary>Coalesced <c>ide_agent_verify</c> после записи <c>.cs</c> (P0.4).</summary> |
| 23 | public bool AutoVerifyAfterCsWrite { get; set; } = true; |
| 24 | |
| 25 | /// <summary>До loopback MCP (0082): не поднимать второй CascadeIDE для Cursor ACP — MAF/cloud используют in-proc.</summary> |
| 26 | public bool SuppressAcpIdeStdioInject { get; set; } = true; |
| 27 | |
| 28 | /// <summary>Длинная ветка темы — видимый ADCM pressure inject (P0.2).</summary> |
| 29 | public bool CheckpointOnContextPressure { get; set; } = true; |
| 30 | |
| 31 | /// <summary>Сообщений в активной теме до ADCM context-pressure предупреждения.</summary> |
| 32 | public int ContextPressureThreadMessageThreshold { get; set; } = 60; |
| 33 | |
| 34 | public int ContextPressureRepeatEveryMessages { get; set; } = 30; |
| 35 | |
| 36 | /// <summary>Блок harness telemetry в minimized/MAF context (P2.3).</summary> |
| 37 | public bool InjectHarnessTelemetryInContext { get; set; } = true; |
| 38 | |
| 39 | /// <summary>Порог предупреждения: prompt tokens хода ≥ N% <c>max_model_len</c> (FM catalog).</summary> |
| 40 | public int ContextWarnPct { get; set; } = 75; |
| 41 | |
| 42 | /// <summary>После <c>/topic create</c> — шаблон brief в поле ввода (P1.2).</summary> |
| 43 | public bool InjectTopicForkBrief { get; set; } = true; |
| 44 | |
| 45 | /// <summary>Пусто = встроенный 3-line brief.</summary> |
| 46 | public string? TopicForkBriefTemplate { get; set; } |
| 47 | } |
| 48 | |