| 1 | namespace CascadeIDE.Services; |
| 2 | |
| 3 | /// <summary>Решение, обозреватель, диагностики и сводка workspace (ide_execute_command).</summary> |
| 4 | public static partial class IdeCommands |
| 5 | { |
| 6 | /// <summary>Короткая информация о текущем решении/файле/выделении в дереве. returns: json.</summary> |
| 7 | public const string GetSolutionInfo = "get_solution_info"; |
| 8 | /// <summary>Список файлов и дерево решения (Solution Explorer). returns: json.</summary> |
| 9 | public const string GetSolutionFiles = "get_solution_files"; |
| 10 | /// <summary>Поиск текста по workspace через ripgrep: вызывается команда <c>rg</c> из PATH (Windows/Linux/macOS — поставь пакетом или с релиза). Явный путь: только <c>rg_path</c>. args: pattern:string, subpath?:string, fixed_string?:boolean, glob?:string, max_matches?:integer, rg_path?:string; returns: json; example: {\"pattern\":\"LoadSolution\",\"glob\":\"*.cs\",\"max_matches\":50}.</summary> |
| 11 | public const string SearchWorkspaceText = "search_workspace_text"; |
| 12 | /// <summary>Диагностики текущего открытого .cs (ошибки/предупреждения). returns: json.</summary> |
| 13 | public const string GetCurrentFileDiagnostics = "get_current_file_diagnostics"; |
| 14 | /// <summary>Единая сводка состояния IDE (solution/editor/build/diagnostics...). returns: json.</summary> |
| 15 | public const string GetIdeState = "get_ide_state"; |
| 16 | /// <summary>Только CDS (<c>CockpitSurfaceState</c>): тот же payload, что поле <c>cockpit_surface</c> в <c>get_ide_state</c>. returns: json. Для <c>--agent-contract</c> без полной сводки.</summary> |
| 17 | public const string GetCockpitSurface = "get_cockpit_surface"; |
| 18 | /// <summary>Диагностика загрузки UI-режимов: пути к UiModes, TOML vs встроенный fallback, список id в меню (почему может не быть Flight). returns: json.</summary> |
| 19 | public const string GetUiModesDiagnostics = "get_ui_modes_diagnostics"; |
| 20 | /// <summary>Контекст навигации по коду (ADR 0039, CNC): связанные файлы или мини-подграф. Виды связей — partial_peer project_peer xaml_codebehind_pair test_counterpart same_namespace same_directory. Имена preset — из settings.toml <c>[code_navigation]</c> / <c>[[code_navigation.presets]]</c>. args: mode:string, file_path?:string, line?:integer, column?:integer, max_related?:integer, max_nodes?:integer, max_edges?:integer, preset?:string, include_kinds?:string[], exclude_kinds?:string[], level?:string; returns: json; example: {"mode":"related","file_path":"src/Foo.cs","preset":"no_namespace_noise","level":"controlFlow"}.</summary> |
| 21 | public const string GetCodeNavigationContext = "get_code_navigation_context"; |
| 22 | /// <summary>Выбрать сообщение в чате. args: ordinal?:integer, end_ordinal?:integer, index?:integer; returns: text; example: {"ordinal":3}. ordinal/end_ordinal — 1-based gutter активной detail-ветки; index — 0-based глобальный ChatMessages.</summary> |
| 23 | public const string ChatSelectMessage = "chat_select_message"; |
| 24 | /// <summary>Сместить выбор на предыдущее сообщение чата (keyboard-first). returns: text.</summary> |
| 25 | public const string ChatSelectPrevMessage = "chat_select_prev_message"; |
| 26 | /// <summary>Сместить выбор на следующее сообщение чата (keyboard-first). returns: text.</summary> |
| 27 | public const string ChatSelectNextMessage = "chat_select_next_message"; |
| 28 | /// <summary>Переключить у выбранного thinking-сообщения свёрнутый/полный вид. returns: text.</summary> |
| 29 | public const string ChatToggleSelectedThinking = "chat_toggle_selected_thinking"; |
| 30 | /// <summary>Переключить настройку show_thinking_in_history (keyboard-first toggle). returns: text.</summary> |
| 31 | public const string ChatToggleShowThinkingInHistory = "chat_toggle_show_thinking_in_history"; |
| 32 | /// <summary>Выбрать предыдущую тему в overview (циклически). returns: text.</summary> |
| 33 | public const string ChatSelectPrevThread = "chat_select_prev_thread"; |
| 34 | /// <summary>Выбрать следующую тему в overview (циклически). returns: text.</summary> |
| 35 | public const string ChatSelectNextThread = "chat_select_next_thread"; |
| 36 | /// <summary>Открыть detail выбранной темы. returns: text.</summary> |
| 37 | public const string ChatOpenSelectedThread = "chat_open_selected_thread"; |
| 38 | /// <summary>Вернуться в overview тем (карточки). returns: text.</summary> |
| 39 | public const string ChatShowThreadOverview = "chat_show_thread_overview"; |
| 40 | /// <summary>Включить/выключить сжатый spine в исходящих сообщениях агенту. returns: text.</summary> |
| 41 | public const string ChatToggleProductSpineInAgentContext = "chat_toggle_product_spine_in_agent_context"; |
| 42 | /// <summary>Прочитать сквозную линию продукта (spine) сессии. returns: json.</summary> |
| 43 | public const string ChatGetProductSpine = "chat_get_product_spine"; |
| 44 | /// <summary>Обновить spine (частично): переданные поля перезаписываются; milestones — многострочный текст (веха на строку). args: line_title?:string, current_focus?:string, milestones?:string, include_in_agent_context?:boolean; returns: text; example: {"current_focus":"Topic cards + spine MCP","milestones":"ADR 0096\\nMCP get/set"}.</summary> |
| 45 | public const string ChatSetProductSpine = "chat_set_product_spine"; |
| 46 | /// <summary>Получить выбранное сообщение чата в JSON. returns: json. Поля: selected_index, feed_ordinal, branch_message_count, message_id, role, content.</summary> |
| 47 | public const string ChatGetSelectedMessage = "chat_get_selected_message"; |
| 48 | /// <summary>Заменить текст ответа ассистента по стабильному message_id; в лог пишется message_edited. args: message_id:string, new_content:string, reason?:string; returns: json; example: {"message_id":"a1b2c3d4e5f6789012345678901234ab","new_content":"fixed text"}.</summary> |
| 49 | public const string ChatEditMessage = "chat_edit_message"; |
| 50 | /// <summary>Экспорт текущего чата в читаемый Markdown (роли, индексы, message_id). Поддерживаемый сценарий — явно подвести итоги длинной сессии: экспорт, затем краткое смысловое резюме и согласование с пользователем (см. MCP-PROTOCOL.md, раздел «Подведение итогов сессии чата»). args: write_file?:boolean, file_name?:string; returns: json; example: {"write_file":true}.</summary> |
| 51 | public const string ChatExportReadable = "chat_export_readable"; |
| 52 | /// <summary>SEDM scope strip one-liner активной workline (T2+T1). returns: json; example: {}.</summary> |
| 53 | public const string ChatGetSedmScope = "chat_get_sedm_scope"; |
| 54 | /// <summary>Записать intent card (T1) в event log. args: outcome:string, trigger?:string, chosen_approach?:string, selection_rationale?:string, considered?:object[]; returns: text; example: {"outcome":"scope strip shows open worklines","chosen_approach":"meta projection","considered":[{"approach":"New Chat","rejected_because":"flat chat"}]}.</summary> |
| 55 | public const string ChatRecordSedmIntent = "chat_record_sedm_intent"; |
| 56 | /// <summary>Записать decision_recorded (агент). args: outcome:string, chosen_approach?:string, selection_rationale?:string, considered?:object[], findings?:object[], touched_paths?:string[], revision?:string; returns: text; example: {"outcome":"S1 events in log","chosen_approach":"append-only","touched_paths":["Features/Chat/Foo.cs"]}.</summary> |
| 57 | public const string ChatRecordSedmDecision = "chat_record_sedm_decision"; |
| 58 | /// <summary>Переключить <c>primary_work_surface</c> intercom ↔ editor (ADR 0120). returns: text.</summary> |
| 59 | public const string TogglePrimaryWorkSurface = "toggle_primary_work_surface"; |
| 60 | /// <summary>Установить якорь Forward: <c>intercom</c> | <c>editor</c>. args: surface:string; returns: text; example: {"surface":"intercom"}.</summary> |
| 61 | public const string SetPrimaryWorkSurface = "set_primary_work_surface"; |
| 62 | /// <summary>Добавить проект в открытое решение: <c>dotnet new</c> (console|classlib|webapi) + <c>dotnet sln add</c>. args: template:string, project_name:string; returns: json; example: {"template":"console","project_name":"MyApp"}.</summary> |
| 63 | public const string CreateProjectInSolution = "create_project_in_solution"; |
| 64 | } |
| 65 | |