@codingame/monaco-vscode-chat-service-override 26.2.2 → 27.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/index.js +31 -1
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +15 -0
  4. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +53 -0
  5. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +219 -0
  6. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +39 -0
  7. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +83 -0
  8. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +123 -0
  9. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +274 -0
  10. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +71 -0
  11. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +284 -0
  12. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +79 -0
  13. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +378 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -2
  15. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +27 -40
  16. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +9 -3
  17. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +74 -18
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +1 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +54 -8
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +87 -53
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +71 -15
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +43 -21
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +22 -3
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +1 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +154 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -8
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +53 -43
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +4 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +84 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +1 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +33 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -29
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +13 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +16 -16
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +12 -12
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +33 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +204 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +77 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +541 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +10 -11
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -65
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +7 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +27 -18
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.d.ts +1 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +4 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +2 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +90 -51
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +20 -5
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +43 -27
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +7 -2
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +3 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +84 -22
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.d.ts → localAgentSessionsController.d.ts} +7 -4
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.js → localAgentSessionsController.js} +24 -17
  67. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +23 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +171 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +48 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +19 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +181 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +943 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.d.ts +1 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +248 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +57 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +27 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +118 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +727 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +22 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +38 -0
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +1 -0
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +72 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +45 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +165 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +75 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +623 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +858 -0
  88. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +2 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +30 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.d.ts +32 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.js +26 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +19 -3
  93. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +36 -26
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +529 -363
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +18 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +419 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +12 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +46 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +34 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +198 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +55 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +305 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.d.ts +23 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +64 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +5 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +84 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +27 -0
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +110 -0
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +34 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +111 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +71 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +611 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +125 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +504 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.d.ts +10 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +914 -0
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +19 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +128 -0
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +58 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +429 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +31 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +113 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +14 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +126 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +38 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +279 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +18 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +122 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +45 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.js +85 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +781 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +5 -22
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +2 -1
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +12 -12
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +16 -15
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +63 -76
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +26 -15
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +2 -2
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +15 -7
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +40 -413
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +10 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +38 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +5 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +56 -46
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +15 -11
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +52 -0
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +138 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +11 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +166 -41
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +6 -0
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +37 -23
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +15 -0
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +351 -0
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +118 -63
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +28 -0
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +182 -13
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +892 -41
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +5 -1
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +55 -25
  174. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +28 -19
  175. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.d.ts +14 -0
  176. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.js +62 -0
  177. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +36 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +110 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.d.ts +10 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.js +39 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +3 -3
  182. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +6 -6
  183. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.d.ts +10 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.js +39 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +27 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +102 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  188. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +16 -1
  189. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +69 -47
  190. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +2 -41
  191. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +7 -7
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.d.ts +4 -0
  195. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +8 -8
  196. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  197. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +4 -4
  199. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +22 -0
  200. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +76 -0
  201. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +5 -0
  202. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +30 -0
  203. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +43 -31
  204. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +67 -42
  205. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +31 -0
  206. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +242 -0
  207. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +34 -0
  208. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +45 -0
  209. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  210. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +33 -0
  211. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +311 -0
  212. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.d.ts +4 -0
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +10 -1
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +10 -10
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +8 -9
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +64 -26
  218. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +4 -2
  219. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +2 -2
  221. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.d.ts +15 -4
  222. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +42 -8
  223. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +8 -1
  224. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +58 -31
  225. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +6 -5
  226. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -20
  227. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +15 -6
  228. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +39 -0
  229. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +27 -0
  230. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +190 -0
  231. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +11 -0
  232. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +36 -0
  233. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +188 -0
  234. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +18 -8
  235. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +192 -85
  236. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +2 -1
  237. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +2 -1
  238. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -6
  239. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +16 -8
  240. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +8 -4
  241. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +111 -7
  242. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +2 -0
  243. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +52 -0
  244. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +29 -0
  245. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +73 -0
  246. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +622 -0
  247. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +64 -0
  248. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +478 -0
  249. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +35 -16
  250. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +1 -30
  251. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +0 -5
  252. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +2 -8
  253. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
  254. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +8 -8
  255. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +9 -9
  256. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +23 -22
  257. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +44 -14
  258. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +345 -113
  259. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +14 -1
  260. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +34 -24
  261. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +3 -0
  262. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +13 -0
  263. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  264. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +11 -5
  265. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +23 -0
  266. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +248 -24
  267. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +6 -11
  268. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +18 -81
  269. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +2 -3
  270. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +10 -10
  271. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  272. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  273. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  274. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
  275. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  276. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +6 -2
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +35 -26
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +0 -1
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +1 -5
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +3 -3
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +4 -1
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +13 -11
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +3 -1
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +9 -0
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +280 -65
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +3 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +8 -0
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -10
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +1 -0
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +47 -19
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +8 -0
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +31 -0
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +6 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +38 -16
  311. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +0 -72
  312. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +0 -587
  313. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +0 -71
  314. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +0 -293
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +0 -2
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +0 -31
@@ -0,0 +1,727 @@
1
+
2
+ import { registerCss } from '@codingame/monaco-vscode-api/css';
3
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
+ import * as aiCustomizationManagement from './media/aiCustomizationManagement.css';
5
+ import { $ as $$1, append, Dimension, addDisposableListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
+ import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
7
+ import { DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
+ import { Delayer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
9
+ import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
10
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
11
+ import { SplitView, Sizing } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/splitview/splitview';
12
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
13
+ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
14
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
15
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
16
+ import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
17
+ import { EditorPane } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/editorPane';
18
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
19
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
20
+ import { WorkbenchList } from '@codingame/monaco-vscode-api/vscode/vs/platform/list/browser/listService';
21
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
22
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
23
+ import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
24
+ import { basename, joinPath, isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
25
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
26
+ import { registerColor } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colorUtils';
27
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/baseColors';
28
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/chartsColors';
29
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/editorColors';
30
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/inputColors';
31
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/listColors';
32
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/menuColors';
33
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/minimapColors';
34
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/miscColors';
35
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quickpickColors';
36
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
37
+ import { PANEL_BORDER } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/theme';
38
+ import { AICustomizationListWidget } from './aiCustomizationListWidget.js';
39
+ import { McpListWidget } from './mcpListWidget.js';
40
+ import { AI_CUSTOMIZATION_MANAGEMENT_EDITOR_ID, CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_EDITOR, CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_SECTION, AI_CUSTOMIZATION_MANAGEMENT_SELECTED_SECTION_KEY, AI_CUSTOMIZATION_MANAGEMENT_SIDEBAR_WIDTH_KEY, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_WIDTH, CONTENT_MIN_WIDTH } from './aiCustomizationManagement.js';
41
+ import { hookIcon, promptIcon, instructionsIcon, skillIcon, agentIcon } from './aiCustomizationIcons.js';
42
+ import { ChatModelsWidget } from '../chatManagement/chatModelsWidget.js';
43
+ import { PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
44
+ import { PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
45
+ import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
46
+ import { NEW_SKILL_COMMAND_ID, NEW_AGENT_COMMAND_ID, NEW_INSTRUCTIONS_COMMAND_ID, NEW_PROMPT_COMMAND_ID } from '@codingame/monaco-vscode-xterm-addons-common/vscode/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions';
47
+ import { showConfigureHooksQuickPick } from '../promptSyntax/hookActions.js';
48
+ import { resolveWorkspaceTargetDirectory, resolveUserTargetDirectory } from './customizationCreatorService.js';
49
+ import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
50
+ import { IAICustomizationWorkspaceService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.service';
51
+ import { CodeEditorWidget } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/codeEditor/codeEditorWidget';
52
+ import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
53
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
54
+ import { getSimpleEditorOptions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/codeEditor/browser/simpleEditorOptions';
55
+ import { IWorkingCopyService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/workingCopy/common/workingCopyService.service';
56
+ import { ITextFileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/textfile/common/textfiles.service';
57
+ import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
58
+ import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
59
+ import { HOOKS_SOURCE_FOLDER } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
60
+ import { COPILOT_CLI_HOOK_TYPE_MAP } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
61
+ import { McpServerEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/browser/mcpServerEditorInput';
62
+ import { McpServerEditor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/browser/mcpServerEditor';
63
+ import { AICustomizationManagementSection } from '../../common/aiCustomizationWorkspaceService.js';
64
+ import { Orientation } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/sash/sash';
65
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
66
+
67
+ var AICustomizationManagementEditor_1;
68
+ registerCss(aiCustomizationManagement);
69
+ const $ = $$1;
70
+ const aiCustomizationManagementSashBorder = registerColor("aiCustomizationManagement.sashBorder", PANEL_BORDER, ( localize(
71
+ 5271,
72
+ "The color of the Chat Customization Management editor splitview sash border."
73
+ )));
74
+ class SectionItemDelegate {
75
+ getHeight() {
76
+ return 26;
77
+ }
78
+ getTemplateId() {
79
+ return "sectionItem";
80
+ }
81
+ }
82
+ class SectionItemRenderer {
83
+ constructor() {
84
+ this.templateId = "sectionItem";
85
+ }
86
+ renderTemplate(container) {
87
+ container.classList.add("section-list-item");
88
+ const icon = append(container, $(".section-icon"));
89
+ const label = append(container, $(".section-label"));
90
+ return {
91
+ container,
92
+ icon,
93
+ label
94
+ };
95
+ }
96
+ renderElement(element, index, templateData) {
97
+ templateData.icon.className = "section-icon";
98
+ templateData.icon.classList.add(...ThemeIcon.asClassNameArray(element.icon));
99
+ templateData.label.textContent = element.label;
100
+ }
101
+ disposeTemplate() {}
102
+ }
103
+ let AICustomizationManagementEditor = class AICustomizationManagementEditor extends EditorPane {
104
+ static {
105
+ AICustomizationManagementEditor_1 = this;
106
+ }
107
+ static {
108
+ this.ID = AI_CUSTOMIZATION_MANAGEMENT_EDITOR_ID;
109
+ }
110
+ constructor(
111
+ group,
112
+ telemetryService,
113
+ themeService,
114
+ storageService,
115
+ instantiationService,
116
+ contextKeyService,
117
+ openerService,
118
+ commandService,
119
+ workspaceService,
120
+ promptsService,
121
+ textModelService,
122
+ configurationService,
123
+ workingCopyService,
124
+ textFileService,
125
+ fileService
126
+ ) {
127
+ super(
128
+ AICustomizationManagementEditor_1.ID,
129
+ group,
130
+ telemetryService,
131
+ themeService,
132
+ storageService
133
+ );
134
+ this.storageService = storageService;
135
+ this.instantiationService = instantiationService;
136
+ this.openerService = openerService;
137
+ this.commandService = commandService;
138
+ this.workspaceService = workspaceService;
139
+ this.promptsService = promptsService;
140
+ this.textModelService = textModelService;
141
+ this.configurationService = configurationService;
142
+ this.workingCopyService = workingCopyService;
143
+ this.textFileService = textFileService;
144
+ this.fileService = fileService;
145
+ this.editorModelChangeDisposables = this._register(( new DisposableStore()));
146
+ this.viewMode = "list";
147
+ this.mcpDetailDisposables = this._register(( new DisposableStore()));
148
+ this.sections = [];
149
+ this.selectedSection = AICustomizationManagementSection.Agents;
150
+ this.editorDisposables = this._register(( new DisposableStore()));
151
+ this.inEditorContextKey = CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_EDITOR.bindTo(contextKeyService);
152
+ this.sectionContextKey = CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_SECTION.bindTo(contextKeyService);
153
+ this._register(autorun(reader => {
154
+ this.workspaceService.activeProjectRoot.read(reader);
155
+ if (this.viewMode === "editor") {
156
+ this.currentEditingProjectRoot = this.workspaceService.getActiveProjectRoot();
157
+ }
158
+ }));
159
+ this._register(toDisposable(() => {
160
+ this.currentModelRef?.dispose();
161
+ this.currentModelRef = undefined;
162
+ }));
163
+ const sectionInfo = {
164
+ [AICustomizationManagementSection.Agents]: {
165
+ label: ( localize(5272, "Agents")),
166
+ icon: agentIcon
167
+ },
168
+ [AICustomizationManagementSection.Skills]: {
169
+ label: ( localize(5273, "Skills")),
170
+ icon: skillIcon
171
+ },
172
+ [AICustomizationManagementSection.Instructions]: {
173
+ label: ( localize(5274, "Instructions")),
174
+ icon: instructionsIcon
175
+ },
176
+ [AICustomizationManagementSection.Prompts]: {
177
+ label: ( localize(5275, "Prompts")),
178
+ icon: promptIcon
179
+ },
180
+ [AICustomizationManagementSection.Hooks]: {
181
+ label: ( localize(5276, "Hooks")),
182
+ icon: hookIcon
183
+ },
184
+ [AICustomizationManagementSection.McpServers]: {
185
+ label: ( localize(5277, "MCP Servers")),
186
+ icon: Codicon.server
187
+ },
188
+ [AICustomizationManagementSection.Models]: {
189
+ label: ( localize(5278, "Models")),
190
+ icon: Codicon.vm
191
+ }
192
+ };
193
+ for (const id of this.workspaceService.managementSections) {
194
+ const info = sectionInfo[id];
195
+ if (info) {
196
+ this.sections.push({
197
+ id,
198
+ ...info
199
+ });
200
+ }
201
+ }
202
+ const savedSection = this.storageService.get(AI_CUSTOMIZATION_MANAGEMENT_SELECTED_SECTION_KEY, StorageScope.PROFILE);
203
+ if (savedSection && ( this.sections.some(s => s.id === savedSection))) {
204
+ this.selectedSection = savedSection;
205
+ } else if (this.sections.length > 0) {
206
+ this.selectedSection = this.sections[0].id;
207
+ }
208
+ }
209
+ createEditor(parent) {
210
+ this.editorDisposables.clear();
211
+ this.container = append(parent, $(".ai-customization-management-editor"));
212
+ this.createSplitView();
213
+ this.updateStyles();
214
+ }
215
+ createSplitView() {
216
+ this.splitViewContainer = append(this.container, $(".management-split-view"));
217
+ this.sidebarContainer = $(".management-sidebar");
218
+ this.contentContainer = $(".management-content");
219
+ this.createSidebar();
220
+ this.createContent();
221
+ this.splitView = this.editorDisposables.add(( new SplitView(this.splitViewContainer, {
222
+ orientation: Orientation.HORIZONTAL,
223
+ proportionalLayout: true
224
+ })));
225
+ const savedWidth = this.storageService.getNumber(
226
+ AI_CUSTOMIZATION_MANAGEMENT_SIDEBAR_WIDTH_KEY,
227
+ StorageScope.PROFILE,
228
+ SIDEBAR_DEFAULT_WIDTH
229
+ );
230
+ this.splitView.addView({
231
+ onDidChange: Event.None,
232
+ element: this.sidebarContainer,
233
+ minimumSize: SIDEBAR_MIN_WIDTH,
234
+ maximumSize: SIDEBAR_MAX_WIDTH,
235
+ layout: (width, _, height) => {
236
+ this.sidebarContainer.style.width = `${width}px`;
237
+ if (height !== undefined) {
238
+ const listHeight = height - 8;
239
+ this.sectionsList.layout(listHeight, width);
240
+ }
241
+ }
242
+ }, savedWidth, undefined, true);
243
+ this.splitView.addView({
244
+ onDidChange: Event.None,
245
+ element: this.contentContainer,
246
+ minimumSize: CONTENT_MIN_WIDTH,
247
+ maximumSize: Number.POSITIVE_INFINITY,
248
+ layout: (width, _, height) => {
249
+ this.contentContainer.style.width = `${width}px`;
250
+ if (height !== undefined) {
251
+ this.listWidget.layout(height - 16, width - 24);
252
+ this.mcpListWidget?.layout(height - 16, width - 24);
253
+ const modelsFooterHeight = this.modelsFooterElement?.offsetHeight || 80;
254
+ this.modelsWidget?.layout(height - 16 - modelsFooterHeight, width);
255
+ if (this.viewMode === "editor" && this.embeddedEditor) {
256
+ const editorHeaderHeight = 50;
257
+ const padding = 24;
258
+ this.embeddedEditor.layout({
259
+ width: Math.max(0, width - padding),
260
+ height: Math.max(0, height - editorHeaderHeight - padding)
261
+ });
262
+ }
263
+ if (this.viewMode === "mcpDetail" && this.embeddedMcpEditor) {
264
+ const backHeaderHeight = 40;
265
+ this.embeddedMcpEditor.layout(new Dimension(width, Math.max(0, height - backHeaderHeight)));
266
+ }
267
+ }
268
+ }
269
+ }, Sizing.Distribute, undefined, true);
270
+ this.editorDisposables.add(this.splitView.onDidSashChange(() => {
271
+ const width = this.splitView.getViewSize(0);
272
+ this.storageService.store(
273
+ AI_CUSTOMIZATION_MANAGEMENT_SIDEBAR_WIDTH_KEY,
274
+ width,
275
+ StorageScope.PROFILE,
276
+ StorageTarget.USER
277
+ );
278
+ }));
279
+ this.editorDisposables.add(this.splitView.onDidSashReset(() => {
280
+ const totalWidth = this.splitView.getViewSize(0) + this.splitView.getViewSize(1);
281
+ this.splitView.resizeView(0, SIDEBAR_DEFAULT_WIDTH);
282
+ this.splitView.resizeView(1, totalWidth - SIDEBAR_DEFAULT_WIDTH);
283
+ }));
284
+ }
285
+ createSidebar() {
286
+ const sidebarContent = append(this.sidebarContainer, $(".sidebar-content"));
287
+ const sectionsListContainer = append(sidebarContent, $(".sidebar-sections-list"));
288
+ this.sectionsList = this.editorDisposables.add(this.instantiationService.createInstance(
289
+ WorkbenchList,
290
+ "AICustomizationManagementSections",
291
+ sectionsListContainer,
292
+ ( new SectionItemDelegate()),
293
+ [( new SectionItemRenderer())],
294
+ {
295
+ multipleSelectionSupport: false,
296
+ setRowLineHeight: false,
297
+ horizontalScrolling: false,
298
+ accessibilityProvider: {
299
+ getAriaLabel: item => item.label,
300
+ getWidgetAriaLabel: () => ( localize(5279, "Chat Customization Sections"))
301
+ },
302
+ openOnSingleClick: true,
303
+ identityProvider: {
304
+ getId: item => item.id
305
+ }
306
+ }
307
+ ));
308
+ this.sectionsList.splice(0, this.sectionsList.length, this.sections);
309
+ const selectedIndex = this.sections.findIndex(s => s.id === this.selectedSection);
310
+ if (selectedIndex >= 0) {
311
+ this.sectionsList.setSelection([selectedIndex]);
312
+ }
313
+ this.editorDisposables.add(this.sectionsList.onDidChangeSelection(e => {
314
+ if (e.elements.length > 0) {
315
+ this.selectSection(e.elements[0].id);
316
+ }
317
+ }));
318
+ }
319
+ createContent() {
320
+ const contentInner = append(this.contentContainer, $(".content-inner"));
321
+ this.promptsContentContainer = append(contentInner, $(".prompts-content-container"));
322
+ this.listWidget = this.editorDisposables.add(this.instantiationService.createInstance(AICustomizationListWidget));
323
+ this.promptsContentContainer.appendChild(this.listWidget.element);
324
+ this.editorDisposables.add(this.listWidget.onDidSelectItem(item => {
325
+ const isWorkspaceFile = item.storage === PromptsStorage.local;
326
+ const isReadOnly = item.storage === PromptsStorage.extension || item.storage === PromptsStorage.plugin;
327
+ this.showEmbeddedEditor(item.uri, item.name, isWorkspaceFile, isReadOnly);
328
+ }));
329
+ this.editorDisposables.add(this.listWidget.onDidRequestCreate(promptType => {
330
+ this.createNewItemWithAI(promptType);
331
+ }));
332
+ this.editorDisposables.add(this.listWidget.onDidRequestCreateManual((
333
+ {
334
+ type,
335
+ target
336
+ }
337
+ ) => {
338
+ this.createNewItemManual(type, target);
339
+ }));
340
+ const hasSections = ( new Set(this.workspaceService.managementSections));
341
+ if (( hasSections.has(AICustomizationManagementSection.Models))) {
342
+ this.modelsContentContainer = append(contentInner, $(".models-content-container"));
343
+ this.modelsWidget = this.editorDisposables.add(this.instantiationService.createInstance(ChatModelsWidget));
344
+ this.modelsContentContainer.appendChild(this.modelsWidget.element);
345
+ this.modelsFooterElement = append(this.modelsContentContainer, $(".section-footer"));
346
+ const modelsDescription = append(this.modelsFooterElement, $("p.section-footer-description"));
347
+ modelsDescription.textContent = ( localize(
348
+ 5280,
349
+ "Browse and manage language models from different providers. Select models for use in chat, code completion, and other AI features."
350
+ ));
351
+ const modelsLink = append(this.modelsFooterElement, $("a.section-footer-link"));
352
+ modelsLink.textContent = ( localize(5281, "Learn more about language models"));
353
+ modelsLink.href = "https://code.visualstudio.com/docs/copilot/customization/language-models";
354
+ this.editorDisposables.add(addDisposableListener(modelsLink, "click", e => {
355
+ e.preventDefault();
356
+ this.openerService.open(( URI.parse(modelsLink.href)));
357
+ }));
358
+ }
359
+ if (( hasSections.has(AICustomizationManagementSection.McpServers))) {
360
+ this.mcpContentContainer = append(contentInner, $(".mcp-content-container"));
361
+ this.mcpListWidget = this.editorDisposables.add(this.instantiationService.createInstance(McpListWidget));
362
+ this.mcpContentContainer.appendChild(this.mcpListWidget.element);
363
+ this.mcpDetailContainer = append(contentInner, $(".mcp-detail-container"));
364
+ this.createEmbeddedMcpDetail();
365
+ this.editorDisposables.add(this.mcpListWidget.onDidSelectServer(server => {
366
+ this.showEmbeddedMcpDetail(server);
367
+ }));
368
+ }
369
+ this.editorContentContainer = append(contentInner, $(".editor-content-container"));
370
+ this.createEmbeddedEditor();
371
+ this.updateContentVisibility();
372
+ if (this.isPromptsSection(this.selectedSection)) {
373
+ void this.listWidget.setSection(this.selectedSection);
374
+ }
375
+ }
376
+ isPromptsSection(section) {
377
+ return section === AICustomizationManagementSection.Agents || section === AICustomizationManagementSection.Skills || section === AICustomizationManagementSection.Instructions || section === AICustomizationManagementSection.Prompts || section === AICustomizationManagementSection.Hooks;
378
+ }
379
+ selectSection(section) {
380
+ if (this.selectedSection === section) {
381
+ return;
382
+ }
383
+ if (this.viewMode === "editor") {
384
+ this.goBackToList();
385
+ }
386
+ if (this.viewMode === "mcpDetail") {
387
+ this.goBackFromMcpDetail();
388
+ }
389
+ this.selectedSection = section;
390
+ this.sectionContextKey.set(section);
391
+ this.storageService.store(
392
+ AI_CUSTOMIZATION_MANAGEMENT_SELECTED_SECTION_KEY,
393
+ section,
394
+ StorageScope.PROFILE,
395
+ StorageTarget.USER
396
+ );
397
+ this.updateContentVisibility();
398
+ if (this.isPromptsSection(section)) {
399
+ void this.listWidget.setSection(section);
400
+ }
401
+ }
402
+ updateContentVisibility() {
403
+ const isEditorMode = this.viewMode === "editor";
404
+ const isMcpDetailMode = this.viewMode === "mcpDetail";
405
+ const isPromptsSection = this.isPromptsSection(this.selectedSection);
406
+ const isModelsSection = this.selectedSection === AICustomizationManagementSection.Models;
407
+ const isMcpSection = this.selectedSection === AICustomizationManagementSection.McpServers;
408
+ this.promptsContentContainer.style.display = !isEditorMode && !isMcpDetailMode && isPromptsSection ? "" : "none";
409
+ if (this.modelsContentContainer) {
410
+ this.modelsContentContainer.style.display = !isEditorMode && !isMcpDetailMode && isModelsSection ? "" : "none";
411
+ }
412
+ if (this.mcpContentContainer) {
413
+ this.mcpContentContainer.style.display = !isEditorMode && !isMcpDetailMode && isMcpSection ? "" : "none";
414
+ }
415
+ if (this.mcpDetailContainer) {
416
+ this.mcpDetailContainer.style.display = isMcpDetailMode ? "" : "none";
417
+ }
418
+ if (this.editorContentContainer) {
419
+ this.editorContentContainer.style.display = isEditorMode ? "" : "none";
420
+ }
421
+ if (isModelsSection && this.modelsWidget) {
422
+ this.modelsWidget.render();
423
+ if (this.dimension) {
424
+ this.layout(this.dimension);
425
+ }
426
+ }
427
+ }
428
+ async createNewItemWithAI(type) {
429
+ if (this.input) {
430
+ this.group.closeEditor(this.input);
431
+ }
432
+ await this.workspaceService.generateCustomization(type);
433
+ }
434
+ async createNewItemManual(type, target) {
435
+ if (type === PromptsType.hook) {
436
+ if (this.workspaceService.isSessionsWindow) {
437
+ await this.createCopilotCliHookFile();
438
+ } else {
439
+ await this.instantiationService.invokeFunction(showConfigureHooksQuickPick, {
440
+ openEditor: async resource => {
441
+ await this.showEmbeddedEditor(resource, basename(resource), true);
442
+ return;
443
+ }
444
+ });
445
+ }
446
+ return;
447
+ }
448
+ const targetDir = target === "workspace" ? resolveWorkspaceTargetDirectory(this.workspaceService, type) : await resolveUserTargetDirectory(this.promptsService, type);
449
+ const options = {
450
+ targetFolder: targetDir,
451
+ targetStorage: target === "user" ? PromptsStorage.user : PromptsStorage.local,
452
+ openFile: async uri => {
453
+ const isWorkspace = target === "workspace";
454
+ await this.showEmbeddedEditor(uri, basename(uri), isWorkspace);
455
+ return this.embeddedEditor;
456
+ }
457
+ };
458
+ let commandId;
459
+ switch (type) {
460
+ case PromptsType.prompt:
461
+ commandId = NEW_PROMPT_COMMAND_ID;
462
+ break;
463
+ case PromptsType.instructions:
464
+ commandId = NEW_INSTRUCTIONS_COMMAND_ID;
465
+ break;
466
+ case PromptsType.agent:
467
+ commandId = NEW_AGENT_COMMAND_ID;
468
+ break;
469
+ case PromptsType.skill:
470
+ commandId = NEW_SKILL_COMMAND_ID;
471
+ break;
472
+ default:
473
+ return;
474
+ }
475
+ await this.commandService.executeCommand(commandId, options);
476
+ void this.listWidget.refresh();
477
+ }
478
+ async createCopilotCliHookFile() {
479
+ const projectRoot = this.workspaceService.getActiveProjectRoot();
480
+ if (!projectRoot) {
481
+ return;
482
+ }
483
+ const hookFileUri = joinPath(projectRoot, HOOKS_SOURCE_FOLDER, "hooks.json");
484
+ try {
485
+ await this.fileService.stat(hookFileUri);
486
+ } catch {
487
+ const hooks = {};
488
+ for (const eventName of ( Object.keys(COPILOT_CLI_HOOK_TYPE_MAP))) {
489
+ hooks[eventName] = [{
490
+ type: "command",
491
+ bash: ""
492
+ }];
493
+ }
494
+ const hooksContent = {
495
+ version: 1,
496
+ hooks
497
+ };
498
+ const jsonContent = JSON.stringify(hooksContent, null, "\t");
499
+ await this.fileService.writeFile(hookFileUri, VSBuffer.fromString(jsonContent));
500
+ }
501
+ await this.showEmbeddedEditor(hookFileUri, basename(hookFileUri), true);
502
+ void this.listWidget.refresh();
503
+ }
504
+ updateStyles() {
505
+ const borderColor = this.theme.getColor(aiCustomizationManagementSashBorder);
506
+ if (borderColor) {
507
+ this.splitView?.style({
508
+ separatorBorder: borderColor
509
+ });
510
+ }
511
+ }
512
+ async setInput(input, options, context, token) {
513
+ this.inEditorContextKey.set(true);
514
+ this.sectionContextKey.set(this.selectedSection);
515
+ await super.setInput(input, options, context, token);
516
+ if (this.dimension) {
517
+ this.layout(this.dimension);
518
+ }
519
+ }
520
+ clearInput() {
521
+ this.inEditorContextKey.set(false);
522
+ if (this.viewMode === "editor") {
523
+ this.goBackToList();
524
+ }
525
+ if (this.viewMode === "mcpDetail") {
526
+ this.goBackFromMcpDetail();
527
+ }
528
+ super.clearInput();
529
+ }
530
+ layout(dimension) {
531
+ this.dimension = dimension;
532
+ if (this.container && this.splitView) {
533
+ this.splitViewContainer.style.height = `${dimension.height}px`;
534
+ this.splitView.layout(dimension.width, dimension.height);
535
+ }
536
+ }
537
+ focus() {
538
+ super.focus();
539
+ if (this.viewMode === "editor") {
540
+ this.embeddedEditor?.focus();
541
+ return;
542
+ }
543
+ if (this.selectedSection === AICustomizationManagementSection.McpServers) {
544
+ this.mcpListWidget?.focusSearch();
545
+ } else if (this.selectedSection === AICustomizationManagementSection.Models) {
546
+ this.modelsWidget?.focusSearch();
547
+ } else {
548
+ this.listWidget?.focusSearch();
549
+ }
550
+ }
551
+ selectSectionById(sectionId) {
552
+ const index = this.sections.findIndex(s => s.id === sectionId);
553
+ if (index >= 0) {
554
+ this.sectionsList.setFocus([index]);
555
+ this.sectionsList.setSelection([index]);
556
+ }
557
+ }
558
+ refreshList() {
559
+ void this.listWidget.refresh();
560
+ }
561
+ async generateDebugReport() {
562
+ return this.listWidget.generateDebugReport();
563
+ }
564
+ createEmbeddedEditor() {
565
+ if (!this.editorContentContainer) {
566
+ return;
567
+ }
568
+ const editorHeader = append(this.editorContentContainer, $(".editor-header"));
569
+ const backButton = append(editorHeader, $("button.editor-back-button"));
570
+ backButton.setAttribute("aria-label", ( localize(5282, "Back to list")));
571
+ const backIcon = append(backButton, $(`.codicon.codicon-${Codicon.arrowLeft.id}`));
572
+ backIcon.setAttribute("aria-hidden", "true");
573
+ this.editorDisposables.add(addDisposableListener(backButton, "click", () => {
574
+ this.goBackToList();
575
+ }));
576
+ const itemInfo = append(editorHeader, $(".editor-item-info"));
577
+ this.editorItemNameElement = append(itemInfo, $(".editor-item-name"));
578
+ this.editorItemPathElement = append(itemInfo, $(".editor-item-path"));
579
+ this.editorSaveIndicator = append(editorHeader, $(".editor-save-indicator"));
580
+ const embeddedEditorContainer = append(this.editorContentContainer, $(".embedded-editor-container"));
581
+ const overflowWidgetsDomNode = append(
582
+ this.editorContentContainer,
583
+ $(".embedded-editor-overflow-widgets.monaco-editor")
584
+ );
585
+ this.editorDisposables.add(toDisposable(() => overflowWidgetsDomNode.remove()));
586
+ this.embeddedEditor = this.editorDisposables.add(
587
+ this.instantiationService.createInstance(CodeEditorWidget, embeddedEditorContainer, {
588
+ ...getSimpleEditorOptions(this.configurationService),
589
+ readOnly: false,
590
+ minimap: {
591
+ enabled: false
592
+ },
593
+ lineNumbers: "on",
594
+ wordWrap: "on",
595
+ scrollBeyondLastLine: false,
596
+ automaticLayout: false,
597
+ folding: true,
598
+ renderLineHighlight: "all",
599
+ scrollbar: {
600
+ vertical: "auto",
601
+ horizontal: "auto"
602
+ },
603
+ overflowWidgetsDomNode
604
+ }, {
605
+ isSimpleWidget: false
606
+ })
607
+ );
608
+ }
609
+ async showEmbeddedEditor(uri, displayName, isWorkspaceFile = false, isReadOnly = false) {
610
+ this.currentModelRef?.dispose();
611
+ this.currentModelRef = undefined;
612
+ this.currentEditingUri = uri;
613
+ this.currentEditingProjectRoot = isWorkspaceFile ? this.workspaceService.getActiveProjectRoot() : undefined;
614
+ this.viewMode = "editor";
615
+ this.editorItemNameElement.textContent = displayName;
616
+ this.editorItemPathElement.textContent = basename(uri);
617
+ this.updateContentVisibility();
618
+ try {
619
+ const ref = await this.textModelService.createModelReference(uri);
620
+ this.currentModelRef = ref;
621
+ this.embeddedEditor.setModel(ref.object.textEditorModel);
622
+ this.embeddedEditor.updateOptions({
623
+ readOnly: isReadOnly
624
+ });
625
+ if (this.dimension) {
626
+ this.layout(this.dimension);
627
+ }
628
+ this.embeddedEditor.focus();
629
+ this.editorModelChangeDisposables.clear();
630
+ const saveDelayer = this.editorModelChangeDisposables.add(( new Delayer(500)));
631
+ this.editorModelChangeDisposables.add(ref.object.textEditorModel.onDidChangeContent(() => {
632
+ this.editorSaveIndicator.className = "editor-save-indicator visible";
633
+ this.editorSaveIndicator.classList.add(...ThemeIcon.asClassNameArray(Codicon.loading), "codicon-modifier-spin");
634
+ this.editorSaveIndicator.title = ( localize(5283, "Saving..."));
635
+ saveDelayer.trigger(async () => {
636
+ try {
637
+ await this.textFileService.save(uri);
638
+ } catch (error) {
639
+ console.error("Failed to save AI customization file:", error);
640
+ this.editorSaveIndicator.className = "editor-save-indicator visible error";
641
+ this.editorSaveIndicator.classList.add(...ThemeIcon.asClassNameArray(Codicon.error));
642
+ this.editorSaveIndicator.title = ( localize(5284, "Save Failed"));
643
+ }
644
+ });
645
+ }));
646
+ this.editorModelChangeDisposables.add(this.workingCopyService.onDidSave(e => {
647
+ if (isEqual(e.workingCopy.resource, uri)) {
648
+ this.editorSaveIndicator.className = "editor-save-indicator visible saved";
649
+ this.editorSaveIndicator.classList.add(...ThemeIcon.asClassNameArray(Codicon.check));
650
+ this.editorSaveIndicator.title = ( localize(5285, "Saved"));
651
+ }
652
+ }));
653
+ } catch (error) {
654
+ console.error("Failed to load model for embedded editor:", error);
655
+ this.goBackToList();
656
+ }
657
+ }
658
+ goBackToList() {
659
+ const fileUri = this.currentEditingUri;
660
+ const projectRoot = this.currentEditingProjectRoot;
661
+ if (fileUri && projectRoot) {
662
+ this.workspaceService.commitFiles(projectRoot, [fileUri]);
663
+ }
664
+ this.currentModelRef?.dispose();
665
+ this.currentModelRef = undefined;
666
+ this.currentEditingUri = undefined;
667
+ this.currentEditingProjectRoot = undefined;
668
+ this.editorModelChangeDisposables.clear();
669
+ this.editorSaveIndicator.className = "editor-save-indicator";
670
+ this.editorSaveIndicator.title = "";
671
+ this.embeddedEditor?.setModel(null);
672
+ this.viewMode = "list";
673
+ this.updateContentVisibility();
674
+ if (this.dimension) {
675
+ this.layout(this.dimension);
676
+ }
677
+ this.listWidget?.focusSearch();
678
+ }
679
+ createEmbeddedMcpDetail() {
680
+ if (!this.mcpDetailContainer) {
681
+ return;
682
+ }
683
+ const detailHeader = append(this.mcpDetailContainer, $(".editor-header"));
684
+ const backButton = append(detailHeader, $("button.editor-back-button"));
685
+ backButton.setAttribute("aria-label", ( localize(5286, "Back to MCP servers")));
686
+ const backIconEl = append(backButton, $(`.codicon.codicon-${Codicon.arrowLeft.id}`));
687
+ backIconEl.setAttribute("aria-hidden", "true");
688
+ this.editorDisposables.add(addDisposableListener(backButton, "click", () => {
689
+ this.goBackFromMcpDetail();
690
+ }));
691
+ const editorContainer = append(this.mcpDetailContainer, $(".mcp-detail-editor-container"));
692
+ this.embeddedMcpEditor = this.editorDisposables.add(this.instantiationService.createInstance(McpServerEditor, this.group));
693
+ this.embeddedMcpEditor.create(editorContainer);
694
+ }
695
+ async showEmbeddedMcpDetail(server) {
696
+ if (!this.embeddedMcpEditor) {
697
+ return;
698
+ }
699
+ this.viewMode = "mcpDetail";
700
+ this.updateContentVisibility();
701
+ const input = this.instantiationService.createInstance(McpServerEditorInput, server);
702
+ this.mcpDetailDisposables.clear();
703
+ this.mcpDetailDisposables.add(input);
704
+ try {
705
+ await this.embeddedMcpEditor.setInput(input, undefined, {}, CancellationToken.None);
706
+ } catch {
707
+ this.goBackFromMcpDetail();
708
+ return;
709
+ }
710
+ if (this.dimension) {
711
+ this.layout(this.dimension);
712
+ }
713
+ }
714
+ goBackFromMcpDetail() {
715
+ this.mcpDetailDisposables.clear();
716
+ this.embeddedMcpEditor?.clearInput();
717
+ this.viewMode = "list";
718
+ this.updateContentVisibility();
719
+ if (this.dimension) {
720
+ this.layout(this.dimension);
721
+ }
722
+ this.mcpListWidget?.focusSearch();
723
+ }
724
+ };
725
+ AICustomizationManagementEditor = AICustomizationManagementEditor_1 = ( __decorate([( __param(1, ITelemetryService)), ( __param(2, IThemeService)), ( __param(3, IStorageService)), ( __param(4, IInstantiationService)), ( __param(5, IContextKeyService)), ( __param(6, IOpenerService)), ( __param(7, ICommandService)), ( __param(8, IAICustomizationWorkspaceService)), ( __param(9, IPromptsService)), ( __param(10, ITextModelService)), ( __param(11, IConfigurationService)), ( __param(12, IWorkingCopyService)), ( __param(13, ITextFileService)), ( __param(14, IFileService))], AICustomizationManagementEditor));
726
+
727
+ export { AICustomizationManagementEditor, aiCustomizationManagementSashBorder };