@codingame/monaco-vscode-katex-common 34.1.2 → 35.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 (244) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/base/browser/animationSync.d.ts +36 -0
  3. package/vscode/src/vs/base/browser/animationSync.js +23 -0
  4. package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.js +23 -2
  5. package/vscode/src/vs/platform/actions/browser/buttonbar.js +3 -2
  6. package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.d.ts +5 -5
  7. package/vscode/src/vs/platform/agentHost/common/fileEditDiff.d.ts +32 -0
  8. package/vscode/src/vs/platform/agentHost/common/fileEditDiff.js +33 -0
  9. package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAnnotations.d.ts +90 -0
  10. package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAttachments.d.ts +30 -0
  11. package/vscode/src/vs/platform/agentHost/common/meta/agentToolCallMeta.d.ts +65 -0
  12. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +16 -5
  13. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +3 -2
  14. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-resource-watch/reducer.d.ts +21 -0
  15. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +8 -0
  16. package/vscode/src/vs/platform/agentHost/common/state/sessionReducers.d.ts +9 -0
  17. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +2 -2
  18. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +29 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +105 -28
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +15 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +74 -44
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +2 -2
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +98 -24
  28. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +8 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +31 -4
  30. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +45 -4
  31. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +163 -37
  32. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerActionItem.d.ts +47 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerActionItem.js +172 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +3 -1
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +7 -4
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionReferenceAttachment.d.ts +12 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSnapshotController.d.ts +116 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSnapshotController.js +348 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.d.ts +211 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.js +64 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +18 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +13 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +1 -1
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +30 -18
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +4 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +29 -4
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +24 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +119 -41
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +27 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.d.ts +63 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.js +97 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +5 -6
  56. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +105 -88
  57. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +1 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +46 -48
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +28 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +98 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +3 -3
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +9 -7
  64. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatTurnPills.css +162 -0
  65. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.d.ts +9 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +95 -24
  67. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +22 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +151 -20
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +20 -2
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +5 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +61 -17
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAutoModeResolutionContentPart.d.ts +20 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAutoModeResolutionContentPart.js +55 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +6 -2
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +81 -30
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +2 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.d.ts +11 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.js +13 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +9 -33
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.d.ts +6 -2
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.js +21 -11
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +6 -2
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +40 -19
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.d.ts +35 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.js +140 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.d.ts +24 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.js +58 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +3 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +29 -8
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +1 -1
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +44 -44
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -2
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +12 -66
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +39 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +167 -43
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +1 -15
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +9 -86
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.d.ts +12 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.js +23 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +9 -1
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +141 -72
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +2 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +17 -3
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTurnPillsPart.d.ts +29 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTurnPillsPart.js +110 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatAgentFeedbackReviewConfirmation.css +133 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatAutoModeResolution.css +30 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +4 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +18 -8
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +23 -7
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +33 -18
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +23 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +44 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +2 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +9 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +21 -4
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAgentFeedbackReviewConfirmationSubPart.d.ts +48 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAgentFeedbackReviewConfirmationSubPart.js +279 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +43 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +53 -15
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +7 -9
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.d.ts +4 -1
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +24 -10
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/{chatMissingSandboxDepsConfirmationSubPart.d.ts → chatSandboxPrerequisiteConfirmationSubPart.d.ts} +3 -2
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/{chatMissingSandboxDepsConfirmationSubPart.js → chatSandboxPrerequisiteConfirmationSubPart.js} +14 -10
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +0 -1
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +30 -59
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +2 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +41 -29
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +2 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +12 -9
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +1 -1
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +43 -35
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +2 -1
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +11 -8
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeHelper.d.ts +18 -0
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeHelper.js +51 -0
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +4 -4
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +18 -3
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +266 -98
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +1 -0
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +8 -3
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.d.ts +32 -0
  172. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.js +135 -0
  173. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatTurnPills.d.ts +85 -0
  174. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatTurnPills.js +275 -0
  175. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +18 -1
  176. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +84 -37
  177. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  178. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatGoalBannerWidget.js +4 -4
  179. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +14 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +6 -1
  181. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +52 -4
  182. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +187 -13
  183. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +435 -139
  184. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatePersistence.d.ts +6 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatePersistence.js +21 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationLogic.d.ts +50 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationLogic.js +49 -0
  188. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.d.ts +79 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.js +127 -0
  190. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +84 -8
  191. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +658 -430
  192. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +72 -8
  193. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +82 -7
  194. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
  195. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.d.ts +3 -3
  196. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.js +6 -3
  197. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +2 -1
  198. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +23 -9
  199. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatGoalBannerWidget.css +2 -2
  200. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +28 -12
  201. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +3 -0
  202. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +15 -14
  203. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +60 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +18 -7
  205. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +49 -1
  206. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +141 -81
  207. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +7 -15
  208. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +30 -47
  209. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  210. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerInputActionItem.d.ts +20 -0
  211. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerInputActionItem.js +18 -0
  212. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +469 -148
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +11 -2
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +79 -28
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +71 -2
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +107 -45
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +20 -0
  218. package/vscode/src/vs/workbench/contrib/chat/common/chatErrorMessages.d.ts +110 -0
  219. package/vscode/src/vs/workbench/contrib/chat/common/chatErrorMessages.js +37 -0
  220. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +4 -1
  221. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +13 -11
  222. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.d.ts +8 -1
  223. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +57 -21
  224. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
  225. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +4 -4
  226. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  227. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
  229. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  230. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.d.ts +39 -8
  231. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.js +168 -72
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  234. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  235. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  236. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  237. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  238. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  239. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  240. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  241. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  242. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  243. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.d.ts +0 -30
  244. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.js +0 -147
@@ -0,0 +1,20 @@
1
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
2
+ import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
3
+ import { IMarkdownRenderer } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer";
4
+ import { IChatAutoModeResolutionPart } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
5
+ import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
6
+ import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
7
+ import { ChatCollapsibleContentPart } from "./chatCollapsibleContentPart.js";
8
+ import { IChatContentPartRenderContext } from "./chatContentParts.js";
9
+ /**
10
+ * A collapsible content part that displays auto-mode model routing resolution.
11
+ * Collapsed: "Routed to <model>"
12
+ * Expanded: Explanation of auto routing + reasoning label with confidence.
13
+ */
14
+ export declare class ChatAutoModeResolutionContentPart extends ChatCollapsibleContentPart {
15
+ private readonly content;
16
+ private readonly chatContentMarkdownRenderer;
17
+ constructor(content: IChatAutoModeResolutionPart, context: IChatContentPartRenderContext, chatContentMarkdownRenderer: IMarkdownRenderer, hoverService: IHoverService, configurationService: IConfigurationService);
18
+ protected initContent(): HTMLElement;
19
+ hasSameContent(other: IChatRendererContent, _followingContent: IChatRendererContent[], _element: ChatTreeItem): boolean;
20
+ }
@@ -0,0 +1,55 @@
1
+
2
+ import { registerCss } from '@codingame/monaco-vscode-api/css';
3
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
+ import { $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
6
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
8
+ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
9
+ import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
10
+ import { ChatCollapsibleContentPart } from './chatCollapsibleContentPart.js';
11
+ import * as chatAutoModeResolution from './media/chatAutoModeResolution.css';
12
+
13
+ registerCss(chatAutoModeResolution);
14
+ let ChatAutoModeResolutionContentPart = class ChatAutoModeResolutionContentPart extends ChatCollapsibleContentPart {
15
+ constructor(
16
+ content,
17
+ context,
18
+ chatContentMarkdownRenderer,
19
+ hoverService,
20
+ configurationService
21
+ ) {
22
+ super(( localize(7789, "Routed to {0}", content.resolvedModelName)), context, undefined, hoverService, configurationService);
23
+ this.content = content;
24
+ this.chatContentMarkdownRenderer = chatContentMarkdownRenderer;
25
+ }
26
+ initContent() {
27
+ const wrapper = $(".chat-auto-mode-resolution-content.chat-used-context-list");
28
+ const body = $(".chat-auto-mode-resolution-body");
29
+ const explanation = $(".chat-auto-mode-resolution-explanation");
30
+ const explanationMd = ( new MarkdownString(ILanguageModelChatMetadata.getAutoModelDescription()));
31
+ const rendered = this._register(this.chatContentMarkdownRenderer.render(explanationMd));
32
+ explanation.appendChild(rendered.element);
33
+ body.appendChild(explanation);
34
+ const detailLine = $(".chat-auto-mode-resolution-detail");
35
+ let detailText;
36
+ if (this.content.predictedLabel === "fallback") {
37
+ detailText = ( localize(7790, "Unable to resolve"));
38
+ } else {
39
+ const label = this.content.predictedLabel === "needs_reasoning" ? ( localize(7791, "Reasoning")) : ( localize(7792, "Non-reasoning"));
40
+ const confidencePercent = (this.content.confidence * 100).toFixed(0);
41
+ detailText = ( localize(7793, "{0} - Confidence {1}%", label, confidencePercent));
42
+ }
43
+ const detailRendered = this._register(this.chatContentMarkdownRenderer.render(( new MarkdownString(detailText))));
44
+ detailLine.appendChild(detailRendered.element);
45
+ body.appendChild(detailLine);
46
+ wrapper.appendChild(body);
47
+ return wrapper;
48
+ }
49
+ hasSameContent(other, _followingContent, _element) {
50
+ return other.kind === "autoModeResolution" && other.resolvedModel === this.content.resolvedModel && other.resolvedModelName === this.content.resolvedModelName && other.confidence === this.content.confidence && other.predictedLabel === this.content.predictedLabel;
51
+ }
52
+ };
53
+ ChatAutoModeResolutionContentPart = ( __decorate([( __param(3, IHoverService)), ( __param(4, IConfigurationService))], ChatAutoModeResolutionContentPart));
54
+
55
+ export { ChatAutoModeResolutionContentPart };
@@ -2,11 +2,13 @@ import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/
2
2
  import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
3
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
4
  import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
5
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
5
6
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
6
7
  import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
7
8
  import { IChatEditingSession, IEditSessionEntryDiff } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService";
8
9
  import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
9
10
  import { IChatChangesSummaryPart as IChatFileChangesSummaryPart, IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
11
+ import { IChatResponseFileChangesService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.service";
10
12
  import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
11
13
  import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
12
14
  export declare class ChatCheckpointFileChangesSummaryContentPart extends Disposable implements IChatContentPart {
@@ -14,15 +16,17 @@ export declare class ChatCheckpointFileChangesSummaryContentPart extends Disposa
14
16
  private readonly hoverService;
15
17
  private readonly chatService;
16
18
  private readonly editorService;
19
+ private readonly configurationService;
17
20
  private readonly instantiationService;
21
+ private readonly chatResponseFileChangesService;
18
22
  readonly domNode: HTMLElement;
19
23
  readonly ELEMENT_HEIGHT = 22;
20
24
  readonly MAX_ITEMS_SHOWN = 6;
21
25
  private readonly diffsBetweenRequests;
22
26
  private fileChangesDiffsObservable;
23
27
  private list;
24
- private isCollapsed;
25
- constructor(content: IChatFileChangesSummaryPart, context: IChatContentPartRenderContext, hoverService: IHoverService, chatService: IChatService, editorService: IEditorService, instantiationService: IInstantiationService);
28
+ private readonly detailsElement;
29
+ constructor(content: IChatFileChangesSummaryPart, context: IChatContentPartRenderContext, hoverService: IHoverService, chatService: IChatService, editorService: IEditorService, configurationService: IConfigurationService, instantiationService: IInstantiationService, chatResponseFileChangesService: IChatResponseFileChangesService);
26
30
  private computeFileChangesDiffs;
27
31
  getCachedEntryDiffBetweenRequests(editSession: IChatEditingSession, uri: URI, startRequestId: string, stopRequestId: string): IObservable<IEditSessionEntryDiff | undefined> | undefined;
28
32
  private renderHeader;
@@ -1,7 +1,6 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { $, addDisposableListener, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
- import { ButtonWithIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
3
+ import { $, createElement, addDisposableListener, EventHelper, isMouseEvent, isKeyboardEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
4
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
6
5
  import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
7
6
  import { Disposable, DisposableStore, toDisposable, combinedDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
@@ -9,9 +8,10 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/in
9
8
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
10
9
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
11
10
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
12
- import { localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
11
+ import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
13
12
  import { FileKind } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
14
13
  import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
14
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
15
15
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
16
16
  import { WorkbenchList } from '@codingame/monaco-vscode-api/vscode/vs/platform/list/browser/listService';
17
17
  import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
@@ -20,7 +20,10 @@ import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench
20
20
  import { createFileIconThemableTreeContainerScope } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/browser/views/explorerView';
21
21
  import { MultiDiffEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
22
22
  import { MultiDiffEditorItem } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService';
23
+ import { ChatEditingSnapshotTextModelContentProvider } from '../../chatEditing/chatEditingTextModelContentProviders.js';
24
+ import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
23
25
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
26
+ import { IChatResponseFileChangesService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.service';
24
27
  import { ResourcePool } from './chatCollections.js';
25
28
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
26
29
 
@@ -31,24 +34,34 @@ let ChatCheckpointFileChangesSummaryContentPart = class ChatCheckpointFileChange
31
34
  hoverService,
32
35
  chatService,
33
36
  editorService,
34
- instantiationService
37
+ configurationService,
38
+ instantiationService,
39
+ chatResponseFileChangesService
35
40
  ) {
36
41
  super();
37
42
  this.content = content;
38
43
  this.hoverService = hoverService;
39
44
  this.chatService = chatService;
40
45
  this.editorService = editorService;
46
+ this.configurationService = configurationService;
41
47
  this.instantiationService = instantiationService;
48
+ this.chatResponseFileChangesService = chatResponseFileChangesService;
42
49
  this.ELEMENT_HEIGHT = 22;
43
50
  this.MAX_ITEMS_SHOWN = 6;
44
51
  this.diffsBetweenRequests = ( new Map());
45
- this.isCollapsed = true;
46
52
  this.fileChangesDiffsObservable = this.computeFileChangesDiffs(content);
47
- const headerDomNode = $(".checkpoint-file-changes-summary-header");
48
- this.domNode = $(".checkpoint-file-changes-summary", undefined, headerDomNode);
49
- this.domNode.tabIndex = 0;
53
+ this.domNode = $(".checkpoint-file-changes-summary.checkpoint-file-changes-compact");
54
+ this.detailsElement = createElement("details");
55
+ this.detailsElement.classList.add("checkpoint-file-changes-disclosure");
56
+ this.domNode.appendChild(this.detailsElement);
57
+ const headerDomNode = this.detailsElement.appendChild(createElement("summary"));
58
+ headerDomNode.classList.add("checkpoint-file-changes-summary-header");
59
+ this._register(autorun(r => {
60
+ const hasChanges = this.fileChangesDiffsObservable.read(r).length > 0;
61
+ this.domNode.style.display = hasChanges ? "" : "none";
62
+ }));
50
63
  this._register(this.renderHeader(headerDomNode));
51
- this._register(this.renderFilesList(this.domNode));
64
+ this._register(this.renderFilesList(this.detailsElement));
52
65
  }
53
66
  computeFileChangesDiffs(
54
67
  {
@@ -56,6 +69,10 @@ let ChatCheckpointFileChangesSummaryContentPart = class ChatCheckpointFileChange
56
69
  sessionResource
57
70
  }
58
71
  ) {
72
+ const fromProvider = this.chatResponseFileChangesService.getChangesForRequest(sessionResource, requestId);
73
+ if (fromProvider) {
74
+ return fromProvider;
75
+ }
59
76
  return ( ( ( this.chatService.chatModels.map(
60
77
  models => Iterable.find(models, m => isEqual(m.sessionResource, sessionResource))
61
78
  )).map(model => model?.editingSession?.getDiffsForFilesInRequest(requestId))).map((diffs, r) => diffs?.read(r) || Iterable.empty()));
@@ -70,41 +87,61 @@ let ChatCheckpointFileChangesSummaryContentPart = class ChatCheckpointFileChange
70
87
  return observable;
71
88
  }
72
89
  renderHeader(container) {
73
- const viewListButtonContainer = container.appendChild($(".chat-file-changes-label"));
74
- const viewListButton = ( new ButtonWithIcon(viewListButtonContainer, {}));
90
+ const filesLabel = container.appendChild($("span.chat-file-changes-label"));
91
+ const counts = container.appendChild($("span.chat-file-changes-counts", {
92
+ "aria-hidden": "true"
93
+ }));
94
+ const addedLabel = counts.appendChild($("span.insertions"));
95
+ const removedLabel = counts.appendChild($("span.deletions"));
96
+ const disposables = ( new DisposableStore());
97
+ disposables.add(this.renderViewAllFileChangesButton(container));
98
+ const chevron = container.appendChild($("span.chat-file-changes-chevron.chat-collapsible-hover-chevron", {
99
+ "aria-hidden": "true"
100
+ }));
101
+ chevron.classList.add(...ThemeIcon.asClassNameArray(Codicon.chevronRight));
75
102
  this._register(autorun(r => {
76
103
  const diffs = this.fileChangesDiffsObservable.read(r);
77
- viewListButton.label = diffs.length === 1 ? `Changed 1 file` : `Changed ${diffs.length} files`;
104
+ const fileCountLabel = diffs.length === 1 ? ( localize(7794, "1 file changed")) : ( localize(7795, "{0} files changed", diffs.length));
105
+ const additions = diffs.reduce((total, diff) => total + diff.added, 0);
106
+ const deletions = diffs.reduce((total, diff) => total + diff.removed, 0);
107
+ filesLabel.textContent = fileCountLabel;
108
+ addedLabel.textContent = `+${additions}`;
109
+ removedLabel.textContent = `-${deletions}`;
110
+ container.setAttribute("aria-label", ( localize(
111
+ 7796,
112
+ "{0}, {1} lines added, {2} lines deleted",
113
+ fileCountLabel,
114
+ additions,
115
+ deletions
116
+ )));
78
117
  }));
79
118
  const setExpansionState = () => {
80
- viewListButton.icon = this.isCollapsed ? Codicon.chevronRight : Codicon.chevronDown;
81
- this.domNode.classList.toggle("chat-file-changes-collapsed", this.isCollapsed);
119
+ container.setAttribute("aria-expanded", String(this.detailsElement.open));
120
+ chevron.classList.toggle("codicon-chevron-right", !this.detailsElement.open);
121
+ chevron.classList.toggle("codicon-chevron-down", this.detailsElement.open);
82
122
  };
83
123
  setExpansionState();
84
- const disposables = ( new DisposableStore());
85
- disposables.add(viewListButton);
86
- disposables.add(viewListButton.onDidClick(() => {
87
- this.isCollapsed = !this.isCollapsed;
88
- setExpansionState();
89
- }));
90
- disposables.add(this.renderViewAllFileChangesButton(viewListButton.element));
124
+ disposables.add(
125
+ addDisposableListener(this.detailsElement, "toggle", setExpansionState)
126
+ );
91
127
  return toDisposable(() => disposables.dispose());
92
128
  }
93
129
  renderViewAllFileChangesButton(container) {
94
- const button = container.appendChild($(".chat-view-changes-icon"));
130
+ const button = container.appendChild(createElement("button"));
131
+ button.classList.add("chat-view-changes-icon");
132
+ button.type = "button";
95
133
  const hoverDisposable = this.hoverService.setupDelayedHover(button, () => ({
96
- content: ( localize2(7255, "View All File Changes"))
134
+ content: ( localize2(7797, "View All File Changes"))
97
135
  }));
98
136
  button.classList.add(...ThemeIcon.asClassNameArray(Codicon.diffMultiple));
99
- button.setAttribute("role", "button");
100
- button.tabIndex = 0;
137
+ button.setAttribute("aria-label", ( localize(7797, "View All File Changes")));
101
138
  return combinedDisposable(hoverDisposable, addDisposableListener(button, "click", e => {
102
139
  const resources = ( this.fileChangesDiffsObservable.get().map(diff => ({
103
140
  originalUri: diff.originalURI,
104
141
  modifiedUri: diff.modifiedURI
105
142
  })));
106
143
  const source = ( URI.parse(`multi-diff-editor:${( ( new Date()).getMilliseconds().toString()) + ( Math.random().toString())}`));
107
- const input = this.instantiationService.createInstance(MultiDiffEditorInput, source, "Checkpoint File Changes", ( resources.map(resource => {
144
+ const input = this.instantiationService.createInstance(MultiDiffEditorInput, source, ( localize(7798, "Checkpoint File Changes")), ( resources.map(resource => {
108
145
  return ( new MultiDiffEditorItem(resource.originalUri, resource.modifiedUri, undefined));
109
146
  })), false);
110
147
  this.editorService.openEditor(input);
@@ -123,7 +160,22 @@ let ChatCheckpointFileChangesSummaryContentPart = class ChatCheckpointFileChange
123
160
  if (!diff) {
124
161
  return;
125
162
  }
126
- const input = {
163
+ const altKey = (isMouseEvent(item.browserEvent) || isKeyboardEvent(item.browserEvent)) && item.browserEvent.altKey;
164
+ const openInDiffEditorByDefault = this.configurationService.getValue(ChatConfiguration.OpenChangedFileInDiffEditor);
165
+ const openInDiffEditor = altKey ? !openInDiffEditorByDefault : openInDiffEditorByDefault;
166
+ if (!openInDiffEditor) {
167
+ const fileURI = ChatEditingSnapshotTextModelContentProvider.getOriginalFileURI(diff.modifiedURI);
168
+ if (fileURI) {
169
+ this.editorService.openEditor({
170
+ resource: fileURI,
171
+ options: {
172
+ preserveFocus: true
173
+ }
174
+ });
175
+ return;
176
+ }
177
+ }
178
+ this.editorService.openEditor({
127
179
  original: {
128
180
  resource: diff.originalURI
129
181
  },
@@ -133,8 +185,7 @@ let ChatCheckpointFileChangesSummaryContentPart = class ChatCheckpointFileChange
133
185
  options: {
134
186
  preserveFocus: true
135
187
  }
136
- };
137
- this.editorService.openEditor(input);
188
+ });
138
189
  }));
139
190
  store.add(this.list.onContextMenu(e => {
140
191
  EventHelper.stop(e.browserEvent, true);
@@ -156,7 +207,7 @@ let ChatCheckpointFileChangesSummaryContentPart = class ChatCheckpointFileChange
156
207
  this._register(disposable);
157
208
  }
158
209
  };
159
- ChatCheckpointFileChangesSummaryContentPart = ( __decorate([( __param(2, IHoverService)), ( __param(3, IChatService)), ( __param(4, IEditorService)), ( __param(5, IInstantiationService))], ChatCheckpointFileChangesSummaryContentPart));
210
+ ChatCheckpointFileChangesSummaryContentPart = ( __decorate([( __param(2, IHoverService)), ( __param(3, IChatService)), ( __param(4, IEditorService)), ( __param(5, IConfigurationService)), ( __param(6, IInstantiationService)), ( __param(7, IChatResponseFileChangesService))], ChatCheckpointFileChangesSummaryContentPart));
160
211
  let CollapsibleChangesSummaryListPool = class CollapsibleChangesSummaryListPool extends Disposable {
161
212
  constructor(instantiationService, themeService) {
162
213
  super();
@@ -29,7 +29,7 @@ let ChatCodeCitationContentPart = class ChatCodeCitationContentPart extends Disp
29
29
  buttonSecondaryHoverBackground: undefined,
30
30
  buttonSeparator: undefined
31
31
  })));
32
- button.label = ( localize(7256, "View matches"));
32
+ button.label = ( localize(7799, "View matches"));
33
33
  this._register(button.onDidClick(() => {
34
34
  const citationText = `# Code Citations\n\n` + ( citations.citations.map(c => `## License: ${c.license}\n${( c.value.toString())}\n\n\`\`\`\n${c.snippet}\n\`\`\`\n\n`)).join("\n");
35
35
  this.editorService.openEditor({
@@ -23,7 +23,7 @@ let ChatCommandButtonContentPart = class ChatCommandButtonContentPart extends Di
23
23
  }
24
24
  }
25
25
  renderButton(container, command, enabled, secondary) {
26
- const tooltip = enabled ? command.tooltip : ( localize(7257, "Button not available in restored chat"));
26
+ const tooltip = enabled ? command.tooltip : ( localize(7800, "Button not available in restored chat"));
27
27
  const button = this._register(( new Button(container, {
28
28
  ...defaultButtonStyles,
29
29
  supportIcons: true,
@@ -26,10 +26,10 @@ let ChatConfirmationContentPart = class ChatConfirmationContentPart extends Disp
26
26
  data: confirmation.data,
27
27
  isSecondary: button !== confirmation.buttons?.[0]
28
28
  }))) : [{
29
- label: ( localize(7258, "Accept")),
29
+ label: ( localize(7801, "Accept")),
30
30
  data: confirmation.data
31
31
  }, {
32
- label: ( localize(7259, "Dismiss")),
32
+ label: ( localize(7802, "Dismiss")),
33
33
  data: confirmation.data,
34
34
  isSecondary: true
35
35
  }];
@@ -507,12 +507,12 @@ function configureAccessibilityContainer(container, title, message, footerBanner
507
507
  const messageAsString = typeof message === "string" ? message : message && "value" in message ? message.value : message && "textContent" in message ? message.textContent : "";
508
508
  const bannerAsString = footerBanner?.textContent?.trim() ?? "";
509
509
  container.setAttribute("aria-label", bannerAsString ? ( localize(
510
- 7260,
510
+ 7803,
511
511
  "Chat Confirmation Dialog {0} {1} {2}",
512
512
  titleAsString,
513
513
  messageAsString,
514
514
  bannerAsString
515
- )) : ( localize(7261, "Chat Confirmation Dialog {0} {1}", titleAsString, messageAsString)));
515
+ )) : ( localize(7804, "Chat Confirmation Dialog {0} {1}", titleAsString, messageAsString)));
516
516
  container.classList.add("chat-confirmation-widget-container");
517
517
  }
518
518
 
@@ -24,13 +24,13 @@ let ChatDisabledClaudeHooksContentPart = class ChatDisabledClaudeHooksContentPar
24
24
  const icon = $(".chat-disabled-claude-hooks-icon");
25
25
  icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.info));
26
26
  const enableLink = createMarkdownCommandLink({
27
- text: ( localize(7262, "Enable")),
27
+ text: ( localize(7805, "Enable")),
28
28
  id: "workbench.action.openSettings",
29
29
  arguments: [PromptsConfig.USE_CLAUDE_HOOKS],
30
- tooltip: ( localize(7263, "Open settings to enable Claude Code hooks"))
30
+ tooltip: ( localize(7806, "Open settings to enable Claude Code hooks"))
31
31
  });
32
32
  const message = ( localize(
33
- 7264,
33
+ 7807,
34
34
  "Claude Code hooks are available for this workspace. {0}",
35
35
  enableLink
36
36
  ));
@@ -5,6 +5,7 @@ import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/th
5
5
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
6
6
  import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
7
7
  import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
8
+ import { ITextModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service";
8
9
  import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
9
10
  import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
10
11
  import { IOpenEditorOptions } from "../../../../../../platform/editor/browser/editor.js";
@@ -91,3 +92,13 @@ export declare class ChatEditPillElement extends Disposable {
91
92
  */
92
93
  setTooltip(tooltip: string): void;
93
94
  }
95
+ /**
96
+ * Resolves the given resource and reports whether it has no content, which is
97
+ * the case when a file was newly created or was empty before an edit.
98
+ *
99
+ * The pill consumers use this to decide whether opening a diff editor is
100
+ * meaningful: a pure addition into an empty (or non-existent) original has
101
+ * nothing to diff against, so the resulting file should open in a normal
102
+ * editor instead.
103
+ */
104
+ export declare function isResourceContentEmpty(textModelService: ITextModelService, uri: URI): Promise<boolean>;
@@ -136,5 +136,17 @@ let ChatEditPillElement = class ChatEditPillElement extends Disposable {
136
136
  }
137
137
  };
138
138
  ChatEditPillElement = ( __decorate([( __param(0, ILabelService)), ( __param(1, IModelService)), ( __param(2, ILanguageService)), ( __param(3, IHoverService))], ChatEditPillElement));
139
+ async function isResourceContentEmpty(textModelService, uri) {
140
+ try {
141
+ const ref = await textModelService.createModelReference(uri);
142
+ try {
143
+ return ref.object.textEditorModel.getValueLength() === 0;
144
+ } finally {
145
+ ref.dispose();
146
+ }
147
+ } catch {
148
+ return false;
149
+ }
150
+ }
139
151
 
140
- export { ChatEditPillElement };
152
+ export { ChatEditPillElement, isResourceContentEmpty };
@@ -1,7 +1,6 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { isMarkdownString, MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
4
- import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
5
4
  import { Disposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
5
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
7
6
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
@@ -14,7 +13,7 @@ import { IChatAccessibilityService } from '@codingame/monaco-vscode-api/vscode/v
14
13
  import { AcceptElicitationRequestActionId } from '../../actions/chatElicitationActions.js';
15
14
  import { IChatToolRiskAssessmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.service';
16
15
  import { ChatConfirmationWidget } from './chatConfirmationWidget.js';
17
- import { ToolRiskBadgeWidget } from './toolInvocationParts/toolRiskBadgeWidget.js';
16
+ import { createToolRiskBadge } from './toolInvocationParts/toolRiskBadgeHelper.js';
18
17
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
19
18
 
20
19
  let ChatElicitationContentPart = class ChatElicitationContentPart extends Disposable {
@@ -133,41 +132,18 @@ let ChatElicitationContentPart = class ChatElicitationContentPart extends Dispos
133
132
  if (elicitation.kind !== "elicitation2" || !elicitation.riskAssessment) {
134
133
  return undefined;
135
134
  }
136
- if (!this.riskAssessmentService.isEnabled()) {
137
- return undefined;
138
- }
139
135
  const {
140
136
  toolId,
141
137
  parameters
142
138
  } = elicitation.riskAssessment;
143
- const tool = this.languageModelToolsService.getTool(toolId);
144
- if (!tool) {
145
- return undefined;
146
- }
147
- const widget = this._register(this.instantiationService.createInstance(ToolRiskBadgeWidget));
148
- const cached = this.riskAssessmentService.getCached(tool, parameters);
149
- if (cached) {
150
- widget.setAssessment(cached);
151
- } else {
152
- widget.setLoading();
153
- const cts = this._register(( new CancellationTokenSource()));
154
- (async () => {
155
- try {
156
- const result = await this.riskAssessmentService.assess(tool, parameters, cts.token);
157
- if (cts.token.isCancellationRequested) {
158
- return;
159
- }
160
- if (!result) {
161
- widget.setHidden();
162
- return;
163
- }
164
- widget.setAssessment(result);
165
- } catch {
166
- widget.setHidden();
167
- }
168
- })();
169
- }
170
- return widget.domNode;
139
+ return createToolRiskBadge(
140
+ this._store,
141
+ this.instantiationService,
142
+ this.riskAssessmentService,
143
+ this.languageModelToolsService,
144
+ toolId,
145
+ parameters
146
+ )?.domNode;
171
147
  }
172
148
  hasSameContent(other) {
173
149
  return other === this.elicitation;
@@ -30,7 +30,7 @@ let ChatExtensionsContentPart = class ChatExtensionsContentPart extends Disposab
30
30
  append(
31
31
  loadingElement,
32
32
  $(ThemeIcon.asCSSSelector(ThemeIcon.modify(Codicon.loading, "spin"))),
33
- $("span.loading-message", undefined, ( localize(7265, "Loading extensions...")))
33
+ $("span.loading-message", undefined, ( localize(7808, "Loading extensions...")))
34
34
  );
35
35
  const extensionsList = append(this.domNode, $(".extensions-list"));
36
36
  const list = this._register(
@@ -1,6 +1,7 @@
1
1
  import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
2
  import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
3
3
  import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
4
+ import { ITextModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service";
4
5
  import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
5
6
  import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
6
7
  import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
@@ -22,11 +23,14 @@ import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentPa
22
23
  *
23
24
  * Activation (click / Enter) opens the side-by-side diff editor when both
24
25
  * `beforeContentUri` and `afterContentUri` are present, falling back to
25
- * opening the resulting file otherwise.
26
+ * opening the resulting file otherwise. A pure addition into an empty (or
27
+ * non-existent) original is treated as the fallback case, since there is
28
+ * nothing meaningful to diff against.
26
29
  */
27
30
  export declare class ChatExternalEditContentPart extends ChatEditPillElement implements IChatContentPart {
28
31
  private readonly edit;
29
32
  private readonly editorService;
33
+ private readonly textModelService;
30
34
  private readonly _onDidChangeDiff;
31
35
  /**
32
36
  * Fires once with the static diff stats from the part data. Wired up by
@@ -39,7 +43,7 @@ export declare class ChatExternalEditContentPart extends ChatEditPillElement imp
39
43
  */
40
44
  readonly onDidChangeDiff: Event<IEditSessionDiffStats>;
41
45
  get domNode(): HTMLElement;
42
- constructor(edit: IChatExternalEdit, _context: IChatContentPartRenderContext, labelService: ILabelService, modelService: IModelService, languageService: ILanguageService, hoverService: IHoverService, editorService: IEditorService);
46
+ constructor(edit: IChatExternalEdit, _context: IChatContentPartRenderContext, labelService: ILabelService, modelService: IModelService, languageService: ILanguageService, hoverService: IHoverService, editorService: IEditorService, textModelService: ITextModelService);
43
47
  private render;
44
48
  private openEdit;
45
49
  hasSameContent(other: IChatRendererContent, _followingContent: IChatRendererContent[], _element: ChatTreeItem): boolean;