@codingame/monaco-vscode-api 31.0.1 → 32.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 (975) hide show
  1. package/external/@vscode/tree-sitter-wasm/wasm/tree-sitter.js +14 -14
  2. package/external/vscode-semver/semver.js +43 -43
  3. package/external/vscode-textmate/release/main.js +1 -1
  4. package/missing-services.js +143 -47
  5. package/package.json +9 -9
  6. package/services.js +3 -3
  7. package/vscode/product.json.js +1 -1
  8. package/vscode/src/vs/base/browser/animatedValue.d.ts +49 -0
  9. package/vscode/src/vs/{editor/contrib/inlineCompletions/browser/model/animation.js → base/browser/animatedValue.js} +32 -23
  10. package/vscode/src/vs/base/browser/dom.d.ts +42 -2
  11. package/vscode/src/vs/base/browser/dom.js +28 -3
  12. package/vscode/src/vs/base/browser/mouseEvent.js +2 -8
  13. package/vscode/src/vs/base/browser/overlayLayoutElement.d.ts +9 -6
  14. package/vscode/src/vs/base/browser/overlayLayoutElement.js +55 -90
  15. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.d.ts +3 -2
  16. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +11 -20
  17. package/vscode/src/vs/base/browser/ui/button/button.d.ts +7 -0
  18. package/vscode/src/vs/base/browser/ui/button/button.js +15 -0
  19. package/vscode/src/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  20. package/vscode/src/vs/base/browser/ui/findinput/replaceInput.d.ts +0 -1
  21. package/vscode/src/vs/base/browser/ui/findinput/replaceInput.js +0 -3
  22. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +1 -1
  23. package/vscode/src/vs/base/common/async.d.ts +2 -0
  24. package/vscode/src/vs/base/common/async.js +8 -2
  25. package/vscode/src/vs/base/common/codicons.d.ts +1 -0
  26. package/vscode/src/vs/base/common/codiconsLibrary.d.ts +3 -0
  27. package/vscode/src/vs/base/common/codiconsLibrary.js +3 -0
  28. package/vscode/src/vs/base/common/event.d.ts +9 -3
  29. package/vscode/src/vs/base/common/event.js +12 -7
  30. package/vscode/src/vs/base/common/filters.js +31 -6
  31. package/vscode/src/vs/base/common/htmlContent.d.ts +9 -0
  32. package/vscode/src/vs/base/common/network.js +2 -2
  33. package/vscode/src/vs/base/common/objects.d.ts +13 -0
  34. package/vscode/src/vs/base/common/objects.js +33 -1
  35. package/vscode/src/vs/base/common/observableInternal/index.d.ts +2 -2
  36. package/vscode/src/vs/base/common/observableInternal/reactions/autorun.d.ts +26 -0
  37. package/vscode/src/vs/base/common/observableInternal/reactions/autorun.js +24 -1
  38. package/vscode/src/vs/base/common/observableInternal/utils/promise.d.ts +13 -0
  39. package/vscode/src/vs/base/common/observableInternal/utils/promise.js +23 -1
  40. package/vscode/src/vs/base/common/paging.js +2 -66
  41. package/vscode/src/vs/base/common/platform.d.ts +0 -1
  42. package/vscode/src/vs/base/common/policy.d.ts +12 -1
  43. package/vscode/src/vs/base/common/product.d.ts +8 -6
  44. package/vscode/src/vs/base/common/resources.js +2 -2
  45. package/vscode/src/vs/base/common/yaml.d.ts +24 -0
  46. package/vscode/src/vs/base/common/yaml.js +6 -1
  47. package/vscode/src/vs/base/parts/ipc/common/ipc.net.d.ts +14 -1
  48. package/vscode/src/vs/base/parts/ipc/common/ipc.net.js +29 -1
  49. package/vscode/src/vs/base/parts/storage/common/storage.d.ts +13 -0
  50. package/vscode/src/vs/base/parts/storage/common/storage.js +48 -2
  51. package/vscode/src/vs/editor/browser/config/elementSizeObserver.js +1 -1
  52. package/vscode/src/vs/editor/browser/controller/mouseHandler.d.ts +0 -1
  53. package/vscode/src/vs/editor/browser/controller/mouseHandler.js +0 -3
  54. package/vscode/src/vs/editor/browser/editorDom.d.ts +6 -3
  55. package/vscode/src/vs/editor/browser/editorDom.js +9 -2
  56. package/vscode/src/vs/editor/browser/observableCodeEditor.js +1 -1
  57. package/vscode/src/vs/editor/browser/services/editorWorkerService.d.ts +0 -1
  58. package/vscode/src/vs/editor/browser/services/editorWorkerService.js +0 -3
  59. package/vscode/src/vs/editor/browser/services/inlineCompletionsService.d.ts +1 -0
  60. package/vscode/src/vs/editor/browser/services/inlineCompletionsService.js +56 -9
  61. package/vscode/src/vs/editor/browser/viewParts/blockDecorations/blockDecorations.d.ts +0 -1
  62. package/vscode/src/vs/editor/browser/viewParts/blockDecorations/blockDecorations.js +0 -3
  63. package/vscode/src/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.d.ts +0 -1
  64. package/vscode/src/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js +0 -3
  65. package/vscode/src/vs/editor/browser/viewParts/margin/margin.d.ts +0 -1
  66. package/vscode/src/vs/editor/browser/viewParts/margin/margin.js +0 -3
  67. package/vscode/src/vs/editor/browser/viewParts/rulers/rulers.d.ts +0 -1
  68. package/vscode/src/vs/editor/browser/viewParts/rulers/rulers.js +0 -3
  69. package/vscode/src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.d.ts +0 -1
  70. package/vscode/src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js +0 -3
  71. package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +2 -2
  72. package/vscode/src/vs/editor/browser/widget/diffEditor/commands.js +12 -12
  73. package/vscode/src/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js +12 -12
  74. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -1
  75. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js +4 -4
  76. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +5 -5
  77. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +12 -6
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +7 -7
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +4 -4
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +1 -1
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +5 -5
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +1 -1
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +5 -1
  84. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +3 -3
  85. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +1 -1
  86. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.d.ts +5 -3
  87. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.js +41 -13
  88. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +1 -1
  89. package/vscode/src/vs/editor/common/config/editorConfigurationSchema.js +73 -55
  90. package/vscode/src/vs/editor/common/config/editorOptions.js +371 -370
  91. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +72 -72
  92. package/vscode/src/vs/editor/common/editorContextKeys.js +49 -49
  93. package/vscode/src/vs/editor/common/languages/modesRegistry.js +1 -1
  94. package/vscode/src/vs/editor/common/languages.js +56 -56
  95. package/vscode/src/vs/editor/common/model/editStack.js +1 -1
  96. package/vscode/src/vs/editor/common/services/languageService.js +2 -1
  97. package/vscode/src/vs/editor/common/standaloneStrings.js +50 -50
  98. package/vscode/src/vs/editor/common/viewLayout/viewLayout.d.ts +0 -1
  99. package/vscode/src/vs/editor/common/viewLayout/viewLayout.js +0 -3
  100. package/vscode/src/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
  101. package/vscode/src/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  102. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
  103. package/vscode/src/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  104. package/vscode/src/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  105. package/vscode/src/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
  106. package/vscode/src/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  107. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionCommands.js +18 -18
  108. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  109. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  110. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  111. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  112. package/vscode/src/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  113. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  114. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  115. package/vscode/src/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
  116. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  117. package/vscode/src/vs/editor/contrib/comment/browser/comment.js +6 -6
  118. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +13 -13
  119. package/vscode/src/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  120. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  121. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
  122. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +5 -5
  123. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  124. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  125. package/vscode/src/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  126. package/vscode/src/vs/editor/contrib/find/browser/findController.js +17 -17
  127. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +28 -28
  128. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +20 -20
  129. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  130. package/vscode/src/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  131. package/vscode/src/vs/editor/contrib/format/browser/formatActions.js +2 -2
  132. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  133. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +13 -13
  134. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +33 -33
  135. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  136. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  137. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  138. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  139. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  140. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  141. package/vscode/src/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  142. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +3 -3
  143. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +2 -2
  144. package/vscode/src/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  145. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +22 -22
  146. package/vscode/src/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
  147. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +7 -7
  148. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  149. package/vscode/src/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  150. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +18 -18
  151. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -5
  152. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
  153. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
  154. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
  155. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  156. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +4 -4
  157. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +3 -4
  158. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
  159. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  160. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +2 -2
  161. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +9 -3
  162. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  163. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +1 -1
  164. package/vscode/src/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  165. package/vscode/src/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  166. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  167. package/vscode/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  168. package/vscode/src/vs/editor/contrib/links/browser/links.js +6 -6
  169. package/vscode/src/vs/editor/contrib/message/browser/messageController.js +1 -1
  170. package/vscode/src/vs/editor/contrib/middleScroll/browser/middleScrollController.js +1 -1
  171. package/vscode/src/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  172. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  173. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  174. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  175. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  176. package/vscode/src/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +1 -1
  177. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +11 -11
  178. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  179. package/vscode/src/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  180. package/vscode/src/vs/editor/contrib/rename/browser/rename.js +11 -11
  181. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +6 -6
  182. package/vscode/src/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  183. package/vscode/src/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  184. package/vscode/src/vs/editor/contrib/snippet/browser/snippetParser.js +1 -1
  185. package/vscode/src/vs/editor/contrib/snippet/browser/snippetSession.d.ts +1 -0
  186. package/vscode/src/vs/editor/contrib/snippet/browser/snippetSession.js +39 -24
  187. package/vscode/src/vs/editor/contrib/snippet/browser/snippetVariables.d.ts +1 -0
  188. package/vscode/src/vs/editor/contrib/snippet/browser/snippetVariables.js +36 -24
  189. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  190. package/vscode/src/vs/editor/contrib/suggest/browser/suggest.js +9 -9
  191. package/vscode/src/vs/editor/contrib/suggest/browser/suggestController.js +11 -11
  192. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  193. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  194. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  195. package/vscode/src/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  196. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  197. package/vscode/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  198. package/vscode/src/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  199. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  200. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  201. package/vscode/src/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  202. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  203. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  204. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +3 -3
  205. package/vscode/src/vs/editor/standalone/browser/standaloneCodeEditor.d.ts +0 -2
  206. package/vscode/src/vs/editor/standalone/browser/standaloneCodeEditor.js +0 -6
  207. package/vscode/src/vs/editor/standalone/browser/standaloneServices.js +5 -0
  208. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  209. package/vscode/src/vs/platform/action/common/actionCommonCategories.js +6 -6
  210. package/vscode/src/vs/platform/actionWidget/browser/actionList.d.ts +52 -10
  211. package/vscode/src/vs/platform/actionWidget/browser/actionList.js +242 -90
  212. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.css +97 -23
  213. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +15 -12
  214. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +3 -3
  215. package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -2
  216. package/vscode/src/vs/platform/actions/common/actions.d.ts +6 -3
  217. package/vscode/src/vs/platform/actions/common/actions.js +18 -9
  218. package/vscode/src/vs/platform/actions/common/menuResetAction.js +1 -1
  219. package/vscode/src/vs/platform/actions/common/menuService.d.ts +2 -1
  220. package/vscode/src/vs/platform/actions/common/menuService.js +6 -5
  221. package/vscode/src/vs/platform/agentHost/browser/nullAgentHostService.d.ts +21 -18
  222. package/vscode/src/vs/platform/agentHost/browser/nullAgentHostService.js +11 -0
  223. package/vscode/src/vs/platform/agentHost/browser/nullSshRemoteAgentHostService.d.ts +3 -0
  224. package/vscode/src/vs/platform/agentHost/browser/nullSshRemoteAgentHostService.js +6 -0
  225. package/vscode/src/vs/platform/agentHost/common/agentHostPermissionService.service.d.ts +47 -0
  226. package/vscode/src/vs/platform/agentHost/common/agentHostPermissionService.service.js +6 -0
  227. package/vscode/src/vs/platform/agentHost/common/agentHostUri.js +1 -1
  228. package/vscode/src/vs/platform/agentHost/common/agentPluginManager.d.ts +2 -2
  229. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +63 -22
  230. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostService.d.ts +56 -6
  231. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostService.js +49 -4
  232. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostService.service.d.ts +12 -1
  233. package/vscode/src/vs/platform/agentHost/common/sshRemoteAgentHost.d.ts +2 -0
  234. package/vscode/src/vs/platform/agentHost/common/sshRemoteAgentHost.service.d.ts +21 -1
  235. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +14 -10
  236. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +957 -0
  237. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.js +18 -0
  238. package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +135 -71
  239. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +1673 -0
  240. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.js +126 -0
  241. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +40 -0
  242. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.js +22 -0
  243. package/vscode/src/vs/platform/browserView/common/browserView.d.ts +67 -38
  244. package/vscode/src/vs/platform/browserView/common/browserView.js +57 -0
  245. package/vscode/src/vs/platform/browserView/common/browserViewTelemetry.d.ts +2 -1
  246. package/vscode/src/vs/platform/browserView/common/playwrightService.service.d.ts +24 -7
  247. package/vscode/src/vs/platform/browserView/common/playwrightService.service.js +6 -0
  248. package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +14 -0
  249. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +10 -10
  250. package/vscode/src/vs/platform/configuration/common/configurations.d.ts +2 -0
  251. package/vscode/src/vs/platform/configuration/common/configurations.js +8 -3
  252. package/vscode/src/vs/platform/contextkey/browser/contextKeyService.js +2 -1
  253. package/vscode/src/vs/platform/contextkey/common/contextkey.js +10 -10
  254. package/vscode/src/vs/platform/contextkey/common/contextkeys.js +9 -9
  255. package/vscode/src/vs/platform/contextkey/common/scanner.js +6 -6
  256. package/vscode/src/vs/platform/defaultAccount/common/defaultAccount.d.ts +1 -1
  257. package/vscode/src/vs/platform/defaultAccount/common/defaultAccount.service.d.ts +2 -1
  258. package/vscode/src/vs/platform/dialogs/common/dialogs.js +9 -9
  259. package/vscode/src/vs/platform/dnd/browser/dnd.js +1 -1
  260. package/vscode/src/vs/platform/editor/common/editor.d.ts +11 -0
  261. package/vscode/src/vs/platform/environment/common/argv.d.ts +4 -1
  262. package/vscode/src/vs/platform/environment/common/environment.service.d.ts +1 -0
  263. package/vscode/src/vs/platform/environment/common/environmentService.d.ts +1 -1
  264. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +14 -14
  265. package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +1 -1
  266. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +7 -7
  267. package/vscode/src/vs/platform/extensionRecommendations/common/extensionRecommendations.service.d.ts +1 -1
  268. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +21 -21
  269. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.d.ts +18 -0
  270. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +19 -1
  271. package/vscode/src/vs/platform/files/browser/htmlFileSystemProvider.js +2 -2
  272. package/vscode/src/vs/platform/files/common/files.js +6 -6
  273. package/vscode/src/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  274. package/vscode/src/vs/platform/hover/browser/hoverService.js +15 -9
  275. package/vscode/src/vs/platform/hover/browser/hoverWidget.d.ts +1 -0
  276. package/vscode/src/vs/platform/hover/browser/hoverWidget.js +21 -4
  277. package/vscode/src/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  278. package/vscode/src/vs/platform/keybinding/common/abstractKeybindingService.d.ts +0 -1
  279. package/vscode/src/vs/platform/keybinding/common/abstractKeybindingService.js +5 -8
  280. package/vscode/src/vs/platform/languagePacks/common/languagePacks.js +1 -1
  281. package/vscode/src/vs/platform/languagePacks/common/localizedStrings.js +3 -3
  282. package/vscode/src/vs/platform/list/browser/listService.js +25 -25
  283. package/vscode/src/vs/platform/log/common/log.d.ts +7 -0
  284. package/vscode/src/vs/platform/log/common/log.js +38 -17
  285. package/vscode/src/vs/platform/markers/common/markerService.js +2 -2
  286. package/vscode/src/vs/platform/markers/common/markers.js +6 -6
  287. package/vscode/src/vs/platform/mcp/common/mcpManagementService.js +1 -1
  288. package/vscode/src/vs/platform/meteredConnection/common/meteredConnection.config.contribution.js +5 -5
  289. package/vscode/src/vs/platform/native/common/native.d.ts +2 -9
  290. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.service.d.ts +5 -3
  291. package/vscode/src/vs/platform/notification/common/notification.js +3 -3
  292. package/vscode/src/vs/platform/policy/common/policy.d.ts +8 -1
  293. package/vscode/src/vs/platform/product/common/product.js +3 -3
  294. package/vscode/src/vs/platform/quickinput/browser/media/quickInput.css +1 -1
  295. package/vscode/src/vs/platform/quickinput/browser/quickInput.js +10 -10
  296. package/vscode/src/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  297. package/vscode/src/vs/platform/quickinput/browser/quickInputController.js +6 -6
  298. package/vscode/src/vs/platform/quickinput/browser/quickInputList.js +1 -1
  299. package/vscode/src/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  300. package/vscode/src/vs/platform/quickinput/browser/quickPickPin.js +2 -2
  301. package/vscode/src/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  302. package/vscode/src/vs/platform/quickinput/browser/tree/quickTree.js +1 -1
  303. package/vscode/src/vs/platform/remote/common/remoteAgentConnection.js +1 -1
  304. package/vscode/src/vs/platform/request/common/request.js +20 -20
  305. package/vscode/src/vs/platform/sandbox/common/settings.d.ts +5 -1
  306. package/vscode/src/vs/platform/sandbox/common/settings.js +4 -0
  307. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.service.d.ts +8 -2
  308. package/vscode/src/vs/platform/storage/common/storage.d.ts +13 -1
  309. package/vscode/src/vs/platform/storage/common/storage.js +48 -0
  310. package/vscode/src/vs/platform/storage/common/storage.service.d.ts +2 -1
  311. package/vscode/src/vs/platform/telemetry/common/telemetry.d.ts +5 -0
  312. package/vscode/src/vs/platform/telemetry/common/telemetry.js +4 -1
  313. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +1 -1
  314. package/vscode/src/vs/platform/terminal/common/terminal.d.ts +3 -0
  315. package/vscode/src/vs/platform/terminal/common/terminal.js +3 -0
  316. package/vscode/src/vs/platform/terminal/common/terminalPlatformConfiguration.js +97 -31
  317. package/vscode/src/vs/platform/terminal/common/terminalProfiles.js +1 -1
  318. package/vscode/src/vs/platform/terminal/common/xterm/shellIntegrationAddon.js +6 -0
  319. package/vscode/src/vs/platform/theme/common/colorUtils.js +2 -2
  320. package/vscode/src/vs/platform/theme/common/colors/baseColors.d.ts +1 -0
  321. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +27 -18
  322. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +8 -8
  323. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +95 -95
  324. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +48 -48
  325. package/vscode/src/vs/platform/theme/common/colors/listColors.js +36 -36
  326. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +7 -7
  327. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +11 -11
  328. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +16 -16
  329. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.d.ts +1 -0
  330. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +18 -10
  331. package/vscode/src/vs/platform/theme/common/colors/searchColors.js +3 -3
  332. package/vscode/src/vs/platform/theme/common/iconRegistry.js +7 -7
  333. package/vscode/src/vs/platform/theme/common/sizes/baseSizes.js +11 -11
  334. package/vscode/src/vs/platform/theme/common/tokenClassificationRegistry.js +42 -42
  335. package/vscode/src/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  336. package/vscode/src/vs/platform/url/common/trustedDomains.d.ts +1 -0
  337. package/vscode/src/vs/platform/url/common/trustedDomains.js +2 -2
  338. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.d.ts +26 -2
  339. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +35 -31
  340. package/vscode/src/vs/platform/userDataProfile/common/userDataProfileStorageService.service.d.ts +3 -2
  341. package/vscode/src/vs/platform/userDataSync/common/abstractSynchronizer.js +2 -2
  342. package/vscode/src/vs/platform/userDataSync/common/globalStateSync.js +37 -11
  343. package/vscode/src/vs/platform/userDataSync/common/keybindingsSync.js +2 -2
  344. package/vscode/src/vs/platform/userDataSync/common/settingsSync.js +1 -1
  345. package/vscode/src/vs/platform/userDataSync/common/userDataSync.d.ts +2 -0
  346. package/vscode/src/vs/platform/userDataSync/common/userDataSync.js +5 -5
  347. package/vscode/src/vs/platform/userDataSync/common/userDataSyncMachines.js +1 -1
  348. package/vscode/src/vs/platform/webWorker/browser/webWorkerServiceImpl.d.ts +1 -1
  349. package/vscode/src/vs/platform/workspace/common/workspace.d.ts +7 -1
  350. package/vscode/src/vs/platform/workspace/common/workspace.js +9 -3
  351. package/vscode/src/vs/workbench/api/browser/statusBarExtensionPoint.js +12 -12
  352. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +61 -4
  353. package/vscode/src/vs/workbench/api/common/extHost.protocol.d.ts +86 -5
  354. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +11 -1
  355. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +5 -5
  356. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +29 -9
  357. package/vscode/src/vs/workbench/api/common/extHostChatDebug.js +7 -0
  358. package/vscode/src/vs/workbench/api/common/extHostChatInputNotification.d.ts +9 -0
  359. package/vscode/src/vs/workbench/api/common/extHostChatInputNotification.js +114 -0
  360. package/vscode/src/vs/workbench/api/common/extHostChatSessions.d.ts +2 -0
  361. package/vscode/src/vs/workbench/api/common/extHostChatSessions.js +89 -16
  362. package/vscode/src/vs/workbench/api/common/extHostCustomEditors.d.ts +3 -0
  363. package/vscode/src/vs/workbench/api/common/extHostCustomEditors.js +139 -8
  364. package/vscode/src/vs/workbench/api/common/extHostDiagnostics.js +1 -1
  365. package/vscode/src/vs/workbench/api/common/extHostExtensionActivator.js +2 -2
  366. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +2 -2
  367. package/vscode/src/vs/workbench/api/common/extHostGitExtensionService.js +3 -3
  368. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +2 -2
  369. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +7 -1
  370. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +11 -2
  371. package/vscode/src/vs/workbench/api/common/extHostLogService.js +1 -1
  372. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
  373. package/vscode/src/vs/workbench/api/common/extHostSCM.js +20 -0
  374. package/vscode/src/vs/workbench/api/common/extHostStatusBar.js +2 -2
  375. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +1 -1
  376. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +1 -1
  377. package/vscode/src/vs/workbench/api/common/extHostTreeViews.d.ts +1 -1
  378. package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +2 -2
  379. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.d.ts +5 -1
  380. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +20 -3
  381. package/vscode/src/vs/workbench/api/common/extHostTypes.d.ts +14 -0
  382. package/vscode/src/vs/workbench/api/common/extHostTypes.js +17 -1
  383. package/vscode/src/vs/workbench/api/common/extHostWebview.d.ts +11 -0
  384. package/vscode/src/vs/workbench/api/common/extHostWebview.js +9 -0
  385. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  386. package/vscode/src/vs/workbench/api/common/jsonValidationExtensionPoint.js +11 -11
  387. package/vscode/src/vs/workbench/browser/actions/developerActions.js +59 -35
  388. package/vscode/src/vs/workbench/browser/actions/layoutActions.d.ts +1 -2
  389. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +141 -188
  390. package/vscode/src/vs/workbench/browser/actions/textInputActions.js +6 -6
  391. package/vscode/src/vs/workbench/browser/actions/windowActions.js +34 -34
  392. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +32 -32
  393. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +4 -4
  394. package/vscode/src/vs/workbench/browser/editor.js +2 -2
  395. package/vscode/src/vs/workbench/browser/labels.js +4 -4
  396. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +23 -23
  397. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +26 -26
  398. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +4 -4
  399. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +1 -1
  400. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +9 -9
  401. package/vscode/src/vs/workbench/browser/parts/compositePart.js +3 -3
  402. package/vscode/src/vs/workbench/browser/parts/dialogs/dialog.js +1 -1
  403. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +3 -3
  404. package/vscode/src/vs/workbench/browser/parts/editor/binaryDiffEditor.js +1 -1
  405. package/vscode/src/vs/workbench/browser/parts/editor/binaryEditor.js +3 -3
  406. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbs.js +41 -38
  407. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsControl.js +12 -12
  408. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +1 -1
  409. package/vscode/src/vs/workbench/browser/parts/editor/diffEditorCommands.js +32 -14
  410. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.d.ts +2 -0
  411. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +160 -137
  412. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +56 -36
  413. package/vscode/src/vs/workbench/browser/parts/editor/editorCommandsContext.js +2 -1
  414. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +1 -1
  415. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.js +9 -8
  416. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupWatermark.js +12 -12
  417. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +2 -2
  418. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +28 -3
  419. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +1 -1
  420. package/vscode/src/vs/workbench/browser/parts/editor/editorPlaceholder.js +10 -10
  421. package/vscode/src/vs/workbench/browser/parts/editor/editorQuickAccess.js +5 -5
  422. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +66 -66
  423. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.d.ts +9 -0
  424. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +80 -4
  425. package/vscode/src/vs/workbench/browser/parts/editor/media/modalEditorPart.css +4 -0
  426. package/vscode/src/vs/workbench/browser/parts/editor/media/multieditortabscontrol.css +15 -7
  427. package/vscode/src/vs/workbench/browser/parts/editor/modalEditorPart.d.ts +3 -1
  428. package/vscode/src/vs/workbench/browser/parts/editor/modalEditorPart.js +62 -31
  429. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.d.ts +1 -0
  430. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.js +12 -3
  431. package/vscode/src/vs/workbench/browser/parts/editor/noEditorTabsControl.d.ts +1 -0
  432. package/vscode/src/vs/workbench/browser/parts/editor/noEditorTabsControl.js +6 -0
  433. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
  434. package/vscode/src/vs/workbench/browser/parts/editor/singleEditorTabsControl.d.ts +1 -0
  435. package/vscode/src/vs/workbench/browser/parts/editor/singleEditorTabsControl.js +6 -0
  436. package/vscode/src/vs/workbench/browser/parts/editor/textCodeEditor.js +1 -1
  437. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +3 -3
  438. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +1 -1
  439. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +19 -19
  440. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsActions.js +22 -22
  441. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsAlerts.js +3 -3
  442. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCenter.js +6 -6
  443. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +13 -13
  444. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsList.js +6 -6
  445. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsStatus.js +13 -13
  446. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +2 -2
  447. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +4 -4
  448. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +4 -4
  449. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +3 -3
  450. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +27 -27
  451. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +3 -3
  452. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarActions.js +2 -2
  453. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +1 -1
  454. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +12 -85
  455. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarActions.d.ts +7 -0
  456. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarActions.js +17 -16
  457. package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +2 -2
  458. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +1 -1
  459. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +7 -7
  460. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +4 -4
  461. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +5 -5
  462. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +6 -6
  463. package/vscode/src/vs/workbench/browser/quickaccess.js +1 -1
  464. package/vscode/src/vs/workbench/browser/window.js +15 -14
  465. package/vscode/src/vs/workbench/browser/workbench.contribution.js +332 -317
  466. package/vscode/src/vs/workbench/common/configuration.js +9 -9
  467. package/vscode/src/vs/workbench/common/contextkeys.d.ts +3 -0
  468. package/vscode/src/vs/workbench/common/contextkeys.js +91 -83
  469. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +1 -1
  470. package/vscode/src/vs/workbench/common/editor/editorGroupModel.js +2 -1
  471. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +1 -1
  472. package/vscode/src/vs/workbench/common/editor/textEditorModel.js +1 -1
  473. package/vscode/src/vs/workbench/common/editor.d.ts +8 -0
  474. package/vscode/src/vs/workbench/common/editor.js +4 -4
  475. package/vscode/src/vs/workbench/common/memento.d.ts +1 -0
  476. package/vscode/src/vs/workbench/common/memento.js +19 -0
  477. package/vscode/src/vs/workbench/common/theme.js +161 -161
  478. package/vscode/src/vs/workbench/common/views.d.ts +9 -9
  479. package/vscode/src/vs/workbench/common/views.js +11 -11
  480. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.d.ts +2 -1
  481. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +164 -156
  482. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +12 -12
  483. package/vscode/src/vs/workbench/contrib/browserView/common/browserEditorInput.d.ts +25 -5
  484. package/vscode/src/vs/workbench/contrib/browserView/common/browserEditorInput.js +63 -39
  485. package/vscode/src/vs/workbench/contrib/browserView/common/browserView.d.ts +39 -33
  486. package/vscode/src/vs/workbench/contrib/browserView/common/browserView.js +454 -0
  487. package/vscode/src/vs/workbench/contrib/browserView/common/browserView.service.d.ts +20 -10
  488. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +97 -67
  489. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.service.d.ts +2 -1
  490. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +4 -8
  491. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +14 -16
  492. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel.d.ts +17 -0
  493. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel.js +36 -2
  494. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +129 -0
  495. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.service.d.ts +51 -0
  496. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.service.js +6 -0
  497. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +3 -4
  498. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +20 -5
  499. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.service.d.ts +2 -1
  500. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatScreenshotContext.js +1 -1
  501. package/vscode/src/vs/workbench/contrib/chat/browser/chat.d.ts +8 -0
  502. package/vscode/src/vs/workbench/contrib/chat/browser/chat.js +6 -4
  503. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.js +7 -7
  504. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionDescription.js +2 -2
  505. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +13 -1
  506. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +103 -67
  507. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -3
  508. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackService.service.d.ts +26 -0
  509. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackService.service.js +6 -0
  510. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.service.d.ts +17 -0
  511. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.service.js +6 -0
  512. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.service.d.ts +31 -0
  513. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.service.js +6 -0
  514. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.service.d.ts +36 -0
  515. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.service.js +6 -0
  516. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput.js +9 -9
  517. package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.d.ts +3 -0
  518. package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.js +94 -85
  519. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariableEntries.d.ts +14 -1
  520. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariableEntries.js +6 -3
  521. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariables.d.ts +7 -0
  522. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +4 -0
  523. package/vscode/src/vs/workbench/contrib/chat/common/chatModes.d.ts +26 -30
  524. package/vscode/src/vs/workbench/contrib/chat/common/chatModes.js +94 -54
  525. package/vscode/src/vs/workbench/contrib/chat/common/chatModes.service.d.ts +14 -9
  526. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.d.ts +49 -4
  527. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.d.ts +129 -3
  528. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.js +15 -2
  529. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.service.d.ts +23 -1
  530. package/vscode/src/vs/workbench/contrib/chat/common/constants.d.ts +14 -2
  531. package/vscode/src/vs/workbench/contrib/chat/common/constants.js +15 -3
  532. package/vscode/src/vs/workbench/contrib/chat/common/customizationHarnessService.d.ts +64 -49
  533. package/vscode/src/vs/workbench/contrib/chat/common/customizationHarnessService.js +162 -45
  534. package/vscode/src/vs/workbench/contrib/chat/common/customizationHarnessService.service.d.ts +38 -1
  535. package/vscode/src/vs/workbench/contrib/chat/common/editing/chatEditingService.js +2 -2
  536. package/vscode/src/vs/workbench/contrib/chat/common/enablement.d.ts +3 -3
  537. package/vscode/src/vs/workbench/contrib/chat/common/enablement.js +11 -11
  538. package/vscode/src/vs/workbench/contrib/chat/common/languageModelStats.js +3 -3
  539. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.d.ts +6 -7
  540. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +42 -122
  541. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.service.d.ts +7 -1
  542. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.d.ts +17 -2
  543. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.js +48 -13
  544. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatElicitationRequestPart.d.ts +8 -1
  545. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatElicitationRequestPart.js +2 -1
  546. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatPlanReviewData.d.ts +2 -0
  547. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatPlanReviewData.js +9 -0
  548. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatQuestionCarouselData.d.ts +5 -0
  549. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatQuestionCarouselData.js +13 -0
  550. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +1 -1
  551. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.d.ts +7 -1
  552. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.js +1 -1
  553. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service.d.ts +1 -1
  554. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +50 -0
  555. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +32 -0
  556. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.service.d.ts +1 -1
  557. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginGitService.service.d.ts +17 -1
  558. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service.d.ts +11 -0
  559. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.js +100 -39
  560. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/config.d.ts +0 -4
  561. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/config.js +1 -2
  562. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.d.ts +12 -3
  563. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.js +20 -16
  564. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +50 -0
  565. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +77 -0
  566. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +77 -0
  567. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +120 -0
  568. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +10 -0
  569. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +23 -0
  570. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.js +18 -18
  571. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookTypes.js +20 -20
  572. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptFileAttributes.js +91 -77
  573. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser.d.ts +2 -0
  574. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser.js +4 -0
  575. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.d.ts +5 -0
  576. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.js +29 -1
  577. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +5 -18
  578. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +1 -4
  579. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service.d.ts +1 -1
  580. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +234 -0
  581. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +1686 -0
  582. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +191 -0
  583. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +734 -0
  584. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatParserTypes.d.ts +2 -1
  585. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatParserTypes.js +6 -3
  586. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatRequestParser.d.ts +1 -0
  587. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatRequestParser.js +14 -3
  588. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/askQuestionsTool.d.ts +4 -2
  589. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/askQuestionsTool.js +55 -36
  590. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/confirmationTool.js +6 -1
  591. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/manageTodoListTool.js +10 -10
  592. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/reviewPlanTool.js +7 -7
  593. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/runSubagentTool.js +3 -3
  594. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/setArtifactRulesTool.js +3 -3
  595. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/setArtifactsTool.js +4 -4
  596. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsConfirmationService.d.ts +6 -0
  597. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +22 -22
  598. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.d.ts +25 -5
  599. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.js +3 -3
  600. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.d.ts +39 -0
  601. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.service.d.ts +12 -0
  602. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.service.js +6 -0
  603. package/vscode/src/vs/workbench/contrib/chat/common/widget/input/modelPickerWidget.js +1 -1
  604. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +11 -11
  605. package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +4 -4
  606. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorAccessibilityHelp.js +5 -5
  607. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -3
  608. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +10 -10
  609. package/vscode/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.js +2 -2
  610. package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +3 -3
  611. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +6 -6
  612. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +4 -4
  613. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +2 -2
  614. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +3 -3
  615. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +2 -2
  616. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +12 -12
  617. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +5 -5
  618. package/vscode/src/vs/workbench/contrib/codeEditor/common/languageConfigurationExtensionPoint.js +65 -65
  619. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +7 -7
  620. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +7 -7
  621. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +2 -2
  622. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +3 -3
  623. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +3 -3
  624. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +3 -3
  625. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +3 -3
  626. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +3 -3
  627. package/vscode/src/vs/workbench/contrib/comments/browser/commentsAccessibility.js +12 -12
  628. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.d.ts +2 -1
  629. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +22 -13
  630. package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +1 -1
  631. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +9 -9
  632. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +14 -14
  633. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +16 -16
  634. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +7 -7
  635. package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +12 -12
  636. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorDiffInput.d.ts +101 -0
  637. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorDiffInput.js +428 -0
  638. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.d.ts +1 -0
  639. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.js +7 -13
  640. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +1 -1
  641. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +29 -29
  642. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +22 -15
  643. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +91 -76
  644. package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +2 -2
  645. package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +17 -15
  646. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +12 -12
  647. package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +38 -38
  648. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +2 -2
  649. package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +3 -3
  650. package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +57 -57
  651. package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +3 -3
  652. package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +4 -4
  653. package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +2 -2
  654. package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +26 -21
  655. package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +5 -5
  656. package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +9 -9
  657. package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +1 -1
  658. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +65 -65
  659. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +6 -6
  660. package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
  661. package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +2 -2
  662. package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +1 -1
  663. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +1 -1
  664. package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/commands.js +2 -2
  665. package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/configurationSchema.js +4 -4
  666. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryService.d.ts +7 -0
  667. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryService.service.d.ts +2 -1
  668. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.d.ts +11 -0
  669. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +181 -181
  670. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsIcons.js +25 -25
  671. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +7 -7
  672. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +30 -30
  673. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +1 -1
  674. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.service.d.ts +1 -1
  675. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsFileTemplate.js +5 -5
  676. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsUtils.js +3 -3
  677. package/vscode/src/vs/workbench/contrib/extensions/common/searchExtensionsTool.js +3 -3
  678. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/configuration.js +4 -4
  679. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +3 -3
  680. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +1 -1
  681. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +8 -8
  682. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +18 -18
  683. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +14 -14
  684. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +49 -49
  685. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +94 -89
  686. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands._save.js +4 -4
  687. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +2 -2
  688. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -6
  689. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +30 -27
  690. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +54 -51
  691. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  692. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
  693. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.js +4 -4
  694. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +7 -7
  695. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +17 -17
  696. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +7 -7
  697. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +4 -4
  698. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +1 -1
  699. package/vscode/src/vs/workbench/contrib/files/common/files.js +16 -16
  700. package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +3 -3
  701. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +20 -20
  702. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsNone.js +4 -4
  703. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
  704. package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +4 -4
  705. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service.d.ts +4 -5
  706. package/vscode/src/vs/workbench/contrib/list/browser/listResizeColumnAction.js +2 -2
  707. package/vscode/src/vs/workbench/contrib/list/browser/tableColumnResizeQuickPick.js +5 -5
  708. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.js +67 -66
  709. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerActions.js +40 -40
  710. package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfiguration.d.ts +5 -0
  711. package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfiguration.js +49 -43
  712. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.js +22 -16
  713. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.d.ts +10 -2
  714. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.js +4 -4
  715. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +4 -4
  716. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +23 -23
  717. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +2 -2
  718. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +8 -8
  719. package/vscode/src/vs/workbench/contrib/meteredConnection/browser/meteredConnection.contribution.js +8 -8
  720. package/vscode/src/vs/workbench/contrib/meteredConnection/browser/meteredConnectionStatus.js +4 -4
  721. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/icons.contribution.js +1 -1
  722. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +4 -4
  723. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +1 -1
  724. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +17 -17
  725. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +6 -6
  726. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
  727. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
  728. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +3 -3
  729. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +7 -7
  730. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.d.ts +0 -1
  731. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +34 -48
  732. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +29 -29
  733. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +5 -5
  734. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +7 -7
  735. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  736. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +4 -4
  737. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +1 -1
  738. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellOutput.js +3 -3
  739. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +1 -1
  740. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +2 -2
  741. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +4 -4
  742. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +1 -1
  743. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +14 -14
  744. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +2 -2
  745. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookViewZones.js +1 -1
  746. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +2 -2
  747. package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingWidgets.js +3 -3
  748. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesIcons.js +13 -13
  749. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +11 -11
  750. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsLayout.js +60 -60
  751. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.d.ts +8 -2
  752. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +30 -7
  753. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.d.ts +1 -0
  754. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +5 -4
  755. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +21 -21
  756. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +15 -15
  757. package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +17 -17
  758. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +59 -59
  759. package/vscode/src/vs/workbench/contrib/scm/browser/scmHistory.js +11 -11
  760. package/vscode/src/vs/workbench/contrib/scm/browser/scmHistoryChatContext.js +6 -6
  761. package/vscode/src/vs/workbench/contrib/scm/common/quickDiff.js +15 -51
  762. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +19 -14
  763. package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +3 -3
  764. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.d.ts +17 -1
  765. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +66 -3
  766. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +9 -9
  767. package/vscode/src/vs/workbench/contrib/search/browser/searchChatContext.js +5 -5
  768. package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +1 -1
  769. package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +20 -20
  770. package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +2 -2
  771. package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +14 -14
  772. package/vscode/src/vs/workbench/contrib/search/browser/searchView.d.ts +1 -1
  773. package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +57 -57
  774. package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +11 -11
  775. package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +2 -2
  776. package/vscode/src/vs/workbench/contrib/search/common/search.d.ts +5 -5
  777. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +4 -4
  778. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +5 -5
  779. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +3 -3
  780. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +3 -3
  781. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +9 -9
  782. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +29 -29
  783. package/vscode/src/vs/workbench/contrib/tasks/common/constants.js +1 -1
  784. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +6 -6
  785. package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +6 -6
  786. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +4 -4
  787. package/vscode/src/vs/workbench/contrib/terminal/browser/agentHostTerminalService.service.d.ts +9 -0
  788. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.service.d.ts +6 -0
  789. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +3 -3
  790. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcons.js +13 -13
  791. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMenus.js +40 -40
  792. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +15 -15
  793. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +1 -1
  794. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +10 -10
  795. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +23 -23
  796. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +17 -17
  797. package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +26 -26
  798. package/vscode/src/vs/workbench/contrib/terminal/terminalContribExports.d.ts +3 -0
  799. package/vscode/src/vs/workbench/contrib/terminal/terminalContribExports.js +3 -0
  800. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.js +2 -2
  801. package/vscode/src/vs/workbench/contrib/terminalContrib/autoReplies/common/terminalAutoRepliesConfiguration.js +2 -2
  802. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat.js +9 -9
  803. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.js +189 -69
  804. package/vscode/src/vs/workbench/contrib/terminalContrib/commandGuide/common/terminalCommandGuideConfiguration.js +1 -1
  805. package/vscode/src/vs/workbench/contrib/terminalContrib/history/common/terminal.history.js +1 -1
  806. package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.js +6 -3
  807. package/vscode/src/vs/workbench/contrib/terminalContrib/notification/common/terminalNotificationConfiguration.js +1 -1
  808. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js +3 -3
  809. package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/common/terminalSuggestConfiguration.js +30 -30
  810. package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/common/terminalTypeAheadConfiguration.js +5 -5
  811. package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/common/terminal.zoom.js +2 -2
  812. package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
  813. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
  814. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
  815. package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +6 -6
  816. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +3 -3
  817. package/vscode/src/vs/workbench/contrib/webview/browser/webview.d.ts +2 -4
  818. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindAccessibilityHelp.js +30 -30
  819. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.d.ts +1 -2
  820. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +9 -24
  821. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/common/onboardingTypes.js +14 -14
  822. package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +2 -2
  823. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +11 -11
  824. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +5 -5
  825. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.d.ts +19 -7
  826. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +137 -84
  827. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.service.d.ts +10 -0
  828. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -16
  829. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -1
  830. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
  831. package/vscode/src/vs/workbench/services/editor/browser/editorService.d.ts +2 -2
  832. package/vscode/src/vs/workbench/services/editor/browser/editorService.js +7 -3
  833. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.d.ts +7 -4
  834. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +14 -3
  835. package/vscode/src/vs/workbench/services/editor/common/editorService.d.ts +8 -0
  836. package/vscode/src/vs/workbench/services/editor/common/editorService.service.d.ts +2 -2
  837. package/vscode/src/vs/workbench/services/environment/browser/environmentService.d.ts +1 -1
  838. package/vscode/src/vs/workbench/services/environment/browser/environmentService.js +9 -9
  839. package/vscode/src/vs/workbench/services/environment/common/environmentService.service.d.ts +0 -1
  840. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionsIcons.js +3 -3
  841. package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +6 -6
  842. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
  843. package/vscode/src/vs/workbench/services/extensions/common/extensionManifestPropertiesService.d.ts +4 -0
  844. package/vscode/src/vs/workbench/services/extensions/common/extensionManifestPropertiesService.js +39 -1
  845. package/vscode/src/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service.d.ts +1 -0
  846. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +88 -88
  847. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +5 -5
  848. package/vscode/src/vs/workbench/services/language/common/languageService.js +24 -24
  849. package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
  850. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.d.ts +43 -0
  851. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.js +33 -0
  852. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.service.d.ts +14 -0
  853. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.service.js +6 -0
  854. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +2 -2
  855. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +7 -7
  856. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +4 -4
  857. package/vscode/src/vs/workbench/services/preferences/common/preferencesModels.js +2 -2
  858. package/vscode/src/vs/workbench/services/preferences/common/preferencesValidation.js +30 -30
  859. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
  860. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
  861. package/vscode/src/vs/workbench/services/search/common/ignoreFile.js +7 -2
  862. package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +3 -3
  863. package/vscode/src/vs/workbench/services/search/common/search.d.ts +1 -1
  864. package/vscode/src/vs/workbench/services/storage/browser/storageService.d.ts +4 -0
  865. package/vscode/src/vs/workbench/services/storage/browser/storageService.js +30 -2
  866. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +9 -9
  867. package/vscode/src/vs/workbench/services/textfile/common/encoding.js +20 -15
  868. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +3 -3
  869. package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +18 -18
  870. package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +8 -8
  871. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
  872. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +24 -24
  873. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.d.ts +0 -1
  874. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +4 -5
  875. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  876. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
  877. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +16 -16
  878. package/vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.js +3 -3
  879. package/vscode-dts/vscode.d.ts +3 -1
  880. package/{vscode/src/vs/workbench/contrib/extensions/browser/media/extensionManagement.css → vscode-dts/vscode.proposed.agentsWindowConfiguration.d.ts} +3 -7
  881. package/vscode-dts/vscode.proposed.chatDebug.d.ts +31 -0
  882. package/vscode-dts/vscode.proposed.chatInputNotification.d.ts +118 -0
  883. package/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts +14 -0
  884. package/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts +32 -0
  885. package/vscode-dts/vscode.proposed.chatPromptFiles.d.ts +29 -0
  886. package/vscode-dts/vscode.proposed.chatProvider.d.ts +2 -8
  887. package/vscode-dts/vscode.proposed.chatSessionCustomizationProvider.d.ts +16 -0
  888. package/vscode-dts/vscode.proposed.chatSessionsProvider.d.ts +68 -10
  889. package/vscode-dts/vscode.proposed.chatStatusItem.d.ts +1 -1
  890. package/vscode-dts/vscode.proposed.customEditorDiffs.d.ts +67 -0
  891. package/vscode-dts/vscode.proposed.customEditorPriority.d.ts +6 -0
  892. package/vscode-dts/vscode.proposed.d.ts +6 -0
  893. package/vscode-dts/vscode.proposed.documentDiff.d.ts +145 -0
  894. package/vscode-dts/vscode.proposed.languageModelPricing.d.ts +70 -0
  895. package/vscode/src/vs/base/common/defaultAccount.d.ts +0 -58
  896. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/animation.d.ts +0 -32
  897. package/vscode/src/vs/platform/extensionManagement/common/unsupportedExtensionsMigration.d.ts +0 -14
  898. package/vscode/src/vs/platform/extensionManagement/common/unsupportedExtensionsMigration.js +0 -145
  899. package/vscode/src/vs/platform/extensionRecommendations/common/extensionRecommendations.d.ts +0 -19
  900. package/vscode/src/vs/platform/extensionRecommendations/common/extensionRecommendations.js +0 -25
  901. package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.d.ts +0 -76
  902. package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +0 -470
  903. package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.d.ts +0 -25
  904. package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +0 -83
  905. package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.d.ts +0 -20
  906. package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +0 -66
  907. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.d.ts +0 -83
  908. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +0 -1359
  909. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.d.ts +0 -11
  910. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +0 -49
  911. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.d.ts +0 -22
  912. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +0 -728
  913. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.d.ts +0 -63
  914. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +0 -522
  915. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendations.d.ts +0 -19
  916. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendations.js +0 -18
  917. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.d.ts +0 -71
  918. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.js +0 -263
  919. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.d.ts +0 -5
  920. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +0 -2201
  921. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.d.ts +0 -9
  922. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +0 -40
  923. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.d.ts +0 -9
  924. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +0 -77
  925. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.d.ts +0 -16
  926. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +0 -93
  927. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.d.ts +0 -27
  928. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +0 -100
  929. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.d.ts +0 -151
  930. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +0 -1031
  931. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.d.ts +0 -235
  932. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +0 -1600
  933. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.d.ts +0 -314
  934. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +0 -3449
  935. package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.d.ts +0 -44
  936. package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +0 -368
  937. package/vscode/src/vs/workbench/contrib/extensions/browser/keymapRecommendations.d.ts +0 -9
  938. package/vscode/src/vs/workbench/contrib/extensions/browser/keymapRecommendations.js +0 -30
  939. package/vscode/src/vs/workbench/contrib/extensions/browser/languageRecommendations.d.ts +0 -9
  940. package/vscode/src/vs/workbench/contrib/extensions/browser/languageRecommendations.js +0 -30
  941. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css +0 -910
  942. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsViewlet.css +0 -229
  943. package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading-dark.svg +0 -31
  944. package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading-hc.svg +0 -31
  945. package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading.svg +0 -31
  946. package/vscode/src/vs/workbench/contrib/extensions/browser/media/runtimeExtensionsEditor.css +0 -86
  947. package/vscode/src/vs/workbench/contrib/extensions/browser/remoteRecommendations.d.ts +0 -9
  948. package/vscode/src/vs/workbench/contrib/extensions/browser/remoteRecommendations.js +0 -38
  949. package/vscode/src/vs/workbench/contrib/extensions/browser/unsupportedExtensionsMigrationContribution.d.ts +0 -9
  950. package/vscode/src/vs/workbench/contrib/extensions/browser/unsupportedExtensionsMigrationContribution.js +0 -41
  951. package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.d.ts +0 -11
  952. package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +0 -38
  953. package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.d.ts +0 -33
  954. package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +0 -179
  955. package/vscode/src/vs/workbench/contrib/extensions/common/extensionQuery.d.ts +0 -11
  956. package/vscode/src/vs/workbench/contrib/extensions/common/extensionQuery.js +0 -90
  957. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.d.ts +0 -24
  958. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +0 -50
  959. package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.d.ts +0 -15
  960. package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +0 -47
  961. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.service.d.ts +0 -10
  962. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.service.js +0 -6
  963. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditor.d.ts +0 -72
  964. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditor.js +0 -998
  965. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditorInput.d.ts +0 -17
  966. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditorInput.js +0 -49
  967. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerIcons.d.ts +0 -5
  968. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerIcons.js +0 -12
  969. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerWidgets.d.ts +0 -88
  970. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerWidgets.js +0 -464
  971. package/vscode/src/vs/workbench/contrib/mcp/browser/media/mcpServerEditor.css +0 -94
  972. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.d.ts +0 -16
  973. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +0 -475
  974. package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.d.ts +0 -34
  975. package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.js +0 -874
@@ -0,0 +1,1686 @@
1
+
2
+ import { __decorate, __param } from '../../../../../../../../../external/tslib/tslib.es6.js';
3
+ import { CancellationToken } from '../../../../../../base/common/cancellation.js';
4
+ import { CancellationError } from '../../../../../../base/common/errors.js';
5
+ import { Emitter, Event } from '../../../../../../base/common/event.js';
6
+ import { parse } from '../../../../../../base/common/json.js';
7
+ import { Disposable, DisposableStore } from '../../../../../../base/common/lifecycle.js';
8
+ import { StopWatch } from '../../../../../../base/common/stopwatch.js';
9
+ import '../../../../../../base/common/observableInternal/index.js';
10
+ import { ResourceMap, ResourceSet } from '../../../../../../base/common/map.js';
11
+ import { isEqual, dirname, basename } from '../../../../../../base/common/resources.js';
12
+ import { URI } from '../../../../../../base/common/uri.js';
13
+ import { OffsetRange } from '../../../../../../editor/common/core/ranges/offsetRange.js';
14
+ import { IModelService } from '../../../../../../editor/common/services/model.service.js';
15
+ import { localize } from '../../../../../../nls.js';
16
+ import { IConfigurationService } from '../../../../../../platform/configuration/common/configuration.service.js';
17
+ import { FileOperationError, FileOperationResult } from '../../../../../../platform/files/common/files.js';
18
+ import { IFileService } from '../../../../../../platform/files/common/files.service.js';
19
+ import { IExtensionService } from '../../../../../services/extensions/common/extensions.service.js';
20
+ import { IInstantiationService } from '../../../../../../platform/instantiation/common/instantiation.js';
21
+ import { ILabelService } from '../../../../../../platform/label/common/label.service.js';
22
+ import { ILogService } from '../../../../../../platform/log/common/log.service.js';
23
+ import { IFilesConfigurationService } from '../../../../../services/filesConfiguration/common/filesConfigurationService.service.js';
24
+ import { StorageScope, StorageTarget } from '../../../../../../platform/storage/common/storage.js';
25
+ import { IStorageService } from '../../../../../../platform/storage/common/storage.service.js';
26
+ import { ITelemetryService } from '../../../../../../platform/telemetry/common/telemetry.service.js';
27
+ import { IUserDataProfileService } from '../../../../../services/userDataProfile/common/userDataProfile.service.js';
28
+ import { PromptsConfig } from '../config/config.js';
29
+ import { getSkillFolderName, getCleanPromptName, AGENT_MD_FILENAME, CLAUDE_MD_FILENAME, CLAUDE_LOCAL_MD_FILENAME, CLAUDE_CONFIG_FOLDER, COPILOT_CUSTOM_INSTRUCTIONS_FILENAME, GITHUB_CONFIG_FOLDER, isInClaudeRulesFolder } from '../config/promptFileLocations.js';
30
+ import { PromptsType, PromptFileSource, PROMPT_LANGUAGE_ID, getPromptsTypeForLanguageId, Target } from '../promptTypes.js';
31
+ import { PromptFilesLocator } from '../utils/promptFilesLocator.js';
32
+ import { PromptFileParser, evaluateApplyToPattern, PromptHeaderAttributes } from '../promptFileParser.js';
33
+ import { PromptsStorage, SKILL_PROVIDER_ACTIVATION_EVENT, PROMPT_FILE_PROVIDER_ACTIVATION_EVENT, INSTRUCTIONS_PROVIDER_ACTIVATION_EVENT, CUSTOM_AGENT_PROVIDER_ACTIVATION_EVENT, matchesSessionType, AgentInstructionFileType } from './promptsService.js';
34
+ import { Delayer } from '../../../../../../base/common/async.js';
35
+ import { Schemas } from '../../../../../../base/common/network.js';
36
+ import { parseSubagentHooksFromYaml } from '../hookSchema.js';
37
+ import { parseHooksFromFile, HookSourceFormat } from '../hookCompatibility.js';
38
+ import { IWorkspaceContextService } from '../../../../../../platform/workspace/common/workspace.service.js';
39
+ import { IWorkspaceTrustManagementService } from '../../../../../../platform/workspace/common/workspaceTrust.service.js';
40
+ import { IPathService } from '../../../../../services/path/common/pathService.service.js';
41
+ import { getTarget, mapClaudeModels, mapClaudeTools } from '../languageProviders/promptFileAttributes.js';
42
+ import { ContextKeyExpr } from '../../../../../../platform/contextkey/common/contextkey.js';
43
+ import { IContextKeyService } from '../../../../../../platform/contextkey/common/contextkey.service.js';
44
+ import { getCanonicalPluginCommandId } from '../../plugins/agentPluginService.js';
45
+ import { IAgentPluginService } from '../../plugins/agentPluginService.service.js';
46
+ import { isContributionEnabled } from '../../enablement.js';
47
+ import { assertNever } from '../../../../../../base/common/assert.js';
48
+ import { autorun } from '../../../../../../base/common/observableInternal/reactions/autorun.js';
49
+
50
+ let PromptsService = class PromptsService extends Disposable {
51
+ constructor(
52
+ logger,
53
+ labelService,
54
+ modelService,
55
+ instantiationService,
56
+ userDataService,
57
+ configurationService,
58
+ fileService,
59
+ filesConfigService,
60
+ storageService,
61
+ extensionService,
62
+ telemetryService,
63
+ workspaceService,
64
+ pathService,
65
+ contextKeyService,
66
+ agentPluginService,
67
+ workspaceTrustService
68
+ ) {
69
+ super();
70
+ this.logger = logger;
71
+ this.labelService = labelService;
72
+ this.modelService = modelService;
73
+ this.instantiationService = instantiationService;
74
+ this.userDataService = userDataService;
75
+ this.configurationService = configurationService;
76
+ this.fileService = fileService;
77
+ this.filesConfigService = filesConfigService;
78
+ this.storageService = storageService;
79
+ this.extensionService = extensionService;
80
+ this.telemetryService = telemetryService;
81
+ this.workspaceService = workspaceService;
82
+ this.pathService = pathService;
83
+ this.contextKeyService = contextKeyService;
84
+ this.agentPluginService = agentPluginService;
85
+ this.workspaceTrustService = workspaceTrustService;
86
+ this.cachedParsedPromptFromModels = ( new ResourceMap());
87
+ this.cachedFileLocations = {};
88
+ this.fileLocatorEvents = {};
89
+ this.contributedFiles = {
90
+ [PromptsType.prompt]: ( new ResourceMap()),
91
+ [PromptsType.instructions]: ( new ResourceMap()),
92
+ [PromptsType.agent]: ( new ResourceMap()),
93
+ [PromptsType.skill]: ( new ResourceMap()),
94
+ [PromptsType.hook]: ( new ResourceMap())
95
+ };
96
+ this._contributedWhenKeys = ( new Set());
97
+ this._contributedWhenClauses = ( new Map());
98
+ this._providerWhenClauses = ( new Map());
99
+ this._onDidContributedWhenChange = this._register(( new Emitter()));
100
+ this._onDidChangeInstructions = this._register(( new Emitter()));
101
+ this._onDidPluginPromptFilesChange = this._register(( new Emitter()));
102
+ this._onDidPluginHooksChange = this._register(( new Emitter()));
103
+ this._pluginPromptFilesByType = ( new Map());
104
+ this._pendingReadonlyUris = [];
105
+ this._pendingReadonlyFlush = false;
106
+ this.promptFileProviders = [];
107
+ this.disabledPromptsStorageKeyPrefix = "chat.disabledPromptFiles.";
108
+ this.fileLocator = this.createPromptFilesLocator();
109
+ this._register(this.modelService.onModelRemoved(model => {
110
+ this.cachedParsedPromptFromModels.delete(model.uri);
111
+ }));
112
+ this._register(this.contextKeyService.onDidChangeContext(e => {
113
+ if (e.affectsSome(this._contributedWhenKeys)) {
114
+ for (const type of ( Object.keys(this.cachedFileLocations))) {
115
+ this.cachedFileLocations[type] = undefined;
116
+ }
117
+ this._onDidContributedWhenChange.fire();
118
+ }
119
+ }));
120
+ const modelChangeEvent = this._register(( new ModelChangeTracker(this.modelService))).onDidPromptChange;
121
+ this.cachedCustomAgents = this._register(( new CachedPromise(token => this.computeAgentDiscoveryInfo(token), () => Event.any(
122
+ this.getFileLocatorEvent(PromptsType.agent),
123
+ Event.filter(modelChangeEvent, e => e.promptType === PromptsType.agent),
124
+ Event.filter(
125
+ this.configurationService.onDidChangeConfiguration,
126
+ e => e.affectsConfiguration(PromptsConfig.USE_CHAT_HOOKS)
127
+ ),
128
+ this._onDidContributedWhenChange.event,
129
+ this._onDidPluginPromptFilesChange.event,
130
+ this.workspaceTrustService.onDidChangeTrust
131
+ ))));
132
+ this.cachedSlashCommands = this._register(( new CachedPromise(token => this.computeSlashCommandDiscoveryInfo(token), () => Event.any(
133
+ this.getFileLocatorEvent(PromptsType.prompt),
134
+ this.getFileLocatorEvent(PromptsType.skill),
135
+ Event.filter(modelChangeEvent, e => e.promptType === PromptsType.prompt),
136
+ Event.filter(modelChangeEvent, e => e.promptType === PromptsType.skill),
137
+ this._onDidContributedWhenChange.event,
138
+ this._onDidPluginPromptFilesChange.event
139
+ ))));
140
+ this.cachedSkills = this._register(( new CachedPromise(token => this.computeSkillDiscovery(token), () => Event.any(
141
+ this.getFileLocatorEvent(PromptsType.skill),
142
+ Event.filter(modelChangeEvent, e => e.promptType === PromptsType.skill),
143
+ this._onDidContributedWhenChange.event,
144
+ this._onDidPluginPromptFilesChange.event
145
+ ))));
146
+ this.cachedHooks = this._register(( new CachedPromise(
147
+ token => this.computeHooks(token),
148
+ () => Event.any(this.getFileLocatorEvent(PromptsType.hook), Event.filter(
149
+ this.configurationService.onDidChangeConfiguration,
150
+ e => e.affectsConfiguration(PromptsConfig.USE_CHAT_HOOKS) || e.affectsConfiguration(PromptsConfig.USE_CLAUDE_HOOKS)
151
+ ), this._onDidPluginHooksChange.event, this.workspaceTrustService.onDidChangeTrust)
152
+ )));
153
+ this.cachedInstructions = this._register(( new CachedPromise(token => this.computeInstructionFiles(token), () => Event.any(
154
+ this.getFileLocatorEvent(PromptsType.instructions),
155
+ this._onDidContributedWhenChange.event,
156
+ this._onDidChangeInstructions.event,
157
+ this._onDidPluginPromptFilesChange.event
158
+ ))));
159
+ this._register(
160
+ this.watchPluginPromptFilesForType(PromptsType.prompt, (plugin, reader) => plugin.commands.read(reader))
161
+ );
162
+ this._register(
163
+ this.watchPluginPromptFilesForType(PromptsType.skill, (plugin, reader) => plugin.skills.read(reader))
164
+ );
165
+ this._register(
166
+ this.watchPluginPromptFilesForType(PromptsType.agent, (plugin, reader) => plugin.agents.read(reader))
167
+ );
168
+ this._register(this.watchPluginPromptFilesForType(
169
+ PromptsType.instructions,
170
+ (plugin, reader) => plugin.instructions.read(reader)
171
+ ));
172
+ this._register(autorun(reader => {
173
+ const plugins = this.agentPluginService.plugins.read(reader);
174
+ const hookFiles = [];
175
+ for (const plugin of plugins) {
176
+ if (isContributionEnabled(plugin.enablement.read(reader))) {
177
+ for (const hook of plugin.hooks.read(reader)) {
178
+ hookFiles.push({
179
+ uri: hook.uri,
180
+ storage: PromptsStorage.plugin,
181
+ type: PromptsType.hook,
182
+ name: getCanonicalPluginCommandId(plugin, hook.originalId),
183
+ pluginUri: plugin.uri,
184
+ source: PromptFileSource.Plugin
185
+ });
186
+ }
187
+ }
188
+ }
189
+ this._pluginPromptFilesByType.set(PromptsType.hook, hookFiles);
190
+ this.cachedFileLocations[PromptsType.hook] = undefined;
191
+ this._onDidPluginHooksChange.fire();
192
+ }));
193
+ }
194
+ watchPluginPromptFilesForType(type, getItems) {
195
+ return autorun(reader => {
196
+ const plugins = this.agentPluginService.plugins.read(reader);
197
+ const nextFiles = [];
198
+ for (const plugin of plugins) {
199
+ if (!isContributionEnabled(plugin.enablement.read(reader))) {
200
+ continue;
201
+ }
202
+ for (const item of getItems(plugin, reader)) {
203
+ nextFiles.push({
204
+ uri: item.uri,
205
+ storage: PromptsStorage.plugin,
206
+ type,
207
+ name: getCanonicalPluginCommandId(plugin, item.name),
208
+ pluginUri: plugin.uri,
209
+ source: PromptFileSource.Plugin
210
+ });
211
+ }
212
+ }
213
+ nextFiles.sort((a, b) => `${a.name ?? ""}|${( a.uri.toString())}`.localeCompare(`${b.name ?? ""}|${( b.uri.toString())}`));
214
+ this._pluginPromptFilesByType.set(type, nextFiles);
215
+ this.cachedFileLocations[type] = undefined;
216
+ this._onDidPluginPromptFilesChange.fire();
217
+ });
218
+ }
219
+ createPromptFilesLocator() {
220
+ return this.instantiationService.createInstance(PromptFilesLocator);
221
+ }
222
+ getFileLocatorEvent(type) {
223
+ let event = this.fileLocatorEvents[type];
224
+ if (!event) {
225
+ event = this.fileLocatorEvents[type] = this._register(this.fileLocator.createFilesUpdatedEvent(type)).event;
226
+ this._register(event(() => {
227
+ this.cachedFileLocations[type] = undefined;
228
+ }));
229
+ }
230
+ return event;
231
+ }
232
+ getParsedPromptFile(textModel) {
233
+ const cached = this.cachedParsedPromptFromModels.get(textModel.uri);
234
+ if (cached && cached[0] === textModel.getVersionId()) {
235
+ return cached[1];
236
+ }
237
+ const ast = ( new PromptFileParser()).parse(textModel.uri, textModel.getValue());
238
+ if (!cached || cached[0] < textModel.getVersionId()) {
239
+ this.cachedParsedPromptFromModels.set(textModel.uri, [textModel.getVersionId(), ast]);
240
+ }
241
+ return ast;
242
+ }
243
+ async listPromptFiles(type, token) {
244
+ let listPromise = this.cachedFileLocations[type];
245
+ if (!listPromise) {
246
+ listPromise = this.computeListPromptFiles(type, token);
247
+ if (!this.fileLocatorEvents[type]) {
248
+ return listPromise;
249
+ }
250
+ this.cachedFileLocations[type] = listPromise;
251
+ return listPromise;
252
+ }
253
+ return listPromise;
254
+ }
255
+ async computeListPromptFiles(type, token) {
256
+ const prompts = await Promise.all([
257
+ this.fileLocator.listFiles(type, PromptsStorage.user, token).then(uris => ( uris.map(uri => ({
258
+ uri,
259
+ storage: PromptsStorage.user,
260
+ type
261
+ })))),
262
+ this.fileLocator.listFiles(type, PromptsStorage.local, token).then(uris => ( uris.map(uri => ({
263
+ uri,
264
+ storage: PromptsStorage.local,
265
+ type
266
+ })))),
267
+ this.getExtensionPromptFiles(type, token),
268
+ this._pluginPromptFilesByType.get(type) ?? []
269
+ ]);
270
+ return prompts.flat();
271
+ }
272
+ async _collectSourceFolderDiagnostics(type) {
273
+ const resolvedFolders = await this.fileLocator.getSourceFoldersInDiscoveryOrder(type);
274
+ return ( resolvedFolders.map(folder => ({
275
+ uri: folder.uri,
276
+ storage: folder.storage
277
+ })));
278
+ }
279
+ registerPromptFileProvider(extension, type, provider) {
280
+ const providerEntry = {
281
+ extension,
282
+ type,
283
+ ...provider
284
+ };
285
+ this.promptFileProviders.push(providerEntry);
286
+ const disposables = ( new DisposableStore());
287
+ if (provider.onDidChangePromptFiles) {
288
+ disposables.add(provider.onDidChangePromptFiles(() => {
289
+ this.invalidatePromptFileCache(type);
290
+ }));
291
+ }
292
+ this.invalidatePromptFileCache(type);
293
+ disposables.add({
294
+ dispose: () => {
295
+ const index = this.promptFileProviders.findIndex(p => p === providerEntry);
296
+ if (index >= 0) {
297
+ this.promptFileProviders.splice(index, 1);
298
+ this._providerWhenClauses.delete(providerEntry);
299
+ this._updateContributedWhenKeys();
300
+ this.invalidatePromptFileCache(type);
301
+ }
302
+ }
303
+ });
304
+ return disposables;
305
+ }
306
+ invalidatePromptFileCache(type) {
307
+ if (type === PromptsType.agent) {
308
+ this.cachedFileLocations[PromptsType.agent] = undefined;
309
+ this.cachedCustomAgents.refresh();
310
+ } else if (type === PromptsType.instructions) {
311
+ this.cachedFileLocations[PromptsType.instructions] = undefined;
312
+ this._onDidChangeInstructions.fire();
313
+ } else if (type === PromptsType.prompt) {
314
+ this.cachedFileLocations[PromptsType.prompt] = undefined;
315
+ this.cachedSlashCommands.refresh();
316
+ } else if (type === PromptsType.skill) {
317
+ this.cachedFileLocations[PromptsType.skill] = undefined;
318
+ this.cachedSkills.refresh();
319
+ this.cachedSlashCommands.refresh();
320
+ }
321
+ }
322
+ async listFromProviders(type, activationEvent, token) {
323
+ const result = [];
324
+ const readonlyUris = [];
325
+ await this.extensionService.activateByEvent(activationEvent);
326
+ const providers = this.promptFileProviders.filter(p => p.type === type);
327
+ if (providers.length === 0) {
328
+ return result;
329
+ }
330
+ for (const providerEntry of providers) {
331
+ try {
332
+ const files = await providerEntry.providePromptFiles({}, token);
333
+ this._providerWhenClauses.set(providerEntry, files?.flatMap(file => file.when ? [file.when] : []) ?? []);
334
+ this._updateContributedWhenKeys();
335
+ if (!files || token.isCancellationRequested) {
336
+ continue;
337
+ }
338
+ for (const file of files) {
339
+ readonlyUris.push(file.uri);
340
+ result.push({
341
+ uri: file.uri,
342
+ storage: PromptsStorage.extension,
343
+ type,
344
+ extension: providerEntry.extension,
345
+ source: PromptFileSource.ExtensionAPI,
346
+ name: file.name,
347
+ description: file.description,
348
+ when: file.when,
349
+ sessionTypes: file.sessionTypes
350
+ });
351
+ }
352
+ } catch (e) {
353
+ this.logger.error(
354
+ `[listFromProviders] Failed to get ${type} files from provider`,
355
+ e instanceof Error ? e.message : String(e)
356
+ );
357
+ }
358
+ }
359
+ void this.filesConfigService.updateReadonly(readonlyUris, true);
360
+ return result;
361
+ }
362
+ async listPromptFilesForStorage(type, storage, token) {
363
+ let promptPaths;
364
+ switch (storage) {
365
+ case PromptsStorage.extension:
366
+ promptPaths = await this.getExtensionPromptFiles(type, token);
367
+ break;
368
+ case PromptsStorage.local:
369
+ promptPaths = await this.fileLocator.listFiles(type, PromptsStorage.local, token).then(uris => ( uris.map(uri => ({
370
+ uri,
371
+ storage: PromptsStorage.local,
372
+ type
373
+ }))));
374
+ break;
375
+ case PromptsStorage.user:
376
+ promptPaths = await this.fileLocator.listFiles(type, PromptsStorage.user, token).then(uris => ( uris.map(uri => ({
377
+ uri,
378
+ storage: PromptsStorage.user,
379
+ type
380
+ }))));
381
+ break;
382
+ case PromptsStorage.plugin:
383
+ promptPaths = this._pluginPromptFilesByType.get(type) ?? [];
384
+ break;
385
+ default:
386
+ throw ( new Error(`[listPromptFilesForStorage] Unsupported prompt storage type: ${storage}`));
387
+ }
388
+ return promptPaths;
389
+ }
390
+ async getExtensionPromptFiles(type, token) {
391
+ await this.extensionService.whenInstalledExtensionsRegistered();
392
+ const settledResults = await Promise.allSettled(( this.contributedFiles[type].values()));
393
+ const contributedFiles = ( settledResults.filter(result => result.status === "fulfilled").map(result => result.value));
394
+ const activationEvent = this.getProviderActivationEvent(type);
395
+ const providerFiles = activationEvent ? await this.listFromProviders(type, activationEvent, token) : [];
396
+ return [...contributedFiles, ...providerFiles].filter(file => {
397
+ if (!file.when) {
398
+ return true;
399
+ }
400
+ const when = ContextKeyExpr.deserialize(file.when);
401
+ if (!when) {
402
+ this.logger.warn(
403
+ `[getExtensionPromptFiles] Ignoring contributed prompt file with invalid when clause: ${file.when}`
404
+ );
405
+ return false;
406
+ }
407
+ return this.contextKeyService.contextMatchesRules(when);
408
+ });
409
+ }
410
+ getProviderActivationEvent(type) {
411
+ switch (type) {
412
+ case PromptsType.agent:
413
+ return CUSTOM_AGENT_PROVIDER_ACTIVATION_EVENT;
414
+ case PromptsType.instructions:
415
+ return INSTRUCTIONS_PROVIDER_ACTIVATION_EVENT;
416
+ case PromptsType.prompt:
417
+ return PROMPT_FILE_PROVIDER_ACTIVATION_EVENT;
418
+ case PromptsType.skill:
419
+ return SKILL_PROVIDER_ACTIVATION_EVENT;
420
+ case PromptsType.hook:
421
+ return undefined;
422
+ }
423
+ }
424
+ async getSourceFolders(type) {
425
+ const result = [];
426
+ if (type === PromptsType.hook) {
427
+ const hooksFolders = await this.fileLocator.getHookSourceFolders();
428
+ for (const folder of hooksFolders) {
429
+ result.push({
430
+ uri: folder.uri,
431
+ storage: folder.storage,
432
+ type,
433
+ source: folder.source
434
+ });
435
+ }
436
+ } else {
437
+ for (const uri of await this.fileLocator.getConfigBasedSourceFolders(type)) {
438
+ result.push({
439
+ uri,
440
+ storage: PromptsStorage.local,
441
+ type
442
+ });
443
+ }
444
+ }
445
+ if (type !== PromptsType.skill && type !== PromptsType.hook) {
446
+ const userHome = this.userDataService.currentProfile.promptsHome;
447
+ result.push({
448
+ uri: userHome,
449
+ storage: PromptsStorage.user,
450
+ type
451
+ });
452
+ }
453
+ return result;
454
+ }
455
+ async getResolvedSourceFolders(type) {
456
+ return this.fileLocator.getResolvedSourceFolders(type);
457
+ }
458
+ get onDidChangeSlashCommands() {
459
+ return this.cachedSlashCommands.onDidChangePromise;
460
+ }
461
+ async getPromptSlashCommands(token) {
462
+ const discoveryInfo = await this.cachedSlashCommands.get(token);
463
+ const result = this.slashCommandsFromDiscoveryInfo(discoveryInfo);
464
+ return result;
465
+ }
466
+ async computeSlashCommandDiscoveryInfo(token) {
467
+ const stopWatch = StopWatch.create(true);
468
+ const promptFiles = await this.listPromptFiles(PromptsType.prompt, token);
469
+ const useAgentSkills = this.configurationService.getValue(PromptsConfig.USE_AGENT_SKILLS);
470
+ const skills = useAgentSkills ? await this.listPromptFiles(PromptsType.skill, token) : [];
471
+ const disabledSkills = this.getDisabledPromptFiles(PromptsType.skill);
472
+ const slashCommandFiles = [...promptFiles, ...skills.filter(s => !( disabledSkills.has(s.uri)))];
473
+ const parseResults = await Promise.all(( slashCommandFiles.map(async promptPath => {
474
+ try {
475
+ const parsedPromptFile = await this.parseNew(promptPath.uri, token);
476
+ let rawName;
477
+ if (promptPath.type === PromptsType.skill) {
478
+ rawName = getSkillFolderName(promptPath.uri);
479
+ } else {
480
+ rawName = parsedPromptFile?.header?.name ?? promptPath.name ?? getCleanPromptName(promptPath.uri);
481
+ }
482
+ const name = promptPath.source === PromptFileSource.Plugin && promptPath.pluginUri ? getCanonicalPluginCommandId({
483
+ uri: promptPath.pluginUri
484
+ }, rawName) : rawName;
485
+ const description = parsedPromptFile?.header?.description ?? promptPath.description;
486
+ const argumentHint = parsedPromptFile?.header?.argumentHint;
487
+ const userInvocable = parsedPromptFile?.header?.userInvocable;
488
+ return {
489
+ status: "loaded",
490
+ promptPath: this.withPromptPathMetadata(promptPath, name, description),
491
+ argumentHint,
492
+ userInvocable
493
+ };
494
+ } catch (e) {
495
+ this.logger.error(
496
+ `[computeSlashCommandDiscoveryInfo] Failed to parse prompt file for slash command: ${promptPath.uri}`,
497
+ e instanceof Error ? e.message : String(e)
498
+ );
499
+ return {
500
+ status: "skipped",
501
+ skipReason: "parse-error",
502
+ errorMessage: e instanceof Error ? e.message : String(e),
503
+ promptPath
504
+ };
505
+ }
506
+ })));
507
+ const files = parseResults;
508
+ const promptSourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.prompt);
509
+ const sourceFolders = [...promptSourceFolders];
510
+ if (useAgentSkills) {
511
+ const skillSourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.skill);
512
+ sourceFolders.push(...skillSourceFolders);
513
+ }
514
+ return {
515
+ type: PromptsType.prompt,
516
+ files,
517
+ sourceFolders,
518
+ durationInMillis: stopWatch.elapsed()
519
+ };
520
+ }
521
+ slashCommandsFromDiscoveryInfo(discoveryInfo) {
522
+ const result = [];
523
+ const seen = ( new ResourceSet());
524
+ for (const file of discoveryInfo.files) {
525
+ if (file.status === "loaded") {
526
+ result.push(
527
+ this.asChatPromptSlashCommand(file.argumentHint, file.userInvocable, file.promptPath)
528
+ );
529
+ seen.add(file.promptPath.uri);
530
+ }
531
+ }
532
+ for (const model of this.modelService.getModels()) {
533
+ if (model.getLanguageId() === PROMPT_LANGUAGE_ID && model.uri.scheme === Schemas.untitled && !( seen.has(model.uri))) {
534
+ const parsedPromptFile = this.getParsedPromptFile(model);
535
+ const name = parsedPromptFile?.header?.name ?? getCleanPromptName(model.uri);
536
+ const description = parsedPromptFile?.header?.description;
537
+ result.push(this.asChatPromptSlashCommand(
538
+ parsedPromptFile?.header?.argumentHint,
539
+ parsedPromptFile?.header?.userInvocable,
540
+ {
541
+ uri: model.uri,
542
+ storage: PromptsStorage.local,
543
+ type: PromptsType.prompt,
544
+ name,
545
+ description
546
+ }
547
+ ));
548
+ }
549
+ }
550
+ return result;
551
+ }
552
+ isValidSlashCommandName(command) {
553
+ return command.match(/^[\p{L}\d_\-\.:]+$/u) !== null;
554
+ }
555
+ async resolvePromptSlashCommand(name, sessionType, token) {
556
+ const commands = await this.getPromptSlashCommands(token);
557
+ const command = commands.find(
558
+ cmd => cmd.name === name && matchesSessionType(cmd.sessionTypes, sessionType)
559
+ );
560
+ if (command) {
561
+ return {
562
+ ...command,
563
+ parsedPromptFile: await this.parseNew(command.uri, token)
564
+ };
565
+ }
566
+ return undefined;
567
+ }
568
+ asChatPromptSlashCommand(argumentHint, userInvocable, promptPath) {
569
+ let name = promptPath.name ?? getCleanPromptName(promptPath.uri);
570
+ name = name.replace(/[^\p{L}\d_\-\.:]+/gu, "-");
571
+ return {
572
+ uri: promptPath.uri,
573
+ name: name,
574
+ source: promptPath.source,
575
+ storage: promptPath.storage,
576
+ type: promptPath.type,
577
+ extension: promptPath.extension,
578
+ pluginUri: promptPath.pluginUri,
579
+ description: promptPath.description,
580
+ argumentHint: argumentHint,
581
+ userInvocable: userInvocable ?? true,
582
+ sessionTypes: promptPath.sessionTypes
583
+ };
584
+ }
585
+ async getPromptSlashCommandName(uri, token) {
586
+ const slashCommands = await this.getPromptSlashCommands(token);
587
+ const slashCommand = slashCommands.find(c => isEqual(c.uri, uri));
588
+ if (!slashCommand) {
589
+ return getCleanPromptName(uri);
590
+ }
591
+ return slashCommand.name;
592
+ }
593
+ get onDidChangeCustomAgents() {
594
+ return this.cachedCustomAgents.onDidChangePromise;
595
+ }
596
+ get onDidChangeInstructions() {
597
+ return this.cachedInstructions.onDidChangePromise;
598
+ }
599
+ async getCustomAgents(token) {
600
+ const discoveryInfo = await this.cachedCustomAgents.get(token);
601
+ const result = this.agentsFromDiscoveryInfo(discoveryInfo);
602
+ return result;
603
+ }
604
+ agentsFromDiscoveryInfo(discoveryInfo) {
605
+ const result = [];
606
+ for (const file of discoveryInfo.files) {
607
+ if (file.agent) {
608
+ result.push(file.agent);
609
+ }
610
+ }
611
+ return result;
612
+ }
613
+ async computeAgentDiscoveryInfo(token) {
614
+ const stopWatch = StopWatch.create(true);
615
+ const allAgentFiles = await this.listPromptFiles(PromptsType.agent, token);
616
+ const disabledAgents = this.getDisabledPromptFiles(PromptsType.agent);
617
+ const useChatHooks = this.configurationService.getValue(PromptsConfig.USE_CHAT_HOOKS);
618
+ const isWorkspaceTrusted = this.workspaceTrustService.isWorkspaceTrusted();
619
+ const userHomeUri = await this.pathService.userHome();
620
+ const userHome = userHomeUri.scheme === Schemas.file ? userHomeUri.fsPath : userHomeUri.path;
621
+ const defaultFolder = this.workspaceService.getWorkspace().folders[0];
622
+ const files = await Promise.all(( allAgentFiles.map(async promptPath => {
623
+ const uri = promptPath.uri;
624
+ const isEnabled = !( disabledAgents.has(uri));
625
+ try {
626
+ const ast = await this.parseNew(uri, token);
627
+ let hooks;
628
+ const hooksRaw = ast.header?.hooksRaw;
629
+ if (useChatHooks && isWorkspaceTrusted && hooksRaw) {
630
+ const hookWorkspaceFolder = this.workspaceService.getWorkspaceFolder(uri) ?? defaultFolder;
631
+ const workspaceRootUri = hookWorkspaceFolder?.uri;
632
+ const target = getTarget(PromptsType.agent, ast.header ?? promptPath.uri);
633
+ hooks = parseSubagentHooksFromYaml(hooksRaw, workspaceRootUri, userHome, target);
634
+ }
635
+ const extra = {
636
+ sessionTypes: promptPath.sessionTypes,
637
+ hooks,
638
+ name: promptPath.name,
639
+ description: promptPath.description,
640
+ source: IAgentSource.fromPromptPath(promptPath),
641
+ enabled: isEnabled
642
+ };
643
+ const agent = CustomAgent.fromParsedPromptFile(ast, extra);
644
+ const status = isEnabled ? "loaded" : "skipped";
645
+ const skipReason = isEnabled ? undefined : "disabled";
646
+ return {
647
+ status,
648
+ skipReason,
649
+ promptPath: this.withPromptPathMetadata(promptPath, agent.name, agent.description),
650
+ agent
651
+ };
652
+ } catch (e) {
653
+ const error = e instanceof Error ? e : ( new Error(String(e)));
654
+ if (error instanceof FileOperationError && error.fileOperationResult === FileOperationResult.FILE_NOT_FOUND) {
655
+ this.logger.warn(
656
+ `[computeAgentDiscoveryInfo] Skipping agent file that does not exist: ${uri}`,
657
+ error.message
658
+ );
659
+ } else {
660
+ this.logger.error(`[computeAgentDiscoveryInfo] Failed to parse agent file: ${uri}`, error);
661
+ }
662
+ return {
663
+ status: "skipped",
664
+ skipReason: "parse-error",
665
+ errorMessage: error.message,
666
+ promptPath
667
+ };
668
+ }
669
+ })));
670
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.agent);
671
+ return {
672
+ type: PromptsType.agent,
673
+ files,
674
+ sourceFolders,
675
+ durationInMillis: stopWatch.elapsed()
676
+ };
677
+ }
678
+ async parseNew(uri, token) {
679
+ const model = this.modelService.getModel(uri);
680
+ if (model) {
681
+ return this.getParsedPromptFile(model);
682
+ }
683
+ const fileContent = await this.fileService.readFile(uri);
684
+ if (token.isCancellationRequested) {
685
+ throw ( new CancellationError());
686
+ }
687
+ return ( new PromptFileParser()).parse(uri, ( fileContent.value.toString()));
688
+ }
689
+ registerContributedFile(type, uri, extension, name, description, when, sessionTypes) {
690
+ const bucket = this.contributedFiles[type];
691
+ if (( bucket.has(uri))) {
692
+ return Disposable.None;
693
+ }
694
+ const entryPromise = (async () => {
695
+ if (type === PromptsType.skill) {
696
+ try {
697
+ const validated = await this.validateAndSanitizeSkillFile(uri, CancellationToken.None);
698
+ name = validated.name;
699
+ description = validated.description;
700
+ } catch (e) {
701
+ const msg = e instanceof Error ? e.message : String(e);
702
+ this.logger.error(
703
+ `[registerContributedFile] Extension '${extension.identifier.value}' failed to validate skill file: ${uri}`,
704
+ msg
705
+ );
706
+ throw e;
707
+ }
708
+ }
709
+ return {
710
+ uri,
711
+ name,
712
+ description,
713
+ when,
714
+ sessionTypes,
715
+ storage: PromptsStorage.extension,
716
+ type,
717
+ extension,
718
+ source: PromptFileSource.ExtensionContribution
719
+ };
720
+ })();
721
+ bucket.set(uri, entryPromise);
722
+ this._enqueueReadonlyUpdate(uri);
723
+ if (when) {
724
+ this._contributedWhenClauses.set(`${type}/${( uri.toString())}`, when);
725
+ }
726
+ const flushCachesIfRequired = () => {
727
+ this._updateContributedWhenKeys();
728
+ this.cachedFileLocations[type] = undefined;
729
+ switch (type) {
730
+ case PromptsType.agent:
731
+ this.cachedCustomAgents.refresh();
732
+ break;
733
+ case PromptsType.prompt:
734
+ this.cachedSlashCommands.refresh();
735
+ break;
736
+ case PromptsType.skill:
737
+ this.cachedSkills.refresh();
738
+ this.cachedSlashCommands.refresh();
739
+ break;
740
+ }
741
+ };
742
+ flushCachesIfRequired();
743
+ return {
744
+ dispose: () => {
745
+ bucket.delete(uri);
746
+ this._contributedWhenClauses.delete(`${type}/${( uri.toString())}`);
747
+ flushCachesIfRequired();
748
+ }
749
+ };
750
+ }
751
+ _enqueueReadonlyUpdate(uri) {
752
+ this._pendingReadonlyUris.push(uri);
753
+ if (!this._pendingReadonlyFlush) {
754
+ this._pendingReadonlyFlush = true;
755
+ queueMicrotask(() => {
756
+ const uris = this._pendingReadonlyUris;
757
+ this._pendingReadonlyUris = [];
758
+ this._pendingReadonlyFlush = false;
759
+ void this.filesConfigService.updateReadonly(uris, true);
760
+ });
761
+ }
762
+ }
763
+ _updateContributedWhenKeys() {
764
+ this._contributedWhenKeys.clear();
765
+ for (const whenClause of ( this._contributedWhenClauses.values())) {
766
+ const expr = ContextKeyExpr.deserialize(whenClause);
767
+ for (const key of expr?.keys() ?? []) {
768
+ this._contributedWhenKeys.add(key);
769
+ }
770
+ }
771
+ for (const whenClauses of ( this._providerWhenClauses.values())) {
772
+ for (const whenClause of whenClauses) {
773
+ const expr = ContextKeyExpr.deserialize(whenClause);
774
+ for (const key of expr?.keys() ?? []) {
775
+ this._contributedWhenKeys.add(key);
776
+ }
777
+ }
778
+ }
779
+ }
780
+ getPromptLocationLabel(promptPath) {
781
+ switch (promptPath.storage) {
782
+ case PromptsStorage.local:
783
+ return this.labelService.getUriLabel(dirname(promptPath.uri), {
784
+ relative: true
785
+ });
786
+ case PromptsStorage.user:
787
+ return localize(8074, "User Data");
788
+ case PromptsStorage.extension:
789
+ {
790
+ return localize(
791
+ 8075,
792
+ "Extension: {0}",
793
+ promptPath.extension.displayName ?? promptPath.extension.id
794
+ );
795
+ }
796
+ case PromptsStorage.plugin:
797
+ return localize(8076, "Plugin");
798
+ default:
799
+ assertNever(promptPath, "Unknown prompt storage type");
800
+ }
801
+ }
802
+ async listNestedAgentMDs(token) {
803
+ const useAgentMD = this.configurationService.getValue(PromptsConfig.USE_AGENT_MD);
804
+ if (!useAgentMD) {
805
+ return [];
806
+ }
807
+ const useNestedAgentMD = this.configurationService.getValue(PromptsConfig.USE_NESTED_AGENT_MD);
808
+ if (useNestedAgentMD) {
809
+ return await this.fileLocator.findAgentMDsInWorkspace(token);
810
+ }
811
+ return [];
812
+ }
813
+ async listAgentInstructions(token, logger) {
814
+ const resolvedAgentFiles = [];
815
+ const promises = [];
816
+ const includeParents = this.configurationService.getValue(PromptsConfig.USE_CUSTOMIZATIONS_IN_PARENT_REPOS) === true;
817
+ const rootFolders = await this.fileLocator.getWorkspaceFolderRoots(includeParents, logger);
818
+ const rootFiles = [];
819
+ const useAgentMD = this.configurationService.getValue(PromptsConfig.USE_AGENT_MD);
820
+ if (!useAgentMD) {
821
+ logger?.logInfo("Agent MD files are disabled via configuration.");
822
+ } else {
823
+ rootFiles.push({
824
+ fileName: AGENT_MD_FILENAME,
825
+ type: AgentInstructionFileType.agentsMd
826
+ });
827
+ }
828
+ const useClaudeMD = this.configurationService.getValue(PromptsConfig.USE_CLAUDE_MD);
829
+ if (!useClaudeMD) {
830
+ logger?.logInfo("Claude MD files are disabled via configuration.");
831
+ } else {
832
+ const claudeMdFile = {
833
+ fileName: CLAUDE_MD_FILENAME,
834
+ type: AgentInstructionFileType.claudeMd
835
+ };
836
+ rootFiles.push(claudeMdFile);
837
+ rootFiles.push({
838
+ fileName: CLAUDE_LOCAL_MD_FILENAME,
839
+ type: AgentInstructionFileType.claudeMd
840
+ });
841
+ promises.push(this.fileLocator.findFilesInRoots(
842
+ rootFolders,
843
+ CLAUDE_CONFIG_FOLDER,
844
+ [claudeMdFile],
845
+ token,
846
+ resolvedAgentFiles
847
+ ));
848
+ promises.push(this.fileLocator.findFilesInRoots(
849
+ [await this.pathService.userHome()],
850
+ CLAUDE_CONFIG_FOLDER,
851
+ [claudeMdFile],
852
+ token,
853
+ resolvedAgentFiles
854
+ ));
855
+ }
856
+ const useCopilotInstructionsFiles = this.configurationService.getValue(PromptsConfig.USE_COPILOT_INSTRUCTION_FILES);
857
+ if (!useCopilotInstructionsFiles) {
858
+ logger?.logInfo("Copilot instructions files are disabled via configuration.");
859
+ } else {
860
+ const githubConfigFiles = [{
861
+ fileName: COPILOT_CUSTOM_INSTRUCTIONS_FILENAME,
862
+ type: AgentInstructionFileType.copilotInstructionsMd
863
+ }];
864
+ promises.push(this.fileLocator.findFilesInRoots(
865
+ rootFolders,
866
+ GITHUB_CONFIG_FOLDER,
867
+ githubConfigFiles,
868
+ token,
869
+ resolvedAgentFiles
870
+ ));
871
+ }
872
+ promises.push(
873
+ this.fileLocator.findFilesInRoots(rootFolders, undefined, rootFiles, token, resolvedAgentFiles)
874
+ );
875
+ await Promise.all(promises);
876
+ if (token.isCancellationRequested) {
877
+ return [];
878
+ }
879
+ const seenFileURI = ( new ResourceSet());
880
+ const symlinks = [];
881
+ const result = [];
882
+ const add = file => {
883
+ if (file.realPath) {
884
+ symlinks.push(file);
885
+ } else {
886
+ result.push(file);
887
+ seenFileURI.add(file.uri);
888
+ }
889
+ return true;
890
+ };
891
+ resolvedAgentFiles.forEach(add);
892
+ for (const symlink of symlinks) {
893
+ if (( seenFileURI.has(symlink.realPath))) {
894
+ logger?.logInfo(
895
+ `Skipping symlinked agent instructions file ${symlink.uri} as target already included: ${symlink.realPath}`
896
+ );
897
+ } else {
898
+ result.push(symlink);
899
+ seenFileURI.add(symlink.realPath);
900
+ }
901
+ }
902
+ return result.sort((a, b) => ( a.uri.toString()).localeCompare(( b.uri.toString())));
903
+ }
904
+ getAgentFileURIFromModeFile(oldURI) {
905
+ return this.fileLocator.getAgentFileURIFromModeFile(oldURI);
906
+ }
907
+ getDisabledPromptFiles(type) {
908
+ const disabledKey = this.disabledPromptsStorageKeyPrefix + type;
909
+ const value = this.storageService.get(disabledKey, StorageScope.PROFILE, "[]");
910
+ const result = ( new ResourceSet());
911
+ try {
912
+ const arr = JSON.parse(value);
913
+ if (Array.isArray(arr)) {
914
+ for (const s of arr) {
915
+ try {
916
+ result.add(URI.revive(s));
917
+ } catch {}
918
+ }
919
+ }
920
+ } catch {}
921
+ return result;
922
+ }
923
+ setDisabledPromptFiles(type, uris) {
924
+ const disabled = ( Array.from(uris).map(uri => uri.toJSON()));
925
+ this.storageService.store(
926
+ this.disabledPromptsStorageKeyPrefix + type,
927
+ JSON.stringify(disabled),
928
+ StorageScope.PROFILE,
929
+ StorageTarget.USER
930
+ );
931
+ if (type === PromptsType.agent) {
932
+ this.cachedCustomAgents.refresh();
933
+ } else if (type === PromptsType.skill) {
934
+ this.cachedSkills.refresh();
935
+ this.cachedSlashCommands.refresh();
936
+ }
937
+ }
938
+ sanitizeAgentSkillText(text) {
939
+ return text.replace(/<[^>]+>/g, "");
940
+ }
941
+ async validateAndSanitizeSkillFile(uri, token) {
942
+ const parsedFile = await this.parseNew(uri, token);
943
+ const folderName = getSkillFolderName(uri);
944
+ let name = parsedFile.header?.name;
945
+ if (!name) {
946
+ this.logger.debug(
947
+ `[validateAndSanitizeSkillFile] Agent skill file missing name attribute, using folder name "${folderName}": ${uri}`
948
+ );
949
+ name = folderName;
950
+ }
951
+ const description = parsedFile.header?.description;
952
+ let sanitizedName = this.truncateAgentSkillName(name, uri);
953
+ if (sanitizedName !== folderName) {
954
+ this.logger.debug(
955
+ `[validateAndSanitizeSkillFile] Agent skill name "${sanitizedName}" does not match folder name "${folderName}", using folder name: ${uri}`
956
+ );
957
+ sanitizedName = folderName;
958
+ }
959
+ const sanitizedDescription = description ? this.truncateAgentSkillDescription(description, uri) : undefined;
960
+ return {
961
+ name: sanitizedName,
962
+ description: sanitizedDescription
963
+ };
964
+ }
965
+ truncateAgentSkillName(name, uri) {
966
+ const MAX_NAME_LENGTH = 64;
967
+ const sanitized = this.sanitizeAgentSkillText(name);
968
+ if (sanitized !== name) {
969
+ this.logger.debug(`[findAgentSkills] Agent skill name contains XML tags, removed: ${uri}`);
970
+ }
971
+ if (sanitized.length > MAX_NAME_LENGTH) {
972
+ this.logger.debug(
973
+ `[findAgentSkills] Agent skill name exceeds ${MAX_NAME_LENGTH} characters, truncated: ${uri}`
974
+ );
975
+ return sanitized.substring(0, MAX_NAME_LENGTH);
976
+ }
977
+ return sanitized;
978
+ }
979
+ truncateAgentSkillDescription(description, uri) {
980
+ if (!description) {
981
+ return undefined;
982
+ }
983
+ const MAX_DESCRIPTION_LENGTH = 1024;
984
+ const sanitized = this.sanitizeAgentSkillText(description);
985
+ if (sanitized !== description) {
986
+ this.logger.debug(
987
+ `[findAgentSkills] Agent skill description contains XML tags, removed: ${uri}`
988
+ );
989
+ }
990
+ if (sanitized.length > MAX_DESCRIPTION_LENGTH) {
991
+ this.logger.debug(
992
+ `[findAgentSkills] Agent skill description exceeds ${MAX_DESCRIPTION_LENGTH} characters, truncated: ${uri}`
993
+ );
994
+ return sanitized.substring(0, MAX_DESCRIPTION_LENGTH);
995
+ }
996
+ return sanitized;
997
+ }
998
+ get onDidChangeSkills() {
999
+ return this.cachedSkills.onDidChangePromise;
1000
+ }
1001
+ get onDidChangeHooks() {
1002
+ return this.cachedHooks.onDidChangePromise;
1003
+ }
1004
+ async findAgentSkills(token) {
1005
+ const useAgentSkills = this.configurationService.getValue(PromptsConfig.USE_AGENT_SKILLS);
1006
+ if (!useAgentSkills) {
1007
+ return undefined;
1008
+ }
1009
+ const discoveryInfo = await this.cachedSkills.get(token);
1010
+ const result = this.skillsFromDiscoveryInfo(discoveryInfo);
1011
+ return result;
1012
+ }
1013
+ skillsFromDiscoveryInfo(discoveryInfo) {
1014
+ const result = [];
1015
+ for (const file of discoveryInfo.files) {
1016
+ if (file.status === "loaded" && file.promptPath.name) {
1017
+ const sanitizedDescription = this.truncateAgentSkillDescription(file.promptPath.description, file.promptPath.uri);
1018
+ result.push({
1019
+ uri: file.promptPath.uri,
1020
+ storage: file.promptPath.storage,
1021
+ name: file.promptPath.name,
1022
+ description: sanitizedDescription,
1023
+ disableModelInvocation: file.disableModelInvocation ?? false,
1024
+ userInvocable: file.userInvocable ?? true,
1025
+ pluginUri: file.promptPath.pluginUri,
1026
+ extension: file.promptPath.extension,
1027
+ sessionTypes: file.promptPath.sessionTypes
1028
+ });
1029
+ }
1030
+ }
1031
+ return result;
1032
+ }
1033
+ async computeSkillDiscovery(token) {
1034
+ const stopWatch = StopWatch.create(true);
1035
+ const files = await this.computeSkillDiscoveryInfo(token);
1036
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.skill);
1037
+ const skillsBySource = ( new Map());
1038
+ for (const file of files) {
1039
+ if (file.status === "loaded" && file.promptPath.name) {
1040
+ const source = file.promptPath.source;
1041
+ if (source) {
1042
+ skillsBySource.set(source, (skillsBySource.get(source) || 0) + 1);
1043
+ }
1044
+ }
1045
+ }
1046
+ let skippedMissingName = 0;
1047
+ let skippedMissingDescription = 0;
1048
+ let skippedDuplicateName = 0;
1049
+ let skippedParseFailed = 0;
1050
+ let skippedNameMismatch = 0;
1051
+ for (const file of files) {
1052
+ if (file.status === "skipped") {
1053
+ switch (file.skipReason) {
1054
+ case "missing-name":
1055
+ skippedMissingName++;
1056
+ break;
1057
+ case "missing-description":
1058
+ skippedMissingDescription++;
1059
+ break;
1060
+ case "duplicate-name":
1061
+ skippedDuplicateName++;
1062
+ break;
1063
+ case "name-mismatch":
1064
+ skippedNameMismatch++;
1065
+ break;
1066
+ case "parse-error":
1067
+ skippedParseFailed++;
1068
+ break;
1069
+ }
1070
+ }
1071
+ }
1072
+ const totalSkillsFound = files.filter(f => f.status === "loaded" && f.promptPath.name).length;
1073
+ this.telemetryService.publicLog2("agentSkillsFound", {
1074
+ totalSkillsFound,
1075
+ claudePersonal: skillsBySource.get(PromptFileSource.ClaudePersonal) ?? 0,
1076
+ claudeWorkspace: skillsBySource.get(PromptFileSource.ClaudeWorkspace) ?? 0,
1077
+ copilotPersonal: skillsBySource.get(PromptFileSource.CopilotPersonal) ?? 0,
1078
+ githubWorkspace: skillsBySource.get(PromptFileSource.GitHubWorkspace) ?? 0,
1079
+ agentsPersonal: skillsBySource.get(PromptFileSource.AgentsPersonal) ?? 0,
1080
+ agentsWorkspace: skillsBySource.get(PromptFileSource.AgentsWorkspace) ?? 0,
1081
+ configWorkspace: skillsBySource.get(PromptFileSource.ConfigWorkspace) ?? 0,
1082
+ configPersonal: skillsBySource.get(PromptFileSource.ConfigPersonal) ?? 0,
1083
+ extensionContribution: skillsBySource.get(PromptFileSource.ExtensionContribution) ?? 0,
1084
+ extensionAPI: skillsBySource.get(PromptFileSource.ExtensionAPI) ?? 0,
1085
+ plugin: skillsBySource.get(PromptFileSource.Plugin) ?? 0,
1086
+ skippedDuplicateName,
1087
+ skippedMissingName,
1088
+ skippedMissingDescription,
1089
+ skippedNameMismatch,
1090
+ skippedParseFailed
1091
+ });
1092
+ return {
1093
+ type: PromptsType.skill,
1094
+ files,
1095
+ sourceFolders,
1096
+ durationInMillis: stopWatch.elapsed()
1097
+ };
1098
+ }
1099
+ async getHooks(token) {
1100
+ const discoveryInfo = await this.cachedHooks.get(token);
1101
+ const result = discoveryInfo.hooksInfo;
1102
+ return result;
1103
+ }
1104
+ async getDiscoveryInfo(type, token) {
1105
+ switch (type) {
1106
+ case PromptsType.instructions:
1107
+ return this.cachedInstructions.get(token);
1108
+ case PromptsType.prompt:
1109
+ return this.cachedSlashCommands.get(token);
1110
+ case PromptsType.agent:
1111
+ return this.cachedCustomAgents.get(token);
1112
+ case PromptsType.skill:
1113
+ return this.cachedSkills.get(token);
1114
+ case PromptsType.hook:
1115
+ return this.cachedHooks.get(token);
1116
+ }
1117
+ }
1118
+ async getInstructionFiles(token) {
1119
+ const discoveryInfo = await this.cachedInstructions.get(token);
1120
+ const result = this.instructionsFromDiscoveryInfo(discoveryInfo);
1121
+ return result;
1122
+ }
1123
+ instructionsFromDiscoveryInfo(discoveryInfo) {
1124
+ const result = [];
1125
+ for (const file of discoveryInfo.files) {
1126
+ if (file.status === "loaded" && file.promptPath.name) {
1127
+ result.push({
1128
+ uri: file.promptPath.uri,
1129
+ storage: file.promptPath.storage,
1130
+ extension: file.promptPath.extension,
1131
+ pluginUri: file.promptPath.pluginUri,
1132
+ source: file.promptPath.source,
1133
+ name: file.promptPath.name,
1134
+ description: file.promptPath.description,
1135
+ pattern: file.pattern,
1136
+ sessionTypes: file.promptPath.sessionTypes
1137
+ });
1138
+ }
1139
+ }
1140
+ return result;
1141
+ }
1142
+ withPromptPathMetadata(promptPath, name, description) {
1143
+ return {
1144
+ ...promptPath,
1145
+ name,
1146
+ description
1147
+ };
1148
+ }
1149
+ async computeInstructionFiles(token) {
1150
+ return await this.getInstructionsDiscoveryInfo(token);
1151
+ }
1152
+ async computeHooks(token) {
1153
+ const stopWatch = StopWatch.create(true);
1154
+ const useChatHooks = this.configurationService.getValue(PromptsConfig.USE_CHAT_HOOKS);
1155
+ if (!useChatHooks || !this.workspaceTrustService.isWorkspaceTrusted()) {
1156
+ const hookFiles = await this.listPromptFiles(PromptsType.hook, token);
1157
+ const skipReason = !useChatHooks ? "disabled" : "workspace-untrusted";
1158
+ const files = ( hookFiles.map(promptPath => ({
1159
+ status: "skipped",
1160
+ skipReason,
1161
+ promptPath: this.withPromptPathMetadata(promptPath, basename(promptPath.uri), promptPath.description)
1162
+ })));
1163
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.hook);
1164
+ return {
1165
+ type: PromptsType.hook,
1166
+ files,
1167
+ sourceFolders,
1168
+ hooksInfo: undefined,
1169
+ durationInMillis: stopWatch.elapsed()
1170
+ };
1171
+ }
1172
+ const useClaudeHooks = this.configurationService.getValue(PromptsConfig.USE_CLAUDE_HOOKS);
1173
+ const hookFiles = await this.listPromptFiles(PromptsType.hook, token);
1174
+ this.logger.trace(`[PromptsService] Found ${hookFiles.length} hook file(s).`);
1175
+ const userHomeUri = await this.pathService.userHome();
1176
+ const userHome = userHomeUri.scheme === Schemas.file ? userHomeUri.fsPath : userHomeUri.path;
1177
+ const defaultFolder = this.workspaceService.getWorkspace().folders[0];
1178
+ const fileResults = await Promise.all(( hookFiles.map(async hookFile => {
1179
+ const name = basename(hookFile.uri);
1180
+ if (hookFile.storage === PromptsStorage.plugin) {
1181
+ return {
1182
+ file: {
1183
+ status: "loaded",
1184
+ promptPath: this.withPromptPathMetadata(hookFile, name, hookFile.description)
1185
+ }
1186
+ };
1187
+ }
1188
+ try {
1189
+ const content = await this.fileService.readFile(hookFile.uri);
1190
+ const json = parse(( content.value.toString()));
1191
+ if (!json || typeof json !== "object") {
1192
+ return {
1193
+ file: {
1194
+ status: "skipped",
1195
+ skipReason: "parse-error",
1196
+ errorMessage: "Invalid hooks file: must be a JSON object",
1197
+ promptPath: this.withPromptPathMetadata(hookFile, name, hookFile.description)
1198
+ }
1199
+ };
1200
+ }
1201
+ const hookWorkspaceFolder = this.workspaceService.getWorkspaceFolder(hookFile.uri) ?? defaultFolder;
1202
+ const workspaceRootUri = hookWorkspaceFolder?.uri;
1203
+ const {
1204
+ format,
1205
+ hooks: parsedHooks,
1206
+ disabledAllHooks
1207
+ } = parseHooksFromFile(hookFile.uri, json, workspaceRootUri, userHome);
1208
+ if (disabledAllHooks) {
1209
+ this.logger.trace(
1210
+ `[PromptsService] Skipping hook file with disableAllHooks: ${hookFile.uri}`
1211
+ );
1212
+ return {
1213
+ file: {
1214
+ status: "skipped",
1215
+ skipReason: "all-hooks-disabled",
1216
+ promptPath: this.withPromptPathMetadata(hookFile, name, hookFile.description)
1217
+ }
1218
+ };
1219
+ }
1220
+ if (format === HookSourceFormat.Claude && useClaudeHooks === false) {
1221
+ const hasAnyCommands = ( [...( parsedHooks.values())].some((
1222
+ {
1223
+ hooks: cmds
1224
+ }
1225
+ ) => cmds.length > 0));
1226
+ this.logger.trace(
1227
+ `[PromptsService] Skipping Claude hook file (disabled via setting): ${hookFile.uri}`
1228
+ );
1229
+ return {
1230
+ file: {
1231
+ status: "skipped",
1232
+ skipReason: "claude-hooks-disabled",
1233
+ promptPath: this.withPromptPathMetadata(hookFile, name, hookFile.description)
1234
+ },
1235
+ hasDisabledClaudeHooks: hasAnyCommands
1236
+ };
1237
+ }
1238
+ const hooks = ( new Map());
1239
+ for (const [hookType, {
1240
+ hooks: commands
1241
+ }] of parsedHooks) {
1242
+ for (const command of commands) {
1243
+ let bucket = hooks.get(hookType);
1244
+ if (!bucket) {
1245
+ bucket = [];
1246
+ hooks.set(hookType, bucket);
1247
+ }
1248
+ bucket.push(command);
1249
+ this.logger.trace(
1250
+ `[PromptsService] Collected ${hookType} hook from ${hookFile.uri} (format: ${format})`
1251
+ );
1252
+ }
1253
+ }
1254
+ return {
1255
+ file: {
1256
+ status: "loaded",
1257
+ promptPath: this.withPromptPathMetadata(hookFile, name, hookFile.description)
1258
+ },
1259
+ hooks,
1260
+ sourceUri: hookFile.uri
1261
+ };
1262
+ } catch (error) {
1263
+ const msg = error instanceof Error ? error.message : String(error);
1264
+ this.logger.warn(`[PromptsService] Failed to parse hook file: ${hookFile.uri}`, error);
1265
+ return {
1266
+ file: {
1267
+ status: "skipped",
1268
+ skipReason: "parse-error",
1269
+ errorMessage: msg,
1270
+ promptPath: this.withPromptPathMetadata(hookFile, name, hookFile.description)
1271
+ }
1272
+ };
1273
+ }
1274
+ })));
1275
+ const files = [];
1276
+ let hasDisabledClaudeHooks = false;
1277
+ const collectedHooks = ( new Map());
1278
+ for (const {
1279
+ file,
1280
+ hooks,
1281
+ sourceUri,
1282
+ hasDisabledClaudeHooks: disabled
1283
+ } of fileResults) {
1284
+ if (file) {
1285
+ files.push(file);
1286
+ }
1287
+ if (disabled) {
1288
+ hasDisabledClaudeHooks = true;
1289
+ }
1290
+ if (hooks && sourceUri) {
1291
+ for (const [hookType, commands] of hooks) {
1292
+ let bucket = collectedHooks.get(hookType);
1293
+ if (!bucket) {
1294
+ bucket = [];
1295
+ collectedHooks.set(hookType, bucket);
1296
+ }
1297
+ for (const command of commands) {
1298
+ bucket.push({
1299
+ ...command,
1300
+ sourceUri
1301
+ });
1302
+ }
1303
+ }
1304
+ }
1305
+ }
1306
+ const plugins = this.agentPluginService.plugins.get();
1307
+ for (const plugin of plugins) {
1308
+ if (!isContributionEnabled(plugin.enablement.get())) {
1309
+ continue;
1310
+ }
1311
+ for (const hook of plugin.hooks.get()) {
1312
+ let bucket = collectedHooks.get(hook.type);
1313
+ if (!bucket) {
1314
+ bucket = [];
1315
+ collectedHooks.set(hook.type, bucket);
1316
+ }
1317
+ for (const command of hook.hooks) {
1318
+ bucket.push({
1319
+ ...command,
1320
+ sourceUri: hook.uri
1321
+ });
1322
+ }
1323
+ }
1324
+ }
1325
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.hook);
1326
+ if (collectedHooks.size === 0) {
1327
+ this.logger.trace("[PromptsService] No valid hooks collected.");
1328
+ return {
1329
+ type: PromptsType.hook,
1330
+ files,
1331
+ sourceFolders,
1332
+ hooksInfo: undefined,
1333
+ durationInMillis: stopWatch.elapsed()
1334
+ };
1335
+ }
1336
+ const result = Object.fromEntries(collectedHooks);
1337
+ this.logger.trace(`[PromptsService] Collected hooks: ${JSON.stringify(( Object.keys(result)))}`);
1338
+ return {
1339
+ type: PromptsType.hook,
1340
+ files,
1341
+ sourceFolders,
1342
+ hooksInfo: {
1343
+ hooks: result,
1344
+ hasDisabledClaudeHooks
1345
+ },
1346
+ durationInMillis: stopWatch.elapsed()
1347
+ };
1348
+ }
1349
+ async computeSkillDiscoveryInfo(token) {
1350
+ const files = [];
1351
+ const seenNames = ( new Set());
1352
+ const nameToUri = ( new Map());
1353
+ const allSkills = [];
1354
+ const discoveredSkills = await this.fileLocator.findAgentSkills(token);
1355
+ const extensionSkills = await this.getExtensionPromptFiles(PromptsType.skill, token);
1356
+ const pluginSkills = this._pluginPromptFilesByType.get(PromptsType.skill) ?? [];
1357
+ allSkills.push(...discoveredSkills, ...extensionSkills, ...pluginSkills);
1358
+ const getPriority = skill => {
1359
+ if (skill.storage === PromptsStorage.local) {
1360
+ return 0;
1361
+ }
1362
+ if (skill.storage === PromptsStorage.user) {
1363
+ return 1;
1364
+ }
1365
+ if (skill.storage === PromptsStorage.plugin) {
1366
+ return 2;
1367
+ }
1368
+ if (skill.source === PromptFileSource.ExtensionAPI) {
1369
+ return 3;
1370
+ }
1371
+ if (skill.source === PromptFileSource.ExtensionContribution) {
1372
+ return 4;
1373
+ }
1374
+ return 5;
1375
+ };
1376
+ allSkills.sort((a, b) => getPriority(a) - getPriority(b));
1377
+ for (const skill of allSkills) {
1378
+ const uri = skill.uri;
1379
+ const promptPath = skill;
1380
+ try {
1381
+ const parsedFile = await this.parseNew(uri, token);
1382
+ const folderName = getSkillFolderName(uri);
1383
+ let name = parsedFile.header?.name;
1384
+ const description = parsedFile.header?.description;
1385
+ if (!name) {
1386
+ this.logger.debug(
1387
+ `[computeSkillDiscoveryInfo] Agent skill file missing name attribute, using folder name "${folderName}": ${uri}`
1388
+ );
1389
+ name = folderName;
1390
+ }
1391
+ let sanitizedName = this.truncateAgentSkillName(name, uri);
1392
+ if (sanitizedName !== folderName) {
1393
+ this.logger.debug(
1394
+ `[computeSkillDiscoveryInfo] Agent skill name "${sanitizedName}" does not match folder name "${folderName}", using folder name: ${uri}`
1395
+ );
1396
+ sanitizedName = folderName;
1397
+ }
1398
+ if (( seenNames.has(sanitizedName))) {
1399
+ this.logger.debug(
1400
+ `[computeSkillDiscoveryInfo] Skipping duplicate agent skill name: ${sanitizedName} at ${uri}`
1401
+ );
1402
+ files.push({
1403
+ status: "skipped",
1404
+ skipReason: "duplicate-name",
1405
+ duplicateOf: nameToUri.get(sanitizedName),
1406
+ promptPath: this.withPromptPathMetadata(promptPath, sanitizedName, description)
1407
+ });
1408
+ continue;
1409
+ }
1410
+ seenNames.add(sanitizedName);
1411
+ nameToUri.set(sanitizedName, uri);
1412
+ const disableModelInvocation = parsedFile.header?.disableModelInvocation === true;
1413
+ const userInvocable = parsedFile.header?.userInvocable !== false;
1414
+ files.push({
1415
+ status: "loaded",
1416
+ promptPath: this.withPromptPathMetadata(promptPath, sanitizedName, description),
1417
+ disableModelInvocation,
1418
+ userInvocable
1419
+ });
1420
+ } catch (e) {
1421
+ const msg = e instanceof Error ? e.message : String(e);
1422
+ this.logger.error(
1423
+ `[computeSkillDiscoveryInfo] Failed to validate Agent skill file: ${uri}`,
1424
+ msg
1425
+ );
1426
+ files.push({
1427
+ status: "skipped",
1428
+ skipReason: "parse-error",
1429
+ errorMessage: msg,
1430
+ promptPath
1431
+ });
1432
+ }
1433
+ }
1434
+ return files;
1435
+ }
1436
+ async getInstructionsDiscoveryInfo(token) {
1437
+ const stopWatch = StopWatch.create(true);
1438
+ const files = [];
1439
+ const instructionsFiles = await this.listPromptFiles(PromptsType.instructions, token);
1440
+ for (const promptPath of instructionsFiles) {
1441
+ const uri = promptPath.uri;
1442
+ try {
1443
+ const parsedPromptFile = await this.parseNew(uri, token);
1444
+ const name = parsedPromptFile?.header?.name ?? promptPath.name ?? getCleanPromptName(uri);
1445
+ const description = parsedPromptFile?.header?.description ?? promptPath.description;
1446
+ const pattern = evaluateApplyToPattern(parsedPromptFile.header, isInClaudeRulesFolder(uri));
1447
+ files.push({
1448
+ status: "loaded",
1449
+ pattern,
1450
+ promptPath: this.withPromptPathMetadata(promptPath, name, description)
1451
+ });
1452
+ } catch (e) {
1453
+ files.push({
1454
+ status: "skipped",
1455
+ skipReason: "parse-error",
1456
+ errorMessage: e instanceof Error ? e.message : String(e),
1457
+ promptPath
1458
+ });
1459
+ }
1460
+ }
1461
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.instructions);
1462
+ return {
1463
+ type: PromptsType.instructions,
1464
+ files,
1465
+ sourceFolders,
1466
+ durationInMillis: stopWatch.elapsed()
1467
+ };
1468
+ }
1469
+ };
1470
+ PromptsService = ( __decorate([( __param(0, ILogService)), ( __param(1, ILabelService)), ( __param(2, IModelService)), ( __param(3, IInstantiationService)), ( __param(4, IUserDataProfileService)), ( __param(5, IConfigurationService)), ( __param(6, IFileService)), ( __param(7, IFilesConfigurationService)), ( __param(8, IStorageService)), ( __param(9, IExtensionService)), ( __param(10, ITelemetryService)), ( __param(11, IWorkspaceContextService)), ( __param(12, IPathService)), ( __param(13, IContextKeyService)), ( __param(14, IAgentPluginService)), ( __param(15, IWorkspaceTrustManagementService))], PromptsService));
1471
+ class CachedPromise extends Disposable {
1472
+ constructor(computeFn, getEvent, delay = 0) {
1473
+ super();
1474
+ this.computeFn = computeFn;
1475
+ this.getEvent = getEvent;
1476
+ this.delay = delay;
1477
+ this.cachedPromise = undefined;
1478
+ this.onDidUpdatePromiseEmitter = this._register(( new Emitter()));
1479
+ const delayer = this._register(( new Delayer(this.delay)));
1480
+ this._register(this.getEvent()(() => {
1481
+ this.cachedPromise = undefined;
1482
+ delayer.trigger(() => this.onDidUpdatePromiseEmitter.fire());
1483
+ }));
1484
+ }
1485
+ get onDidChangePromise() {
1486
+ return this.onDidUpdatePromiseEmitter.event;
1487
+ }
1488
+ get(token) {
1489
+ if (this.cachedPromise !== undefined) {
1490
+ return this.cachedPromise;
1491
+ }
1492
+ const promise = this.computeFn(token).catch(err => {
1493
+ if (this.cachedPromise === promise) {
1494
+ this.cachedPromise = undefined;
1495
+ }
1496
+ throw err;
1497
+ });
1498
+ this.cachedPromise = promise;
1499
+ return promise;
1500
+ }
1501
+ refresh() {
1502
+ this.cachedPromise = undefined;
1503
+ this.onDidUpdatePromiseEmitter?.fire();
1504
+ }
1505
+ }
1506
+ class ModelChangeTracker extends Disposable {
1507
+ get onDidPromptChange() {
1508
+ return this.onDidPromptModelChange.event;
1509
+ }
1510
+ constructor(modelService) {
1511
+ super();
1512
+ this.listeners = ( new ResourceMap());
1513
+ this.onDidPromptModelChange = this._register(( new Emitter()));
1514
+ const onAdd = model => {
1515
+ const promptType = getPromptsTypeForLanguageId(model.getLanguageId());
1516
+ if (promptType !== undefined) {
1517
+ this.listeners.set(
1518
+ model.uri,
1519
+ model.onDidChangeContent(() => this.onDidPromptModelChange.fire({
1520
+ uri: model.uri,
1521
+ promptType
1522
+ }))
1523
+ );
1524
+ }
1525
+ return promptType;
1526
+ };
1527
+ const onRemove = (languageId, uri) => {
1528
+ const promptType = getPromptsTypeForLanguageId(languageId);
1529
+ if (promptType !== undefined) {
1530
+ this.listeners.get(uri)?.dispose();
1531
+ this.listeners.delete(uri);
1532
+ }
1533
+ return promptType;
1534
+ };
1535
+ this._register(modelService.onModelAdded(model => onAdd(model)));
1536
+ this._register(modelService.onModelLanguageChanged(e => {
1537
+ const removedPromptType = onRemove(e.oldLanguageId, e.model.uri);
1538
+ const addedPromptType = onAdd(e.model);
1539
+ if (removedPromptType !== addedPromptType) {
1540
+ if (removedPromptType) {
1541
+ this.onDidPromptModelChange.fire({
1542
+ uri: e.model.uri,
1543
+ promptType: removedPromptType
1544
+ });
1545
+ }
1546
+ if (addedPromptType) {
1547
+ this.onDidPromptModelChange.fire({
1548
+ uri: e.model.uri,
1549
+ promptType: addedPromptType
1550
+ });
1551
+ }
1552
+ }
1553
+ }));
1554
+ this._register(
1555
+ modelService.onModelRemoved(model => onRemove(model.getLanguageId(), model.uri))
1556
+ );
1557
+ }
1558
+ dispose() {
1559
+ super.dispose();
1560
+ this.listeners.forEach(listener => listener.dispose());
1561
+ this.listeners.clear();
1562
+ }
1563
+ }
1564
+ var CustomAgent;
1565
+ (function(CustomAgent) {
1566
+ function fromParsedPromptFile(ast, extra) {
1567
+ const uri = ast.uri;
1568
+ const {
1569
+ hooks,
1570
+ sessionTypes,
1571
+ enabled
1572
+ } = extra;
1573
+ let metadata;
1574
+ if (ast.header) {
1575
+ const advanced = ast.header.getAttribute(PromptHeaderAttributes.advancedOptions);
1576
+ if (advanced && advanced.value.type === "map") {
1577
+ metadata = {};
1578
+ for (const [key, value] of Object.entries(advanced.value)) {
1579
+ if (value.type === "scalar") {
1580
+ metadata[key] = value;
1581
+ }
1582
+ }
1583
+ }
1584
+ }
1585
+ const toolReferences = [];
1586
+ if (ast.body) {
1587
+ const bodyOffset = ast.body.offset;
1588
+ const bodyVarRefs = ast.body.variableReferences;
1589
+ for (let i = bodyVarRefs.length - 1; i >= 0; i--) {
1590
+ const {
1591
+ name,
1592
+ offset,
1593
+ fullLength
1594
+ } = bodyVarRefs[i];
1595
+ const range = ( new OffsetRange(offset - bodyOffset, offset - bodyOffset + fullLength));
1596
+ toolReferences.push({
1597
+ name,
1598
+ range
1599
+ });
1600
+ }
1601
+ }
1602
+ const agentInstructions = {
1603
+ content: ast.body?.getContent() ?? "",
1604
+ toolReferences,
1605
+ metadata
1606
+ };
1607
+ const name = ast.header?.name ?? extra.name ?? getCleanPromptName(uri);
1608
+ const description = ast.header?.description ?? extra.description;
1609
+ const target = getTarget(PromptsType.agent, ast.header ?? uri);
1610
+ const source = extra.source;
1611
+ if (!ast.header) {
1612
+ return {
1613
+ uri,
1614
+ name,
1615
+ agentInstructions,
1616
+ source,
1617
+ target,
1618
+ visibility: {
1619
+ userInvocable: true,
1620
+ agentInvocable: true
1621
+ },
1622
+ sessionTypes,
1623
+ hooks,
1624
+ enabled
1625
+ };
1626
+ }
1627
+ const visibility = {
1628
+ userInvocable: ast.header.userInvocable !== false,
1629
+ agentInvocable: ast.header.infer !== undefined ? ast.header.infer === true : ast.header.disableModelInvocation !== true
1630
+ };
1631
+ let model = ast.header.model;
1632
+ if (target === Target.Claude && model) {
1633
+ model = mapClaudeModels(model);
1634
+ }
1635
+ let {
1636
+ tools,
1637
+ handOffs,
1638
+ argumentHint,
1639
+ agents
1640
+ } = ast.header;
1641
+ if (target === Target.Claude && tools) {
1642
+ tools = mapClaudeTools(tools);
1643
+ }
1644
+ return {
1645
+ uri,
1646
+ name,
1647
+ description,
1648
+ model,
1649
+ tools,
1650
+ handOffs,
1651
+ argumentHint,
1652
+ target,
1653
+ visibility,
1654
+ agents,
1655
+ agentInstructions,
1656
+ source,
1657
+ sessionTypes,
1658
+ hooks,
1659
+ enabled
1660
+ };
1661
+ }
1662
+ CustomAgent.fromParsedPromptFile = fromParsedPromptFile;
1663
+ })(CustomAgent || (CustomAgent = {}));
1664
+ var IAgentSource;
1665
+ (function(IAgentSource) {
1666
+ function fromPromptPath(promptPath) {
1667
+ if (promptPath.storage === PromptsStorage.extension) {
1668
+ return {
1669
+ storage: PromptsStorage.extension,
1670
+ extensionId: promptPath.extension.identifier
1671
+ };
1672
+ } else if (promptPath.storage === PromptsStorage.plugin) {
1673
+ return {
1674
+ storage: PromptsStorage.plugin,
1675
+ pluginUri: promptPath.pluginUri
1676
+ };
1677
+ } else {
1678
+ return {
1679
+ storage: promptPath.storage
1680
+ };
1681
+ }
1682
+ }
1683
+ IAgentSource.fromPromptPath = fromPromptPath;
1684
+ })(IAgentSource || (IAgentSource = {}));
1685
+
1686
+ export { CustomAgent, PromptsService };