@codingame/monaco-vscode-katex-common 28.4.0 → 29.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 (154) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
  3. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +17 -15
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +2 -2
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +3 -1
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +158 -47
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +22 -17
  10. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
  11. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +16 -4
  12. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +121 -14
  13. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +8 -1
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +15 -8
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +29 -13
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +349 -109
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +47 -23
  19. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +6 -1
  20. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +104 -62
  21. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +1 -3
  22. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -11
  23. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -40
  24. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +21 -16
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +8 -1
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +13 -4
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +29 -50
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +261 -282
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +2 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +7 -5
  33. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  34. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.d.ts +31 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +184 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +4 -2
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +4 -3
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +3 -2
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +42 -34
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +1 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +14 -18
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +11 -9
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +6 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +25 -2
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +332 -114
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +1 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +7 -7
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +2 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +10 -5
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +1 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -16
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +7 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +66 -7
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +28 -3
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +272 -107
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.d.ts +18 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.js +70 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +6 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +151 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +6 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +96 -10
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +6 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +86 -10
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +7 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +5 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +8 -6
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.d.ts +28 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +273 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +3 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +28 -16
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +22 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +81 -32
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +20 -7
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +11 -1
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.d.ts +6 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +21 -7
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +2 -12
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +12 -12
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +0 -6
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +112 -163
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +11 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +9 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +137 -52
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +12 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +108 -38
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +9 -3
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +385 -247
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +5 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +23 -7
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +6 -6
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +4 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +4 -2
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +23 -23
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +124 -17
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +4 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +24 -7
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +30 -11
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +84 -0
  127. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +31 -0
  128. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +170 -0
  129. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.d.ts +47 -0
  130. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.js +95 -0
  131. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +4 -1
  132. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
  133. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -1
  134. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +4 -3
  135. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -0
  136. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +38 -6
  137. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +1 -0
  138. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +31 -0
  139. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +12 -3
  140. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +130 -23
  141. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +23 -0
  142. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +41 -0
  143. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  144. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  145. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +55 -3
  146. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +4 -1
  147. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +50 -39
  148. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  149. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  150. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  151. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  152. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +0 -35
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +0 -440
@@ -108,6 +108,7 @@ import { IChatContextService } from '@codingame/monaco-vscode-api/vscode/vs/work
108
108
  import { ChatQuestionCarouselPart } from '../chatContentParts/chatQuestionCarouselPart.js';
109
109
  import { CollapsibleListPool } from '../chatContentParts/chatReferencesContentPart.js';
110
110
  import { ChatTodoListWidget } from '../chatContentParts/chatTodoListWidget.js';
111
+ import { ChatArtifactsWidget } from '../chatArtifactsWidget.js';
111
112
  import { ChatDragAndDrop } from '../chatDragAndDrop.js';
112
113
  import { ChatFollowups } from './chatFollowups.js';
113
114
  import { ChatInputPartWidgetController } from './chatInputPartWidgets.js';
@@ -328,6 +329,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
328
329
  this._workingSetCollapsed = observableValue("chatInputPart.workingSetCollapsed", true);
329
330
  this._stableInputPartWidth = observableValue("chatInputPart.stableInputPartWidth", 0);
330
331
  this._chatInputTodoListWidget = this._register(( new MutableDisposable()));
332
+ this._chatArtifactsWidget = this._register(( new MutableDisposable()));
331
333
  this._chatQuestionCarouselWidgets = this._register(( new DisposableMap()));
332
334
  this._questionCarouselResponseIds = ( new Map());
333
335
  this._questionCarouselSessionResources = ( new Map());
@@ -359,6 +361,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
359
361
  this._widgetController = this._register(( new MutableDisposable()));
360
362
  this._contextUsageDisposables = this._register(( new MutableDisposable()));
361
363
  this.height = observableValue(this, 0);
364
+ this._forceVisibleScrollbarUntilAccept = false;
362
365
  this._modelSyncDisposables = this._register(( new DisposableStore()));
363
366
  this._isSyncingToOrFromInputModel = false;
364
367
  this.chatSessionPickerWidgets = ( new Map());
@@ -393,7 +396,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
393
396
  }));
394
397
  this._register(this.chatSessionsService.onDidChangeSessionOptions(e => {
395
398
  const sessionResource = this._widget?.viewModel?.model.sessionResource;
396
- if (sessionResource && isEqual(sessionResource, e)) {
399
+ if (sessionResource && isEqual(sessionResource, e.sessionResource)) {
397
400
  this.refreshChatSessionPickers();
398
401
  }
399
402
  }));
@@ -402,7 +405,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
402
405
  if (sessionResource) {
403
406
  const ctx = this.chatService.getChatSessionFromInternalUri(sessionResource);
404
407
  const delegateSessionType = this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.();
405
- if (ctx?.chatSessionType === chatSessionType || delegateSessionType === chatSessionType) {
408
+ if (ctx && (getChatSessionType(ctx.chatSessionResource) === chatSessionType) || delegateSessionType === chatSessionType) {
406
409
  this.refreshChatSessionPickers();
407
410
  }
408
411
  }
@@ -412,6 +415,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
412
415
  this.options.sessionTypePickerDelegate.onDidChangeActiveSessionProvider(async newSessionType => {
413
416
  this.computeVisibleOptionGroups();
414
417
  this.agentSessionTypeKey.set(newSessionType);
418
+ this.chatSessionSupportsDelegationKey.set(this.chatSessionsService.supportsDelegationForSessionType(newSessionType));
415
419
  this.updateWidgetLockStateFromSessionType(newSessionType);
416
420
  this.refreshChatSessionPickers();
417
421
  })
@@ -441,10 +445,14 @@ let ChatInputPart = class ChatInputPart extends Disposable {
441
445
  this.chatSessionHasOptions = ChatContextKeys.chatSessionHasModels.bindTo(contextKeyService);
442
446
  this.chatSessionOptionsValid = ChatContextKeys.chatSessionOptionsValid.bindTo(contextKeyService);
443
447
  this.agentSessionTypeKey = ChatContextKeys.agentSessionType.bindTo(contextKeyService);
448
+ this.chatSessionSupportsDelegationKey = ChatContextKeys.chatSessionSupportsDelegation.bindTo(contextKeyService);
444
449
  if (this.options.sessionTypePickerDelegate?.getActiveSessionProvider) {
445
450
  const initialSessionType = this.options.sessionTypePickerDelegate.getActiveSessionProvider();
446
451
  if (initialSessionType) {
447
452
  this.agentSessionTypeKey.set(initialSessionType);
453
+ this.chatSessionSupportsDelegationKey.set(
454
+ this.chatSessionsService.supportsDelegationForSessionType(initialSessionType)
455
+ );
448
456
  }
449
457
  }
450
458
  this.chatSessionHasCustomAgentTarget = ChatContextKeys.chatSessionHasCustomAgentTarget.bindTo(contextKeyService);
@@ -532,12 +540,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
532
540
  needsUpdate = isDefaultAgent ? mode.id !== ChatMode.Agent.id : mode.label.read(undefined) !== agentId;
533
541
  }
534
542
  if (needsUpdate) {
535
- this.chatSessionsService.notifySessionOptionsChange(ctx.chatSessionResource, [{
536
- optionId: agentOptionId,
537
- value: mode.isBuiltin ? "" : modeName
538
- }]).catch(
539
- err => this.logService.error("Failed to notify extension of agent change:", err)
540
- );
543
+ this.chatSessionsService.updateSessionOptions(ctx.chatSessionResource, ( new Map([[agentOptionId, mode.isBuiltin ? "" : modeName]])));
541
544
  }
542
545
  }
543
546
  }
@@ -659,8 +662,9 @@ let ChatInputPart = class ChatInputPart extends Disposable {
659
662
  const firstWidget = this.chatSessionPickerWidgets?.values()?.next().value;
660
663
  firstWidget?.show();
661
664
  }
662
- createChatSessionPickerWidgets(action) {
665
+ createChatSessionPickerWidgets(action, pickerOptions) {
663
666
  this._lastSessionPickerAction = action;
667
+ this._lastSessionPickerOptions = pickerOptions;
664
668
  const result = this.computeVisibleOptionGroups();
665
669
  if (!result) {
666
670
  return [];
@@ -690,12 +694,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
690
694
  const sessionResource = this._widget?.viewModel?.model.sessionResource;
691
695
  const currentCtx = sessionResource ? this.chatService.getChatSessionFromInternalUri(sessionResource) : undefined;
692
696
  if (currentCtx) {
693
- this.chatSessionsService.notifySessionOptionsChange(currentCtx.chatSessionResource, [{
694
- optionId: optionGroup.id,
695
- value: option
696
- }]).catch(
697
- err => this.logService.error(`Failed to notify extension of ${optionGroup.id} change:`, err)
698
- );
697
+ this.chatSessionsService.setSessionOption(currentCtx.chatSessionResource, optionGroup.id, option);
699
698
  }
700
699
  this.refreshChatSessionPickers();
701
700
  },
@@ -711,7 +710,8 @@ let ChatInputPart = class ChatInputPart extends Disposable {
711
710
  optionGroup.searchable ? SearchableOptionPickerActionItem : ChatSessionPickerActionItem,
712
711
  action,
713
712
  initialState,
714
- itemDelegate
713
+ itemDelegate,
714
+ pickerOptions
715
715
  );
716
716
  this.chatSessionPickerWidgets.set(optionGroup.id, widget);
717
717
  widgets.push(widget);
@@ -908,7 +908,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
908
908
  }
909
909
  const sessionResource = this._widget?.viewModel?.model.sessionResource;
910
910
  const ctx = sessionResource ? this.chatService.getChatSessionFromInternalUri(sessionResource) : undefined;
911
- return ctx?.chatSessionType;
911
+ return ctx ? getChatSessionType(ctx.chatSessionResource) : undefined;
912
912
  }
913
913
  hasModelsTargetingSessionType() {
914
914
  return hasModelsTargetingSession(this.getAllMergedModels(), this.getCurrentSessionType());
@@ -925,7 +925,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
925
925
  preselectModelFromSessionHistory() {
926
926
  const sessionResource = this._widget?.viewModel?.model.sessionResource;
927
927
  const ctx = sessionResource ? this.chatService.getChatSessionFromInternalUri(sessionResource) : undefined;
928
- const requiresCustomModels = ctx && this.chatSessionsService.requiresCustomModelsForSessionType(ctx.chatSessionType);
928
+ const requiresCustomModels = ctx && this.chatSessionsService.requiresCustomModelsForSessionType(getChatSessionType(ctx.chatSessionResource));
929
929
  if (!requiresCustomModels) {
930
930
  return;
931
931
  }
@@ -997,40 +997,40 @@ let ChatInputPart = class ChatInputPart extends Disposable {
997
997
  }
998
998
  const mode = this._currentModeObservable.get();
999
999
  const modelName = this._currentLanguageModel.get()?.metadata.name;
1000
- const modelInfo = modelName ? ( localize(6776, ", {0}. ", modelName)) : "";
1000
+ const modelInfo = modelName ? ( localize(6978, ", {0}. ", modelName)) : "";
1001
1001
  let modeLabel = "";
1002
1002
  if (!mode.isBuiltin) {
1003
1003
  const mode = this.currentModeObs.get();
1004
- modeLabel = ( localize(6777, "({0}), {1}", mode.label.get(), mode.description.get()));
1004
+ modeLabel = ( localize(6979, "({0}), {1}", mode.label.get(), mode.description.get()));
1005
1005
  } else {
1006
1006
  switch (this.currentModeKind) {
1007
1007
  case ChatModeKind.Agent:
1008
- modeLabel = ( localize(6778, "(Agent), edit files in your workspace."));
1008
+ modeLabel = ( localize(6980, "(Agent), edit files in your workspace."));
1009
1009
  break;
1010
1010
  case ChatModeKind.Edit:
1011
- modeLabel = ( localize(6779, "(Edit), edit files in your workspace."));
1011
+ modeLabel = ( localize(6981, "(Edit), edit files in your workspace."));
1012
1012
  break;
1013
1013
  case ChatModeKind.Ask:
1014
1014
  default:
1015
- modeLabel = ( localize(6780, "(Ask), ask questions or type / for topics."));
1015
+ modeLabel = ( localize(6982, "(Ask), ask questions or type / for topics."));
1016
1016
  break;
1017
1017
  }
1018
1018
  }
1019
1019
  if (verbose) {
1020
1020
  return kbLabel ? ( localize(
1021
- 6781,
1021
+ 6983,
1022
1022
  "Chat Input {0}{1} Press Enter to send out the request. Use {2} for Chat Accessibility Help.",
1023
1023
  modeLabel,
1024
1024
  modelInfo,
1025
1025
  kbLabel
1026
1026
  )) : ( localize(
1027
- 6782,
1027
+ 6984,
1028
1028
  "Chat Input {0}{1} Press Enter to send out the request. Use the Chat Accessibility Help command for more information.",
1029
1029
  modeLabel,
1030
1030
  modelInfo
1031
1031
  ));
1032
1032
  } else {
1033
- return localize(6783, "Chat Input {0}{1}.", modeLabel, modelInfo);
1033
+ return localize(6985, "Chat Input {0}{1}.", modeLabel, modelInfo);
1034
1034
  }
1035
1035
  }
1036
1036
  validateCurrentChatMode() {
@@ -1175,6 +1175,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1175
1175
  const userQuery = this.getCurrentInputState();
1176
1176
  this.history.append(this._getFilteredEntry(userQuery));
1177
1177
  }
1178
+ this.resetScrollbarVisibilityAfterAccept();
1178
1179
  if (this._chatSessionIsEmpty) {
1179
1180
  this._chatSessionIsEmpty = false;
1180
1181
  this._emptyInputState.set(undefined, undefined);
@@ -1270,9 +1271,9 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1270
1271
  };
1271
1272
  const sessionResource = this._widget?.viewModel?.model.sessionResource;
1272
1273
  const ctx = sessionResource ? this.chatService.getChatSessionFromInternalUri(sessionResource) : undefined;
1273
- const customAgentTarget = ctx && this.chatSessionsService.getCustomAgentTargetForSessionType(ctx.chatSessionType);
1274
+ const customAgentTarget = ctx && this.chatSessionsService.getCustomAgentTargetForSessionType(getChatSessionType(ctx.chatSessionResource));
1274
1275
  this.chatSessionHasCustomAgentTarget.set(customAgentTarget !== Target.Undefined);
1275
- const requiresCustomModels = ctx && this.chatSessionsService.requiresCustomModelsForSessionType(ctx.chatSessionType);
1276
+ const requiresCustomModels = ctx && this.chatSessionsService.requiresCustomModelsForSessionType(getChatSessionType(ctx.chatSessionResource));
1276
1277
  this.chatSessionHasTargetedModels.set(!!requiresCustomModels);
1277
1278
  if (customAgentTarget) {
1278
1279
  const agentOption = this.chatSessionsService.getSessionOption(ctx.chatSessionResource, agentOptionId);
@@ -1287,7 +1288,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1287
1288
  }
1288
1289
  }
1289
1290
  const delegateSessionType = this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.();
1290
- const effectiveSessionType = delegateSessionType ?? ctx?.chatSessionType;
1291
+ const effectiveSessionType = delegateSessionType ?? (ctx ? getChatSessionType(ctx.chatSessionResource) : undefined);
1291
1292
  if (!effectiveSessionType) {
1292
1293
  setNoOptions();
1293
1294
  return undefined;
@@ -1356,7 +1357,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1356
1357
  const currentWidgetGroupIds = ( new Set(( this.chatSessionPickerWidgets.keys())));
1357
1358
  const needsRecreation = currentWidgetGroupIds.size !== visibleGroupIds.size || !Array.from(visibleGroupIds).every(id => ( currentWidgetGroupIds.has(id)));
1358
1359
  if (needsRecreation && this._lastSessionPickerAction && this.chatSessionPickerContainer) {
1359
- const widgets = this.createChatSessionPickerWidgets(this._lastSessionPickerAction);
1360
+ const widgets = this.createChatSessionPickerWidgets(this._lastSessionPickerAction, this._lastSessionPickerOptions);
1360
1361
  clearNode(this.chatSessionPickerContainer);
1361
1362
  for (const widget of widgets) {
1362
1363
  const container = $$1(".action-item.chat-sessionPicker-item");
@@ -1427,7 +1428,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1427
1428
  }
1428
1429
  }
1429
1430
  getEffectiveSessionType(ctx, delegate) {
1430
- return this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.() || ctx?.chatSessionType || "";
1431
+ return this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.() || (ctx && getChatSessionType(ctx.chatSessionResource)) || "";
1431
1432
  }
1432
1433
  updateAgentSessionTypeContextKey() {
1433
1434
  const sessionResource = this._widget?.viewModel?.model.sessionResource;
@@ -1435,6 +1436,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1435
1436
  const delegateSessionType = delegate?.setActiveSessionProvider && delegate?.getActiveSessionProvider?.();
1436
1437
  const sessionType = delegateSessionType || (sessionResource ? getChatSessionType(sessionResource) : "");
1437
1438
  this.agentSessionTypeKey.set(sessionType);
1439
+ this.chatSessionSupportsDelegationKey.set(this.chatSessionsService.supportsDelegationForSessionType(sessionType));
1438
1440
  }
1439
1441
  updateWidgetLockStateFromSessionType(sessionType) {
1440
1442
  if (sessionType === localChatSessionType) {
@@ -1525,6 +1527,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1525
1527
  h(".chat-question-carousel-widget-container@chatQuestionCarouselContainer"),
1526
1528
  h(".chat-input-widgets-container@chatInputWidgetsContainer"),
1527
1529
  h(".chat-todo-list-widget-container@chatInputTodoListWidgetContainer"),
1530
+ h(".chat-artifacts-widget-container@chatArtifactsWidgetContainer"),
1528
1531
  h(".chat-editing-session@chatEditingSessionWidgetContainer"),
1529
1532
  h(".chat-getting-started-tip-container@chatGettingStartedTipContainer"),
1530
1533
  h(
@@ -1550,6 +1553,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1550
1553
  h(".interactive-input-followups@followupsContainer"),
1551
1554
  h(".chat-input-widgets-container@chatInputWidgetsContainer"),
1552
1555
  h(".chat-todo-list-widget-container@chatInputTodoListWidgetContainer"),
1556
+ h(".chat-artifacts-widget-container@chatArtifactsWidgetContainer"),
1553
1557
  h(".chat-editing-session@chatEditingSessionWidgetContainer"),
1554
1558
  h(".chat-getting-started-tip-container@chatGettingStartedTipContainer"),
1555
1559
  h(
@@ -1580,11 +1584,12 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1580
1584
  this.attachedContextContainer = elements.attachedContextContainer;
1581
1585
  const toolbarsContainer = elements.inputToolbars;
1582
1586
  this.secondaryToolbarContainer = elements.secondaryToolbar;
1583
- if (this.options.isSessionsWindow || this.options.renderStyle === "compact") {
1587
+ if (this.options.renderStyle === "compact") {
1584
1588
  this.secondaryToolbarContainer.style.display = "none";
1585
1589
  }
1586
1590
  this.chatEditingSessionWidgetContainer = elements.chatEditingSessionWidgetContainer;
1587
1591
  this.chatInputTodoListWidgetContainer = elements.chatInputTodoListWidgetContainer;
1592
+ this.chatArtifactsWidgetContainer = elements.chatArtifactsWidgetContainer;
1588
1593
  this.chatGettingStartedTipContainer = elements.chatGettingStartedTipContainer;
1589
1594
  this.chatGettingStartedTipContainer.style.display = "none";
1590
1595
  this.chatQuestionCarouselContainer = elements.chatQuestionCarouselContainer;
@@ -1784,7 +1789,19 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1784
1789
  this.renderAttachedContext();
1785
1790
  },
1786
1791
  getModels: () => this.getModels(),
1787
- canManageModels: () => {
1792
+ useGroupedModelPicker: () => {
1793
+ const sessionType = this.getCurrentSessionType();
1794
+ return !sessionType || sessionType === localChatSessionType;
1795
+ },
1796
+ showManageModelsAction: () => {
1797
+ const sessionType = this.getCurrentSessionType();
1798
+ return !sessionType || sessionType === localChatSessionType;
1799
+ },
1800
+ showUnavailableFeatured: () => {
1801
+ const sessionType = this.getCurrentSessionType();
1802
+ return !sessionType || sessionType === localChatSessionType;
1803
+ },
1804
+ showFeatured: () => {
1788
1805
  const sessionType = this.getCurrentSessionType();
1789
1806
  return !sessionType || sessionType === localChatSessionType;
1790
1807
  }
@@ -1797,7 +1814,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1797
1814
  customAgentTarget: () => {
1798
1815
  const sessionResource = this._widget?.viewModel?.model.sessionResource;
1799
1816
  const ctx = sessionResource && this.chatService.getChatSessionFromInternalUri(sessionResource);
1800
- return (ctx && this.chatSessionsService.getCustomAgentTargetForSessionType(ctx.chatSessionType)) ?? Target.Undefined;
1817
+ return (ctx && this.chatSessionsService.getCustomAgentTargetForSessionType(getChatSessionType(ctx.chatSessionResource))) ?? Target.Undefined;
1801
1818
  }
1802
1819
  };
1803
1820
  return this.modeWidget = this.instantiationService.createInstance(ModePickerActionItem, action, delegate, pickerOptions);
@@ -1842,7 +1859,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
1842
1859
  return ( new HiddenActionViewItem(action));
1843
1860
  }
1844
1861
  } else if (action.id === ChatSessionPrimaryPickerAction.ID && action instanceof MenuItemAction) {
1845
- const widgets = this.createChatSessionPickerWidgets(action);
1862
+ const widgets = this.createChatSessionPickerWidgets(action, pickerOptions);
1846
1863
  if (widgets.length === 0) {
1847
1864
  return ( new HiddenActionViewItem(action));
1848
1865
  }
@@ -2331,6 +2348,21 @@ let ChatInputPart = class ChatInputPart extends Disposable {
2331
2348
  clearTodoListWidget(sessionResource, force) {
2332
2349
  this._chatInputTodoListWidget.value?.clear(sessionResource, force);
2333
2350
  }
2351
+ renderArtifactsWidget(chatSessionResource) {
2352
+ if (!this.configurationService.getValue(ChatConfiguration.ArtifactsEnabled)) {
2353
+ return;
2354
+ }
2355
+ if (!this._chatArtifactsWidget.value) {
2356
+ const widget = this._register(this.instantiationService.createInstance(ChatArtifactsWidget));
2357
+ this._chatArtifactsWidget.value = widget;
2358
+ clearNode(this.chatArtifactsWidgetContainer);
2359
+ append(this.chatArtifactsWidgetContainer, widget.domNode);
2360
+ }
2361
+ this._chatArtifactsWidget.value.render(chatSessionResource);
2362
+ }
2363
+ clearArtifactsWidget() {
2364
+ this._chatArtifactsWidget.value?.hide();
2365
+ }
2334
2366
  renderQuestionCarousel(carousel, context, options) {
2335
2367
  const carouselKey = carousel.resolveId ?? `${isResponseVM(context.element) ? context.element.requestId : ""}_${context.contentIndex}`;
2336
2368
  const existing = this._chatQuestionCarouselWidgets.get(carouselKey);
@@ -2525,7 +2557,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
2525
2557
  const button = this._chatEditsActionsDisposables.add(( new ButtonWithIcon(overviewTitle, {
2526
2558
  supportIcons: true,
2527
2559
  secondary: true,
2528
- ariaLabel: ( localize(6784, "Toggle changed files."))
2560
+ ariaLabel: ( localize(6986, "Toggle changed files."))
2529
2561
  })));
2530
2562
  const topLevelStats = derived(reader => {
2531
2563
  const entries = editSessionEntriesObs.read(reader);
@@ -2599,10 +2631,10 @@ let ChatInputPart = class ChatInputPart extends Disposable {
2599
2631
  removed,
2600
2632
  shouldShowEditingSession
2601
2633
  } = topLevelStats.read(reader);
2602
- const buttonLabel = files === 1 ? ( localize(6785, "1 file changed")) : ( localize(6786, "{0} files changed", files));
2634
+ const buttonLabel = files === 1 ? ( localize(6987, "1 file changed")) : ( localize(6988, "{0} files changed", files));
2603
2635
  button.label = buttonLabel;
2604
2636
  button.element.setAttribute("aria-label", ( localize(
2605
- 6787,
2637
+ 6989,
2606
2638
  "{0}, {1} lines added, {2} lines removed",
2607
2639
  buttonLabel,
2608
2640
  added,
@@ -2797,6 +2829,44 @@ let ChatInputPart = class ChatInputPart extends Disposable {
2797
2829
  isMaximized: false
2798
2830
  };
2799
2831
  }
2832
+ getDefaultScrollbarOptions() {
2833
+ const scrollbar = this._inputEditor.getRawOptions().scrollbar ?? {};
2834
+ return this.options.renderStyle === "compact" ? {
2835
+ ...scrollbar,
2836
+ vertical: "hidden"
2837
+ } : {
2838
+ ...scrollbar,
2839
+ vertical: "auto",
2840
+ verticalScrollbarSize: 7
2841
+ };
2842
+ }
2843
+ getVisibleScrollbarOptions() {
2844
+ const scrollbar = this._inputEditor.getRawOptions().scrollbar ?? {};
2845
+ return this.options.renderStyle === "compact" ? {
2846
+ ...scrollbar,
2847
+ vertical: "hidden"
2848
+ } : {
2849
+ ...scrollbar,
2850
+ vertical: "visible",
2851
+ verticalScrollbarSize: 7
2852
+ };
2853
+ }
2854
+ updateInputEditorScrollbarOptions() {
2855
+ this._inputEditor.updateOptions({
2856
+ scrollbar: this._forceVisibleScrollbarUntilAccept ? this.getVisibleScrollbarOptions() : this.getDefaultScrollbarOptions()
2857
+ });
2858
+ }
2859
+ showScrollbarUntilAccept() {
2860
+ this._forceVisibleScrollbarUntilAccept = true;
2861
+ this.updateInputEditorScrollbarOptions();
2862
+ }
2863
+ resetScrollbarVisibilityAfterAccept() {
2864
+ if (!this._forceVisibleScrollbarUntilAccept) {
2865
+ return;
2866
+ }
2867
+ this._forceVisibleScrollbarUntilAccept = false;
2868
+ this.updateInputEditorScrollbarOptions();
2869
+ }
2800
2870
  };
2801
2871
  ChatInputPart = ChatInputPart_1 = ( __decorate([( __param(4, IModelService)), ( __param(5, IInstantiationService)), ( __param(6, IContextKeyService)), ( __param(7, IConfigurationService)), ( __param(8, IKeybindingService)), ( __param(9, IAccessibilityService)), ( __param(10, ILanguageModelsService)), ( __param(11, ILogService)), ( __param(12, IFileService)), ( __param(13, IEditorService)), ( __param(14, IThemeService)), ( __param(15, ITextModelService)), ( __param(16, IStorageService)), ( __param(17, IChatAgentService)), ( __param(18, ISharedWebContentExtractorService)), ( __param(19, IWorkbenchAssignmentService)), ( __param(20, IChatEntitlementService)), ( __param(21, IChatModeService)), ( __param(22, ILanguageModelToolsService)), ( __param(23, IChatService)), ( __param(24, IChatSessionsService)), ( __param(25, IChatContextService)), ( __param(26, IAgentSessionsService)), ( __param(27, IWorkspaceContextService)), ( __param(28, IWorkbenchLayoutService)), ( __param(29, IViewDescriptorService)), ( __param(30, IChatAttachmentWidgetRegistry))], ChatInputPart));
2802
2872
  function getLastPosition(model) {
@@ -3,15 +3,18 @@ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"
3
3
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
4
4
  import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
5
5
  import { IActionListItem } from "@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionList";
6
+ import { IHoverPositionOptions } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hover";
6
7
  import { IActionWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service";
7
8
  import { IActionWidgetDropdownAction } from "../../../../../../platform/actionWidget/browser/actionWidgetDropdown.js";
8
9
  import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
10
+ import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
9
11
  import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
10
12
  import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
11
13
  import { IModelControlEntry, ILanguageModelChatMetadataAndIdentifier } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels";
12
14
  import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
13
15
  import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
14
16
  import { IModelPickerDelegate } from "./modelPickerActionItem.js";
17
+ import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service";
15
18
  import { StateType } from "@codingame/monaco-vscode-api/vscode/vs/platform/update/common/update";
16
19
  import { IUpdateService } from "@codingame/monaco-vscode-api/vscode/vs/platform/update/common/update.service";
17
20
  /**
@@ -23,9 +26,9 @@ import { IUpdateService } from "@codingame/monaco-vscode-api/vscode/vs/platform/
23
26
  * - Available models sorted alphabetically, followed by unavailable models
24
27
  * - Unavailable models show upgrade/update/admin status
25
28
  * 3. Other Models (collapsible toggle, available first, then sorted by vendor then name)
26
- * - Last item is "Manage Models..." (always visible during filtering)
29
+ * 4. Optional "Manage Models..." action shown in Other Models after a separator
27
30
  */
28
- export declare function buildModelPickerItems(models: ILanguageModelChatMetadataAndIdentifier[], selectedModelId: string | undefined, recentModelIds: string[], controlModels: IStringDictionary<IModelControlEntry>, currentVSCodeVersion: string, updateStateType: StateType, onSelect: (model: ILanguageModelChatMetadataAndIdentifier) => void, manageSettingsUrl: string | undefined, canManageModels: boolean, commandService: ICommandService, chatEntitlementService: IChatEntitlementService): IActionListItem<IActionWidgetDropdownAction>[];
31
+ export declare function buildModelPickerItems(models: ILanguageModelChatMetadataAndIdentifier[], selectedModelId: string | undefined, recentModelIds: string[], controlModels: IStringDictionary<IModelControlEntry>, currentVSCodeVersion: string, updateStateType: StateType, onSelect: (model: ILanguageModelChatMetadataAndIdentifier) => void, manageSettingsUrl: string | undefined, useGroupedModelPicker: boolean, manageModelsAction: IActionWidgetDropdownAction | undefined, chatEntitlementService: IChatEntitlementService, showUnavailableFeatured: boolean, showFeatured: boolean, hoverPosition?: IHoverPositionOptions, languageModelsService?: ILanguageModelsService): IActionListItem<IActionWidgetDropdownAction>[];
29
32
  export declare function getModelPickerAccessibilityProvider(): {
30
33
  readonly isChecked: (element: IActionListItem<IActionWidgetDropdownAction>) => boolean | undefined;
31
34
  readonly getRole: (element: IActionListItem<IActionWidgetDropdownAction>) => "separator" | "menuitemradio";
@@ -44,13 +47,16 @@ export type ModelPickerBadge = "info" | "warning";
44
47
  */
45
48
  export declare class ModelPickerWidget extends Disposable {
46
49
  private readonly _delegate;
50
+ private readonly _hoverPosition;
47
51
  private readonly _actionWidgetService;
48
52
  private readonly _commandService;
53
+ private readonly _openerService;
49
54
  private readonly _telemetryService;
50
55
  private readonly _languageModelsService;
51
56
  private readonly _productService;
52
57
  private readonly _entitlementService;
53
58
  private readonly _updateService;
59
+ private readonly _uriIdentityService;
54
60
  private readonly _onDidChangeSelection;
55
61
  readonly onDidChangeSelection: Event<ILanguageModelChatMetadataAndIdentifier>;
56
62
  private _selectedModel;
@@ -60,7 +66,7 @@ export declare class ModelPickerWidget extends Disposable {
60
66
  private _badgeIcon;
61
67
  get selectedModel(): ILanguageModelChatMetadataAndIdentifier | undefined;
62
68
  get domNode(): HTMLElement | undefined;
63
- constructor(_delegate: IModelPickerDelegate, _actionWidgetService: IActionWidgetService, _commandService: ICommandService, _telemetryService: ITelemetryService, _languageModelsService: ILanguageModelsService, _productService: IProductService, _entitlementService: IChatEntitlementService, _updateService: IUpdateService);
69
+ constructor(_delegate: IModelPickerDelegate, _hoverPosition: IHoverPositionOptions | undefined, _actionWidgetService: IActionWidgetService, _commandService: ICommandService, _openerService: IOpenerService, _telemetryService: ITelemetryService, _languageModelsService: ILanguageModelsService, _productService: IProductService, _entitlementService: IChatEntitlementService, _updateService: IUpdateService, _uriIdentityService: IUriIdentityService);
64
70
  setHideChevrons(hideChevrons: IObservable<boolean>): void;
65
71
  setSelectedModel(model: ILanguageModelChatMetadataAndIdentifier | undefined): void;
66
72
  setBadge(badge: ModelPickerBadge | undefined): void;