@codingame/monaco-vscode-katex-common 31.0.0 → 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 (220) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +15 -3
  3. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +6 -5
  4. package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +5 -1
  5. package/vscode/src/vs/platform/actions/browser/buttonbar.js +45 -14
  6. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +15 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +15 -10
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +51 -54
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +3 -1
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +45 -23
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +13 -7
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +5 -3
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +4 -1
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +46 -32
  21. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +8 -0
  22. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +155 -46
  24. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +20 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.d.ts +4 -1
  27. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +37 -14
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/media/chatSessionPickerActionItem.css +1 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.d.ts +28 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +250 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  34. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +14 -11
  35. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
  36. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +7 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +7 -3
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +12 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +51 -20
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +6 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +56 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.d.ts +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.js +2 -2
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.d.ts +3 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.js +4 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +68 -10
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.d.ts +58 -2
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +653 -75
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +28 -10
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +5 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +91 -54
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +7 -5
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +53 -51
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -11
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +4 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +42 -22
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +6 -2
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +93 -35
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +5 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +169 -27
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +13 -4
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +29 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +1 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +60 -15
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +13 -6
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +15 -8
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +6 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +125 -26
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +2 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +29 -23
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.d.ts +14 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +119 -10
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +1 -1
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/media/toolRiskBadge.css +77 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +38 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +125 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +1 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +132 -59
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +16 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +156 -67
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +55 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.js +93 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +21 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +133 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +53 -8
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +288 -125
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +23 -2
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +699 -145
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +12 -8
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +12 -11
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.d.ts +62 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +120 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +191 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatPhoneInputPresenter.css +22 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +3 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +9 -25
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +4 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +20 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +89 -108
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +521 -9
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +19 -19
  136. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
  137. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.d.ts +2 -0
  138. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.js +6 -0
  139. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.d.ts +27 -0
  140. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +82 -0
  141. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +3 -0
  142. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +44 -17
  143. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -3
  144. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +3 -46
  145. package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.d.ts → inlineChatAffordanceWidget.d.ts} +1 -1
  146. package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.js → inlineChatAffordanceWidget.js} +6 -6
  147. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -18
  148. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +19 -400
  149. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +4 -9
  150. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +1 -1
  151. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +5 -19
  152. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +47 -133
  153. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +3 -1
  154. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +103 -25
  155. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +29 -0
  156. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +3 -32
  157. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +39 -92
  158. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  159. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  160. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  161. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  163. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  164. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  165. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  166. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  167. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  168. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  169. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +7 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +99 -32
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +13 -1
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +76 -14
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -3
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +9 -1
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +89 -28
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +1 -1
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -1
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +11 -7
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +3 -1
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +7 -3
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  184. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
  185. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  186. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +8 -0
  187. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +11 -2
  188. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +20 -0
  189. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +59 -4
  190. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -1
  191. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +24 -3
  192. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +47 -0
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +111 -30
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +60 -3
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +455 -171
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +33 -0
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +82 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.d.ts +31 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.js +49 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.d.ts +18 -0
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.js +302 -0
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +7 -0
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.js +118 -0
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +34 -4
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +233 -48
  206. package/vscode/src/vs/platform/actions/browser/actionbar.d.ts +0 -16
  207. package/vscode/src/vs/platform/actions/browser/actionbar.js +0 -22
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -539
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -29
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -386
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +0 -101
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +0 -509
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -130
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +0 -276
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.d.ts +0 -45
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.js +0 -93
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +0 -39
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +0 -617
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +0 -231
@@ -20,12 +20,10 @@ import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform
20
20
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
21
21
  import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents.service';
22
22
  import { ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
23
- import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
24
23
  import { isOrganizationPromptFile } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/utils/promptsServiceUtils';
25
24
  import { ChatConfiguration, ChatModeKind, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
26
- import { PromptsStorage, matchesSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
25
+ import { PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
27
26
  import { Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
28
- import { getChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
29
27
  import { getOpenChatActionIdForMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
30
28
  import { ToggleAgentModeActionId } from '../../actions/chatExecuteActions.js';
31
29
  import { ChatInputPickerActionViewItem } from './chatInputPickerActionItem.js';
@@ -56,7 +54,6 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
56
54
  keybindingService,
57
55
  configurationService,
58
56
  contextKeyService,
59
- chatModeService,
60
57
  menuService,
61
58
  commandService,
62
59
  _productService,
@@ -69,15 +66,15 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
69
66
  });
70
67
  const getCustomAgentTarget = () => delegate.customAgentTarget?.() ?? Target.Undefined;
71
68
  const builtInCategory = {
72
- label: ( localize(7221, "Built-In")),
69
+ label: ( localize(7526, "Built-In")),
73
70
  order: 0
74
71
  };
75
72
  const customCategory = {
76
- label: ( localize(7222, "Custom")),
73
+ label: ( localize(7527, "Custom")),
77
74
  order: 1
78
75
  };
79
76
  const policyDisabledCategory = {
80
- label: ( localize(7223, "Managed by your organization")),
77
+ label: ( localize(7528, "Managed by your organization")),
81
78
  order: 999,
82
79
  showHeader: true
83
80
  };
@@ -92,11 +89,11 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
92
89
  if (mode.source?.storage === PromptsStorage.extension) {
93
90
  icon = Codicon.file;
94
91
  id = `viewAgent:${mode.id}`;
95
- label = ( localize(7224, "View {0} agent", mode.label.get()));
92
+ label = ( localize(7529, "View {0} agent", mode.label.get()));
96
93
  } else {
97
94
  icon = Codicon.edit;
98
95
  id = `editAgent:${mode.id}`;
99
- label = ( localize(7225, "Edit {0} agent", mode.label.get()));
96
+ label = ( localize(7530, "Edit {0} agent", mode.label.get()));
100
97
  }
101
98
  const modeResource = mode.uri;
102
99
  toolbarActions.push({
@@ -152,18 +149,13 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
152
149
  };
153
150
  };
154
151
  const getActionsForCustomAgentTarget = currentTarget => {
155
- const modes = chatModeService.getModes();
152
+ const modes = delegate.currentChatModes.get();
156
153
  const currentMode = delegate.currentMode.get();
157
- const sessionResource = delegate.sessionResource();
158
- const currentSessionType = sessionResource ? getChatSessionType(sessionResource) : undefined;
159
154
  const filteredCustomModes = modes.custom.filter(mode => {
160
155
  const target = mode.target.get();
161
156
  if (target !== currentTarget && target !== Target.Undefined) {
162
157
  return false;
163
158
  }
164
- if (!matchesSessionType(mode.sessionTypes, currentSessionType)) {
165
- return false;
166
- }
167
159
  return true;
168
160
  });
169
161
  const customModes = groupBy(
@@ -186,18 +178,13 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
186
178
  };
187
179
  const actionProvider = {
188
180
  getActions: () => {
189
- const modes = chatModeService.getModes();
181
+ const modes = delegate.currentChatModes.get();
190
182
  const currentMode = delegate.currentMode.get();
191
183
  const agentMode = modes.builtin.find(mode => mode.id === ChatMode.Agent.id);
192
- const sessionResource = delegate.sessionResource();
193
- const currentSessionType = sessionResource ? getChatSessionType(sessionResource) : undefined;
194
184
  const otherBuiltinModes = modes.builtin.filter(mode => {
195
185
  return mode.id !== ChatMode.Agent.id && shouldShowBuiltInMode(mode, assignments.get(), agentModeDisabledViaPolicy);
196
186
  });
197
187
  const filteredCustomModes = modes.custom.filter(mode => {
198
- if (!matchesSessionType(mode.sessionTypes, currentSessionType)) {
199
- return false;
200
- }
201
188
  if (isModeConsideredBuiltIn(mode, this._productService)) {
202
189
  return shouldShowBuiltInMode(mode, assignments.get(), agentModeDisabledViaPolicy);
203
190
  }
@@ -298,14 +285,11 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
298
285
  if (!collapsed || !icon) {
299
286
  labelElements.push($("span.chat-input-picker-label", undefined, state));
300
287
  }
301
- if (!collapsed) {
302
- labelElements.push(...renderLabelWithIcons(`$(chevron-down)`));
303
- }
304
288
  reset(element, ...labelElements);
305
289
  return null;
306
290
  }
307
291
  };
308
- ModePickerActionItem = ( __decorate([( __param(3, IActionWidgetService)), ( __param(4, IChatAgentService)), ( __param(5, IKeybindingService)), ( __param(6, IConfigurationService)), ( __param(7, IContextKeyService)), ( __param(8, IChatModeService)), ( __param(9, IMenuService)), ( __param(10, ICommandService)), ( __param(11, IProductService)), ( __param(12, ITelemetryService)), ( __param(13, IOpenerService)), ( __param(14, IWorkbenchAssignmentService))], ModePickerActionItem));
292
+ ModePickerActionItem = ( __decorate([( __param(3, IActionWidgetService)), ( __param(4, IChatAgentService)), ( __param(5, IKeybindingService)), ( __param(6, IConfigurationService)), ( __param(7, IContextKeyService)), ( __param(8, IMenuService)), ( __param(9, ICommandService)), ( __param(10, IProductService)), ( __param(11, ITelemetryService)), ( __param(12, IOpenerService)), ( __param(13, IWorkbenchAssignmentService))], ModePickerActionItem));
309
293
  function isModeConsideredBuiltIn(mode, productService) {
310
294
  if (mode.isBuiltin) {
311
295
  return true;
@@ -62,18 +62,19 @@ let ModelPickerActionItem = class ModelPickerActionItem extends BaseActionViewIt
62
62
  this._pickerWidget.show(this._getAnchorElement());
63
63
  }
64
64
  _updateTooltip() {
65
- if (!this.element) {
65
+ const target = this._pickerWidget.nameButton;
66
+ if (!target) {
66
67
  return;
67
68
  }
68
69
  const hoverContent = this._getHoverContents();
69
70
  if (typeof hoverContent === "string" && hoverContent) {
70
- this._managedHover.value = getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate("mouse"), this.element, hoverContent);
71
+ this._managedHover.value = getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate("mouse"), target, hoverContent);
71
72
  } else {
72
73
  this._managedHover.clear();
73
74
  }
74
75
  }
75
76
  _getHoverContents() {
76
- let label = ( localize(7226, "Pick Model"));
77
+ let label = ( localize(7531, "Pick Model"));
77
78
  const keybindingLabel = this.keybindingService.lookupKeybinding(this._action.id, this._contextKeyService)?.getLabel();
78
79
  if (keybindingLabel) {
79
80
  label += ` (${keybindingLabel})`;
@@ -1,3 +1,4 @@
1
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
1
2
  import { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
3
  import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
4
  import { IActionWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service";
@@ -5,19 +6,37 @@ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platf
5
6
  import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
6
7
  import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
7
8
  import { ChatPermissionLevel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
9
+ import { IChatSessionProviderOptionItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService";
8
10
  import { MenuItemAction } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
9
11
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
10
12
  import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
11
13
  import { ChatInputPickerActionViewItem, IChatInputPickerOptions } from "./chatInputPickerActionItem.js";
12
14
  import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
15
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
16
+ export interface IExtensionPermissionState {
17
+ /** Stable identifier for the contributing chat session type, used to namespace action ids. */
18
+ readonly sessionType: string;
19
+ readonly groupId: string;
20
+ readonly items: readonly IChatSessionProviderOptionItem[];
21
+ readonly selectedId: string | undefined;
22
+ }
13
23
  export interface IPermissionPickerDelegate {
14
24
  readonly currentPermissionLevel: IObservable<ChatPermissionLevel>;
15
25
  readonly setPermissionLevel: (level: ChatPermissionLevel) => void;
26
+ /**
27
+ * When defined and returns a non-empty state, the picker shows the extension-contributed
28
+ * items in place of the built-in {@link ChatPermissionLevel} items.
29
+ */
30
+ readonly getExtensionPermissions?: () => IExtensionPermissionState | undefined;
31
+ readonly setExtensionPermission?: (groupId: string, item: IChatSessionProviderOptionItem) => void;
16
32
  }
17
33
  export declare class PermissionPickerActionItem extends ChatInputPickerActionViewItem {
18
34
  private readonly delegate;
19
35
  private readonly dialogService;
20
- constructor(action: MenuItemAction, delegate: IPermissionPickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, telemetryService: ITelemetryService, configurationService: IConfigurationService, dialogService: IDialogService, openerService: IOpenerService);
36
+ private readonly _onDidDispose;
37
+ readonly onDidDispose: Event<void>;
38
+ constructor(action: MenuItemAction, delegate: IPermissionPickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, telemetryService: ITelemetryService, configurationService: IConfigurationService, dialogService: IDialogService, openerService: IOpenerService, storageService: IStorageService);
21
39
  protected renderLabel(element: HTMLElement): IDisposable | null;
22
40
  refresh(): void;
41
+ dispose(): void;
23
42
  }
@@ -3,30 +3,25 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
3
3
  import { $, reset } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
4
  import { renderLabelWithIcons } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabels';
5
5
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
6
+ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
6
7
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
7
8
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
8
9
  import { IActionWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service';
9
10
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
10
11
  import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
11
12
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
12
- import { ChatPermissionLevel, ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
13
+ import { ChatConfiguration, ChatPermissionLevel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
14
+ import { SessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
13
15
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
14
16
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
15
- import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
16
- import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
17
17
  import { ChatInputPickerActionViewItem } from './chatInputPickerActionItem.js';
18
18
  import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
19
19
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
20
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
21
+ import { maybeConfirmElevatedPermissionLevel } from '../../../common/chatPermissionWarnings.js';
20
22
 
21
- const shownWarnings = ( new Set());
22
- function hasShownElevatedWarning(level) {
23
- if (( shownWarnings.has(level))) {
24
- return true;
25
- }
26
- if (level === ChatPermissionLevel.AutoApprove && ( shownWarnings.has(ChatPermissionLevel.Autopilot))) {
27
- return true;
28
- }
29
- return false;
23
+ function sanitizeIdSegment(value) {
24
+ return value.replace(/[^a-zA-Z0-9_-]/g, "_");
30
25
  }
31
26
  let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatInputPickerActionViewItem {
32
27
  constructor(
@@ -39,24 +34,49 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
39
34
  telemetryService,
40
35
  configurationService,
41
36
  dialogService,
42
- openerService
37
+ openerService,
38
+ storageService
43
39
  ) {
44
40
  const isAutoApprovePolicyRestricted = () => configurationService.inspect(ChatConfiguration.GlobalAutoApprove).policyValue === false;
45
41
  const isAutopilotEnabled = () => configurationService.getValue(ChatConfiguration.AutopilotEnabled) !== false;
46
42
  const actionProvider = {
47
43
  getActions: () => {
44
+ const ext = delegate.getExtensionPermissions?.();
45
+ if (ext && ext.items.length > 0) {
46
+ const sessionTypeSeg = sanitizeIdSegment(ext.sessionType);
47
+ const groupSeg = sanitizeIdSegment(ext.groupId);
48
+ return (ext.items.map(item => ({
49
+ ...action,
50
+ id: `chat.permissions.ext.${sessionTypeSeg}.${groupSeg}.${sanitizeIdSegment(item.id)}`,
51
+ label: item.name,
52
+ detail: item.description,
53
+ icon: item.icon,
54
+ checked: ext.selectedId === item.id,
55
+ enabled: !item.locked,
56
+ tooltip: item.locked ? ( localize(7532, "This option is locked")) : "",
57
+ hover: item.description ? {
58
+ content: item.description
59
+ } : undefined,
60
+ run: async () => {
61
+ delegate.setExtensionPermission?.(ext.groupId, item);
62
+ if (this.element) {
63
+ this.renderLabel(this.element);
64
+ }
65
+ }
66
+ })));
67
+ }
48
68
  const currentLevel = delegate.currentPermissionLevel.get();
49
69
  const policyRestricted = isAutoApprovePolicyRestricted();
50
70
  const actions = [{
51
71
  ...action,
52
72
  id: "chat.permissions.default",
53
- label: ( localize(7227, "Default Approvals")),
54
- description: ( localize(7228, "Copilot uses your configured settings")),
73
+ label: ( localize(7533, "Default Approvals")),
74
+ detail: ( localize(7534, "Copilot uses your configured settings")),
55
75
  icon: ThemeIcon.fromId(Codicon.shield.id),
56
76
  checked: currentLevel === ChatPermissionLevel.Default,
57
77
  tooltip: "",
58
78
  hover: {
59
- content: ( localize(7229, "Use configured approval settings"))
79
+ content: ( localize(7535, "Use configured approval settings"))
60
80
  },
61
81
  run: async () => {
62
82
  delegate.setPermissionLevel(ChatPermissionLevel.Default);
@@ -67,46 +87,18 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
67
87
  }, {
68
88
  ...action,
69
89
  id: "chat.permissions.autoApprove",
70
- label: ( localize(7230, "Bypass Approvals")),
71
- description: ( localize(7231, "All tool calls are auto-approved")),
90
+ label: ( localize(7536, "Bypass Approvals")),
91
+ detail: ( localize(7537, "All tool calls are auto-approved")),
72
92
  icon: ThemeIcon.fromId(Codicon.warning.id),
73
93
  checked: currentLevel === ChatPermissionLevel.AutoApprove,
74
94
  enabled: !policyRestricted,
75
- tooltip: policyRestricted ? ( localize(7232, "Disabled by enterprise policy")) : "",
95
+ tooltip: policyRestricted ? ( localize(7538, "Disabled by enterprise policy")) : "",
76
96
  hover: {
77
- content: policyRestricted ? ( localize(7233, "Disabled by enterprise policy")) : ( localize(7234, "Auto-approve all tool calls and retry on errors"))
97
+ content: policyRestricted ? ( localize(7539, "Disabled by enterprise policy")) : ( localize(7540, "Auto-approve all tool calls and retry on errors"))
78
98
  },
79
99
  run: async () => {
80
- if (!hasShownElevatedWarning(ChatPermissionLevel.AutoApprove)) {
81
- const result = await this.dialogService.prompt({
82
- type: Severity.Warning,
83
- message: ( localize(7235, "Enable Bypass Approvals?")),
84
- buttons: [{
85
- label: ( localize(7236, "Enable")),
86
- run: () => true
87
- }, {
88
- label: ( localize(7237, "Cancel")),
89
- run: () => false
90
- }],
91
- custom: {
92
- icon: Codicon.warning,
93
- markdownDetails: [{
94
- markdown: ( new MarkdownString(( localize(
95
- 7238,
96
- "Bypass Approvals will auto-approve all tool calls without asking for confirmation. This includes file edits, terminal commands, and external tool calls.\n\nTo make this the starting permission level for new chat sessions, change the [{0}](command:workbench.action.openSettings?%5B%22{0}%22%5D) setting.",
97
- ChatConfiguration.DefaultPermissionLevel
98
- )), {
99
- isTrusted: {
100
- enabledCommands: ["workbench.action.openSettings"]
101
- }
102
- }))
103
- }]
104
- }
105
- });
106
- if (result.result !== true) {
107
- return;
108
- }
109
- shownWarnings.add(ChatPermissionLevel.AutoApprove);
100
+ if (!(await maybeConfirmElevatedPermissionLevel(ChatPermissionLevel.AutoApprove, this.dialogService, storageService))) {
101
+ return;
110
102
  }
111
103
  delegate.setPermissionLevel(ChatPermissionLevel.AutoApprove);
112
104
  if (this.element) {
@@ -118,46 +110,18 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
118
110
  actions.push({
119
111
  ...action,
120
112
  id: "chat.permissions.autopilot",
121
- label: ( localize(7239, "Autopilot (Preview)")),
122
- description: ( localize(7240, "Autonomously iterates from start to finish")),
113
+ label: ( localize(7541, "Autopilot (Preview)")),
114
+ detail: ( localize(7542, "Autonomously iterates from start to finish")),
123
115
  icon: ThemeIcon.fromId(Codicon.rocket.id),
124
116
  checked: currentLevel === ChatPermissionLevel.Autopilot,
125
117
  enabled: !policyRestricted,
126
- tooltip: policyRestricted ? ( localize(7241, "Disabled by enterprise policy")) : "",
118
+ tooltip: policyRestricted ? ( localize(7543, "Disabled by enterprise policy")) : "",
127
119
  hover: {
128
- content: policyRestricted ? ( localize(7242, "Disabled by enterprise policy")) : ( localize(7243, "Auto-approve all tool calls and continue until the task is done"))
120
+ content: policyRestricted ? ( localize(7544, "Disabled by enterprise policy")) : ( localize(7545, "Auto-approve all tool calls and continue until the task is done"))
129
121
  },
130
122
  run: async () => {
131
- if (!hasShownElevatedWarning(ChatPermissionLevel.Autopilot)) {
132
- const result = await this.dialogService.prompt({
133
- type: Severity.Warning,
134
- message: ( localize(7244, "Enable Autopilot?")),
135
- buttons: [{
136
- label: ( localize(7245, "Enable")),
137
- run: () => true
138
- }, {
139
- label: ( localize(7246, "Cancel")),
140
- run: () => false
141
- }],
142
- custom: {
143
- icon: Codicon.rocket,
144
- markdownDetails: [{
145
- markdown: ( new MarkdownString(( localize(
146
- 7247,
147
- "Autopilot will auto-approve all tool calls and continue working autonomously until the task is complete. This includes terminal commands, file edits, and external tool calls. The agent will make decisions on your behalf without asking for confirmation.\n\nYou can stop the agent at any time by clicking the stop button. This applies to the current session only.\n\nTo make this the starting permission level for new chat sessions, change the [{0}](command:workbench.action.openSettings?%5B%22{0}%22%5D) setting.",
148
- ChatConfiguration.DefaultPermissionLevel
149
- )), {
150
- isTrusted: {
151
- enabledCommands: ["workbench.action.openSettings"]
152
- }
153
- }))
154
- }]
155
- }
156
- });
157
- if (result.result !== true) {
158
- return;
159
- }
160
- shownWarnings.add(ChatPermissionLevel.Autopilot);
123
+ if (!(await maybeConfirmElevatedPermissionLevel(ChatPermissionLevel.Autopilot, this.dialogService, storageService))) {
124
+ return;
161
125
  }
162
126
  delegate.setPermissionLevel(ChatPermissionLevel.Autopilot);
163
127
  if (this.element) {
@@ -173,14 +137,14 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
173
137
  actionProvider,
174
138
  actionBarActions: [{
175
139
  id: "chat.permissions.learnMore",
176
- label: ( localize(7248, "Learn more about permissions")),
177
- tooltip: ( localize(7248, "Learn more about permissions")),
140
+ label: ( localize(7546, "Learn more about permissions")),
141
+ tooltip: ( localize(7546, "Learn more about permissions")),
178
142
  class: undefined,
179
143
  enabled: true,
180
144
  run: async () => {
181
- await openerService.open(( URI.parse(
182
- "https://code.visualstudio.com/docs/copilot/agents/agent-tools#_permission-levels"
183
- )));
145
+ const ext = delegate.getExtensionPermissions?.();
146
+ const url = ext?.sessionType === SessionType.ClaudeCode ? "https://code.claude.com/docs/en/permission-modes#available-modes" : "https://code.visualstudio.com/docs/copilot/agents/agent-tools#_permission-levels";
147
+ await openerService.open(( URI.parse(url)));
184
148
  }
185
149
  }],
186
150
  reporter: {
@@ -189,39 +153,49 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
189
153
  includeOptions: true
190
154
  },
191
155
  listOptions: {
192
- descriptionBelow: true,
193
- minWidth: 255
156
+ minWidth: 255,
157
+ detailItemHeight: 44
194
158
  }
195
159
  }, pickerOptions, actionWidgetService, keybindingService, contextKeyService, telemetryService);
196
160
  this.delegate = delegate;
197
161
  this.dialogService = dialogService;
162
+ this._onDidDispose = this._register(( new Emitter()));
163
+ this.onDidDispose = this._onDidDispose.event;
198
164
  }
199
165
  renderLabel(element) {
200
166
  this.setAriaLabelAttributes(element);
201
- const level = this.delegate.currentPermissionLevel.get();
167
+ const ext = this.delegate.getExtensionPermissions?.();
202
168
  let icon;
203
169
  let label;
204
- switch (level) {
205
- case ChatPermissionLevel.Autopilot:
206
- icon = Codicon.rocket;
207
- label = ( localize(7249, "Autopilot (Preview)"));
208
- break;
209
- case ChatPermissionLevel.AutoApprove:
210
- icon = Codicon.warning;
211
- label = ( localize(7250, "Bypass Approvals"));
212
- break;
213
- default:
214
- icon = Codicon.shield;
215
- label = ( localize(7251, "Default Approvals"));
216
- break;
170
+ const level = this.delegate.currentPermissionLevel.get();
171
+ if (ext && ext.items.length > 0) {
172
+ const selected = ext.items.find(i => i.id === ext.selectedId) ?? ext.items.find(i => i.default) ?? ext.items[0];
173
+ icon = selected.icon ?? Codicon.lock;
174
+ label = selected.name;
175
+ } else {
176
+ switch (level) {
177
+ case ChatPermissionLevel.Autopilot:
178
+ icon = Codicon.rocket;
179
+ label = ( localize(7547, "Autopilot (Preview)"));
180
+ break;
181
+ case ChatPermissionLevel.AutoApprove:
182
+ icon = Codicon.warning;
183
+ label = ( localize(7548, "Bypass Approvals"));
184
+ break;
185
+ default:
186
+ icon = Codicon.shield;
187
+ label = ( localize(7549, "Default Approvals"));
188
+ break;
189
+ }
217
190
  }
218
191
  const labelElements = [];
219
192
  labelElements.push(...renderLabelWithIcons(`$(${icon.id})`));
220
193
  labelElements.push($("span.chat-input-picker-label", undefined, label));
221
194
  labelElements.push(...renderLabelWithIcons(`$(chevron-down)`));
222
195
  reset(element, ...labelElements);
223
- element.classList.toggle("warning", level === ChatPermissionLevel.Autopilot);
224
- element.classList.toggle("info", level === ChatPermissionLevel.AutoApprove);
196
+ element.classList.toggle("warning", !ext && level === ChatPermissionLevel.Autopilot);
197
+ element.classList.toggle("info", !ext && level === ChatPermissionLevel.AutoApprove);
198
+ element.setAttribute("aria-label", ( localize(7550, "Permission picker, {0}", label)));
225
199
  return null;
226
200
  }
227
201
  refresh() {
@@ -229,7 +203,14 @@ let PermissionPickerActionItem = class PermissionPickerActionItem extends ChatIn
229
203
  this.renderLabel(this.element);
230
204
  }
231
205
  }
206
+ dispose() {
207
+ if (this._store.isDisposed) {
208
+ return;
209
+ }
210
+ this._onDidDispose.fire();
211
+ super.dispose();
212
+ }
232
213
  };
233
- PermissionPickerActionItem = ( __decorate([( __param(3, IActionWidgetService)), ( __param(4, IKeybindingService)), ( __param(5, IContextKeyService)), ( __param(6, ITelemetryService)), ( __param(7, IConfigurationService)), ( __param(8, IDialogService)), ( __param(9, IOpenerService))], PermissionPickerActionItem));
214
+ PermissionPickerActionItem = ( __decorate([( __param(3, IActionWidgetService)), ( __param(4, IKeybindingService)), ( __param(5, IContextKeyService)), ( __param(6, ITelemetryService)), ( __param(7, IConfigurationService)), ( __param(8, IDialogService)), ( __param(9, IOpenerService)), ( __param(10, IStorageService))], PermissionPickerActionItem));
234
215
 
235
216
  export { PermissionPickerActionItem };
@@ -17,11 +17,11 @@ import { AgentSessionProviders, getAgentSessionProviderDescription, getAgentSess
17
17
  import { ChatInputPickerActionViewItem } from './chatInputPickerActionItem.js';
18
18
 
19
19
  const firstPartyCategory = {
20
- label: ( localize(7252, "Agent Types")),
20
+ label: ( localize(7551, "Agent Types")),
21
21
  order: 1
22
22
  };
23
23
  const otherCategory = {
24
- label: ( localize(7253, "Other")),
24
+ label: ( localize(7552, "Other")),
25
25
  order: 2
26
26
  };
27
27
  let SessionTypePickerActionItem = class SessionTypePickerActionItem extends ChatInputPickerActionViewItem {
@@ -126,7 +126,7 @@ let SessionTypePickerActionItem = class SessionTypePickerActionItem extends Chat
126
126
  const learnMoreUrl = "https://code.visualstudio.com/docs/copilot/agents/overview";
127
127
  return {
128
128
  id: "workbench.action.chat.agentOverview.learnMore",
129
- label: ( localize(7254, "Learn about agent types...")),
129
+ label: ( localize(7553, "Learn about agent types...")),
130
130
  tooltip: learnMoreUrl,
131
131
  class: undefined,
132
132
  enabled: true,
@@ -48,10 +48,10 @@ let WorkspacePickerActionItem = class WorkspacePickerActionItem extends ChatInpu
48
48
  actions.push({
49
49
  ...action,
50
50
  id: "workspace.openFolder",
51
- label: ( localize(7255, "Open Folder...")),
51
+ label: ( localize(7554, "Open Folder...")),
52
52
  checked: false,
53
53
  enabled: true,
54
- tooltip: ( localize(7256, "Open Folder...")),
54
+ tooltip: ( localize(7555, "Open Folder...")),
55
55
  run: async () => {
56
56
  this.commandService.executeCommand(this.delegate.openFolderCommand);
57
57
  }
@@ -104,7 +104,7 @@ let WorkspacePickerActionItem = class WorkspacePickerActionItem extends ChatInpu
104
104
  labelElements.push($("span.chat-input-picker-label", undefined, label));
105
105
  } else {
106
106
  labelElements.push(...renderLabelWithIcons(`$(folder)`));
107
- labelElements.push($("span.chat-input-picker-label", undefined, ( localize(7257, "Workspace"))));
107
+ labelElements.push($("span.chat-input-picker-label", undefined, ( localize(7556, "Workspace"))));
108
108
  }
109
109
  if (!this.pickerOptions.hideChevrons.get()) {
110
110
  labelElements.push(...renderLabelWithIcons(`$(chevron-down)`));