@codingame/monaco-vscode-katex-common 25.1.2 → 26.0.1

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 (317) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +23 -2
  3. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +64 -27
  4. package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.d.ts +3 -1
  5. package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.js +31 -28
  6. package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +2 -0
  7. package/vscode/src/vs/platform/actions/browser/buttonbar.js +71 -50
  8. package/vscode/src/vs/platform/editor/browser/editor.js +17 -7
  9. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +112 -129
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +10 -1
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +110 -85
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +5 -5
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +21 -6
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +308 -216
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +153 -148
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +27 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +247 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +71 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +347 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +44 -0
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +287 -0
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +20 -0
  23. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +89 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +188 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +677 -0
  26. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentSessionHoverWidget.css +98 -0
  27. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +263 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +34 -25
  29. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +19 -14
  30. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +762 -359
  31. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +22 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +188 -99
  33. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.d.ts +9 -3
  34. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +166 -113
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +12 -5
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +279 -213
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +46 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +533 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +28 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +382 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +101 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +509 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +130 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +276 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +24 -7
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +128 -52
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +153 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +1218 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/media/chatSessionPickerActionItem.css +14 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +39 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +193 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +2 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +93 -89
  54. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcome.js +5 -2
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +42 -47
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +58 -56
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +18 -14
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +17 -15
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +6 -2
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +132 -68
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +0 -2
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +68 -47
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +14 -13
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +4 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +36 -24
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +18 -0
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.js +32 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollections.d.ts +7 -2
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollections.js +15 -4
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.d.ts +1 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +22 -14
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.d.ts +0 -2
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +34 -27
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +198 -135
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.d.ts +2 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.js +38 -10
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +29 -27
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +0 -2
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +41 -36
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +0 -2
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +23 -18
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.js +13 -13
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +0 -3
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +20 -14
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +11 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +291 -152
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +2 -3
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +227 -162
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownDecorationsRenderer.js +68 -72
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +2 -4
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +76 -75
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +2 -5
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +96 -76
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +4 -1
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +74 -38
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +0 -2
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.js +11 -25
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +107 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +814 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +0 -2
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +34 -29
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +8 -10
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +236 -197
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +123 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +492 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +75 -47
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.d.ts +2 -4
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +31 -20
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.d.ts +0 -3
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +42 -36
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +55 -7
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +714 -148
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts +7 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +21 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts +2 -7
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +143 -153
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +14 -5
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +79 -61
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +10 -4
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +209 -77
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +9 -7
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +71 -54
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.d.ts +18 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +83 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +4 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +248 -190
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +1 -14
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +23 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPullRequestContent.css +5 -41
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +493 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +63 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +9 -1
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +121 -5
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +37 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +51 -45
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +46 -42
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +4 -2
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +99 -67
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +112 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +634 -0
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +49 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +132 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.js +15 -9
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +196 -149
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +17 -1
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +577 -193
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +119 -86
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +10 -2
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +165 -36
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationSubPart.d.ts +0 -2
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationSubPart.js +5 -8
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +5 -3
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +75 -65
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +30 -28
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +1 -5
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +102 -106
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +44 -20
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +19 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +67 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.d.ts +57 -0
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.js +69 -0
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +122 -82
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +39 -12
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +1110 -597
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +291 -0
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +485 -0
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatOptions.js +38 -28
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +9 -20
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +650 -689
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +21 -18
  172. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +102 -36
  173. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +1253 -790
  174. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.d.ts +0 -7
  175. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.js +11 -11
  176. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +34 -0
  177. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +55 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.d.ts +6 -2
  179. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.js +51 -35
  180. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +22 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +102 -0
  182. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +16 -4
  183. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +192 -44
  184. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +11 -12
  185. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +99 -66
  186. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +47 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +188 -0
  188. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.d.ts +20 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +115 -0
  190. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +129 -167
  191. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +16 -3
  192. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +37 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +143 -0
  194. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +56 -0
  195. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +206 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +152 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +67 -0
  198. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +22 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +170 -0
  200. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +1 -0
  201. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +80 -19
  202. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService.js +20 -28
  203. package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.d.ts +2 -1
  204. package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.js +22 -19
  205. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +15 -0
  206. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +122 -0
  207. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +19 -104
  208. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +316 -1040
  209. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +28 -0
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +162 -0
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +21 -0
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +98 -0
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +68 -0
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +416 -0
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +1 -6
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +194 -215
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +0 -1
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +74 -104
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +45 -91
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +22 -0
  221. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +98 -0
  222. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +5 -2
  223. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +96 -68
  224. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveCommon.d.ts +7 -0
  225. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveCommon.js +11 -0
  226. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.d.ts +20 -0
  227. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +150 -0
  228. package/vscode/src/vs/workbench/contrib/markdown/browser/markedKatexSupport.js +141 -147
  229. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.d.ts +64 -0
  230. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.js +200 -0
  231. package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.d.ts +548 -0
  232. package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.js +23 -0
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.d.ts +22 -0
  234. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +338 -0
  235. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.d.ts +18 -0
  236. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.js +58 -0
  237. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.d.ts +75 -0
  238. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +364 -0
  239. package/vscode/src/vs/workbench/contrib/replNotebook/browser/interactiveEditor.css +21 -0
  240. package/vscode/src/vs/workbench/contrib/replNotebook/browser/media/interactive.css +36 -0
  241. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.d.ts +110 -0
  242. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +692 -0
  243. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.d.ts +40 -0
  244. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +158 -0
  245. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.d.ts +80 -21
  246. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +440 -82
  247. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatInputRelatedFilesContrib.d.ts +0 -34
  248. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatInputRelatedFilesContrib.js +0 -139
  249. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +0 -10
  250. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +0 -1081
  251. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.d.ts +0 -199
  252. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +0 -482
  253. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +0 -28
  254. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +0 -37
  255. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +0 -94
  256. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +0 -495
  257. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.d.ts +0 -72
  258. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +0 -454
  259. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.d.ts +0 -13
  260. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.js +0 -66
  261. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +0 -41
  262. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +0 -372
  263. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +0 -4
  264. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +0 -58
  265. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.d.ts +0 -26
  266. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +0 -594
  267. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffCellEditorOptions.d.ts +0 -8
  268. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffCellEditorOptions.js +0 -55
  269. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.d.ts +0 -273
  270. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +0 -1746
  271. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.d.ts +0 -50
  272. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +0 -269
  273. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementViewModel.d.ts +0 -258
  274. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementViewModel.js +0 -806
  275. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffNestedCellViewModel.d.ts +0 -41
  276. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffNestedCellViewModel.js +0 -116
  277. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/editorHeightCalculator.d.ts +0 -17
  278. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/editorHeightCalculator.js +0 -62
  279. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/eventDispatcher.d.ts +0 -27
  280. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/eventDispatcher.js +0 -40
  281. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookCellDiffDecorator.d.ts +0 -23
  282. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookCellDiffDecorator.js +0 -295
  283. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookDeletedCellDecorator.d.ts +0 -51
  284. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookDeletedCellDecorator.js +0 -241
  285. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiff.d.ts +0 -24
  286. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiff.js +0 -146
  287. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiffWidget.d.ts +0 -28
  288. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiffWidget.js +0 -90
  289. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInsertedCellDecorator.d.ts +0 -10
  290. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInsertedCellDecorator.js +0 -41
  291. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalCellModelFactory.d.ts +0 -21
  292. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalCellModelFactory.js +0 -42
  293. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalModelRefFactory.d.ts +0 -25
  294. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalModelRefFactory.js +0 -77
  295. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiff.css +0 -469
  296. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.d.ts +0 -149
  297. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +0 -823
  298. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.d.ts +0 -180
  299. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +0 -29
  300. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.d.ts +0 -102
  301. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +0 -567
  302. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffOverviewRuler.d.ts +0 -30
  303. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffOverviewRuler.js +0 -189
  304. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.d.ts +0 -75
  305. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.js +0 -439
  306. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor.d.ts +0 -57
  307. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor.js +0 -263
  308. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditorInput.d.ts +0 -22
  309. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditorInput.js +0 -48
  310. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/unchangedEditorRegions.d.ts +0 -13
  311. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/unchangedEditorRegions.js +0 -39
  312. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookMetadataTextModel.d.ts +0 -19
  313. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookMetadataTextModel.js +0 -89
  314. package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiff.d.ts +0 -26
  315. package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiff.js +0 -92
  316. package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiffEditorInput.d.ts +0 -33
  317. package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiffEditorInput.js +0 -108
@@ -1,1081 +0,0 @@
1
-
2
- import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
4
- import { raceTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
5
- import { decodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
6
- import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
7
- import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
8
- import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
9
- import { isPatternInWord } from '@codingame/monaco-vscode-api/vscode/vs/base/common/filters';
10
- import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
11
- import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
12
- import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
13
- import { basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
14
- import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
15
- import { assertType } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
16
- import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
17
- import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
18
- import { isCodeEditor, getCodeEditor } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorBrowser';
19
- import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service';
20
- import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
21
- import { getWordAtText } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/wordHelper';
22
- import { CompletionItemKind, SymbolKinds } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
23
- import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service';
24
- import { IOutlineModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/documentSymbols/browser/outlineModel.service';
25
- import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
26
- import { Action2, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
27
- import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands';
28
- import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
29
- import { FileKind } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
30
- import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
31
- import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
32
- import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
33
- import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
34
- import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
35
- import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
36
- import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
37
- import { EditorsOrder, isDiffEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
38
- import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
39
- import { IHistoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/history/common/history.service';
40
- import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
41
- import { ISearchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/search.service';
42
- import { McpPromptArgumentPick } from '../../../../../mcp/browser/mcpPromptArgumentPick.js';
43
- import { McpResourceURI } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes';
44
- import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
45
- import { searchFilesAndFolders } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/search/browser/searchChatContext';
46
- import { getFullyQualifiedId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents';
47
- import { IChatAgentService, IChatAgentNameService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents.service';
48
- import { IChatEditingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService.service';
49
- import { getAttachableImageExtension } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
50
- import { ChatRequestAgentPart, chatSubcommandLeader, chatAgentLeader, ChatRequestAgentSubcommandPart, ChatRequestSlashPromptPart, ChatRequestTextPart, chatVariableLeader, ChatRequestToolPart, ChatRequestToolSetPart } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatParserTypes';
51
- import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service';
52
- import { ChatAgentLocation, ChatModeKind, isSupportedChatFileScheme } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
53
- import { ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
54
- import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
55
- import { ChatSubmitAction } from '../../../actions/chatExecuteActions.js';
56
- import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
57
- import { resizeImage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatImageUtils';
58
- import { ChatDynamicVariableModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables';
59
-
60
- var BuiltinDynamicCompletions_1, ToolCompletions_1;
61
- let SlashCommandCompletions = class SlashCommandCompletions extends Disposable {
62
- constructor(languageFeaturesService, chatWidgetService, chatSlashCommandService, promptsService, mcpService) {
63
- super();
64
- this.languageFeaturesService = languageFeaturesService;
65
- this.chatWidgetService = chatWidgetService;
66
- this.chatSlashCommandService = chatSlashCommandService;
67
- this.promptsService = promptsService;
68
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, {
69
- _debugDisplayName: 'globalSlashCommands',
70
- triggerCharacters: [chatSubcommandLeader],
71
- provideCompletionItems: async (model, position, _context, _token) => {
72
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
73
- if (!widget || !widget.viewModel) {
74
- return null;
75
- }
76
- if (widget.lockedAgentId) {
77
- return null;
78
- }
79
- const range = computeCompletionRanges(model, position, /\/\w*/g);
80
- if (!range) {
81
- return null;
82
- }
83
- if (!isEmptyUpToCompletionWord(model, range)) {
84
- return;
85
- }
86
- const parsedRequest = widget.parsedInput.parts;
87
- const usedAgent = parsedRequest.find(p => p instanceof ChatRequestAgentPart);
88
- if (usedAgent) {
89
- return;
90
- }
91
- const slashCommands = this.chatSlashCommandService.getCommands(widget.location, widget.input.currentModeKind);
92
- if (!slashCommands) {
93
- return null;
94
- }
95
- return {
96
- suggestions: ( slashCommands.map((c, i) => {
97
- const withSlash = `/${c.command}`;
98
- return {
99
- label: withSlash,
100
- insertText: c.executeImmediately ? '' : `${withSlash} `,
101
- documentation: c.detail,
102
- range,
103
- sortText: c.sortText ?? 'a'.repeat(i + 1),
104
- kind: CompletionItemKind.Text,
105
- command: c.executeImmediately ? { id: ChatSubmitAction.ID, title: withSlash, arguments: [{ widget, inputValue: `${withSlash} ` }] } : undefined,
106
- };
107
- }))
108
- };
109
- }
110
- }));
111
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, {
112
- _debugDisplayName: 'globalSlashCommandsAt',
113
- triggerCharacters: [chatAgentLeader],
114
- provideCompletionItems: async (model, position, _context, _token) => {
115
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
116
- if (!widget || !widget.viewModel) {
117
- return null;
118
- }
119
- const range = computeCompletionRanges(model, position, /@\w*/g);
120
- if (!range) {
121
- return null;
122
- }
123
- if (!isEmptyUpToCompletionWord(model, range)) {
124
- return;
125
- }
126
- const slashCommands = this.chatSlashCommandService.getCommands(widget.location, widget.input.currentModeKind);
127
- if (!slashCommands) {
128
- return null;
129
- }
130
- if (widget.lockedAgentId) {
131
- return null;
132
- }
133
- return {
134
- suggestions: ( slashCommands.map((c, i) => {
135
- const withSlash = `${chatSubcommandLeader}${c.command}`;
136
- return {
137
- label: withSlash,
138
- insertText: c.executeImmediately ? '' : `${withSlash} `,
139
- documentation: c.detail,
140
- range,
141
- filterText: `${chatAgentLeader}${c.command}`,
142
- sortText: c.sortText ?? 'z'.repeat(i + 1),
143
- kind: CompletionItemKind.Text,
144
- command: c.executeImmediately ? { id: ChatSubmitAction.ID, title: withSlash, arguments: [{ widget, inputValue: `${withSlash} ` }] } : undefined,
145
- };
146
- }))
147
- };
148
- }
149
- }));
150
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, {
151
- _debugDisplayName: 'promptSlashCommands',
152
- triggerCharacters: [chatSubcommandLeader],
153
- provideCompletionItems: async (model, position, _context, token) => {
154
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
155
- if (!widget || !widget.viewModel) {
156
- return null;
157
- }
158
- const range = computeCompletionRanges(model, position, /\/\w*/g);
159
- if (!range) {
160
- return null;
161
- }
162
- if (!isEmptyUpToCompletionWord(model, range)) {
163
- return;
164
- }
165
- const parsedRequest = widget.parsedInput.parts;
166
- const usedAgent = parsedRequest.find(p => p instanceof ChatRequestAgentPart);
167
- if (usedAgent) {
168
- return;
169
- }
170
- const promptCommands = await this.promptsService.getPromptSlashCommands(token);
171
- if (promptCommands.length === 0) {
172
- return null;
173
- }
174
- if (widget.lockedAgentId) {
175
- return null;
176
- }
177
- return {
178
- suggestions: ( promptCommands.map((c, i) => {
179
- const label = `/${c.name}`;
180
- const description = c.description;
181
- return {
182
- label: { label, description },
183
- insertText: `${label} `,
184
- documentation: c.description,
185
- range,
186
- sortText: 'a'.repeat(i + 1),
187
- kind: CompletionItemKind.Text,
188
- };
189
- }))
190
- };
191
- }
192
- }));
193
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, {
194
- _debugDisplayName: 'mcpPromptSlashCommands',
195
- triggerCharacters: [chatSubcommandLeader],
196
- provideCompletionItems: async (model, position, _context, _token) => {
197
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
198
- if (!widget || !widget.viewModel) {
199
- return null;
200
- }
201
- const range = computeCompletionRanges(model, position, /\/[a-z0-9_.-]*/g);
202
- if (!range) {
203
- return null;
204
- }
205
- if (!isEmptyUpToCompletionWord(model, range)) {
206
- return;
207
- }
208
- if (widget.lockedAgentId) {
209
- return null;
210
- }
211
- return {
212
- suggestions: mcpService.servers.get().flatMap(server => ( server.prompts.get().map((prompt) => {
213
- const label = `/mcp.${prompt.id}`;
214
- return {
215
- label: { label, description: prompt.description },
216
- command: {
217
- id: StartParameterizedPromptAction.ID,
218
- title: prompt.name,
219
- arguments: [model, server, prompt, `${label} `],
220
- },
221
- insertText: `${label} `,
222
- range,
223
- kind: CompletionItemKind.Text,
224
- };
225
- })))
226
- };
227
- }
228
- }));
229
- }
230
- };
231
- SlashCommandCompletions = ( __decorate([
232
- ( __param(0, ILanguageFeaturesService)),
233
- ( __param(1, IChatWidgetService)),
234
- ( __param(2, IChatSlashCommandService)),
235
- ( __param(3, IPromptsService)),
236
- ( __param(4, IMcpService))
237
- ], SlashCommandCompletions));
238
- ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(SlashCommandCompletions, LifecyclePhase.Eventually);
239
- let AgentCompletions = class AgentCompletions extends Disposable {
240
- constructor(languageFeaturesService, chatWidgetService, chatAgentService, chatAgentNameService) {
241
- super();
242
- this.languageFeaturesService = languageFeaturesService;
243
- this.chatWidgetService = chatWidgetService;
244
- this.chatAgentService = chatAgentService;
245
- this.chatAgentNameService = chatAgentNameService;
246
- const subCommandProvider = {
247
- _debugDisplayName: 'chatAgentSubcommand',
248
- triggerCharacters: [chatSubcommandLeader],
249
- provideCompletionItems: async (model, position, _context, token) => {
250
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
251
- if (!widget || !widget.viewModel) {
252
- return;
253
- }
254
- const range = computeCompletionRanges(model, position, /\/\w*/g);
255
- if (!range) {
256
- return;
257
- }
258
- const usedAgent = this.getCurrentAgentForWidget(widget);
259
- if (!usedAgent || usedAgent.command) {
260
- return;
261
- }
262
- return {
263
- suggestions: ( usedAgent.agent.slashCommands.map((c, i) => {
264
- const withSlash = `/${c.name}`;
265
- return {
266
- label: withSlash,
267
- insertText: `${withSlash} `,
268
- documentation: c.description,
269
- range,
270
- kind: CompletionItemKind.Text,
271
- };
272
- }))
273
- };
274
- }
275
- };
276
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, subCommandProvider));
277
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, {
278
- _debugDisplayName: 'chatAgentAndSubcommand',
279
- triggerCharacters: [chatAgentLeader],
280
- provideCompletionItems: async (model, position, _context, token) => {
281
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
282
- const viewModel = widget?.viewModel;
283
- if (!widget || !viewModel) {
284
- return;
285
- }
286
- if (widget.lockedAgentId) {
287
- return null;
288
- }
289
- const range = computeCompletionRanges(model, position, /(@|\/)\w*/g);
290
- if (!range) {
291
- return null;
292
- }
293
- if (!isEmptyUpToCompletionWord(model, range)) {
294
- return;
295
- }
296
- const agents = this.chatAgentService.getAgents()
297
- .filter(a => a.locations.includes(widget.location));
298
- const getFilterText = (agent, command) => {
299
- const dummyPrefix = agent.id === 'github.copilot.terminalPanel' ? `0000` : ``;
300
- return `${chatAgentLeader}${dummyPrefix}${agent.name}.${command}`;
301
- };
302
- const justAgents = ( agents
303
- .filter(a => !a.isDefault)
304
- .map(agent => {
305
- const { label: agentLabel, isDupe } = this.getAgentCompletionDetails(agent);
306
- const detail = agent.description;
307
- return {
308
- label: isDupe ?
309
- { label: agentLabel, description: agent.description, detail: ` (${agent.publisherDisplayName})` } :
310
- agentLabel,
311
- documentation: detail,
312
- filterText: `${chatAgentLeader}${agent.name}`,
313
- insertText: `${agentLabel} `,
314
- range,
315
- kind: CompletionItemKind.Text,
316
- sortText: `${chatAgentLeader}${agent.name}`,
317
- command: { id: AssignSelectedAgentAction.ID, title: AssignSelectedAgentAction.ID, arguments: [{ agent, widget }] },
318
- };
319
- }));
320
- return {
321
- suggestions: justAgents.concat(coalesce(agents.flatMap(agent => ( agent.slashCommands.map((c, i) => {
322
- if (agent.isDefault && this.chatAgentService.getDefaultAgent(widget.location, widget.input.currentModeKind)?.id !== agent.id) {
323
- return;
324
- }
325
- const { label: agentLabel, isDupe } = this.getAgentCompletionDetails(agent);
326
- const label = `${agentLabel} ${chatSubcommandLeader}${c.name}`;
327
- const item = {
328
- label: isDupe ?
329
- { label, description: c.description, detail: isDupe ? ` (${agent.publisherDisplayName})` : undefined } :
330
- label,
331
- documentation: c.description,
332
- filterText: getFilterText(agent, c.name),
333
- commitCharacters: [' '],
334
- insertText: label + ' ',
335
- range,
336
- kind: CompletionItemKind.Text,
337
- sortText: `x${chatAgentLeader}${agent.name}${c.name}`,
338
- command: { id: AssignSelectedAgentAction.ID, title: AssignSelectedAgentAction.ID, arguments: [{ agent, widget }] },
339
- };
340
- if (agent.isDefault) {
341
- const label = `${chatSubcommandLeader}${c.name}`;
342
- item.label = label;
343
- item.insertText = `${label} `;
344
- item.documentation = c.description;
345
- }
346
- return item;
347
- })))))
348
- };
349
- }
350
- }));
351
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, {
352
- _debugDisplayName: 'chatAgentAndSubcommand',
353
- triggerCharacters: [chatSubcommandLeader],
354
- provideCompletionItems: async (model, position, _context, token) => {
355
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
356
- const viewModel = widget?.viewModel;
357
- if (!widget || !viewModel) {
358
- return;
359
- }
360
- if (widget.lockedAgentId) {
361
- return null;
362
- }
363
- const range = computeCompletionRanges(model, position, /(@|\/)\w*/g);
364
- if (!range) {
365
- return null;
366
- }
367
- if (!isEmptyUpToCompletionWord(model, range)) {
368
- return;
369
- }
370
- const agents = this.chatAgentService.getAgents()
371
- .filter(a => a.locations.includes(widget.location) && a.modes.includes(widget.input.currentModeKind));
372
- return {
373
- suggestions: coalesce(agents.flatMap(agent => ( agent.slashCommands.map((c, i) => {
374
- if (agent.isDefault && this.chatAgentService.getDefaultAgent(widget.location, widget.input.currentModeKind)?.id !== agent.id) {
375
- return;
376
- }
377
- const { label: agentLabel, isDupe } = this.getAgentCompletionDetails(agent);
378
- const withSlash = `${chatSubcommandLeader}${c.name}`;
379
- const extraSortText = agent.id === 'github.copilot.terminalPanel' ? `z` : ``;
380
- const sortText = `${chatSubcommandLeader}${extraSortText}${agent.name}${c.name}`;
381
- const item = {
382
- label: { label: withSlash, description: agentLabel, detail: isDupe ? ` (${agent.publisherDisplayName})` : undefined },
383
- commitCharacters: [' '],
384
- insertText: `${agentLabel} ${withSlash} `,
385
- documentation: `(${agentLabel}) ${c.description ?? ''}`,
386
- range,
387
- kind: CompletionItemKind.Text,
388
- sortText,
389
- command: { id: AssignSelectedAgentAction.ID, title: AssignSelectedAgentAction.ID, arguments: [{ agent, widget }] },
390
- };
391
- if (agent.isDefault) {
392
- const label = `${chatSubcommandLeader}${c.name}`;
393
- item.label = label;
394
- item.insertText = `${label} `;
395
- item.documentation = c.description;
396
- }
397
- return item;
398
- }))))
399
- };
400
- }
401
- }));
402
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, {
403
- _debugDisplayName: 'installChatExtensions',
404
- triggerCharacters: [chatAgentLeader],
405
- provideCompletionItems: async (model, position, _context, token) => {
406
- if (!model.getLineContent(1).startsWith(chatAgentLeader)) {
407
- return;
408
- }
409
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
410
- if (widget?.location !== ChatAgentLocation.Chat || widget.input.currentModeKind !== ChatModeKind.Ask) {
411
- return;
412
- }
413
- if (widget.lockedAgentId) {
414
- return null;
415
- }
416
- const range = computeCompletionRanges(model, position, /(@|\/)\w*/g);
417
- if (!range) {
418
- return;
419
- }
420
- if (!isEmptyUpToCompletionWord(model, range)) {
421
- return;
422
- }
423
- const label = ( localize(5837, "Install Chat Extensions..."));
424
- const item = {
425
- label,
426
- insertText: '',
427
- range,
428
- kind: CompletionItemKind.Text,
429
- command: { id: 'workbench.extensions.search', title: '', arguments: ['@tag:chat-participant'] },
430
- filterText: chatAgentLeader + label,
431
- sortText: 'zzz'
432
- };
433
- return {
434
- suggestions: [item]
435
- };
436
- }
437
- }));
438
- }
439
- getCurrentAgentForWidget(widget) {
440
- if (widget.lockedAgentId) {
441
- const usedAgent = this.chatAgentService.getAgent(widget.lockedAgentId);
442
- return usedAgent && { agent: usedAgent };
443
- }
444
- const parsedRequest = widget.parsedInput.parts;
445
- const usedAgentIdx = parsedRequest.findIndex((p) => p instanceof ChatRequestAgentPart);
446
- if (usedAgentIdx < 0) {
447
- return;
448
- }
449
- const usedAgent = parsedRequest[usedAgentIdx];
450
- const usedOtherCommand = parsedRequest.find(p => p instanceof ChatRequestAgentSubcommandPart || p instanceof ChatRequestSlashPromptPart);
451
- if (usedOtherCommand) {
452
- return {
453
- agent: usedAgent.agent,
454
- command: usedOtherCommand instanceof ChatRequestAgentSubcommandPart ? usedOtherCommand.command.name : undefined
455
- };
456
- }
457
- for (const partAfterAgent of parsedRequest.slice(usedAgentIdx + 1)) {
458
- if (!(partAfterAgent instanceof ChatRequestTextPart) || !partAfterAgent.text.trim().match(/^(\/\w*)?$/)) {
459
- return;
460
- }
461
- }
462
- return { agent: usedAgent.agent };
463
- }
464
- getAgentCompletionDetails(agent) {
465
- const isAllowed = this.chatAgentNameService.getAgentNameRestriction(agent);
466
- const agentLabel = `${chatAgentLeader}${isAllowed ? agent.name : getFullyQualifiedId(agent)}`;
467
- const isDupe = isAllowed && this.chatAgentService.agentHasDupeName(agent.id);
468
- return { label: agentLabel, isDupe };
469
- }
470
- };
471
- AgentCompletions = ( __decorate([
472
- ( __param(0, ILanguageFeaturesService)),
473
- ( __param(1, IChatWidgetService)),
474
- ( __param(2, IChatAgentService)),
475
- ( __param(3, IChatAgentNameService))
476
- ], AgentCompletions));
477
- ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(AgentCompletions, LifecyclePhase.Eventually);
478
- class AssignSelectedAgentAction extends Action2 {
479
- static { this.ID = 'workbench.action.chat.assignSelectedAgent'; }
480
- constructor() {
481
- super({
482
- id: AssignSelectedAgentAction.ID,
483
- title: ''
484
- });
485
- }
486
- async run(accessor, ...args) {
487
- const arg = args[0];
488
- if (!arg || !arg.widget || !arg.agent) {
489
- return;
490
- }
491
- if (!arg.agent.modes.includes(arg.widget.input.currentModeKind)) {
492
- arg.widget.input.setChatMode(arg.agent.modes[0]);
493
- }
494
- arg.widget.lastSelectedAgent = arg.agent;
495
- }
496
- }
497
- registerAction2(AssignSelectedAgentAction);
498
- class StartParameterizedPromptAction extends Action2 {
499
- static { this.ID = 'workbench.action.chat.startParameterizedPrompt'; }
500
- constructor() {
501
- super({
502
- id: StartParameterizedPromptAction.ID,
503
- title: ''
504
- });
505
- }
506
- async run(accessor, model, server, prompt, textToReplace) {
507
- if (!model || !prompt) {
508
- return;
509
- }
510
- const instantiationService = accessor.get(IInstantiationService);
511
- const notificationService = accessor.get(INotificationService);
512
- const widgetService = accessor.get(IChatWidgetService);
513
- const fileService = accessor.get(IFileService);
514
- const chatWidget = await widgetService.revealWidget(true);
515
- if (!chatWidget) {
516
- return;
517
- }
518
- const lastPosition = model.getFullModelRange().collapseToEnd();
519
- const getPromptIndex = () => model.findMatches(textToReplace, true, false, true, null, false)[0];
520
- const replaceTextWith = (value) => model.applyEdits([{
521
- range: getPromptIndex()?.range || lastPosition,
522
- text: value,
523
- }]);
524
- const store = ( new DisposableStore());
525
- const cts = store.add(( new CancellationTokenSource()));
526
- store.add(chatWidget.input.startGenerating());
527
- store.add(model.onDidChangeContent(() => {
528
- if (getPromptIndex()) {
529
- cts.cancel();
530
- }
531
- }));
532
- model.changeDecorations(accessor => {
533
- const id = accessor.addDecoration(lastPosition, {
534
- description: 'mcp-prompt-spinner',
535
- showIfCollapsed: true,
536
- after: {
537
- content: ' ',
538
- inlineClassNameAffectsLetterSpacing: true,
539
- inlineClassName: ThemeIcon.asClassName(ThemeIcon.modify(Codicon.loading, 'spin')) + ' chat-prompt-spinner',
540
- }
541
- });
542
- store.add(toDisposable(() => {
543
- model.changeDecorations(a => a.removeDecoration(id));
544
- }));
545
- });
546
- const pick = store.add(instantiationService.createInstance(McpPromptArgumentPick, prompt));
547
- try {
548
- await server.start();
549
- const args = await pick.createArgs();
550
- if (!args) {
551
- replaceTextWith('');
552
- return;
553
- }
554
- let messages;
555
- try {
556
- messages = await prompt.resolve(args, cts.token);
557
- }
558
- catch (e) {
559
- if (!cts.token.isCancellationRequested) {
560
- notificationService.error(( localize(5838, "Error resolving prompt: {0}", String(e))));
561
- }
562
- replaceTextWith('');
563
- return;
564
- }
565
- const toAttach = [];
566
- const attachBlob = async (mimeType, contents, uriStr, isText = false) => {
567
- let validURI;
568
- if (uriStr) {
569
- for (const uri of [( URI.parse(uriStr)), McpResourceURI.fromServer(server.definition, uriStr)]) {
570
- try {
571
- validURI ||= (await fileService.exists(uri)) ? uri : undefined;
572
- }
573
- catch {
574
- }
575
- }
576
- }
577
- if (isText) {
578
- if (validURI) {
579
- toAttach.push({
580
- id: generateUuid(),
581
- kind: 'file',
582
- value: validURI,
583
- name: basename(validURI),
584
- });
585
- }
586
- else {
587
- toAttach.push({
588
- id: generateUuid(),
589
- kind: 'generic',
590
- value: contents,
591
- name: ( localize(5839, 'Prompt Resource')),
592
- });
593
- }
594
- }
595
- else if (mimeType && getAttachableImageExtension(mimeType)) {
596
- const resized = await resizeImage(contents)
597
- .catch(() => decodeBase64(contents).buffer);
598
- chatWidget.attachmentModel.addContext({
599
- id: generateUuid(),
600
- name: ( localize(5840, 'Prompt Image')),
601
- fullName: ( localize(5840, 'Prompt Image')),
602
- value: resized,
603
- kind: 'image',
604
- references: validURI && [{ reference: validURI, kind: 'reference' }],
605
- });
606
- }
607
- else if (validURI) {
608
- toAttach.push({
609
- id: generateUuid(),
610
- kind: 'file',
611
- value: validURI,
612
- name: basename(validURI),
613
- });
614
- }
615
- else {
616
- }
617
- };
618
- const hasMultipleRoles = ( messages.some(m => m.role !== messages[0].role));
619
- let input = '';
620
- for (const message of messages) {
621
- switch (message.content.type) {
622
- case 'text':
623
- if (input) {
624
- input += '\n\n';
625
- }
626
- if (hasMultipleRoles) {
627
- input += `--${message.role.toUpperCase()}\n`;
628
- }
629
- input += message.content.text;
630
- break;
631
- case 'resource':
632
- if ('text' in message.content.resource) {
633
- await attachBlob(message.content.resource.mimeType, message.content.resource.text, message.content.resource.uri, true);
634
- }
635
- else {
636
- await attachBlob(message.content.resource.mimeType, message.content.resource.blob, message.content.resource.uri);
637
- }
638
- break;
639
- case 'image':
640
- case 'audio':
641
- await attachBlob(message.content.mimeType, message.content.data);
642
- break;
643
- }
644
- }
645
- if (toAttach.length) {
646
- chatWidget.attachmentModel.addContext(...toAttach);
647
- }
648
- replaceTextWith(input);
649
- }
650
- finally {
651
- store.dispose();
652
- }
653
- }
654
- }
655
- registerAction2(StartParameterizedPromptAction);
656
- class ReferenceArgument {
657
- constructor(widget, variable) {
658
- this.widget = widget;
659
- this.variable = variable;
660
- }
661
- }
662
- let BuiltinDynamicCompletions = class BuiltinDynamicCompletions extends Disposable {
663
- static { BuiltinDynamicCompletions_1 = this; }
664
- static { this.addReferenceCommand = '_addReferenceCmd'; }
665
- static { this.VariableNameDef = ( new RegExp(`${chatVariableLeader}[\\w:-]*`, 'g')); }
666
- constructor(historyService, workspaceContextService, searchService, labelService, languageFeaturesService, chatWidgetService, _chatEditingService, outlineService, editorService, configurationService, codeEditorService, chatAgentService, instantiationService) {
667
- super();
668
- this.historyService = historyService;
669
- this.workspaceContextService = workspaceContextService;
670
- this.searchService = searchService;
671
- this.labelService = labelService;
672
- this.languageFeaturesService = languageFeaturesService;
673
- this.chatWidgetService = chatWidgetService;
674
- this._chatEditingService = _chatEditingService;
675
- this.outlineService = outlineService;
676
- this.editorService = editorService;
677
- this.configurationService = configurationService;
678
- this.codeEditorService = codeEditorService;
679
- this.chatAgentService = chatAgentService;
680
- this.instantiationService = instantiationService;
681
- const fileWordPattern = ( new RegExp(`${chatVariableLeader}[^\\s]*`, 'g'));
682
- this.registerVariableCompletions('fileAndFolder', async ({ widget, range }, token) => {
683
- if (!widget.supportsFileReferences) {
684
- return;
685
- }
686
- const result = { suggestions: [] };
687
- if (widget.lockedAgentId) {
688
- const agent = this.chatAgentService.getAgent(widget.lockedAgentId);
689
- if (agent && !agent.capabilities?.supportsFileAttachments) {
690
- return result;
691
- }
692
- }
693
- await this.addFileAndFolderEntries(widget, result, range, token);
694
- return result;
695
- }, fileWordPattern);
696
- this.registerVariableCompletions('selection', ({ widget, range }, token) => {
697
- if (!widget.supportsFileReferences) {
698
- return;
699
- }
700
- if (widget.location === ChatAgentLocation.EditorInline) {
701
- return;
702
- }
703
- const active = this.findActiveCodeEditor();
704
- if (!isCodeEditor(active)) {
705
- return;
706
- }
707
- const currentResource = active.getModel()?.uri;
708
- const currentSelection = active.getSelection();
709
- if (!currentSelection || !currentResource || currentSelection.isEmpty()) {
710
- return;
711
- }
712
- const basename = this.labelService.getUriBasenameLabel(currentResource);
713
- const text = `${chatVariableLeader}file:${basename}:${currentSelection.startLineNumber}-${currentSelection.endLineNumber}`;
714
- const fullRangeText = `:${currentSelection.startLineNumber}:${currentSelection.startColumn}-${currentSelection.endLineNumber}:${currentSelection.endColumn}`;
715
- const description = this.labelService.getUriLabel(currentResource, { relative: true }) + fullRangeText;
716
- const result = { suggestions: [] };
717
- result.suggestions.push({
718
- label: { label: `${chatVariableLeader}selection`, description },
719
- filterText: `${chatVariableLeader}selection`,
720
- insertText: range.varWord?.endColumn === range.replace.endColumn ? `${text} ` : text,
721
- range,
722
- kind: CompletionItemKind.Text,
723
- sortText: 'z',
724
- command: {
725
- id: BuiltinDynamicCompletions_1.addReferenceCommand, title: '', arguments: [( new ReferenceArgument(widget, {
726
- id: 'vscode.selection',
727
- isFile: true,
728
- range: { startLineNumber: range.replace.startLineNumber, startColumn: range.replace.startColumn, endLineNumber: range.replace.endLineNumber, endColumn: range.replace.startColumn + text.length },
729
- data: { range: currentSelection, uri: currentResource }
730
- }))]
731
- }
732
- });
733
- return result;
734
- });
735
- this.registerVariableCompletions('symbol', ({ widget, range, position, model }, token) => {
736
- if (!widget.supportsFileReferences) {
737
- return null;
738
- }
739
- const result = { suggestions: [] };
740
- const range2 = computeCompletionRanges(model, position, ( new RegExp(`${chatVariableLeader}[^\\s]*`, 'g')), true);
741
- if (range2) {
742
- this.addSymbolEntries(widget, result, range2, token);
743
- }
744
- return result;
745
- });
746
- this._register(CommandsRegistry.registerCommand(BuiltinDynamicCompletions_1.addReferenceCommand, (_services, arg) => {
747
- assertType(arg instanceof ReferenceArgument);
748
- return this.cmdAddReference(arg);
749
- }));
750
- }
751
- findActiveCodeEditor() {
752
- const codeEditor = this.codeEditorService.getActiveCodeEditor();
753
- if (codeEditor) {
754
- const model = codeEditor.getModel();
755
- if (model?.uri.scheme === Schemas.vscodeNotebookCell) {
756
- return undefined;
757
- }
758
- if (model) {
759
- return codeEditor;
760
- }
761
- }
762
- for (const codeOrDiffEditor of this.editorService.getVisibleTextEditorControls(EditorsOrder.MOST_RECENTLY_ACTIVE)) {
763
- const codeEditor = getCodeEditor(codeOrDiffEditor);
764
- if (!codeEditor) {
765
- continue;
766
- }
767
- const model = codeEditor.getModel();
768
- if (model) {
769
- return codeEditor;
770
- }
771
- }
772
- return undefined;
773
- }
774
- registerVariableCompletions(debugName, provider, wordPattern = BuiltinDynamicCompletions_1.VariableNameDef) {
775
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, {
776
- _debugDisplayName: `chatVarCompletions-${debugName}`,
777
- triggerCharacters: [chatVariableLeader],
778
- provideCompletionItems: async (model, position, context, token) => {
779
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
780
- if (!widget) {
781
- return;
782
- }
783
- const range = computeCompletionRanges(model, position, wordPattern, true);
784
- if (range) {
785
- return provider({ model, position, widget, range, context }, token);
786
- }
787
- return;
788
- }
789
- }));
790
- }
791
- async addFileAndFolderEntries(widget, result, info, token) {
792
- const makeCompletionItem = (resource, kind, description, boostPriority) => {
793
- const basename = this.labelService.getUriBasenameLabel(resource);
794
- const text = `${chatVariableLeader}file:${basename}`;
795
- const uriLabel = this.labelService.getUriLabel(resource, { relative: true });
796
- const labelDescription = description
797
- ? ( localize(5841, '{0} ({1})', uriLabel, description))
798
- : uriLabel;
799
- const sortText = boostPriority ? ' ' : '!';
800
- return {
801
- label: { label: basename, description: labelDescription },
802
- filterText: `${chatVariableLeader}${basename}`,
803
- insertText: info.varWord?.endColumn === info.replace.endColumn ? `${text} ` : text,
804
- range: info,
805
- kind: kind === FileKind.FILE ? CompletionItemKind.File : CompletionItemKind.Folder,
806
- sortText,
807
- command: {
808
- id: BuiltinDynamicCompletions_1.addReferenceCommand, title: '', arguments: [( new ReferenceArgument(widget, {
809
- id: ( resource.toString()),
810
- isFile: kind === FileKind.FILE,
811
- isDirectory: kind === FileKind.FOLDER,
812
- range: { startLineNumber: info.replace.startLineNumber, startColumn: info.replace.startColumn, endLineNumber: info.replace.endLineNumber, endColumn: info.replace.startColumn + text.length },
813
- data: resource
814
- }))]
815
- }
816
- };
817
- };
818
- let pattern;
819
- if (info.varWord?.word && info.varWord.word.startsWith(chatVariableLeader)) {
820
- pattern = info.varWord.word.toLowerCase().slice(1);
821
- }
822
- const seen = ( new ResourceSet());
823
- const len = result.suggestions.length;
824
- for (const [i, item] of this.historyService.getHistory().entries()) {
825
- const resource = isDiffEditorInput(item) ? item.modified.resource : item.resource;
826
- if (!resource || ( seen.has(resource)) || !this.instantiationService.invokeFunction(accessor => isSupportedChatFileScheme(accessor, resource.scheme))) {
827
- continue;
828
- }
829
- if (pattern) {
830
- const basename = this.labelService.getUriBasenameLabel(resource).toLowerCase();
831
- if (!isPatternInWord(pattern, 0, pattern.length, basename, 0, basename.length)) {
832
- continue;
833
- }
834
- }
835
- seen.add(resource);
836
- const newLen = result.suggestions.push(makeCompletionItem(resource, FileKind.FILE, i === 0 ? ( localize(5842, 'Active file')) : undefined, i === 0));
837
- if (newLen - len >= 5) {
838
- break;
839
- }
840
- }
841
- if (widget.input.currentModeKind !== ChatModeKind.Ask && widget.viewModel && widget.viewModel.model.editingSession) {
842
- const relatedFiles = (await raceTimeout(this._chatEditingService.getRelatedFiles(widget.viewModel.sessionResource, widget.getInput(), widget.attachmentModel.fileAttachments, token), 200)) ?? [];
843
- for (const relatedFileGroup of relatedFiles) {
844
- for (const relatedFile of relatedFileGroup.files) {
845
- if (!( seen.has(relatedFile.uri))) {
846
- seen.add(relatedFile.uri);
847
- result.suggestions.push(makeCompletionItem(relatedFile.uri, FileKind.FILE, relatedFile.description));
848
- }
849
- }
850
- }
851
- }
852
- if (pattern) {
853
- const cacheKey = this.updateCacheKey();
854
- const workspaces = ( this.workspaceContextService.getWorkspace().folders.map(folder => folder.uri));
855
- for (const workspace of workspaces) {
856
- const { folders, files } = await searchFilesAndFolders(workspace, pattern, true, token, cacheKey.key, this.configurationService, this.searchService);
857
- for (const file of files) {
858
- if (!( seen.has(file))) {
859
- result.suggestions.push(makeCompletionItem(file, FileKind.FILE));
860
- seen.add(file);
861
- }
862
- }
863
- for (const folder of folders) {
864
- if (!( seen.has(folder))) {
865
- result.suggestions.push(makeCompletionItem(folder, FileKind.FOLDER));
866
- seen.add(folder);
867
- }
868
- }
869
- }
870
- }
871
- result.incomplete = true;
872
- }
873
- addSymbolEntries(widget, result, info, token) {
874
- const timeoutMs = 100;
875
- const stopwatch = ( new StopWatch());
876
- const makeSymbolCompletionItem = (symbolItem, pattern) => {
877
- const text = `${chatVariableLeader}sym:${symbolItem.name}`;
878
- const resource = symbolItem.location.uri;
879
- const uriLabel = this.labelService.getUriLabel(resource, { relative: true });
880
- const sortText = pattern ? '{' : '|' ;
881
- return {
882
- label: { label: symbolItem.name, description: uriLabel },
883
- filterText: `${chatVariableLeader}${symbolItem.name}`,
884
- insertText: info.varWord?.endColumn === info.replace.endColumn ? `${text} ` : text,
885
- range: info,
886
- kind: SymbolKinds.toCompletionKind(symbolItem.kind),
887
- sortText,
888
- command: {
889
- id: BuiltinDynamicCompletions_1.addReferenceCommand, title: '', arguments: [( new ReferenceArgument(widget, {
890
- id: `vscode.symbol/${JSON.stringify(symbolItem.location)}`,
891
- fullName: symbolItem.name,
892
- range: { startLineNumber: info.replace.startLineNumber, startColumn: info.replace.startColumn, endLineNumber: info.replace.endLineNumber, endColumn: info.replace.startColumn + text.length },
893
- data: symbolItem.location,
894
- icon: SymbolKinds.toIcon(symbolItem.kind)
895
- }))]
896
- }
897
- };
898
- };
899
- let pattern;
900
- if (info.varWord?.word && info.varWord.word.startsWith(chatVariableLeader)) {
901
- pattern = info.varWord.word.toLowerCase().slice(1);
902
- }
903
- const symbolsToAdd = [];
904
- for (const outlineModel of this.outlineService.getCachedModels()) {
905
- const symbols = outlineModel.asListOfDocumentSymbols();
906
- for (const symbol of symbols) {
907
- symbolsToAdd.push({ symbol, uri: outlineModel.uri });
908
- }
909
- }
910
- let timedOut = false;
911
- for (const symbol of symbolsToAdd) {
912
- if (stopwatch.elapsed() > timeoutMs || token.isCancellationRequested) {
913
- timedOut = true;
914
- break;
915
- }
916
- result.suggestions.push(makeSymbolCompletionItem({ ...symbol.symbol, location: { uri: symbol.uri, range: symbol.symbol.range } }, pattern ?? ''));
917
- }
918
- result.incomplete = !!pattern || timedOut;
919
- }
920
- updateCacheKey() {
921
- if (this.cacheKey && Date.now() - this.cacheKey.time > 60000) {
922
- this.searchService.clearCache(this.cacheKey.key);
923
- this.cacheKey = undefined;
924
- }
925
- if (!this.cacheKey) {
926
- this.cacheKey = {
927
- key: generateUuid(),
928
- time: Date.now()
929
- };
930
- }
931
- this.cacheKey.time = Date.now();
932
- return this.cacheKey;
933
- }
934
- cmdAddReference(arg) {
935
- arg.widget.getContrib(ChatDynamicVariableModel.ID)?.addReference(arg.variable);
936
- }
937
- };
938
- BuiltinDynamicCompletions = BuiltinDynamicCompletions_1 = ( __decorate([
939
- ( __param(0, IHistoryService)),
940
- ( __param(1, IWorkspaceContextService)),
941
- ( __param(2, ISearchService)),
942
- ( __param(3, ILabelService)),
943
- ( __param(4, ILanguageFeaturesService)),
944
- ( __param(5, IChatWidgetService)),
945
- ( __param(6, IChatEditingService)),
946
- ( __param(7, IOutlineModelService)),
947
- ( __param(8, IEditorService)),
948
- ( __param(9, IConfigurationService)),
949
- ( __param(10, ICodeEditorService)),
950
- ( __param(11, IChatAgentService)),
951
- ( __param(12, IInstantiationService))
952
- ], BuiltinDynamicCompletions));
953
- ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(BuiltinDynamicCompletions, LifecyclePhase.Eventually);
954
- function computeCompletionRanges(model, position, reg, onlyOnWordStart = false) {
955
- const varWord = getWordAtText(position.column, reg, model.getLineContent(position.lineNumber), 0);
956
- if (!varWord && model.getWordUntilPosition(position).word) {
957
- return;
958
- }
959
- if (!varWord && position.column > 1) {
960
- const textBefore = model.getValueInRange(( new Range(
961
- position.lineNumber,
962
- position.column - 1,
963
- position.lineNumber,
964
- position.column
965
- )));
966
- if (textBefore !== ' ') {
967
- return;
968
- }
969
- }
970
- if (varWord && onlyOnWordStart) {
971
- const wordBefore = model.getWordUntilPosition({ lineNumber: position.lineNumber, column: varWord.startColumn });
972
- if (wordBefore.word) {
973
- return;
974
- }
975
- }
976
- let insert;
977
- let replace;
978
- if (!varWord) {
979
- insert = replace = Range.fromPositions(position);
980
- }
981
- else {
982
- insert = ( new Range(
983
- position.lineNumber,
984
- varWord.startColumn,
985
- position.lineNumber,
986
- position.column
987
- ));
988
- replace = ( new Range(
989
- position.lineNumber,
990
- varWord.startColumn,
991
- position.lineNumber,
992
- varWord.endColumn
993
- ));
994
- }
995
- return { insert, replace, varWord };
996
- }
997
- function isEmptyUpToCompletionWord(model, rangeResult) {
998
- const startToCompletionWordStart = ( new Range(1, 1, rangeResult.replace.startLineNumber, rangeResult.replace.startColumn));
999
- return !!model.getValueInRange(startToCompletionWordStart).match(/^\s*$/);
1000
- }
1001
- let ToolCompletions = class ToolCompletions extends Disposable {
1002
- static { ToolCompletions_1 = this; }
1003
- static { this.VariableNameDef = ( new RegExp(`(?<=^|\\s)${chatVariableLeader}\\w*`, 'g')); }
1004
- constructor(languageFeaturesService, chatWidgetService, chatAgentService) {
1005
- super();
1006
- this.languageFeaturesService = languageFeaturesService;
1007
- this.chatWidgetService = chatWidgetService;
1008
- this.chatAgentService = chatAgentService;
1009
- this._register(this.languageFeaturesService.completionProvider.register({ scheme: Schemas.vscodeChatInput, hasAccessToAllModels: true }, {
1010
- _debugDisplayName: 'chatVariables',
1011
- triggerCharacters: [chatVariableLeader],
1012
- provideCompletionItems: async (model, position, _context, _token) => {
1013
- const widget = this.chatWidgetService.getWidgetByInputUri(model.uri);
1014
- if (!widget) {
1015
- return null;
1016
- }
1017
- if (widget.lockedAgentId) {
1018
- const agent = this.chatAgentService.getAgent(widget.lockedAgentId);
1019
- if (agent && !agent.capabilities?.supportsToolAttachments) {
1020
- return null;
1021
- }
1022
- }
1023
- const range = computeCompletionRanges(model, position, ToolCompletions_1.VariableNameDef, true);
1024
- if (!range) {
1025
- return null;
1026
- }
1027
- const usedNames = ( new Set());
1028
- for (const part of widget.parsedInput.parts) {
1029
- if (part instanceof ChatRequestToolPart) {
1030
- usedNames.add(part.toolName);
1031
- }
1032
- else if (part instanceof ChatRequestToolSetPart) {
1033
- usedNames.add(part.name);
1034
- }
1035
- }
1036
- const suggestions = [];
1037
- const iter = widget.input.selectedToolsModel.entriesMap.get();
1038
- for (const [item, enabled] of iter) {
1039
- if (!enabled) {
1040
- continue;
1041
- }
1042
- let detail;
1043
- let documentation;
1044
- let name;
1045
- if (item instanceof ToolSet) {
1046
- detail = item.description;
1047
- name = item.referenceName;
1048
- }
1049
- else {
1050
- const source = item.source;
1051
- detail = ( localize(5843, "{0}: {1}", source.label, item.displayName));
1052
- name = item.toolReferenceName ?? item.displayName;
1053
- documentation = item.userDescription ?? item.modelDescription;
1054
- }
1055
- if (( usedNames.has(name))) {
1056
- continue;
1057
- }
1058
- const withLeader = `${chatVariableLeader}${name}`;
1059
- suggestions.push({
1060
- label: withLeader,
1061
- range,
1062
- detail,
1063
- documentation,
1064
- insertText: withLeader + ' ',
1065
- kind: CompletionItemKind.Tool,
1066
- sortText: 'z',
1067
- });
1068
- }
1069
- return { suggestions };
1070
- }
1071
- }));
1072
- }
1073
- };
1074
- ToolCompletions = ToolCompletions_1 = ( __decorate([
1075
- ( __param(0, ILanguageFeaturesService)),
1076
- ( __param(1, IChatWidgetService)),
1077
- ( __param(2, IChatAgentService))
1078
- ], ToolCompletions));
1079
- ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(ToolCompletions, LifecyclePhase.Eventually);
1080
-
1081
- export { computeCompletionRanges };