@codingame/monaco-vscode-katex-common 24.1.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.
- package/empty.js +1 -0
- package/package.json +45 -0
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +37 -0
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +127 -0
- package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.d.ts +27 -0
- package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.js +81 -0
- package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +44 -0
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +172 -0
- package/vscode/src/vs/platform/editor/browser/editor.d.ts +12 -0
- package/vscode/src/vs/platform/editor/browser/editor.js +51 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +295 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +60 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +65 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +650 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +364 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +207 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityProvider.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityProvider.js +216 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +114 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentModel.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentModel.js +141 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentWidgets.d.ts +169 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentWidgets.js +951 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentMarkdownRenderer.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentMarkdownRenderer.js +109 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatAgentCommandContentPart.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatAgentCommandContentPart.js +47 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatAnonymousRateLimitedPart.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatAnonymousRateLimitedPart.js +49 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatAttachmentsContentPart.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatAttachmentsContentPart.js +160 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatChangesSummaryPart.d.ts +40 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatChangesSummaryPart.js +286 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCodeCitationContentPart.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCodeCitationContentPart.js +49 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollapsibleContentPart.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollapsibleContentPart.js +101 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.js +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.js +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.js +69 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationWidget.d.ts +116 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationWidget.js +417 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatContentCodePools.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatContentCodePools.js +66 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatElicitationContentPart.d.ts +25 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatElicitationContentPart.js +123 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatErrorConfirmationPart.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatErrorConfirmationPart.js +60 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatErrorContentPart.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatErrorContentPart.js +46 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatExtensionsContentPart.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatExtensionsContentPart.js +57 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.d.ts +94 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.js +567 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMcpServersInteractionContentPart.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMcpServersInteractionContentPart.js +224 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMultiDiffContentPart.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMultiDiffContentPart.js +259 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.js +160 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatPullRequestContentPart.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatPullRequestContentPart.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatQuotaExceededPart.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatQuotaExceededPart.js +117 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.js +528 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatSuggestNextWidget.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatSuggestNextWidget.js +160 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.js +49 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.js +91 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.service.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.service.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatThinkingContentPart.d.ts +54 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatThinkingContentPart.js +429 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTodoListWidget.d.ts +40 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTodoListWidget.js +347 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatToolInputOutputContentPart.d.ts +56 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatToolInputOutputContentPart.js +164 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatToolOutputContentSubPart.d.ts +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatToolOutputContentSubPart.js +224 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.js +173 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/media/chatConfirmationWidget.css +341 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/media/chatExtensionsContent.css +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/media/chatMarkdownPart.css +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/media/chatMcpServersInteractionContent.css +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/media/chatPullRequestContent.css +75 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/media/chatTerminalToolProgressPart.css +221 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/media/chatThinkingContent.css +162 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +94 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +96 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +147 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatResultListSubPart.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatResultListSubPart.js +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +353 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +100 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +1085 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +275 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +119 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolInvocationSubPart.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolInvocationSubPart.js +36 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolOutputPart.js +130 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +25 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +225 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolProgressPart.js +101 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDiffBlockPart.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDiffBlockPart.js +127 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDragAndDrop.d.ts +43 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDragAndDrop.js +388 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +49 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +721 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatFollowups.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatFollowups.js +52 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInlineAnchorWidget.d.ts +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInlineAnchorWidget.js +409 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.d.ts +334 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +2008 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPartWidgets.d.ts +52 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPartWidgets.js +93 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.d.ts +217 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +1573 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.d.ts +43 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +249 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOptions.d.ts +50 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOptions.js +84 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSelectedTools.d.ts +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSelectedTools.js +174 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +101 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.js +76 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/media/chatSessionAction.css +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.d.ts +292 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +2014 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css +171 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.d.ts +173 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +797 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatImplicitContext.d.ts +54 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatImplicitContext.js +345 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputCompletions.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputCompletions.js +1069 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputRelatedFilesContrib.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputRelatedFilesContrib.js +139 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css +2880 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css +87 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatCodeBlockPill.css +139 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatInlineAnchorWidget.css +61 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewWelcome.css +209 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/modelPicker/modePickerActionItem.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/modelPicker/modePickerActionItem.js +135 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/modelPicker/modelPickerActionItem.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/modelPicker/modelPickerActionItem.js +147 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +71 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +279 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcome.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcome.js +28 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatColors.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +38 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatWidgetHistoryService.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatWidgetHistoryService.js +176 -0
- package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.js +207 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.d.ts +48 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.js +373 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +171 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +1442 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.d.ts +199 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +482 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +37 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +95 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +497 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.d.ts +76 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +464 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +124 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +562 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +279 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +411 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.js +66 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +61 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +154 -0
- package/vscode/src/vs/workbench/contrib/markdown/browser/markedKatexSupport.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/markdown/browser/markedKatexSupport.js +201 -0
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +372 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +58 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +594 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffCellEditorOptions.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffCellEditorOptions.js +55 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.d.ts +273 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +1746 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.d.ts +50 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +269 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementViewModel.d.ts +258 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementViewModel.js +806 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffNestedCellViewModel.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffNestedCellViewModel.js +116 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/editorHeightCalculator.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/editorHeightCalculator.js +62 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/eventDispatcher.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/eventDispatcher.js +40 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookCellDiffDecorator.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookCellDiffDecorator.js +295 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookDeletedCellDecorator.d.ts +51 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookDeletedCellDecorator.js +241 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiff.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiff.js +146 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiffWidget.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInlineDiffWidget.js +90 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInsertedCellDecorator.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInsertedCellDecorator.js +41 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalCellModelFactory.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalCellModelFactory.js +42 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalModelRefFactory.d.ts +25 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookOriginalModelRefFactory.js +77 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiff.css +469 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.d.ts +149 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +823 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.d.ts +180 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +29 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.d.ts +102 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +567 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffOverviewRuler.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffOverviewRuler.js +189 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.d.ts +75 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.js +439 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor.d.ts +57 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor.js +263 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditorInput.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditorInput.js +48 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/unchangedEditorRegions.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/unchangedEditorRegions.js +39 -0
- package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookMetadataTextModel.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookMetadataTextModel.js +89 -0
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiff.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiff.js +92 -0
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiffEditorInput.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiffEditorInput.js +108 -0
- package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +145 -0
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { append, $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
|
+
import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
|
|
5
|
+
import { IconLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabel';
|
|
6
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
7
|
+
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
8
|
+
import { DisposableStore, Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
9
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
10
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
11
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
12
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
13
|
+
import { WorkbenchList } from '@codingame/monaco-vscode-api/vscode/vs/platform/list/browser/listService';
|
|
14
|
+
import { IChatTodoListService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatTodoListService.service';
|
|
15
|
+
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
16
|
+
import { TodoListToolDescriptionFieldSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/manageTodoListTool';
|
|
17
|
+
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
18
|
+
|
|
19
|
+
class TodoListDelegate {
|
|
20
|
+
getHeight(element) {
|
|
21
|
+
return 22;
|
|
22
|
+
}
|
|
23
|
+
getTemplateId(element) {
|
|
24
|
+
return TodoListRenderer.TEMPLATE_ID;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
class TodoListRenderer {
|
|
28
|
+
static { this.TEMPLATE_ID = 'todoListRenderer'; }
|
|
29
|
+
constructor(configurationService) {
|
|
30
|
+
this.configurationService = configurationService;
|
|
31
|
+
this.templateId = TodoListRenderer.TEMPLATE_ID;
|
|
32
|
+
}
|
|
33
|
+
renderTemplate(container) {
|
|
34
|
+
const templateDisposables = ( new DisposableStore());
|
|
35
|
+
const todoElement = append(container, $('li.todo-item'));
|
|
36
|
+
todoElement.setAttribute('role', 'listitem');
|
|
37
|
+
const statusIcon = append(todoElement, $('.todo-status-icon.codicon'));
|
|
38
|
+
statusIcon.setAttribute('aria-hidden', 'true');
|
|
39
|
+
const todoContent = append(todoElement, $('.todo-content'));
|
|
40
|
+
const iconLabel = templateDisposables.add(( new IconLabel(todoContent, { supportIcons: false })));
|
|
41
|
+
return { templateDisposables, todoElement, statusIcon, iconLabel };
|
|
42
|
+
}
|
|
43
|
+
renderElement(todo, index, templateData) {
|
|
44
|
+
const { todoElement, statusIcon, iconLabel } = templateData;
|
|
45
|
+
statusIcon.className = `todo-status-icon codicon ${this.getStatusIconClass(todo.status)}`;
|
|
46
|
+
statusIcon.style.color = this.getStatusIconColor(todo.status);
|
|
47
|
+
const includeDescription = this.configurationService.getValue(TodoListToolDescriptionFieldSettingId) !== false;
|
|
48
|
+
const title = includeDescription && todo.description && todo.description.trim() ? todo.description : undefined;
|
|
49
|
+
iconLabel.setLabel(todo.title, undefined, { title });
|
|
50
|
+
const statusText = this.getStatusText(todo.status);
|
|
51
|
+
const ariaLabel = includeDescription && todo.description && todo.description.trim()
|
|
52
|
+
? ( localize(5106, '{0}, {1}, {2}', todo.title, statusText, todo.description))
|
|
53
|
+
: ( localize(5107, '{0}, {1}', todo.title, statusText));
|
|
54
|
+
todoElement.setAttribute('aria-label', ariaLabel);
|
|
55
|
+
}
|
|
56
|
+
disposeTemplate(templateData) {
|
|
57
|
+
templateData.templateDisposables.dispose();
|
|
58
|
+
}
|
|
59
|
+
getStatusText(status) {
|
|
60
|
+
switch (status) {
|
|
61
|
+
case 'completed':
|
|
62
|
+
return localize(5108, 'completed');
|
|
63
|
+
case 'in-progress':
|
|
64
|
+
return localize(5109, 'in progress');
|
|
65
|
+
case 'not-started':
|
|
66
|
+
default:
|
|
67
|
+
return localize(5110, 'not started');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
getStatusIconClass(status) {
|
|
71
|
+
switch (status) {
|
|
72
|
+
case 'completed':
|
|
73
|
+
return 'codicon-pass';
|
|
74
|
+
case 'in-progress':
|
|
75
|
+
return 'codicon-record';
|
|
76
|
+
case 'not-started':
|
|
77
|
+
default:
|
|
78
|
+
return 'codicon-circle-outline';
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
getStatusIconColor(status) {
|
|
82
|
+
switch (status) {
|
|
83
|
+
case 'completed':
|
|
84
|
+
return 'var(--vscode-charts-green)';
|
|
85
|
+
case 'in-progress':
|
|
86
|
+
return 'var(--vscode-charts-blue)';
|
|
87
|
+
case 'not-started':
|
|
88
|
+
default:
|
|
89
|
+
return 'var(--vscode-foreground)';
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
94
|
+
constructor(chatTodoListService, configurationService, instantiationService, contextKeyService) {
|
|
95
|
+
super();
|
|
96
|
+
this.chatTodoListService = chatTodoListService;
|
|
97
|
+
this.configurationService = configurationService;
|
|
98
|
+
this.instantiationService = instantiationService;
|
|
99
|
+
this.contextKeyService = contextKeyService;
|
|
100
|
+
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
101
|
+
this.onDidChangeHeight = this._onDidChangeHeight.event;
|
|
102
|
+
this._isExpanded = false;
|
|
103
|
+
this._userManuallyExpanded = false;
|
|
104
|
+
this.domNode = this.createChatTodoWidget();
|
|
105
|
+
this._register(this.contextKeyService.onDidChangeContext(e => {
|
|
106
|
+
if (e.affectsSome(( new Set([ChatContextKeys.requestInProgress.key])))) {
|
|
107
|
+
this.updateClearButtonState();
|
|
108
|
+
}
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
get height() {
|
|
112
|
+
return this.domNode.style.display === 'none' ? 0 : this.domNode.offsetHeight;
|
|
113
|
+
}
|
|
114
|
+
hideWidget() {
|
|
115
|
+
this.domNode.style.display = 'none';
|
|
116
|
+
this._onDidChangeHeight.fire();
|
|
117
|
+
}
|
|
118
|
+
createChatTodoWidget() {
|
|
119
|
+
const container = $('.chat-todo-list-widget');
|
|
120
|
+
container.style.display = 'none';
|
|
121
|
+
const expandoContainer = $('.todo-list-expand');
|
|
122
|
+
this.expandoButton = this._register(( new Button(expandoContainer, {
|
|
123
|
+
supportIcons: true
|
|
124
|
+
})));
|
|
125
|
+
this.expandoButton.element.setAttribute('aria-expanded', String(this._isExpanded));
|
|
126
|
+
this.expandoButton.element.setAttribute('aria-controls', 'todo-list-container');
|
|
127
|
+
const titleSection = $('.todo-list-title-section');
|
|
128
|
+
this.expandIcon = $('.expand-icon.codicon');
|
|
129
|
+
this.expandIcon.classList.add(this._isExpanded ? 'codicon-chevron-down' : 'codicon-chevron-right');
|
|
130
|
+
this.expandIcon.setAttribute('aria-hidden', 'true');
|
|
131
|
+
this.titleElement = $('.todo-list-title');
|
|
132
|
+
this.titleElement.id = 'todo-list-title';
|
|
133
|
+
this.titleElement.textContent = ( localize(5111, 'Todos'));
|
|
134
|
+
this.clearButtonContainer = $('.todo-clear-button-container');
|
|
135
|
+
this.createClearButton();
|
|
136
|
+
titleSection.appendChild(this.expandIcon);
|
|
137
|
+
titleSection.appendChild(this.titleElement);
|
|
138
|
+
this.expandoButton.element.appendChild(titleSection);
|
|
139
|
+
this.expandoButton.element.appendChild(this.clearButtonContainer);
|
|
140
|
+
this.todoListContainer = $('.todo-list-container');
|
|
141
|
+
this.todoListContainer.style.display = this._isExpanded ? 'block' : 'none';
|
|
142
|
+
this.todoListContainer.id = 'todo-list-container';
|
|
143
|
+
this.todoListContainer.setAttribute('role', 'list');
|
|
144
|
+
this.todoListContainer.setAttribute('aria-labelledby', 'todo-list-title');
|
|
145
|
+
container.appendChild(expandoContainer);
|
|
146
|
+
container.appendChild(this.todoListContainer);
|
|
147
|
+
this._register(this.expandoButton.onDidClick(() => {
|
|
148
|
+
this.toggleExpanded();
|
|
149
|
+
}));
|
|
150
|
+
return container;
|
|
151
|
+
}
|
|
152
|
+
createClearButton() {
|
|
153
|
+
this.clearButton = ( new Button(this.clearButtonContainer, {
|
|
154
|
+
supportIcons: true,
|
|
155
|
+
}));
|
|
156
|
+
this.clearButton.element.tabIndex = 0;
|
|
157
|
+
this.clearButton.icon = Codicon.clearAll;
|
|
158
|
+
this._register(this.clearButton);
|
|
159
|
+
this._register(this.clearButton.onDidClick(() => {
|
|
160
|
+
this.clearAllTodos();
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
render(sessionResource) {
|
|
164
|
+
if (!sessionResource) {
|
|
165
|
+
this.hideWidget();
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (!isEqual(this._currentSessionResource, sessionResource)) {
|
|
169
|
+
this._userManuallyExpanded = false;
|
|
170
|
+
this._currentSessionResource = sessionResource;
|
|
171
|
+
this.hideWidget();
|
|
172
|
+
}
|
|
173
|
+
this.updateTodoDisplay();
|
|
174
|
+
}
|
|
175
|
+
clear(sessionResource, force = false) {
|
|
176
|
+
if (!sessionResource || this.domNode.style.display === 'none') {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const currentTodos = this.chatTodoListService.getTodos(sessionResource);
|
|
180
|
+
const shouldClear = force || (currentTodos.length > 0 && !( currentTodos.some(todo => todo.status !== 'completed')));
|
|
181
|
+
if (shouldClear) {
|
|
182
|
+
this.clearAllTodos();
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
updateTodoDisplay() {
|
|
186
|
+
if (!this._currentSessionResource) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const todoList = this.chatTodoListService.getTodos(this._currentSessionResource);
|
|
190
|
+
const shouldShow = todoList.length > 2;
|
|
191
|
+
if (!shouldShow) {
|
|
192
|
+
this.domNode.classList.remove('has-todos');
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
this.domNode.classList.add('has-todos');
|
|
196
|
+
this.renderTodoList(todoList);
|
|
197
|
+
this.domNode.style.display = 'block';
|
|
198
|
+
this._onDidChangeHeight.fire();
|
|
199
|
+
}
|
|
200
|
+
renderTodoList(todoList) {
|
|
201
|
+
this.updateTitleElement(this.titleElement, todoList);
|
|
202
|
+
const allIncomplete = todoList.every(todo => todo.status === 'not-started');
|
|
203
|
+
if (allIncomplete) {
|
|
204
|
+
this._userManuallyExpanded = false;
|
|
205
|
+
}
|
|
206
|
+
if (!this._todoList) {
|
|
207
|
+
this._todoList = this._register(this.instantiationService.createInstance((WorkbenchList), 'ChatTodoListRenderer', this.todoListContainer, ( new TodoListDelegate()), [( new TodoListRenderer(this.configurationService))], {
|
|
208
|
+
alwaysConsumeMouseWheel: false,
|
|
209
|
+
accessibilityProvider: {
|
|
210
|
+
getAriaLabel: (todo) => {
|
|
211
|
+
const statusText = this.getStatusText(todo.status);
|
|
212
|
+
const includeDescription = this.configurationService.getValue(TodoListToolDescriptionFieldSettingId) !== false;
|
|
213
|
+
return includeDescription && todo.description && todo.description.trim()
|
|
214
|
+
? ( localize(5106, '{0}, {1}, {2}', todo.title, statusText, todo.description))
|
|
215
|
+
: ( localize(5107, '{0}, {1}', todo.title, statusText));
|
|
216
|
+
},
|
|
217
|
+
getWidgetAriaLabel: () => ( localize(5112, 'Chat Todo List'))
|
|
218
|
+
}
|
|
219
|
+
}));
|
|
220
|
+
}
|
|
221
|
+
const maxItemsShown = 6;
|
|
222
|
+
const itemsShown = Math.min(todoList.length, maxItemsShown);
|
|
223
|
+
const height = itemsShown * 22;
|
|
224
|
+
this._todoList.layout(height);
|
|
225
|
+
this._todoList.getHTMLElement().style.height = `${height}px`;
|
|
226
|
+
this._todoList.splice(0, this._todoList.length, todoList);
|
|
227
|
+
const hasInProgressTask = ( todoList.some(todo => todo.status === 'in-progress'));
|
|
228
|
+
const hasCompletedTask = ( todoList.some(todo => todo.status === 'completed'));
|
|
229
|
+
this.updateClearButtonState();
|
|
230
|
+
if ((hasInProgressTask || hasCompletedTask) && this._isExpanded && !this._userManuallyExpanded) {
|
|
231
|
+
this._isExpanded = false;
|
|
232
|
+
this.expandoButton.element.setAttribute('aria-expanded', 'false');
|
|
233
|
+
this.todoListContainer.style.display = 'none';
|
|
234
|
+
this.expandIcon.classList.remove('codicon-chevron-down');
|
|
235
|
+
this.expandIcon.classList.add('codicon-chevron-right');
|
|
236
|
+
this.updateTitleElement(this.titleElement, todoList);
|
|
237
|
+
this._onDidChangeHeight.fire();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
toggleExpanded() {
|
|
241
|
+
this._isExpanded = !this._isExpanded;
|
|
242
|
+
this._userManuallyExpanded = true;
|
|
243
|
+
this.expandIcon.classList.toggle('codicon-chevron-down', this._isExpanded);
|
|
244
|
+
this.expandIcon.classList.toggle('codicon-chevron-right', !this._isExpanded);
|
|
245
|
+
this.todoListContainer.style.display = this._isExpanded ? 'block' : 'none';
|
|
246
|
+
if (this._currentSessionResource) {
|
|
247
|
+
const todoList = this.chatTodoListService.getTodos(this._currentSessionResource);
|
|
248
|
+
this.updateTitleElement(this.titleElement, todoList);
|
|
249
|
+
}
|
|
250
|
+
this._onDidChangeHeight.fire();
|
|
251
|
+
}
|
|
252
|
+
clearAllTodos() {
|
|
253
|
+
if (!this._currentSessionResource) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
this.chatTodoListService.setTodos(this._currentSessionResource, []);
|
|
257
|
+
this.hideWidget();
|
|
258
|
+
}
|
|
259
|
+
updateClearButtonState() {
|
|
260
|
+
if (!this._currentSessionResource) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const todoList = this.chatTodoListService.getTodos(this._currentSessionResource);
|
|
264
|
+
const hasInProgressTask = ( todoList.some(todo => todo.status === 'in-progress'));
|
|
265
|
+
const isRequestInProgress = ChatContextKeys.requestInProgress.getValue(this.contextKeyService) ?? false;
|
|
266
|
+
const shouldDisable = isRequestInProgress && hasInProgressTask;
|
|
267
|
+
this.clearButton.enabled = !shouldDisable;
|
|
268
|
+
if (shouldDisable) {
|
|
269
|
+
this.clearButton.setTitle(( localize(5113, 'Cannot clear todos while a task is in progress')));
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
this.clearButton.setTitle(( localize(5114, 'Clear all todos')));
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
updateTitleElement(titleElement, todoList) {
|
|
276
|
+
titleElement.textContent = '';
|
|
277
|
+
const completedCount = todoList.filter(todo => todo.status === 'completed').length;
|
|
278
|
+
const totalCount = todoList.length;
|
|
279
|
+
const inProgressTodos = todoList.filter(todo => todo.status === 'in-progress');
|
|
280
|
+
const firstInProgressTodo = inProgressTodos.length > 0 ? inProgressTodos[0] : undefined;
|
|
281
|
+
const notStartedTodos = todoList.filter(todo => todo.status === 'not-started');
|
|
282
|
+
const firstNotStartedTodo = notStartedTodos.length > 0 ? notStartedTodos[0] : undefined;
|
|
283
|
+
const currentTaskNumber = inProgressTodos.length > 0 ? completedCount + 1 : Math.max(1, completedCount);
|
|
284
|
+
const expandButtonLabel = this._isExpanded
|
|
285
|
+
? ( localize(5115, 'Collapse Todos'))
|
|
286
|
+
: ( localize(5116, 'Expand Todos'));
|
|
287
|
+
this.expandoButton.element.setAttribute('aria-label', expandButtonLabel);
|
|
288
|
+
this.expandoButton.element.setAttribute('aria-expanded', this._isExpanded ? 'true' : 'false');
|
|
289
|
+
if (this._isExpanded) {
|
|
290
|
+
const titleText = $('span');
|
|
291
|
+
titleText.textContent = totalCount > 0 ?
|
|
292
|
+
( localize(5117, 'Todos ({0}/{1})', currentTaskNumber, totalCount)) :
|
|
293
|
+
( localize(5111, 'Todos'));
|
|
294
|
+
titleElement.appendChild(titleText);
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
const todoToShow = firstInProgressTodo || firstNotStartedTodo;
|
|
298
|
+
if (todoToShow) {
|
|
299
|
+
const icon = $('.codicon');
|
|
300
|
+
if (todoToShow === firstInProgressTodo) {
|
|
301
|
+
icon.classList.add('codicon-record');
|
|
302
|
+
icon.style.color = 'var(--vscode-charts-blue)';
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
icon.classList.add('codicon-circle-outline');
|
|
306
|
+
icon.style.color = 'var(--vscode-foreground)';
|
|
307
|
+
}
|
|
308
|
+
icon.style.marginRight = '4px';
|
|
309
|
+
icon.style.verticalAlign = 'middle';
|
|
310
|
+
titleElement.appendChild(icon);
|
|
311
|
+
const todoText = $('span');
|
|
312
|
+
todoText.textContent = ( localize(5118, '{0} ({1}/{2})', todoToShow.title, currentTaskNumber, totalCount));
|
|
313
|
+
todoText.style.verticalAlign = 'middle';
|
|
314
|
+
todoText.style.overflow = 'hidden';
|
|
315
|
+
todoText.style.textOverflow = 'ellipsis';
|
|
316
|
+
todoText.style.whiteSpace = 'nowrap';
|
|
317
|
+
todoText.style.minWidth = '0';
|
|
318
|
+
titleElement.appendChild(todoText);
|
|
319
|
+
}
|
|
320
|
+
else if (completedCount > 0 && completedCount === totalCount) {
|
|
321
|
+
const doneText = $('span');
|
|
322
|
+
doneText.textContent = ( localize(5117, 'Todos ({0}/{1})', totalCount, totalCount));
|
|
323
|
+
doneText.style.verticalAlign = 'middle';
|
|
324
|
+
titleElement.appendChild(doneText);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
getStatusText(status) {
|
|
329
|
+
switch (status) {
|
|
330
|
+
case 'completed':
|
|
331
|
+
return localize(5108, 'completed');
|
|
332
|
+
case 'in-progress':
|
|
333
|
+
return localize(5109, 'in progress');
|
|
334
|
+
case 'not-started':
|
|
335
|
+
default:
|
|
336
|
+
return localize(5110, 'not started');
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
ChatTodoListWidget = ( __decorate([
|
|
341
|
+
( __param(0, IChatTodoListService)),
|
|
342
|
+
( __param(1, IConfigurationService)),
|
|
343
|
+
( __param(2, IInstantiationService)),
|
|
344
|
+
( __param(3, IContextKeyService))
|
|
345
|
+
], ChatTodoListWidget));
|
|
346
|
+
|
|
347
|
+
export { ChatTodoListWidget };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { IMarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
|
|
2
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
|
+
import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model";
|
|
5
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
6
|
+
import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
|
|
7
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
8
|
+
import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatViewModel";
|
|
9
|
+
import { LanguageModelPartAudience } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels";
|
|
10
|
+
import { ChatTreeItem, IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
11
|
+
import { ICodeBlockRenderOptions } from "../codeBlockPart.js";
|
|
12
|
+
import { IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatContentParts/chatContentParts";
|
|
13
|
+
export interface IChatCollapsibleIOCodePart {
|
|
14
|
+
kind: "code";
|
|
15
|
+
textModel: ITextModel;
|
|
16
|
+
languageId: string;
|
|
17
|
+
options: ICodeBlockRenderOptions;
|
|
18
|
+
codeBlockInfo: IChatCodeBlockInfo;
|
|
19
|
+
}
|
|
20
|
+
export interface IChatCollapsibleIODataPart {
|
|
21
|
+
kind: "data";
|
|
22
|
+
value?: Uint8Array;
|
|
23
|
+
audience?: LanguageModelPartAudience[];
|
|
24
|
+
mimeType: string | undefined;
|
|
25
|
+
uri: URI;
|
|
26
|
+
}
|
|
27
|
+
export type ChatCollapsibleIOPart = IChatCollapsibleIOCodePart | IChatCollapsibleIODataPart;
|
|
28
|
+
export interface IChatCollapsibleInputData extends IChatCollapsibleIOCodePart {
|
|
29
|
+
}
|
|
30
|
+
export interface IChatCollapsibleOutputData {
|
|
31
|
+
parts: ChatCollapsibleIOPart[];
|
|
32
|
+
}
|
|
33
|
+
export declare class ChatCollapsibleInputOutputContentPart extends Disposable {
|
|
34
|
+
private readonly context;
|
|
35
|
+
private readonly input;
|
|
36
|
+
private readonly output;
|
|
37
|
+
private readonly contextKeyService;
|
|
38
|
+
private readonly _instantiationService;
|
|
39
|
+
private readonly _onDidChangeHeight;
|
|
40
|
+
readonly onDidChangeHeight: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
|
|
41
|
+
private _currentWidth;
|
|
42
|
+
private readonly _editorReferences;
|
|
43
|
+
private readonly _titlePart;
|
|
44
|
+
private _outputSubPart;
|
|
45
|
+
readonly domNode: HTMLElement;
|
|
46
|
+
get codeblocks(): IChatCodeBlockInfo[];
|
|
47
|
+
set title(s: string | IMarkdownString);
|
|
48
|
+
get title(): string | IMarkdownString;
|
|
49
|
+
private readonly _expanded;
|
|
50
|
+
get expanded(): boolean;
|
|
51
|
+
constructor(title: IMarkdownString | string, subtitle: string | IMarkdownString | undefined, progressTooltip: IMarkdownString | string | undefined, context: IChatContentPartRenderContext, input: IChatCollapsibleInputData, output: IChatCollapsibleOutputData | undefined, isError: boolean, initiallyExpanded: boolean, contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, hoverService: IHoverService);
|
|
52
|
+
private createMessageContents;
|
|
53
|
+
private addCodeBlock;
|
|
54
|
+
hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
|
|
55
|
+
layout(width: number): void;
|
|
56
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { h, createElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
|
+
import { ButtonWithIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
|
|
5
|
+
import { HoverStyle } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hover';
|
|
6
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
7
|
+
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
8
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
9
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
10
|
+
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
11
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
12
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
13
|
+
import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
|
|
14
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
15
|
+
import { LanguageModelPartAudience } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
16
|
+
import { ChatQueryTitlePart } from './chatConfirmationWidget.js';
|
|
17
|
+
import { ChatToolOutputContentSubPart } from './chatToolOutputContentSubPart.js';
|
|
18
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
19
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
20
|
+
|
|
21
|
+
let ChatCollapsibleInputOutputContentPart = class ChatCollapsibleInputOutputContentPart extends Disposable {
|
|
22
|
+
get codeblocks() {
|
|
23
|
+
const inputCodeblocks = ( this._editorReferences.map(ref => {
|
|
24
|
+
const cbi = this.input.codeBlockInfo;
|
|
25
|
+
return cbi;
|
|
26
|
+
}));
|
|
27
|
+
const outputCodeblocks = this._outputSubPart?.codeblocks ?? [];
|
|
28
|
+
return [...inputCodeblocks, ...outputCodeblocks];
|
|
29
|
+
}
|
|
30
|
+
set title(s) {
|
|
31
|
+
this._titlePart.title = s;
|
|
32
|
+
}
|
|
33
|
+
get title() {
|
|
34
|
+
return this._titlePart.title;
|
|
35
|
+
}
|
|
36
|
+
get expanded() {
|
|
37
|
+
return this._expanded.get();
|
|
38
|
+
}
|
|
39
|
+
constructor(title, subtitle, progressTooltip, context, input, output, isError, initiallyExpanded, contextKeyService, _instantiationService, hoverService) {
|
|
40
|
+
super();
|
|
41
|
+
this.context = context;
|
|
42
|
+
this.input = input;
|
|
43
|
+
this.output = output;
|
|
44
|
+
this.contextKeyService = contextKeyService;
|
|
45
|
+
this._instantiationService = _instantiationService;
|
|
46
|
+
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
47
|
+
this.onDidChangeHeight = this._onDidChangeHeight.event;
|
|
48
|
+
this._currentWidth = 0;
|
|
49
|
+
this._editorReferences = [];
|
|
50
|
+
this._currentWidth = context.currentWidth();
|
|
51
|
+
const container = h('.chat-confirmation-widget-container');
|
|
52
|
+
const titleEl = h('.chat-confirmation-widget-title-inner');
|
|
53
|
+
const elements = h('.chat-confirmation-widget');
|
|
54
|
+
this.domNode = container.root;
|
|
55
|
+
container.root.appendChild(elements.root);
|
|
56
|
+
const titlePart = this._titlePart = this._register(_instantiationService.createInstance(ChatQueryTitlePart, titleEl.root, title, subtitle));
|
|
57
|
+
this._register(titlePart.onDidChangeHeight(() => this._onDidChangeHeight.fire()));
|
|
58
|
+
const spacer = createElement('span');
|
|
59
|
+
spacer.style.flexGrow = '1';
|
|
60
|
+
const btn = this._register(( new ButtonWithIcon(elements.root, {})));
|
|
61
|
+
btn.element.classList.add('chat-confirmation-widget-title', 'monaco-text-button');
|
|
62
|
+
btn.labelElement.append(titleEl.root);
|
|
63
|
+
const check = h(isError
|
|
64
|
+
? ThemeIcon.asCSSSelector(Codicon.error)
|
|
65
|
+
: output
|
|
66
|
+
? ThemeIcon.asCSSSelector(Codicon.check)
|
|
67
|
+
: ThemeIcon.asCSSSelector(ThemeIcon.modify(Codicon.loading, 'spin')));
|
|
68
|
+
if (progressTooltip) {
|
|
69
|
+
this._register(hoverService.setupDelayedHover(check.root, {
|
|
70
|
+
content: progressTooltip,
|
|
71
|
+
style: HoverStyle.Pointer,
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
const expanded = this._expanded = observableValue(this, initiallyExpanded);
|
|
75
|
+
this._register(autorun(r => {
|
|
76
|
+
const value = expanded.read(r);
|
|
77
|
+
btn.icon = isError
|
|
78
|
+
? Codicon.error
|
|
79
|
+
: output
|
|
80
|
+
? Codicon.check
|
|
81
|
+
: ThemeIcon.modify(Codicon.loading, 'spin');
|
|
82
|
+
elements.root.classList.toggle('collapsed', !value);
|
|
83
|
+
this._onDidChangeHeight.fire();
|
|
84
|
+
}));
|
|
85
|
+
const toggle = (e) => {
|
|
86
|
+
if (!e.defaultPrevented) {
|
|
87
|
+
const value = expanded.get();
|
|
88
|
+
expanded.set(!value, undefined);
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
this._register(btn.onDidClick(toggle));
|
|
93
|
+
const message = h('.chat-confirmation-widget-message');
|
|
94
|
+
message.root.appendChild(this.createMessageContents());
|
|
95
|
+
elements.root.appendChild(message.root);
|
|
96
|
+
const topLevelResources = this.output?.parts
|
|
97
|
+
.filter(p => p.kind === 'data')
|
|
98
|
+
.filter(p => !p.audience || p.audience.includes(LanguageModelPartAudience.User));
|
|
99
|
+
if (topLevelResources?.length) {
|
|
100
|
+
const resourceSubPart = this._register(this._instantiationService.createInstance(ChatToolOutputContentSubPart, this.context, topLevelResources));
|
|
101
|
+
const group = resourceSubPart.domNode;
|
|
102
|
+
group.classList.add('chat-collapsible-top-level-resource-group');
|
|
103
|
+
container.root.appendChild(group);
|
|
104
|
+
this._register(autorun(r => {
|
|
105
|
+
group.style.display = expanded.read(r) ? 'none' : '';
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
createMessageContents() {
|
|
110
|
+
const contents = h('div', [
|
|
111
|
+
h('h3@inputTitle'),
|
|
112
|
+
h('div@input'),
|
|
113
|
+
h('h3@outputTitle'),
|
|
114
|
+
h('div@output'),
|
|
115
|
+
]);
|
|
116
|
+
const { input, output } = this;
|
|
117
|
+
contents.inputTitle.textContent = ( localize(5119, "Input"));
|
|
118
|
+
this.addCodeBlock(input, contents.input);
|
|
119
|
+
if (!output) {
|
|
120
|
+
contents.output.remove();
|
|
121
|
+
contents.outputTitle.remove();
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
contents.outputTitle.textContent = ( localize(5120, "Output"));
|
|
125
|
+
const outputSubPart = this._register(this._instantiationService.createInstance(ChatToolOutputContentSubPart, this.context, output.parts));
|
|
126
|
+
this._outputSubPart = outputSubPart;
|
|
127
|
+
this._register(outputSubPart.onDidChangeHeight(() => this._onDidChangeHeight.fire()));
|
|
128
|
+
contents.output.appendChild(outputSubPart.domNode);
|
|
129
|
+
}
|
|
130
|
+
return contents.root;
|
|
131
|
+
}
|
|
132
|
+
addCodeBlock(part, container) {
|
|
133
|
+
const data = {
|
|
134
|
+
languageId: part.languageId,
|
|
135
|
+
textModel: Promise.resolve(part.textModel),
|
|
136
|
+
codeBlockIndex: part.codeBlockInfo.codeBlockIndex,
|
|
137
|
+
codeBlockPartIndex: 0,
|
|
138
|
+
element: this.context.element,
|
|
139
|
+
parentContextKeyService: this.contextKeyService,
|
|
140
|
+
renderOptions: part.options,
|
|
141
|
+
chatSessionResource: this.context.element.sessionResource,
|
|
142
|
+
};
|
|
143
|
+
const editorReference = this._register(this.context.editorPool.get());
|
|
144
|
+
editorReference.object.render(data, this._currentWidth || 300);
|
|
145
|
+
this._register(editorReference.object.onDidChangeContentHeight(() => this._onDidChangeHeight.fire()));
|
|
146
|
+
container.appendChild(editorReference.object.element);
|
|
147
|
+
this._editorReferences.push(editorReference);
|
|
148
|
+
}
|
|
149
|
+
hasSameContent(other, followingContent, element) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
layout(width) {
|
|
153
|
+
this._currentWidth = width;
|
|
154
|
+
this._editorReferences.forEach(r => r.object.layout(width));
|
|
155
|
+
this._outputSubPart?.layout(width);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
ChatCollapsibleInputOutputContentPart = ( __decorate([
|
|
159
|
+
( __param(8, IContextKeyService)),
|
|
160
|
+
( __param(9, IInstantiationService)),
|
|
161
|
+
( __param(10, IHoverService))
|
|
162
|
+
], ChatCollapsibleInputOutputContentPart));
|
|
163
|
+
|
|
164
|
+
export { ChatCollapsibleInputOutputContentPart };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
3
|
+
import { IContextMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
|
|
4
|
+
import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
|
|
5
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
6
|
+
import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
7
|
+
import { IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatContentParts/chatContentParts";
|
|
8
|
+
import { ChatCollapsibleIOPart } from "./chatToolInputOutputContentPart.js";
|
|
9
|
+
/**
|
|
10
|
+
* A reusable component for rendering tool output consisting of code blocks and/or resources.
|
|
11
|
+
* This is used by both ChatCollapsibleInputOutputContentPart and ChatToolPostExecuteConfirmationPart.
|
|
12
|
+
*/
|
|
13
|
+
export declare class ChatToolOutputContentSubPart extends Disposable {
|
|
14
|
+
private readonly context;
|
|
15
|
+
private readonly parts;
|
|
16
|
+
private readonly contextKeyService;
|
|
17
|
+
private readonly _instantiationService;
|
|
18
|
+
private readonly _contextMenuService;
|
|
19
|
+
private readonly _fileService;
|
|
20
|
+
private readonly _onDidChangeHeight;
|
|
21
|
+
readonly onDidChangeHeight: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
|
|
22
|
+
private _currentWidth;
|
|
23
|
+
private readonly _editorReferences;
|
|
24
|
+
readonly domNode: HTMLElement;
|
|
25
|
+
readonly codeblocks: IChatCodeBlockInfo[];
|
|
26
|
+
constructor(context: IChatContentPartRenderContext, parts: ChatCollapsibleIOPart[], contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, _contextMenuService: IContextMenuService, _fileService: IFileService);
|
|
27
|
+
private createOutputContents;
|
|
28
|
+
private addResourceGroup;
|
|
29
|
+
private fillInResourceGroup;
|
|
30
|
+
private addCodeBlock;
|
|
31
|
+
layout(width: number): void;
|
|
32
|
+
}
|