@codingame/monaco-vscode-katex-common 30.0.1 → 31.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/package.json +3 -3
  2. package/vscode/src/vs/platform/actions/browser/actionbar.d.ts +16 -0
  3. package/vscode/src/vs/platform/actions/browser/actionbar.js +22 -0
  4. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
  5. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +50 -0
  6. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +138 -0
  7. package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +12 -0
  8. package/vscode/src/vs/platform/networkFilter/common/settings.js +14 -0
  9. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +18 -0
  10. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +13 -0
  11. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +73 -0
  12. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +10 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +3 -1
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +51 -24
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +2 -1
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +64 -72
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +2 -1
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -14
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  23. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +1 -1
  24. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +17 -18
  25. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +5 -2
  26. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +5 -0
  27. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +73 -9
  28. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +32 -32
  30. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.d.ts +1 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +20 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +1 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +73 -49
  34. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +12 -12
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +0 -6
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +41 -99
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +13 -9
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +14 -15
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.d.ts +11 -12
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +339 -161
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +9 -2
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +9 -4
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +33 -5
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollections.d.ts +43 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollections.js +147 -2
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +4 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +55 -6
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.d.ts +1 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.js +7 -5
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +1 -3
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +42 -10
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/animation.d.ts +18 -0
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/animationRegistry.d.ts +15 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/animationRegistry.js +16 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/blockAnimations.d.ts +13 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/blockAnimations.js +33 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/buffer.d.ts +46 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/bufferRegistry.d.ts +11 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/bufferRegistry.js +12 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/offBuffer.d.ts +9 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/offBuffer.js +12 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.d.ts +23 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.js +37 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/wordBuffer.d.ts +34 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/wordBuffer.js +68 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.d.ts +77 -0
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.js +170 -0
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/media/chatIncrementalRendering.css +112 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +3 -1
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -16
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +24 -6
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +111 -145
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.d.ts +58 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +425 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +16 -7
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +68 -25
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +5 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +101 -45
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +36 -4
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +217 -25
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +23 -3
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +168 -60
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +10 -10
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +18 -17
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -5
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +7 -18
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +1 -5
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +7 -19
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +24 -19
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +104 -78
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +11 -2
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +257 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +19 -0
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +30 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +1 -1
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +12 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +286 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +15 -11
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -7
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +25 -47
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +29 -53
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +258 -321
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.d.ts +53 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +392 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -3
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +24 -30
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +2 -3
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +9 -8
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.d.ts +6 -3
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.js +2 -3
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +38 -11
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +577 -113
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +0 -7
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +4 -7
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +1 -8
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +58 -75
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +44 -12
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +362 -188
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +0 -2
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +4 -5
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +42 -95
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +2 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +9 -10
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +57 -38
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +21 -15
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/{modelPickerActionItem2.js → modelPickerActionItem.js} +5 -7
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +38 -31
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +4 -5
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +94 -40
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +2 -2
  166. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +16 -0
  167. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +218 -0
  168. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +7 -7
  169. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +6 -1
  170. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
  171. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +12 -21
  172. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -32
  173. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +355 -156
  174. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +2 -13
  175. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +72 -65
  176. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +4 -43
  177. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +238 -204
  178. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +4 -19
  179. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +128 -115
  180. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +6 -9
  181. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +152 -49
  182. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +64 -0
  183. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +40 -40
  184. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  185. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  186. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  187. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  188. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  189. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  190. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  191. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  192. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  193. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  194. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  196. package/vscode/src/vs/workbench/contrib/terminal/terminalContribChatExports.d.ts +2 -0
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +2 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +41 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +45 -0
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +165 -0
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +53 -0
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +163 -0
  206. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +27 -0
  207. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +142 -0
  208. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +29 -0
  209. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +144 -0
  210. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +40 -0
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +174 -0
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +7 -0
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +43 -0
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +42 -0
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +256 -0
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +42 -0
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +94 -0
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +42 -0
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +221 -0
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +31 -0
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +392 -0
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +45 -0
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +243 -0
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +52 -0
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +10 -0
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +20 -0
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +310 -0
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +19 -0
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +168 -0
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +11 -0
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +33 -0
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +13 -0
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +22 -0
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +22 -0
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +47 -0
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +27 -0
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +14 -0
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +29 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +24 -0
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +32 -0
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +108 -0
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +412 -0
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +42 -0
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +9 -0
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +192 -0
  258. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +2258 -0
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +22 -0
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +43 -0
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +17 -0
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +118 -0
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.d.ts +22 -0
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.js +44 -0
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +1 -0
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +25 -0
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +141 -0
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +85 -0
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +608 -0
  270. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +0 -40
  271. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +0 -196
  272. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +0 -29
  273. package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.d.ts +0 -46
  274. package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.js +0 -215
  275. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +0 -18
  276. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +0 -107
@@ -34,10 +34,11 @@ import { IChatAttachmentResolveService } from '@codingame/monaco-vscode-api/vsco
34
34
  import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService';
35
35
  import { IChatEditingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService.service';
36
36
  import { ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
37
+ import { IChatToolInvocation, ToolConfirmKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
37
38
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
38
39
  import { IDiagnosticVariableEntryFilterData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
39
40
  import { isResponseVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
40
- import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
41
+ import { ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
41
42
  import { isILanguageModelChatSelector, ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
42
43
  import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
43
44
  import { isNotebookContainingCellEditor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/browser/notebookEditor';
@@ -47,7 +48,7 @@ import { INotebookService } from '@codingame/monaco-vscode-api/vscode/vs/workben
47
48
  import { CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT, CTX_INLINE_CHAT_PENDING_CONFIRMATION, CTX_INLINE_CHAT_TERMINATED, InlineChatConfigKeys } from '../common/inlineChat.js';
48
49
  import { InlineChatAffordance } from './inlineChatAffordance.js';
49
50
  import { InlineChatInputWidget, InlineChatSessionOverlayWidget } from './inlineChatOverlayWidget.js';
50
- import { continueInPanelChat } from './inlineChatSessionService.js';
51
+ import { continueInPanelChat, rephraseInlineChat } from './inlineChatSessionService.js';
51
52
  import { IInlineChatSessionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service';
52
53
  import { InlineChatZoneWidget } from './inlineChatZoneWidget.js';
53
54
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
@@ -93,63 +94,82 @@ let InlineChatController = class InlineChatController {
93
94
  static get(editor) {
94
95
  return editor.getContribution(InlineChatController_1.ID) ?? undefined;
95
96
  }
97
+ static #userSelectedModel;
98
+ #store = ( new DisposableStore());
99
+ #isActiveController = observableValue(this, false);
100
+ #renderMode;
101
+ #zone;
102
+ #inputWidget;
103
+ #currentSession;
104
+ #editor;
105
+ #instaService;
106
+ #notebookEditorService;
107
+ #inlineChatSessionService;
108
+ #configurationService;
109
+ #webContentExtractorService;
110
+ #fileService;
111
+ #chatAttachmentResolveService;
112
+ #editorService;
113
+ #markerDecorationsService;
114
+ #languageModelService;
115
+ #logService;
116
+ #chatEditingService;
117
+ #chatService;
96
118
  get widget() {
97
- return this._zone.value.widget;
119
+ return this.#zone.value.widget;
98
120
  }
99
121
  get isActive() {
100
- return Boolean(this._currentSession.get());
122
+ return Boolean(this.#currentSession.get());
101
123
  }
102
124
  get inputWidget() {
103
- return this._inputWidget;
125
+ return this.#inputWidget;
104
126
  }
105
127
  constructor(
106
- _editor,
107
- _instaService,
108
- _notebookEditorService,
109
- _inlineChatSessionService,
128
+ editor,
129
+ instaService,
130
+ notebookEditorService,
131
+ inlineChatSessionService,
110
132
  codeEditorService,
111
133
  contextKeyService,
112
- _configurationService,
113
- _webContentExtractorService,
114
- _fileService,
115
- _chatAttachmentResolveService,
116
- _editorService,
117
- _markerDecorationsService,
118
- _languageModelService,
119
- _logService,
120
- _chatEditingService,
121
- _chatService
134
+ configurationService,
135
+ webContentExtractorService,
136
+ fileService,
137
+ chatAttachmentResolveService,
138
+ editorService,
139
+ markerDecorationsService,
140
+ languageModelService,
141
+ logService,
142
+ chatEditingService,
143
+ chatService
122
144
  ) {
123
- this._editor = _editor;
124
- this._instaService = _instaService;
125
- this._notebookEditorService = _notebookEditorService;
126
- this._inlineChatSessionService = _inlineChatSessionService;
127
- this._configurationService = _configurationService;
128
- this._webContentExtractorService = _webContentExtractorService;
129
- this._fileService = _fileService;
130
- this._chatAttachmentResolveService = _chatAttachmentResolveService;
131
- this._editorService = _editorService;
132
- this._markerDecorationsService = _markerDecorationsService;
133
- this._languageModelService = _languageModelService;
134
- this._logService = _logService;
135
- this._chatEditingService = _chatEditingService;
136
- this._chatService = _chatService;
137
- this._store = ( new DisposableStore());
138
- this._isActiveController = observableValue(this, false);
139
- const editorObs = observableCodeEditor(_editor);
145
+ this.#editor = editor;
146
+ this.#instaService = instaService;
147
+ this.#notebookEditorService = notebookEditorService;
148
+ this.#inlineChatSessionService = inlineChatSessionService;
149
+ this.#configurationService = configurationService;
150
+ this.#webContentExtractorService = webContentExtractorService;
151
+ this.#fileService = fileService;
152
+ this.#chatAttachmentResolveService = chatAttachmentResolveService;
153
+ this.#editorService = editorService;
154
+ this.#markerDecorationsService = markerDecorationsService;
155
+ this.#languageModelService = languageModelService;
156
+ this.#logService = logService;
157
+ this.#chatEditingService = chatEditingService;
158
+ this.#chatService = chatService;
159
+ const editorObs = observableCodeEditor(editor);
140
160
  const ctxInlineChatVisible = CTX_INLINE_CHAT_VISIBLE.bindTo(contextKeyService);
141
161
  const ctxFileBelongsToChat = CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT.bindTo(contextKeyService);
142
162
  const ctxPendingConfirmation = CTX_INLINE_CHAT_PENDING_CONFIRMATION.bindTo(contextKeyService);
143
163
  const ctxTerminated = CTX_INLINE_CHAT_TERMINATED.bindTo(contextKeyService);
144
- const notebookAgentConfig = observableConfigValue(InlineChatConfigKeys.notebookAgent, false, this._configurationService);
145
- this._renderMode = observableConfigValue(InlineChatConfigKeys.RenderMode, "zone", this._configurationService);
146
- this._store.add(autorun(r => {
164
+ const notebookAgentConfig = observableConfigValue(InlineChatConfigKeys.notebookAgent, false, this.#configurationService);
165
+ this.#renderMode = observableConfigValue(InlineChatConfigKeys.RenderMode, "zone", this.#configurationService);
166
+ this.#store.add(autorun(r => {
147
167
  const model = editorObs.model.read(r);
148
168
  if (!model) {
149
169
  ctxFileBelongsToChat.set(false);
150
170
  return;
151
171
  }
152
- const sessions = this._chatEditingService.editingSessionsObs.read(r);
172
+ const sessions = this.#chatEditingService.editingSessionsObs.read(r);
153
173
  let hasEdits = false;
154
174
  for (const session of sessions) {
155
175
  const entries = session.entries.read(r);
@@ -165,47 +185,47 @@ let InlineChatController = class InlineChatController {
165
185
  }
166
186
  ctxFileBelongsToChat.set(hasEdits);
167
187
  }));
168
- const overlayWidget = this._inputWidget = this._store.add(this._instaService.createInstance(InlineChatInputWidget, editorObs));
169
- const sessionOverlayWidget = this._store.add(
170
- this._instaService.createInstance(InlineChatSessionOverlayWidget, editorObs)
188
+ const overlayWidget = this.#inputWidget = this.#store.add(this.#instaService.createInstance(InlineChatInputWidget, editorObs));
189
+ const sessionOverlayWidget = this.#store.add(
190
+ this.#instaService.createInstance(InlineChatSessionOverlayWidget, editorObs)
171
191
  );
172
- this.inputOverlayWidget = this._store.add(
173
- this._instaService.createInstance(InlineChatAffordance, this._editor, overlayWidget)
192
+ this.inputOverlayWidget = this.#store.add(
193
+ this.#instaService.createInstance(InlineChatAffordance, this.#editor, overlayWidget)
174
194
  );
175
- this._zone = ( new Lazy(() => {
195
+ this.#zone = ( new Lazy(() => {
176
196
  assertType(
177
- this._editor.hasModel(),
197
+ this.#editor.hasModel(),
178
198
  "[Illegal State] widget should only be created when the editor has a model"
179
199
  );
180
200
  const location = {
181
201
  location: ChatAgentLocation.EditorInline,
182
202
  resolveData: () => {
183
- assertType(this._editor.hasModel());
184
- const wholeRange = this._editor.getSelection();
185
- const document = this._editor.getModel().uri;
203
+ assertType(this.#editor.hasModel());
204
+ const wholeRange = this.#editor.getSelection();
205
+ const document = this.#editor.getModel().uri;
186
206
  return {
187
207
  type: ChatAgentLocation.EditorInline,
188
- id: getEditorId(this._editor, this._editor.getModel()),
189
- selection: this._editor.getSelection(),
208
+ id: getEditorId(this.#editor, this.#editor.getModel()),
209
+ selection: this.#editor.getSelection(),
190
210
  document,
191
211
  wholeRange
192
212
  };
193
213
  }
194
214
  };
195
- const notebookEditor = this._notebookEditorService.getNotebookForPossibleCell(this._editor);
215
+ const notebookEditor = this.#notebookEditorService.getNotebookForPossibleCell(this.#editor);
196
216
  if (!!notebookEditor) {
197
217
  location.location = ChatAgentLocation.Notebook;
198
218
  if (notebookAgentConfig.get()) {
199
219
  location.resolveData = () => {
200
- assertType(this._editor.hasModel());
220
+ assertType(this.#editor.hasModel());
201
221
  return {
202
222
  type: ChatAgentLocation.Notebook,
203
- sessionInputUri: this._editor.getModel().uri
223
+ sessionInputUri: this.#editor.getModel().uri
204
224
  };
205
225
  };
206
226
  }
207
227
  }
208
- const result = this._instaService.createInstance(InlineChatZoneWidget, location, {
228
+ const result = this.#instaService.createInstance(InlineChatZoneWidget, location, {
209
229
  enableWorkingSet: "implicit",
210
230
  enableImplicitContext: false,
211
231
  renderInputOnTop: false,
@@ -223,25 +243,25 @@ let InlineChatController = class InlineChatController {
223
243
  },
224
244
  defaultMode: ChatMode.Ask
225
245
  }, {
226
- editor: this._editor,
246
+ editor: this.#editor,
227
247
  notebookEditor
228
248
  }, () => Promise.resolve());
229
- this._store.add(result);
249
+ this.#store.add(result);
230
250
  result.domNode.classList.add("inline-chat-2");
231
251
  return result;
232
252
  }));
233
- const sessionsSignal = observableSignalFromEvent(this, _inlineChatSessionService.onDidChangeSessions);
234
- this._currentSession = derived(r => {
253
+ const sessionsSignal = observableSignalFromEvent(this, inlineChatSessionService.onDidChangeSessions);
254
+ this.#currentSession = derived(r => {
235
255
  sessionsSignal.read(r);
236
256
  const model = editorObs.model.read(r);
237
- const session = model && _inlineChatSessionService.getSessionByTextModel(model.uri);
257
+ const session = model && inlineChatSessionService.getSessionByTextModel(model.uri);
238
258
  return session ?? undefined;
239
259
  });
240
260
  let lastSession = undefined;
241
- this._store.add(autorun(r => {
242
- const session = this._currentSession.read(r);
261
+ this.#store.add(autorun(r => {
262
+ const session = this.#currentSession.read(r);
243
263
  if (!session) {
244
- this._isActiveController.set(false, undefined);
264
+ this.#isActiveController.set(false, undefined);
245
265
  if (lastSession && !lastSession.chatModel.hasRequests) {
246
266
  const state = lastSession.chatModel.inputModel.state.read(undefined);
247
267
  if (!state || (!state.inputText && state.attachments.length === 0)) {
@@ -254,20 +274,21 @@ let InlineChatController = class InlineChatController {
254
274
  lastSession = session;
255
275
  let foundOne = false;
256
276
  for (const editor of codeEditorService.listCodeEditors()) {
257
- if (Boolean(InlineChatController_1.get(editor)?._isActiveController.read(undefined))) {
277
+ const ctrl = InlineChatController_1.get(editor);
278
+ if (ctrl && ctrl.#isActiveController.read(undefined)) {
258
279
  foundOne = true;
259
280
  break;
260
281
  }
261
282
  }
262
283
  if (!foundOne && editorObs.isFocused.read(r)) {
263
- this._isActiveController.set(true, undefined);
284
+ this.#isActiveController.set(true, undefined);
264
285
  }
265
286
  }));
266
287
  const visibleSessionObs = observableValue(this, undefined);
267
- this._store.add(autorun(r => {
288
+ this.#store.add(autorun(r => {
268
289
  const model = editorObs.model.read(r);
269
- const session = this._currentSession.read(r);
270
- const isActive = this._isActiveController.read(r);
290
+ const session = this.#currentSession.read(r);
291
+ const isActive = this.#isActiveController.read(r);
271
292
  if (!session || !isActive || !model) {
272
293
  visibleSessionObs.set(undefined, undefined);
273
294
  } else {
@@ -275,39 +296,37 @@ let InlineChatController = class InlineChatController {
275
296
  }
276
297
  }));
277
298
  const defaultPlaceholderObs = ( visibleSessionObs.map((session, r) => {
278
- return session?.initialSelection.isEmpty() ? ( localize(9951, "Generate code")) : ( localize(9952, "Modify selected code"));
299
+ return session?.initialSelection.isEmpty() ? ( localize(10089, "Generate code")) : ( localize(10090, "Modify selected code"));
279
300
  }));
280
- this._store.add(autorun(r => {
301
+ this.#store.add(autorun(r => {
281
302
  const session = visibleSessionObs.read(r);
282
303
  ctxTerminated.set(!!session?.terminationState.read(r));
283
304
  }));
284
- this._store.add(autorun(r => {
305
+ this.#store.add(autorun(r => {
285
306
  const session = visibleSessionObs.read(r);
286
- const renderMode = this._renderMode.read(r);
307
+ const renderMode = this.#renderMode.read(r);
287
308
  if (!session) {
288
- this._zone.rawValue?.hide();
289
- this._zone.rawValue?.widget.chatWidget.setModel(undefined);
290
- _editor.focus();
309
+ this.#zone.rawValue?.hide();
310
+ this.#zone.rawValue?.widget.chatWidget.setModel(undefined);
311
+ editor.focus();
291
312
  ctxInlineChatVisible.reset();
292
313
  } else if (renderMode === "hover") {
293
- this._zone.value.widget.chatWidget.setModel(session.chatModel);
294
- this._zone.rawValue?.hide();
295
314
  ctxInlineChatVisible.set(true);
296
315
  } else {
297
316
  ctxInlineChatVisible.set(true);
298
- this._zone.value.widget.chatWidget.setModel(session.chatModel);
299
- if (!this._zone.value.position) {
300
- this._zone.value.widget.chatWidget.setInputPlaceholder(defaultPlaceholderObs.read(r));
301
- this._zone.value.widget.chatWidget.input.renderAttachedContext();
302
- this._zone.value.show(session.initialPosition);
317
+ this.#zone.value.widget.chatWidget.setModel(session.chatModel);
318
+ if (!this.#zone.value.position) {
319
+ this.#zone.value.widget.chatWidget.setInputPlaceholder(defaultPlaceholderObs.read(r));
320
+ this.#zone.value.widget.chatWidget.input.renderAttachedContext();
321
+ this.#zone.value.show(session.initialPosition);
303
322
  }
304
- this._zone.value.reveal(this._zone.value.position);
305
- this._zone.value.widget.focus();
323
+ this.#zone.value.reveal(this.#zone.value.position);
324
+ this.#zone.value.widget.focus();
306
325
  }
307
326
  }));
308
- this._store.add(autorun(r => {
327
+ this.#store.add(autorun(r => {
309
328
  const session = visibleSessionObs.read(r);
310
- const renderMode = this._renderMode.read(r);
329
+ const renderMode = this.#renderMode.read(r);
311
330
  if (!session || renderMode !== "hover") {
312
331
  ctxPendingConfirmation.set(false);
313
332
  sessionOverlayWidget.hide();
@@ -327,7 +346,27 @@ let InlineChatController = class InlineChatController {
327
346
  sessionOverlayWidget.hide();
328
347
  }
329
348
  }));
330
- this._store.add(autorun(r => {
349
+ this.#store.add(autorun(r => {
350
+ const session = this.#currentSession.read(r);
351
+ if (!session) {
352
+ return;
353
+ }
354
+ const lastRequest = session.chatModel.lastRequestObs.read(r);
355
+ const response = lastRequest?.response;
356
+ const pending = response?.isPendingConfirmation.read(r);
357
+ if (pending) {
358
+ this.#logService.info(`[InlineChat] auto-approving: ${pending.detail ?? "unknown"}`);
359
+ for (const part of response.response.value) {
360
+ if (part.kind === "toolInvocation") {
361
+ IChatToolInvocation.confirmWith(part, {
362
+ type: ToolConfirmKind.ConfirmationNotNeeded,
363
+ reason: "inlineChat"
364
+ });
365
+ }
366
+ }
367
+ }
368
+ }));
369
+ this.#store.add(autorun(r => {
331
370
  const session = visibleSessionObs.read(r);
332
371
  if (session) {
333
372
  const entries = session.editingSession.entries.read(r);
@@ -342,7 +381,7 @@ let InlineChatController = class InlineChatController {
342
381
  return true;
343
382
  });
344
383
  for (const entry of otherEntries) {
345
- this._editorService.openEditor({
384
+ this.#editorService.openEditor({
346
385
  resource: entry.modifiedURI
347
386
  }, SIDE_GROUP).catch(onUnexpectedError);
348
387
  }
@@ -369,31 +408,37 @@ let InlineChatController = class InlineChatController {
369
408
  () => response.response.value.findLast(part => part.kind === "progressMessage")
370
409
  ).read(r);
371
410
  }));
372
- this._store.add(autorun(r => {
411
+ this.#store.add(autorun(r => {
373
412
  const session = visibleSessionObs.read(r);
374
413
  const response = lastResponseObs.read(r);
375
414
  const terminationState = session?.terminationState.read(r);
376
- this._zone.rawValue?.widget.updateInfo("");
415
+ const renderMode = this.#renderMode.read(r);
416
+ this.#zone.rawValue?.widget.updateInfo("");
377
417
  if (!response?.isInProgress.read(r)) {
378
418
  if (response?.result?.errorDetails) {
379
- this._zone.rawValue?.widget.updateInfo(`$(error) ${response.result.errorDetails.message}`);
419
+ this.#zone.rawValue?.widget.updateInfo(`$(error) ${response.result.errorDetails.message}`);
380
420
  alert(response.result.errorDetails.message);
421
+ } else if (terminationState && renderMode === "zone") {
422
+ this.#zone.rawValue?.showTerminationCard(terminationState, this.#instaService);
381
423
  } else if (terminationState) {
382
- this._zone.rawValue?.widget.updateInfo(`$(info) ${renderAsPlaintext(terminationState)}`);
424
+ this.#zone.rawValue?.widget.updateInfo(`$(info) ${renderAsPlaintext(terminationState)}`);
425
+ }
426
+ if (!terminationState || renderMode !== "zone") {
427
+ this.#zone.rawValue?.hideTerminationCard();
383
428
  }
384
- this._zone.rawValue?.widget.domNode.classList.toggle("request-in-progress", false);
385
- this._zone.rawValue?.widget.chatWidget.setInputPlaceholder(defaultPlaceholderObs.read(r));
429
+ this.#zone.rawValue?.widget.domNode.classList.toggle("request-in-progress", false);
430
+ this.#zone.rawValue?.widget.chatWidget.setInputPlaceholder(defaultPlaceholderObs.read(r));
386
431
  } else {
387
- this._zone.rawValue?.widget.domNode.classList.toggle("request-in-progress", true);
432
+ this.#zone.rawValue?.widget.domNode.classList.toggle("request-in-progress", true);
388
433
  let placeholder = response.request?.message.text;
389
434
  const lastProgress = lastResponseProgressObs.read(r);
390
435
  if (lastProgress) {
391
436
  placeholder = renderAsPlaintext(lastProgress.content);
392
437
  }
393
- this._zone.rawValue?.widget.chatWidget.setInputPlaceholder(placeholder || ( localize(9953, "Working...")));
438
+ this.#zone.rawValue?.widget.chatWidget.setInputPlaceholder(placeholder || ( localize(10091, "Working...")));
394
439
  }
395
440
  }));
396
- this._store.add(autorun(r => {
441
+ this.#store.add(autorun(r => {
397
442
  const session = visibleSessionObs.read(r);
398
443
  if (!session) {
399
444
  return;
@@ -403,23 +448,23 @@ let InlineChatController = class InlineChatController {
403
448
  entry?.enableReviewModeUntilSettled();
404
449
  }
405
450
  }));
406
- this._store.add(autorun(r => {
451
+ this.#store.add(autorun(r => {
407
452
  const session = visibleSessionObs.read(r);
408
453
  const entry = session?.editingSession.readEntry(session.uri, r);
409
- const pane = this._editorService.visibleEditorPanes.find(
410
- candidate => candidate.getControl() === this._editor || isNotebookContainingCellEditor(candidate, this._editor)
454
+ const pane = this.#editorService.visibleEditorPanes.find(
455
+ candidate => candidate.getControl() === this.#editor || isNotebookContainingCellEditor(candidate, this.#editor)
411
456
  );
412
457
  if (pane && entry) {
413
458
  entry?.getEditorIntegration(pane);
414
459
  }
415
- if (entry?.diffInfo && this._zone.value.position) {
460
+ if (entry?.diffInfo && this.#zone.rawValue?.position) {
416
461
  const {
417
462
  position
418
- } = this._zone.value;
463
+ } = this.#zone.rawValue;
419
464
  const diff = entry.diffInfo.read(r);
420
465
  for (const change of diff.changes) {
421
466
  if (change.modified.contains(position.lineNumber)) {
422
- this._zone.value.updatePositionAndHeight(( new Position(change.modified.startLineNumber - 1, 1)));
467
+ this.#zone.rawValue?.updatePositionAndHeight(( new Position(change.modified.startLineNumber - 1, 1)));
423
468
  break;
424
469
  }
425
470
  }
@@ -427,79 +472,162 @@ let InlineChatController = class InlineChatController {
427
472
  }));
428
473
  }
429
474
  dispose() {
430
- this._store.dispose();
475
+ this.#store.dispose();
431
476
  }
432
477
  getWidgetPosition() {
433
- return this._zone.rawValue?.position;
478
+ return this.#zone.rawValue?.position;
434
479
  }
435
480
  focus() {
436
- this._zone.rawValue?.widget.focus();
481
+ this.#zone.rawValue?.widget.focus();
437
482
  }
438
483
  async run(arg) {
439
- assertType(this._editor.hasModel());
440
- const uri = this._editor.getModel().uri;
441
- const existingSession = this._inlineChatSessionService.getSessionByTextModel(uri);
484
+ assertType(this.#editor.hasModel());
485
+ const uri = this.#editor.getModel().uri;
486
+ const existingSession = this.#inlineChatSessionService.getSessionByTextModel(uri);
442
487
  if (existingSession) {
443
488
  await existingSession.editingSession.accept();
444
489
  existingSession.dispose();
445
490
  }
446
- this._isActiveController.set(true, undefined);
447
- const session = this._inlineChatSessionService.createSession(this._editor);
491
+ this.#isActiveController.set(true, undefined);
492
+ const session = this.#inlineChatSessionService.createSession(this.#editor);
493
+ if (this.#renderMode.get() === "hover") {
494
+ return this.#runHover(session, arg);
495
+ } else {
496
+ return this.#runZone(session, arg);
497
+ }
498
+ }
499
+ async #runHover(session, arg) {
500
+ assertType(this.#editor.hasModel());
501
+ const uri = this.#editor.getModel().uri;
502
+ if (arg && InlineChatRunOptions.isInlineChatRunOptions(arg)) {
503
+ if (arg.initialRange) {
504
+ this.#editor.revealRange(arg.initialRange);
505
+ }
506
+ if (arg.initialSelection) {
507
+ this.#editor.setSelection(arg.initialSelection);
508
+ }
509
+ }
510
+ const {
511
+ location,
512
+ locationData
513
+ } = this.#buildLocationData();
514
+ let userSelectedModelId;
515
+ if (arg?.modelSelector) {
516
+ userSelectedModelId = (await this.#languageModelService.selectLanguageModels(arg.modelSelector)).sort().at(0);
517
+ if (!userSelectedModelId) {
518
+ throw ( new Error(
519
+ `No language models found matching selector: ${JSON.stringify(arg.modelSelector)}.`
520
+ ));
521
+ }
522
+ } else {
523
+ userSelectedModelId = await this.#resolveModelId(location);
524
+ }
525
+ const attachedContext = [];
526
+ if (arg?.attachments) {
527
+ for (const attachment of arg.attachments) {
528
+ const resolved = await this.#chatAttachmentResolveService.resolveImageEditorAttachContext(attachment);
529
+ if (resolved) {
530
+ attachedContext.push(resolved);
531
+ }
532
+ }
533
+ }
534
+ if (arg?.attachDiagnostics) {
535
+ for (const [range, marker] of this.#markerDecorationsService.getLiveMarkers(uri)) {
536
+ if (range.intersectRanges(this.#editor.getSelection())) {
537
+ const filter = IDiagnosticVariableEntryFilterData.fromMarker(marker);
538
+ attachedContext.push(IDiagnosticVariableEntryFilterData.toEntry(filter));
539
+ }
540
+ }
541
+ if (attachedContext.length > 0 && !arg.message) {
542
+ arg.message = attachedContext.length > 1 ? ( localize(10092, "Fix the attached problems")) : ( localize(10093, "Fix the attached problem"));
543
+ }
544
+ }
545
+ if (arg?.message && arg.autoSend) {
546
+ await this.#chatService.sendRequest(session.chatModel.sessionResource, arg.message, {
547
+ userSelectedModelId,
548
+ location,
549
+ locationData,
550
+ attachedContext: attachedContext.length > 0 ? attachedContext : undefined,
551
+ modeInfo: {
552
+ kind: ChatModeKind.Ask,
553
+ isBuiltin: true,
554
+ modeInstructions: undefined,
555
+ modeId: "ask",
556
+ applyCodeBlockSuggestionId: undefined
557
+ }
558
+ });
559
+ }
560
+ if (!arg?.resolveOnResponse) {
561
+ await Event.toPromise(session.editingSession.onDidDispose);
562
+ const rejected = session.editingSession.getEntry(uri)?.state.get() === ModifiedFileEntryState.Rejected;
563
+ return !rejected;
564
+ } else {
565
+ const modifiedObs = derived(r => {
566
+ const entry = session.editingSession.readEntry(uri, r);
567
+ return entry?.state.read(r) === ModifiedFileEntryState.Modified && !entry?.isCurrentlyBeingModifiedBy.read(r);
568
+ });
569
+ await waitForState(modifiedObs, state => state === true);
570
+ return true;
571
+ }
572
+ }
573
+ async #runZone(session, arg) {
574
+ assertType(this.#editor.hasModel());
575
+ const uri = this.#editor.getModel().uri;
448
576
  const sessionStore = ( new DisposableStore());
449
577
  try {
450
- await this._applyModelDefaults(session, sessionStore);
578
+ await this.#applyModelDefaults(session, sessionStore);
451
579
  if (arg) {
452
- arg.attachDiagnostics ??= this._configurationService.getValue(InlineChatConfigKeys.RenderMode) === "zone";
580
+ arg.attachDiagnostics ??= true;
453
581
  }
454
582
  if (arg?.attachDiagnostics) {
455
583
  const entries = [];
456
- for (const [range, marker] of this._markerDecorationsService.getLiveMarkers(uri)) {
457
- if (range.intersectRanges(this._editor.getSelection())) {
584
+ for (const [range, marker] of this.#markerDecorationsService.getLiveMarkers(uri)) {
585
+ if (range.intersectRanges(this.#editor.getSelection())) {
458
586
  const filter = IDiagnosticVariableEntryFilterData.fromMarker(marker);
459
587
  entries.push(IDiagnosticVariableEntryFilterData.toEntry(filter));
460
588
  }
461
589
  }
462
590
  if (entries.length > 0) {
463
- this._zone.value.widget.chatWidget.attachmentModel.addContext(...entries);
464
- const msg = entries.length > 1 ? ( localize(9954, "Fix the attached problems")) : ( localize(9955, "Fix the attached problem"));
465
- this._zone.value.widget.chatWidget.input.setValue(msg, true);
591
+ this.#zone.value.widget.chatWidget.attachmentModel.addContext(...entries);
592
+ const msg = entries.length > 1 ? ( localize(10092, "Fix the attached problems")) : ( localize(10093, "Fix the attached problem"));
593
+ this.#zone.value.widget.chatWidget.input.setValue(msg, true);
466
594
  arg.message = msg;
467
- this._zone.value.widget.chatWidget.inputEditor.setSelection(( new Selection(1, 1, Number.MAX_SAFE_INTEGER, 1)));
595
+ this.#zone.value.widget.chatWidget.inputEditor.setSelection(( new Selection(1, 1, Number.MAX_SAFE_INTEGER, 1)));
468
596
  }
469
597
  }
470
598
  if (arg && InlineChatRunOptions.isInlineChatRunOptions(arg)) {
471
599
  if (arg.initialRange) {
472
- this._editor.revealRange(arg.initialRange);
600
+ this.#editor.revealRange(arg.initialRange);
473
601
  }
474
602
  if (arg.initialSelection) {
475
- this._editor.setSelection(arg.initialSelection);
603
+ this.#editor.setSelection(arg.initialSelection);
476
604
  }
477
605
  if (arg.attachments) {
478
606
  await Promise.all(( arg.attachments.map(async attachment => {
479
- await this._zone.value.widget.chatWidget.attachmentModel.addFile(attachment);
607
+ await this.#zone.value.widget.chatWidget.attachmentModel.addFile(attachment);
480
608
  })));
481
609
  delete arg.attachments;
482
610
  }
483
611
  if (arg.modelSelector) {
484
- const id = (await this._languageModelService.selectLanguageModels(arg.modelSelector)).sort().at(0);
612
+ const id = (await this.#languageModelService.selectLanguageModels(arg.modelSelector)).sort().at(0);
485
613
  if (!id) {
486
614
  throw ( new Error(
487
615
  `No language models found matching selector: ${JSON.stringify(arg.modelSelector)}.`
488
616
  ));
489
617
  }
490
- const model = this._languageModelService.lookupLanguageModel(id);
618
+ const model = this.#languageModelService.lookupLanguageModel(id);
491
619
  if (!model) {
492
620
  throw ( new Error(`Language model not loaded: ${id}.`));
493
621
  }
494
- this._zone.value.widget.chatWidget.input.setCurrentLanguageModel({
622
+ this.#zone.value.widget.chatWidget.input.setCurrentLanguageModel({
495
623
  metadata: model,
496
624
  identifier: id
497
625
  });
498
626
  }
499
627
  if (arg.message) {
500
- this._zone.value.widget.chatWidget.setInput(arg.message);
628
+ this.#zone.value.widget.chatWidget.setInput(arg.message);
501
629
  if (arg.autoSend) {
502
- await this._zone.value.widget.chatWidget.acceptInput();
630
+ await this.#zone.value.widget.chatWidget.acceptInput();
503
631
  }
504
632
  }
505
633
  }
@@ -520,7 +648,7 @@ let InlineChatController = class InlineChatController {
520
648
  }
521
649
  }
522
650
  async acceptSession() {
523
- const session = this._currentSession.get();
651
+ const session = this.#currentSession.get();
524
652
  if (!session) {
525
653
  return;
526
654
  }
@@ -528,45 +656,53 @@ let InlineChatController = class InlineChatController {
528
656
  session.dispose();
529
657
  }
530
658
  async rejectSession() {
531
- const session = this._currentSession.get();
659
+ const session = this.#currentSession.get();
532
660
  if (!session) {
533
661
  return;
534
662
  }
535
- await this._chatService.cancelCurrentRequestForSession(session.chatModel.sessionResource, "inlineChatReject");
663
+ await this.#chatService.cancelCurrentRequestForSession(session.chatModel.sessionResource, "inlineChatReject");
536
664
  await session.editingSession.reject();
537
665
  session.dispose();
538
666
  }
539
667
  async continueSessionInChat() {
540
- const session = this._currentSession.get();
668
+ const session = this.#currentSession.get();
541
669
  if (!session) {
542
670
  return;
543
671
  }
544
- await this._instaService.invokeFunction(continueInPanelChat, session);
672
+ await this.#instaService.invokeFunction(continueInPanelChat, session);
545
673
  }
546
674
  async rephraseSession() {
547
- const session = this._currentSession.get();
675
+ const session = this.#currentSession.get();
548
676
  if (!session) {
549
677
  return;
550
678
  }
679
+ if (this.#renderMode.get() === "zone") {
680
+ const requestText = this.#instaService.invokeFunction(rephraseInlineChat, session);
681
+ if (requestText) {
682
+ this.#zone.rawValue?.widget.chatWidget.setInput(requestText);
683
+ }
684
+ this.#zone.rawValue?.widget.focus();
685
+ return;
686
+ }
551
687
  const requestText = session.chatModel.getRequests().at(-1)?.message.text;
552
688
  session.dispose();
553
689
  if (!requestText) {
554
690
  return;
555
691
  }
556
- const selection = this._editor.getSelection();
557
- const placeholder = selection && !selection.isEmpty() ? ( localize(9956, "Describe how to change this")) : ( localize(9957, "Describe what to generate"));
692
+ const selection = this.#editor.getSelection();
693
+ const placeholder = selection && !selection.isEmpty() ? ( localize(10094, "Describe how to change this")) : ( localize(10095, "Describe what to generate"));
558
694
  await this.inputOverlayWidget.showMenuAtSelection(placeholder, requestText);
559
695
  }
560
- async _selectVendorDefaultModel(session) {
561
- const model = this._zone.value.widget.chatWidget.input.selectedLanguageModel.get();
696
+ async #selectVendorDefaultModel(session) {
697
+ const model = this.#zone.value.widget.chatWidget.input.selectedLanguageModel.get();
562
698
  if (model && !model.metadata.isDefaultForLocation[session.chatModel.initialLocation]) {
563
- const ids = await this._languageModelService.selectLanguageModels({
699
+ const ids = await this.#languageModelService.selectLanguageModels({
564
700
  vendor: model.metadata.vendor
565
701
  });
566
702
  for (const identifier of ids) {
567
- const candidate = this._languageModelService.lookupLanguageModel(identifier);
703
+ const candidate = this.#languageModelService.lookupLanguageModel(identifier);
568
704
  if (candidate?.isDefaultForLocation[session.chatModel.initialLocation]) {
569
- this._zone.value.widget.chatWidget.input.setCurrentLanguageModel({
705
+ this.#zone.value.widget.chatWidget.input.setCurrentLanguageModel({
570
706
  metadata: candidate,
571
707
  identifier
572
708
  });
@@ -575,30 +711,93 @@ let InlineChatController = class InlineChatController {
575
711
  }
576
712
  }
577
713
  }
578
- async _applyModelDefaults(session, sessionStore) {
579
- const userSelectedModel = InlineChatController_1._userSelectedModel;
580
- const defaultModelSetting = this._configurationService.getValue(InlineChatConfigKeys.DefaultModel);
714
+ async #resolveModelId(location) {
715
+ const userSelectedModel = InlineChatController_1.#userSelectedModel;
716
+ const defaultModelSetting = this.#configurationService.getValue(InlineChatConfigKeys.DefaultModel);
717
+ if (userSelectedModel) {
718
+ const match = this.#languageModelService.lookupLanguageModelByQualifiedName(userSelectedModel);
719
+ if (match) {
720
+ return match.identifier;
721
+ }
722
+ InlineChatController_1.#userSelectedModel = undefined;
723
+ }
724
+ if (defaultModelSetting) {
725
+ const match = this.#languageModelService.lookupLanguageModelByQualifiedName(defaultModelSetting);
726
+ if (match) {
727
+ return match.identifier;
728
+ }
729
+ this.#logService.warn(
730
+ `inlineChat.defaultModel setting value '${defaultModelSetting}' did not match any available model. Falling back to vendor default.`
731
+ );
732
+ }
733
+ for (const id of this.#languageModelService.getLanguageModelIds()) {
734
+ const metadata = this.#languageModelService.lookupLanguageModel(id);
735
+ if (metadata?.isDefaultForLocation[location]) {
736
+ return id;
737
+ }
738
+ }
739
+ return undefined;
740
+ }
741
+ #buildLocationData() {
742
+ assertType(this.#editor.hasModel());
743
+ const notebookEditor = this.#notebookEditorService.getNotebookForPossibleCell(this.#editor);
744
+ if (notebookEditor) {
745
+ const useNotebookAgent = this.#configurationService.getValue(InlineChatConfigKeys.notebookAgent);
746
+ if (useNotebookAgent) {
747
+ return {
748
+ location: ChatAgentLocation.Notebook,
749
+ locationData: {
750
+ type: ChatAgentLocation.Notebook,
751
+ sessionInputUri: this.#editor.getModel().uri
752
+ }
753
+ };
754
+ }
755
+ return {
756
+ location: ChatAgentLocation.Notebook,
757
+ locationData: {
758
+ type: ChatAgentLocation.EditorInline,
759
+ id: getEditorId(this.#editor, this.#editor.getModel()),
760
+ selection: this.#editor.getSelection(),
761
+ document: this.#editor.getModel().uri,
762
+ wholeRange: this.#editor.getSelection()
763
+ }
764
+ };
765
+ }
766
+ return {
767
+ location: ChatAgentLocation.EditorInline,
768
+ locationData: {
769
+ type: ChatAgentLocation.EditorInline,
770
+ id: getEditorId(this.#editor, this.#editor.getModel()),
771
+ selection: this.#editor.getSelection(),
772
+ document: this.#editor.getModel().uri,
773
+ wholeRange: this.#editor.getSelection()
774
+ }
775
+ };
776
+ }
777
+ async #applyModelDefaults(session, sessionStore) {
778
+ const userSelectedModel = InlineChatController_1.#userSelectedModel;
779
+ const defaultModelSetting = this.#configurationService.getValue(InlineChatConfigKeys.DefaultModel);
581
780
  let modelApplied = false;
582
781
  if (userSelectedModel) {
583
- modelApplied = this._zone.value.widget.chatWidget.input.switchModelByQualifiedName([userSelectedModel]);
782
+ modelApplied = this.#zone.value.widget.chatWidget.input.switchModelByQualifiedName([userSelectedModel]);
584
783
  if (!modelApplied) {
585
- InlineChatController_1._userSelectedModel = undefined;
784
+ InlineChatController_1.#userSelectedModel = undefined;
586
785
  }
587
786
  }
588
787
  if (!modelApplied && defaultModelSetting) {
589
- modelApplied = this._zone.value.widget.chatWidget.input.switchModelByQualifiedName([defaultModelSetting]);
788
+ modelApplied = this.#zone.value.widget.chatWidget.input.switchModelByQualifiedName([defaultModelSetting]);
590
789
  if (!modelApplied) {
591
- this._logService.warn(
790
+ this.#logService.warn(
592
791
  `inlineChat.defaultModel setting value '${defaultModelSetting}' did not match any available model. Falling back to vendor default.`
593
792
  );
594
793
  }
595
794
  }
596
795
  if (!modelApplied) {
597
- await this._selectVendorDefaultModel(session);
796
+ await this.#selectVendorDefaultModel(session);
598
797
  }
599
798
  let initialModelId;
600
799
  sessionStore.add(autorun(r => {
601
- const newModel = this._zone.value.widget.chatWidget.input.selectedLanguageModel.read(r);
800
+ const newModel = this.#zone.value.widget.chatWidget.input.selectedLanguageModel.read(r);
602
801
  if (!newModel) {
603
802
  return;
604
803
  }
@@ -607,24 +806,24 @@ let InlineChatController = class InlineChatController {
607
806
  return;
608
807
  }
609
808
  if (initialModelId !== newModel.identifier) {
610
- InlineChatController_1._userSelectedModel = ILanguageModelChatMetadata.asQualifiedName(newModel.metadata);
809
+ InlineChatController_1.#userSelectedModel = ILanguageModelChatMetadata.asQualifiedName(newModel.metadata);
611
810
  initialModelId = newModel.identifier;
612
811
  }
613
812
  }));
614
813
  }
615
814
  async createImageAttachment(attachment) {
616
- const value = this._currentSession.get();
815
+ const value = this.#currentSession.get();
617
816
  if (!value) {
618
817
  return undefined;
619
818
  }
620
819
  if (attachment.scheme === Schemas.file) {
621
- if (await this._fileService.canHandleResource(attachment)) {
622
- return await this._chatAttachmentResolveService.resolveImageEditorAttachContext(attachment);
820
+ if (await this.#fileService.canHandleResource(attachment)) {
821
+ return await this.#chatAttachmentResolveService.resolveImageEditorAttachContext(attachment);
623
822
  }
624
823
  } else if (attachment.scheme === Schemas.http || attachment.scheme === Schemas.https) {
625
- const extractedImages = await this._webContentExtractorService.readImage(attachment, CancellationToken.None);
824
+ const extractedImages = await this.#webContentExtractorService.readImage(attachment, CancellationToken.None);
626
825
  if (extractedImages) {
627
- return await this._chatAttachmentResolveService.resolveImageEditorAttachContext(attachment, extractedImages);
826
+ return await this.#chatAttachmentResolveService.resolveImageEditorAttachContext(attachment, extractedImages);
628
827
  }
629
828
  }
630
829
  return undefined;