@codingame/monaco-vscode-api 26.1.0 → 26.1.2
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/missing-services.js +26 -8
- package/package.json +8 -8
- package/services.js +3 -3
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css +9 -0
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.d.ts +2 -0
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +12 -5
- package/vscode/src/vs/platform/actions/common/actions.d.ts +1 -0
- package/vscode/src/vs/platform/actions/common/actions.js +3 -0
- package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.d.ts +4 -0
- package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +5 -1
- package/vscode/src/vs/platform/product/common/product.js +3 -3
- package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +2 -1
- package/vscode/src/vs/workbench/api/common/extHost.protocol.d.ts +1 -0
- package/vscode/src/vs/workbench/api/common/extHostChatAgents2.d.ts +1 -0
- package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +31 -8
- package/vscode/src/vs/workbench/api/common/extHostChatSessions.js +2 -1
- package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +7 -2
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.d.ts +12 -1
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +67 -3
- package/vscode/src/vs/workbench/api/common/extHostTypes.d.ts +12 -0
- package/vscode/src/vs/workbench/api/common/extHostTypes.js +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +1 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +15 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatScreenshotContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.d.ts +8 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileRewriter.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileRewriter.js +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.js +80 -62
- package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariableEntries.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatModes.d.ts +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatModes.js +8 -9
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.d.ts +70 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.js +27 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.service.d.ts +27 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.service.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/common/constants.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/constants.js +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/editing/chatEditingService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/languageModelStats.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.d.ts +84 -5
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.js +176 -70
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatViewModel.d.ts +18 -5
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatViewModel.js +46 -4
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.js +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.service.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.js +68 -54
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/config.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/config.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.d.ts +48 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.js +64 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.d.ts +159 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.js +387 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser.d.ts +21 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser.js +82 -26
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.js +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +51 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +14 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service.d.ts +11 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptEditHelper.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptEditHelper.js +22 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/manageTodoListTool.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/runSubagentTool.d.ts +14 -2
- package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/runSubagentTool.js +98 -25
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/widget/input/modelPickerWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +11 -11
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +4 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorAccessibilityHelp.js +5 -5
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +9 -9
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +3 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +6 -6
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +4 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +3 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +5 -5
- package/vscode/src/vs/workbench/contrib/codeEditor/common/languageConfigurationExtensionPoint.js +65 -65
- package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +2 -2
- package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsAccessibility.js +12 -12
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +9 -9
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +14 -14
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +16 -16
- package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +12 -12
- package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +29 -29
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +75 -75
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +6 -6
- package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +12 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +38 -38
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +57 -57
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +18 -18
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +9 -9
- package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/debug.js +65 -65
- package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +6 -6
- package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/commands.js +2 -2
- package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/configurationSchema.js +4 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +18 -18
- package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +41 -41
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +15 -15
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +14 -14
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +147 -147
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +170 -170
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +5 -5
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsIcons.js +24 -24
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +4 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +7 -7
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +48 -48
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +5 -5
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +29 -29
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +74 -74
- package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionsFileTemplate.js +5 -5
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionsUtils.js +3 -3
- package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/common/searchExtensionsTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/configuration.js +4 -4
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +3 -3
- package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +8 -8
- package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +18 -18
- package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +14 -14
- package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +39 -39
- package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +84 -84
- package/vscode/src/vs/workbench/contrib/files/browser/fileCommands._save.js +4 -4
- package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -6
- package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +27 -27
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +50 -50
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
- package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
- package/vscode/src/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +7 -7
- package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +17 -17
- package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +7 -7
- package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +4 -4
- package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +1 -1
- package/vscode/src/vs/workbench/contrib/files/common/files.js +16 -16
- package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +20 -20
- package/vscode/src/vs/workbench/contrib/format/browser/formatActionsNone.js +4 -4
- package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +4 -4
- package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveCommon.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveCommon.js +11 -0
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +150 -0
- package/vscode/src/vs/workbench/contrib/list/browser/listResizeColumnAction.js +2 -2
- package/vscode/src/vs/workbench/contrib/list/browser/tableColumnResizeQuickPick.js +5 -5
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.js +66 -66
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfiguration.js +31 -31
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.js +9 -9
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.js +4 -4
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +23 -23
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +8 -8
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/icons.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +338 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.js +58 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.d.ts +75 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +364 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +8 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +29 -29
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellOutput.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookViewZones.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingWidgets.js +3 -3
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesIcons.js +13 -13
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +10 -10
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsLayout.js +50 -50
- package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +3 -3
- package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +21 -21
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +15 -15
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +17 -17
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +59 -59
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/interactiveEditor.css +21 -0
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/media/interactive.css +36 -0
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.d.ts +110 -0
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +692 -0
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.d.ts +40 -0
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +158 -0
- package/vscode/src/vs/workbench/contrib/scm/browser/scmHistory.js +11 -11
- package/vscode/src/vs/workbench/contrib/scm/browser/scmHistoryChatContext.js +6 -6
- package/vscode/src/vs/workbench/contrib/scm/common/quickDiff.js +14 -14
- package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +9 -9
- package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +1 -1
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +12 -12
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +9 -9
- package/vscode/src/vs/workbench/contrib/search/browser/searchChatContext.js +5 -5
- package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +20 -20
- package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +2 -2
- package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +14 -14
- package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +55 -55
- package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +2 -2
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +5 -5
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +3 -3
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +9 -9
- package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +29 -29
- package/vscode/src/vs/workbench/contrib/tasks/common/constants.js +1 -1
- package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +5 -5
- package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +6 -6
- package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcons.js +13 -13
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMenus.js +40 -40
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +15 -15
- package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +9 -9
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +23 -23
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +17 -17
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +26 -26
- package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/autoReplies/common/terminalAutoRepliesConfiguration.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.js +54 -54
- package/vscode/src/vs/workbench/contrib/terminalContrib/commandGuide/common/terminalCommandGuideConfiguration.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/history/common/terminal.history.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/common/terminalSuggestConfiguration.js +30 -30
- package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/common/terminalTypeAheadConfiguration.js +5 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/common/terminal.zoom.js +2 -2
- package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
- package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
- package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
- package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +6 -6
- package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +2 -2
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +11 -11
- package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +5 -5
- package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +14 -14
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -16
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -1
- package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
- package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +1 -1
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionsIcons.js +3 -3
- package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +6 -6
- package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
- package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +88 -88
- package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +5 -5
- package/vscode/src/vs/workbench/services/language/common/languageService.js +24 -24
- package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
- package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +2 -2
- package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +7 -7
- package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +4 -4
- package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
- package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
- package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -1
- package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +9 -9
- package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +3 -3
- package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +18 -18
- package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +8 -8
- package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
- package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +24 -24
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +3 -3
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
- package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
- package/vscode/src/vs/workbench/services/views/browser/viewsService.js +9 -9
- package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +16 -16
- package/vscode-dts/vscode.proposed.chatHooks.d.ts +126 -0
- package/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts +25 -1
- package/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts +35 -1
- package/vscode-dts/vscode.proposed.d.ts +1 -0
|
@@ -21,7 +21,7 @@ import { ILogService } from '../../../../../platform/log/common/log.service.js';
|
|
|
21
21
|
import { CellUri } from '../../../notebook/common/notebookCommon.js';
|
|
22
22
|
import { IChatRequestVariableEntry, isStringVariableEntry, isImplicitVariableEntry, isStringImplicitContextValue } from '../attachments/chatVariableEntries.js';
|
|
23
23
|
import { migrateLegacyTerminalToolSpecificData } from '../chat.js';
|
|
24
|
-
import { IChatToolInvocation, ChatResponseClearToPreviousToolInvocationReason, ResponseModelState, ElicitationState, isIUsedContext } from '../chatService/chatService.js';
|
|
24
|
+
import { IChatToolInvocation, ChatResponseClearToPreviousToolInvocationReason, ResponseModelState, ElicitationState, isIUsedContext, ChatRequestQueueKind } from '../chatService/chatService.js';
|
|
25
25
|
import { IChatService } from '../chatService/chatService.service.js';
|
|
26
26
|
import { ChatAgentLocation, ChatModeKind } from '../constants.js';
|
|
27
27
|
import { ModifiedFileEntryState } from '../editing/chatEditingService.js';
|
|
@@ -32,6 +32,7 @@ import { reviveParsedChatRequest, ChatRequestTextPart } from '../requestParser/c
|
|
|
32
32
|
import { LocalChatSessionUri } from './chatUri.js';
|
|
33
33
|
import { observableFromEvent } from '../../../../../base/common/observableInternal/observables/observableFromEvent.js';
|
|
34
34
|
import { autorunSelfDisposable, autorun } from '../../../../../base/common/observableInternal/reactions/autorun.js';
|
|
35
|
+
import { constObservable } from '../../../../../base/common/observableInternal/observables/constObservable.js';
|
|
35
36
|
import { observableValueOpts } from '../../../../../base/common/observableInternal/observables/observableValueOpts.js';
|
|
36
37
|
import { observableValue } from '../../../../../base/common/observableInternal/observables/observableValue.js';
|
|
37
38
|
import { observableSignalFromEvent } from '../../../../../base/common/observableInternal/observables/observableSignalFromEvent.js';
|
|
@@ -181,9 +182,11 @@ class AbstractResponse {
|
|
|
181
182
|
case "elicitation2":
|
|
182
183
|
case "elicitationSerialized":
|
|
183
184
|
case "thinking":
|
|
185
|
+
case "hook":
|
|
184
186
|
case "multiDiffData":
|
|
185
187
|
case "mcpServersStarting":
|
|
186
188
|
case "questionCarousel":
|
|
189
|
+
case "disabledClaudeHooks":
|
|
187
190
|
continue;
|
|
188
191
|
case "toolInvocation":
|
|
189
192
|
case "toolInvocationSerialized":
|
|
@@ -243,7 +246,7 @@ class AbstractResponse {
|
|
|
243
246
|
blocks.push(currentBlockSegments.join(""));
|
|
244
247
|
}
|
|
245
248
|
if (hasEditGroupsAfterLastClear) {
|
|
246
|
-
blocks.push(( localize(
|
|
249
|
+
blocks.push(( localize(6344, "Made changes.")));
|
|
247
250
|
}
|
|
248
251
|
return blocks.join("\n\n");
|
|
249
252
|
}
|
|
@@ -349,12 +352,12 @@ class Response extends AbstractResponse {
|
|
|
349
352
|
if (progress.kind === "clearToPreviousToolInvocation") {
|
|
350
353
|
if (progress.reason === ChatResponseClearToPreviousToolInvocationReason.CopyrightContentRetry) {
|
|
351
354
|
this.clearToPreviousToolInvocation(( localize(
|
|
352
|
-
|
|
355
|
+
6345,
|
|
353
356
|
"Response cleared due to possible match to public code, retrying with modified prompt."
|
|
354
357
|
)));
|
|
355
358
|
} else if (progress.reason === ChatResponseClearToPreviousToolInvocationReason.FilteredContentRetry) {
|
|
356
359
|
this.clearToPreviousToolInvocation(( localize(
|
|
357
|
-
|
|
360
|
+
6346,
|
|
358
361
|
"Response cleared due to content safety filters, retrying with modified prompt."
|
|
359
362
|
)));
|
|
360
363
|
} else {
|
|
@@ -622,7 +625,7 @@ class ChatResponseModel extends Disposable {
|
|
|
622
625
|
return title ? (isMarkdownString(title) ? title.value : title) : undefined;
|
|
623
626
|
}
|
|
624
627
|
if (state.type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
|
|
625
|
-
return localize(
|
|
628
|
+
return localize(6347, "Approve tool result?");
|
|
626
629
|
}
|
|
627
630
|
}
|
|
628
631
|
if (part.kind === "confirmation" && !part.isUsed) {
|
|
@@ -915,6 +918,71 @@ let ChatModel = ChatModel_1 = class ChatModel extends Disposable {
|
|
|
915
918
|
setRepoData(data) {
|
|
916
919
|
this._repoData = data;
|
|
917
920
|
}
|
|
921
|
+
getPendingRequests() {
|
|
922
|
+
return this._pendingRequests;
|
|
923
|
+
}
|
|
924
|
+
setPendingRequests(requests) {
|
|
925
|
+
const existingMap = ( new Map(( this._pendingRequests.map(p => [p.request.id, p]))));
|
|
926
|
+
const newPending = [];
|
|
927
|
+
for (const {
|
|
928
|
+
requestId,
|
|
929
|
+
kind
|
|
930
|
+
} of requests) {
|
|
931
|
+
const existing = existingMap.get(requestId);
|
|
932
|
+
if (existing) {
|
|
933
|
+
newPending.push(existing.kind === kind ? existing : {
|
|
934
|
+
request: existing.request,
|
|
935
|
+
kind,
|
|
936
|
+
sendOptions: existing.sendOptions
|
|
937
|
+
});
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
this._pendingRequests.length = 0;
|
|
941
|
+
this._pendingRequests.push(...newPending);
|
|
942
|
+
this._onDidChangePendingRequests.fire();
|
|
943
|
+
}
|
|
944
|
+
addPendingRequest(request, kind, sendOptions) {
|
|
945
|
+
const pendingRequest = {
|
|
946
|
+
request,
|
|
947
|
+
kind,
|
|
948
|
+
sendOptions
|
|
949
|
+
};
|
|
950
|
+
if (kind === ChatRequestQueueKind.Steering) {
|
|
951
|
+
let insertIndex = 0;
|
|
952
|
+
for (let i = 0; i < this._pendingRequests.length; i++) {
|
|
953
|
+
if (this._pendingRequests[i].kind === ChatRequestQueueKind.Steering) {
|
|
954
|
+
insertIndex = i + 1;
|
|
955
|
+
} else {
|
|
956
|
+
break;
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
this._pendingRequests.splice(insertIndex, 0, pendingRequest);
|
|
960
|
+
} else {
|
|
961
|
+
this._pendingRequests.push(pendingRequest);
|
|
962
|
+
}
|
|
963
|
+
this._onDidChangePendingRequests.fire();
|
|
964
|
+
return pendingRequest;
|
|
965
|
+
}
|
|
966
|
+
removePendingRequest(id) {
|
|
967
|
+
const index = this._pendingRequests.findIndex(r => r.request.id === id);
|
|
968
|
+
if (index !== -1) {
|
|
969
|
+
this._pendingRequests.splice(index, 1);
|
|
970
|
+
this._onDidChangePendingRequests.fire();
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
dequeuePendingRequest() {
|
|
974
|
+
const request = this._pendingRequests.shift();
|
|
975
|
+
if (request) {
|
|
976
|
+
this._onDidChangePendingRequests.fire();
|
|
977
|
+
}
|
|
978
|
+
return request;
|
|
979
|
+
}
|
|
980
|
+
clearPendingRequests() {
|
|
981
|
+
if (this._pendingRequests.length > 0) {
|
|
982
|
+
this._pendingRequests.length = 0;
|
|
983
|
+
this._onDidChangePendingRequests.fire();
|
|
984
|
+
}
|
|
985
|
+
}
|
|
918
986
|
get sessionId() {
|
|
919
987
|
return this._sessionId;
|
|
920
988
|
}
|
|
@@ -991,6 +1059,9 @@ let ChatModel = ChatModel_1 = class ChatModel extends Disposable {
|
|
|
991
1059
|
this.onDidDispose = this._onDidDispose.event;
|
|
992
1060
|
this._onDidChange = this._register(( new Emitter()));
|
|
993
1061
|
this.onDidChange = this._onDidChange.event;
|
|
1062
|
+
this._pendingRequests = [];
|
|
1063
|
+
this._onDidChangePendingRequests = this._register(( new Emitter()));
|
|
1064
|
+
this.onDidChangePendingRequests = this._onDidChangePendingRequests.event;
|
|
994
1065
|
this._isImported = false;
|
|
995
1066
|
this._canUseTools = true;
|
|
996
1067
|
this.currentEditedFileEvents = ( new ResourceMap());
|
|
@@ -1025,6 +1096,9 @@ let ChatModel = ChatModel_1 = class ChatModel extends Disposable {
|
|
|
1025
1096
|
this.dataSerializer = dataRef?.serializer;
|
|
1026
1097
|
this._initialResponderUsername = initialData?.responderUsername;
|
|
1027
1098
|
this._repoData = isValidFullData && initialData.repoData ? initialData.repoData : undefined;
|
|
1099
|
+
if (isValidFullData && initialData.pendingRequests) {
|
|
1100
|
+
this._pendingRequests = this._deserializePendingRequests(initialData.pendingRequests);
|
|
1101
|
+
}
|
|
1028
1102
|
this._initialLocation = initialData?.initialLocation ?? initialModelProps.initialLocation;
|
|
1029
1103
|
this._canUseTools = initialModelProps.canUseTools;
|
|
1030
1104
|
this.lastRequestObs = observableFromEvent(this, this.onDidChange, () => this._requests.at(-1));
|
|
@@ -1110,74 +1184,75 @@ let ChatModel = ChatModel_1 = class ChatModel extends Disposable {
|
|
|
1110
1184
|
return [];
|
|
1111
1185
|
}
|
|
1112
1186
|
try {
|
|
1113
|
-
return ( requests.map(
|
|
1114
|
-
const parsedRequest = typeof raw.message === "string" ? this.getParsedRequestFromString(raw.message) : reviveParsedChatRequest(raw.message);
|
|
1115
|
-
const variableData = this.reviveVariableData(raw.variableData);
|
|
1116
|
-
const request = ( new ChatRequestModel({
|
|
1117
|
-
session: this,
|
|
1118
|
-
message: parsedRequest,
|
|
1119
|
-
variableData,
|
|
1120
|
-
timestamp: raw.timestamp ?? -1,
|
|
1121
|
-
restoredId: raw.requestId,
|
|
1122
|
-
confirmation: raw.confirmation,
|
|
1123
|
-
editedFileEvents: raw.editedFileEvents,
|
|
1124
|
-
modelId: raw.modelId
|
|
1125
|
-
}));
|
|
1126
|
-
request.shouldBeRemovedOnSend = raw.isHidden ? {
|
|
1127
|
-
requestId: raw.requestId
|
|
1128
|
-
} : raw.shouldBeRemovedOnSend;
|
|
1129
|
-
if (raw.response || raw.result || raw.responseErrorDetails) {
|
|
1130
|
-
const agent =
|
|
1131
|
-
(raw.agent && "metadata" in raw.agent) ? reviveSerializedAgent(raw.agent) : undefined;
|
|
1132
|
-
const result = "responseErrorDetails" in raw ?
|
|
1133
|
-
{
|
|
1134
|
-
errorDetails: raw.responseErrorDetails
|
|
1135
|
-
} : raw.result;
|
|
1136
|
-
let modelState = raw.modelState || {
|
|
1137
|
-
value: raw.isCanceled ? ResponseModelState.Cancelled : ResponseModelState.Complete,
|
|
1138
|
-
completedAt: Date.now()
|
|
1139
|
-
};
|
|
1140
|
-
if (modelState.value === ResponseModelState.Pending || modelState.value === ResponseModelState.NeedsInput) {
|
|
1141
|
-
modelState = {
|
|
1142
|
-
value: ResponseModelState.Cancelled,
|
|
1143
|
-
completedAt: Date.now()
|
|
1144
|
-
};
|
|
1145
|
-
}
|
|
1146
|
-
request.response = ( new ChatResponseModel({
|
|
1147
|
-
responseContent: raw.response ?? [( new MarkdownString(raw.response))],
|
|
1148
|
-
session: this,
|
|
1149
|
-
agent,
|
|
1150
|
-
slashCommand: raw.slashCommand,
|
|
1151
|
-
requestId: request.id,
|
|
1152
|
-
modelState,
|
|
1153
|
-
vote: raw.vote,
|
|
1154
|
-
timestamp: raw.timestamp,
|
|
1155
|
-
voteDownReason: raw.voteDownReason,
|
|
1156
|
-
result,
|
|
1157
|
-
followups: raw.followups,
|
|
1158
|
-
restoredId: raw.responseId,
|
|
1159
|
-
timeSpentWaiting: raw.timeSpentWaiting,
|
|
1160
|
-
shouldBeBlocked: request.shouldBeBlocked.get(),
|
|
1161
|
-
codeBlockInfos: raw.responseMarkdownInfo?.map(info => ({
|
|
1162
|
-
suggestionId: info.suggestionId
|
|
1163
|
-
}))
|
|
1164
|
-
}));
|
|
1165
|
-
request.response.shouldBeRemovedOnSend = raw.isHidden ? {
|
|
1166
|
-
requestId: raw.requestId
|
|
1167
|
-
} : raw.shouldBeRemovedOnSend;
|
|
1168
|
-
if (raw.usedContext) {
|
|
1169
|
-
request.response.applyReference(revive(raw.usedContext));
|
|
1170
|
-
}
|
|
1171
|
-
raw.contentReferences?.forEach(r => request.response.applyReference(revive(r)));
|
|
1172
|
-
raw.codeCitations?.forEach(c => request.response.applyCodeCitation(revive(c)));
|
|
1173
|
-
}
|
|
1174
|
-
return request;
|
|
1175
|
-
}));
|
|
1187
|
+
return ( requests.map(r => this._deserializeRequest(r)));
|
|
1176
1188
|
} catch (error) {
|
|
1177
1189
|
this.logService.error("Failed to parse chat data", error);
|
|
1178
1190
|
return [];
|
|
1179
1191
|
}
|
|
1180
1192
|
}
|
|
1193
|
+
_deserializeRequest(raw) {
|
|
1194
|
+
const parsedRequest = typeof raw.message === "string" ? this.getParsedRequestFromString(raw.message) : reviveParsedChatRequest(raw.message);
|
|
1195
|
+
const variableData = this.reviveVariableData(raw.variableData);
|
|
1196
|
+
const request = ( new ChatRequestModel({
|
|
1197
|
+
session: this,
|
|
1198
|
+
message: parsedRequest,
|
|
1199
|
+
variableData,
|
|
1200
|
+
timestamp: raw.timestamp ?? -1,
|
|
1201
|
+
restoredId: raw.requestId,
|
|
1202
|
+
confirmation: raw.confirmation,
|
|
1203
|
+
editedFileEvents: raw.editedFileEvents,
|
|
1204
|
+
modelId: raw.modelId
|
|
1205
|
+
}));
|
|
1206
|
+
request.shouldBeRemovedOnSend = raw.isHidden ? {
|
|
1207
|
+
requestId: raw.requestId
|
|
1208
|
+
} : raw.shouldBeRemovedOnSend;
|
|
1209
|
+
if (raw.response || raw.result || raw.responseErrorDetails) {
|
|
1210
|
+
const agent =
|
|
1211
|
+
(raw.agent && "metadata" in raw.agent) ? reviveSerializedAgent(raw.agent) : undefined;
|
|
1212
|
+
const result = "responseErrorDetails" in raw ?
|
|
1213
|
+
{
|
|
1214
|
+
errorDetails: raw.responseErrorDetails
|
|
1215
|
+
} : raw.result;
|
|
1216
|
+
let modelState = raw.modelState || {
|
|
1217
|
+
value: raw.isCanceled ? ResponseModelState.Cancelled : ResponseModelState.Complete,
|
|
1218
|
+
completedAt: Date.now()
|
|
1219
|
+
};
|
|
1220
|
+
if (modelState.value === ResponseModelState.Pending || modelState.value === ResponseModelState.NeedsInput) {
|
|
1221
|
+
modelState = {
|
|
1222
|
+
value: ResponseModelState.Cancelled,
|
|
1223
|
+
completedAt: Date.now()
|
|
1224
|
+
};
|
|
1225
|
+
}
|
|
1226
|
+
request.response = ( new ChatResponseModel({
|
|
1227
|
+
responseContent: raw.response ?? [( new MarkdownString(raw.response))],
|
|
1228
|
+
session: this,
|
|
1229
|
+
agent,
|
|
1230
|
+
slashCommand: raw.slashCommand,
|
|
1231
|
+
requestId: request.id,
|
|
1232
|
+
modelState,
|
|
1233
|
+
vote: raw.vote,
|
|
1234
|
+
timestamp: raw.timestamp,
|
|
1235
|
+
voteDownReason: raw.voteDownReason,
|
|
1236
|
+
result,
|
|
1237
|
+
followups: raw.followups,
|
|
1238
|
+
restoredId: raw.responseId,
|
|
1239
|
+
timeSpentWaiting: raw.timeSpentWaiting,
|
|
1240
|
+
shouldBeBlocked: request.shouldBeBlocked.get(),
|
|
1241
|
+
codeBlockInfos: raw.responseMarkdownInfo?.map(info => ({
|
|
1242
|
+
suggestionId: info.suggestionId
|
|
1243
|
+
}))
|
|
1244
|
+
}));
|
|
1245
|
+
request.response.shouldBeRemovedOnSend = raw.isHidden ? {
|
|
1246
|
+
requestId: raw.requestId
|
|
1247
|
+
} : raw.shouldBeRemovedOnSend;
|
|
1248
|
+
if (raw.usedContext) {
|
|
1249
|
+
request.response.applyReference(revive(raw.usedContext));
|
|
1250
|
+
}
|
|
1251
|
+
raw.contentReferences?.forEach(r => request.response.applyReference(revive(r)));
|
|
1252
|
+
raw.codeCitations?.forEach(c => request.response.applyCodeCitation(revive(c)));
|
|
1253
|
+
}
|
|
1254
|
+
return request;
|
|
1255
|
+
}
|
|
1181
1256
|
reviveVariableData(raw) {
|
|
1182
1257
|
const variableData = raw && Array.isArray(raw.variables) ? raw : {
|
|
1183
1258
|
variables: []
|
|
@@ -1197,6 +1272,22 @@ let ChatModel = ChatModel_1 = class ChatModel extends Disposable {
|
|
|
1197
1272
|
parts
|
|
1198
1273
|
};
|
|
1199
1274
|
}
|
|
1275
|
+
_deserializePendingRequests(pendingRequests) {
|
|
1276
|
+
try {
|
|
1277
|
+
return ( pendingRequests.map(pending => ({
|
|
1278
|
+
id: pending.id,
|
|
1279
|
+
request: this._deserializeRequest(pending.request),
|
|
1280
|
+
kind: pending.kind,
|
|
1281
|
+
sendOptions: {
|
|
1282
|
+
...pending.sendOptions,
|
|
1283
|
+
userSelectedTools: pending.sendOptions.userSelectedTools ? constObservable(pending.sendOptions.userSelectedTools) : undefined
|
|
1284
|
+
}
|
|
1285
|
+
})));
|
|
1286
|
+
} catch (e) {
|
|
1287
|
+
this.logService.error("Failed to parse pending chat requests", e);
|
|
1288
|
+
return [];
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1200
1291
|
getRequests() {
|
|
1201
1292
|
return this._requests;
|
|
1202
1293
|
}
|
|
@@ -1503,9 +1594,24 @@ function getCodeCitationsMessage(citations) {
|
|
|
1503
1594
|
return "";
|
|
1504
1595
|
}
|
|
1505
1596
|
const licenseTypes = citations.reduce((set, c) => set.add(c.license), ( new Set()));
|
|
1506
|
-
const label = licenseTypes.size === 1 ? ( localize(
|
|
1597
|
+
const label = licenseTypes.size === 1 ? ( localize(6348, "Similar code found with 1 license type", licenseTypes.size)) : ( localize(6349, "Similar code found with {0} license types", licenseTypes.size));
|
|
1507
1598
|
return label;
|
|
1508
1599
|
}
|
|
1600
|
+
function serializeSendOptions(options) {
|
|
1601
|
+
return {
|
|
1602
|
+
modeInfo: options.modeInfo,
|
|
1603
|
+
userSelectedModelId: options.userSelectedModelId,
|
|
1604
|
+
userSelectedTools: options.userSelectedTools?.get(),
|
|
1605
|
+
location: options.location,
|
|
1606
|
+
locationData: options.locationData,
|
|
1607
|
+
attempt: options.attempt,
|
|
1608
|
+
noCommandDetection: options.noCommandDetection,
|
|
1609
|
+
agentId: options.agentId,
|
|
1610
|
+
agentIdSilent: options.agentIdSilent,
|
|
1611
|
+
slashCommand: options.slashCommand,
|
|
1612
|
+
confirmation: options.confirmation
|
|
1613
|
+
};
|
|
1614
|
+
}
|
|
1509
1615
|
var ChatRequestEditedFileEventKind;
|
|
1510
1616
|
(function(ChatRequestEditedFileEventKind) {
|
|
1511
1617
|
ChatRequestEditedFileEventKind[ChatRequestEditedFileEventKind["Keep"] = 1] = "Keep";
|
|
@@ -1554,4 +1660,4 @@ var ChatResponseResource;
|
|
|
1554
1660
|
ChatResponseResource.parseUri = parseUri;
|
|
1555
1661
|
})(ChatResponseResource || (ChatResponseResource = {}));
|
|
1556
1662
|
|
|
1557
|
-
export { CHAT_ATTACHABLE_IMAGE_MIME_TYPES, ChatModel, ChatRequestEditedFileEventKind, ChatRequestModel, ChatRequestRemovalReason, ChatResponseModel, ChatResponseResource, IChatRequestVariableData, Response, appendMarkdownString, canMergeMarkdownStrings, defaultChatResponseModelChangeReason, getAttachableImageExtension, getCodeCitationsMessage, isCellTextEditOperation, isCellTextEditOperationArray, isExportableSessionData, isSerializableSessionData, normalizeSerializableChatData, toChatHistoryContent, updateRanges };
|
|
1663
|
+
export { CHAT_ATTACHABLE_IMAGE_MIME_TYPES, ChatModel, ChatRequestEditedFileEventKind, ChatRequestModel, ChatRequestRemovalReason, ChatResponseModel, ChatResponseResource, IChatRequestVariableData, Response, appendMarkdownString, canMergeMarkdownStrings, defaultChatResponseModelChangeReason, getAttachableImageExtension, getCodeCitationsMessage, isCellTextEditOperation, isCellTextEditOperationArray, isExportableSessionData, isSerializableSessionData, normalizeSerializableChatData, serializeSendOptions, toChatHistoryContent, updateRanges };
|
|
@@ -6,7 +6,7 @@ import { ThemeIcon } from "../../../../../base/common/themables.js";
|
|
|
6
6
|
import { URI } from "../../../../../base/common/uri.js";
|
|
7
7
|
import { IInstantiationService } from "../../../../../platform/instantiation/common/instantiation.js";
|
|
8
8
|
import { IChatRequestVariableEntry } from "../attachments/chatVariableEntries.js";
|
|
9
|
-
import { ChatAgentVoteDirection, ChatAgentVoteDownReason, IChatCodeCitation, IChatContentReference, IChatFollowup, IChatMcpServersStarting, IChatProgressMessage, IChatQuestionCarousel, IChatResponseErrorDetails, IChatTask, IChatUsedContext } from "../chatService/chatService.js";
|
|
9
|
+
import { ChatAgentVoteDirection, ChatAgentVoteDownReason, ChatRequestQueueKind, IChatCodeCitation, IChatContentReference, IChatDisabledClaudeHooksPart, IChatFollowup, IChatMcpServersStarting, IChatProgressMessage, IChatQuestionCarousel, IChatResponseErrorDetails, IChatTask, IChatUsedContext } from "../chatService/chatService.js";
|
|
10
10
|
import { IChatAgentCommand, IChatAgentData, IChatAgentResult } from "../participants/chatAgents.js";
|
|
11
11
|
import { IChatAgentNameService } from "../participants/chatAgents.service.js";
|
|
12
12
|
import { IParsedChatRequest } from "../requestParser/chatParserTypes.js";
|
|
@@ -15,6 +15,7 @@ import { IChatModel, IChatProgressRenderableResponseContent, IChatRequestDisable
|
|
|
15
15
|
import { IChatStreamStats } from "./chatStreamStats.js";
|
|
16
16
|
export declare function isRequestVM(item: unknown): item is IChatRequestViewModel;
|
|
17
17
|
export declare function isResponseVM(item: unknown): item is IChatResponseViewModel;
|
|
18
|
+
export declare function isPendingDividerVM(item: unknown): item is IChatPendingDividerViewModel;
|
|
18
19
|
export declare function isChatTreeItem(item: unknown): item is IChatRequestViewModel | IChatResponseViewModel;
|
|
19
20
|
export declare function assertIsResponseVM(item: unknown): asserts item is IChatResponseViewModel;
|
|
20
21
|
export type IChatViewModelChangeEvent = IChatAddRequestEvent | IChangePlaceholderEvent | IChatSessionInitEvent | IChatSetHiddenEvent | null;
|
|
@@ -36,7 +37,7 @@ export interface IChatViewModel {
|
|
|
36
37
|
readonly onDidDisposeModel: Event<void>;
|
|
37
38
|
readonly onDidChange: Event<IChatViewModelChangeEvent>;
|
|
38
39
|
readonly inputPlaceholder?: string;
|
|
39
|
-
getItems(): (IChatRequestViewModel | IChatResponseViewModel)[];
|
|
40
|
+
getItems(): (IChatRequestViewModel | IChatResponseViewModel | IChatPendingDividerViewModel)[];
|
|
40
41
|
setInputPlaceholder(text: string): void;
|
|
41
42
|
resetInputPlaceholder(): void;
|
|
42
43
|
editing?: IChatRequestViewModel;
|
|
@@ -64,6 +65,8 @@ export interface IChatRequestViewModel {
|
|
|
64
65
|
readonly shouldBeBlocked: IObservable<boolean>;
|
|
65
66
|
readonly modelId?: string;
|
|
66
67
|
readonly timestamp: number;
|
|
68
|
+
/** The kind of pending request, or undefined if not pending */
|
|
69
|
+
readonly pendingKind?: ChatRequestQueueKind;
|
|
67
70
|
}
|
|
68
71
|
export interface IChatResponseMarkdownRenderData {
|
|
69
72
|
renderedWordCount: number;
|
|
@@ -134,7 +137,7 @@ export interface IChatChangesSummaryPart {
|
|
|
134
137
|
/**
|
|
135
138
|
* Type for content parts rendered by IChatListRenderer (not necessarily in the model)
|
|
136
139
|
*/
|
|
137
|
-
export type IChatRendererContent = IChatProgressRenderableResponseContent | IChatReferences | IChatCodeCitations | IChatErrorDetailsPart | IChatChangesSummaryPart | IChatWorkingProgress | IChatMcpServersStarting | IChatQuestionCarousel;
|
|
140
|
+
export type IChatRendererContent = IChatProgressRenderableResponseContent | IChatReferences | IChatCodeCitations | IChatErrorDetailsPart | IChatChangesSummaryPart | IChatWorkingProgress | IChatMcpServersStarting | IChatQuestionCarousel | IChatDisabledClaudeHooksPart;
|
|
138
141
|
export interface IChatResponseViewModel {
|
|
139
142
|
readonly model: IChatResponseModel;
|
|
140
143
|
readonly id: string;
|
|
@@ -173,6 +176,14 @@ export interface IChatResponseViewModel {
|
|
|
173
176
|
setEditApplied(edit: IChatTextEditGroup, editCount: number): void;
|
|
174
177
|
readonly shouldBeBlocked: IObservable<boolean>;
|
|
175
178
|
}
|
|
179
|
+
export interface IChatPendingDividerViewModel {
|
|
180
|
+
readonly kind: "pendingDivider";
|
|
181
|
+
readonly id: string;
|
|
182
|
+
readonly sessionResource: URI;
|
|
183
|
+
readonly isComplete: true;
|
|
184
|
+
readonly dividerKind: ChatRequestQueueKind;
|
|
185
|
+
currentRenderedHeight: number | undefined;
|
|
186
|
+
}
|
|
176
187
|
export interface IChatViewModelOptions {
|
|
177
188
|
/**
|
|
178
189
|
* Maximum number of items to return from getItems().
|
|
@@ -198,7 +209,7 @@ export declare class ChatViewModel extends Disposable implements IChatViewModel
|
|
|
198
209
|
get sessionResource(): URI;
|
|
199
210
|
constructor(_model: IChatModel, codeBlockModelCollection: CodeBlockModelCollection, _options: IChatViewModelOptions | undefined, instantiationService: IInstantiationService);
|
|
200
211
|
private onAddResponse;
|
|
201
|
-
getItems(): (IChatRequestViewModel | IChatResponseViewModel)[];
|
|
212
|
+
getItems(): (IChatRequestViewModel | IChatResponseViewModel | IChatPendingDividerViewModel)[];
|
|
202
213
|
private _editing;
|
|
203
214
|
get editing(): IChatRequestViewModel | undefined;
|
|
204
215
|
setEditing(editing: IChatRequestViewModel | undefined): void;
|
|
@@ -206,6 +217,7 @@ export declare class ChatViewModel extends Disposable implements IChatViewModel
|
|
|
206
217
|
}
|
|
207
218
|
export declare class ChatRequestViewModel implements IChatRequestViewModel {
|
|
208
219
|
private readonly _model;
|
|
220
|
+
private readonly _pendingKind?;
|
|
209
221
|
get id(): string;
|
|
210
222
|
/**
|
|
211
223
|
* An ID that changes when the request should be re-rendered.
|
|
@@ -229,7 +241,8 @@ export declare class ChatRequestViewModel implements IChatRequestViewModel {
|
|
|
229
241
|
currentRenderedHeight: number | undefined;
|
|
230
242
|
get modelId(): string | undefined;
|
|
231
243
|
get timestamp(): number;
|
|
232
|
-
|
|
244
|
+
get pendingKind(): ChatRequestQueueKind | undefined;
|
|
245
|
+
constructor(_model: IChatRequestModel, _pendingKind?: ChatRequestQueueKind | undefined);
|
|
233
246
|
}
|
|
234
247
|
export declare class ChatResponseViewModel extends Disposable implements IChatResponseViewModel {
|
|
235
248
|
private readonly _model;
|
|
@@ -4,6 +4,7 @@ import { Codicon } from '../../../../../base/common/codicons.js';
|
|
|
4
4
|
import { Emitter } from '../../../../../base/common/event.js';
|
|
5
5
|
import { Disposable, dispose } from '../../../../../base/common/lifecycle.js';
|
|
6
6
|
import { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';
|
|
7
|
+
import { ChatRequestQueueKind } from '../chatService/chatService.js';
|
|
7
8
|
import { getFullyQualifiedId } from '../participants/chatAgents.js';
|
|
8
9
|
import { IChatAgentNameService } from '../participants/chatAgents.service.js';
|
|
9
10
|
import { ChatStreamStatsTracker } from './chatStreamStats.js';
|
|
@@ -15,6 +16,9 @@ function isRequestVM(item) {
|
|
|
15
16
|
function isResponseVM(item) {
|
|
16
17
|
return !!item && typeof item.setVote !== "undefined";
|
|
17
18
|
}
|
|
19
|
+
function isPendingDividerVM(item) {
|
|
20
|
+
return !!item && typeof item === "object" && item.kind === "pendingDivider";
|
|
21
|
+
}
|
|
18
22
|
function isChatTreeItem(item) {
|
|
19
23
|
return isRequestVM(item) || isResponseVM(item);
|
|
20
24
|
}
|
|
@@ -66,6 +70,7 @@ let ChatViewModel = class ChatViewModel extends Disposable {
|
|
|
66
70
|
}
|
|
67
71
|
});
|
|
68
72
|
this._register(_model.onDidDispose(() => this._onDidDisposeModel.fire()));
|
|
73
|
+
this._register(_model.onDidChangePendingRequests(() => this._onDidChange.fire(null)));
|
|
69
74
|
this._register(_model.onDidChange(e => {
|
|
70
75
|
if (e.kind === "addRequest") {
|
|
71
76
|
const requestModel = this.instantiationService.createInstance(ChatRequestViewModel, e.request);
|
|
@@ -107,11 +112,44 @@ let ChatViewModel = class ChatViewModel extends Disposable {
|
|
|
107
112
|
this._items.push(response);
|
|
108
113
|
}
|
|
109
114
|
getItems() {
|
|
110
|
-
|
|
115
|
+
let items = this._items.filter(
|
|
111
116
|
item => !item.shouldBeRemovedOnSend || item.shouldBeRemovedOnSend.afterUndoStop
|
|
112
117
|
);
|
|
113
118
|
if (this._options?.maxVisibleItems !== undefined && items.length > this._options.maxVisibleItems) {
|
|
114
|
-
|
|
119
|
+
items = items.slice(-this._options.maxVisibleItems);
|
|
120
|
+
}
|
|
121
|
+
const pendingRequests = this._model.getPendingRequests();
|
|
122
|
+
if (pendingRequests.length > 0) {
|
|
123
|
+
const steeringRequests = pendingRequests.filter(p => p.kind === ChatRequestQueueKind.Steering);
|
|
124
|
+
const queuedRequests = pendingRequests.filter(p => p.kind === ChatRequestQueueKind.Queued);
|
|
125
|
+
if (steeringRequests.length > 0) {
|
|
126
|
+
items.push({
|
|
127
|
+
kind: "pendingDivider",
|
|
128
|
+
id: "pending-divider-steering",
|
|
129
|
+
sessionResource: this._model.sessionResource,
|
|
130
|
+
isComplete: true,
|
|
131
|
+
dividerKind: ChatRequestQueueKind.Steering,
|
|
132
|
+
currentRenderedHeight: undefined
|
|
133
|
+
});
|
|
134
|
+
for (const pending of steeringRequests) {
|
|
135
|
+
const requestVM = this.instantiationService.createInstance(ChatRequestViewModel, pending.request, pending.kind);
|
|
136
|
+
items.push(requestVM);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (queuedRequests.length > 0) {
|
|
140
|
+
items.push({
|
|
141
|
+
kind: "pendingDivider",
|
|
142
|
+
id: "pending-divider-queued",
|
|
143
|
+
sessionResource: this._model.sessionResource,
|
|
144
|
+
isComplete: true,
|
|
145
|
+
dividerKind: ChatRequestQueueKind.Queued,
|
|
146
|
+
currentRenderedHeight: undefined
|
|
147
|
+
});
|
|
148
|
+
for (const pending of queuedRequests) {
|
|
149
|
+
const requestVM = this.instantiationService.createInstance(ChatRequestViewModel, pending.request, pending.kind);
|
|
150
|
+
items.push(requestVM);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
115
153
|
}
|
|
116
154
|
return items;
|
|
117
155
|
}
|
|
@@ -188,8 +226,12 @@ class ChatRequestViewModel {
|
|
|
188
226
|
get timestamp() {
|
|
189
227
|
return this._model.timestamp;
|
|
190
228
|
}
|
|
191
|
-
|
|
229
|
+
get pendingKind() {
|
|
230
|
+
return this._pendingKind;
|
|
231
|
+
}
|
|
232
|
+
constructor(_model, _pendingKind) {
|
|
192
233
|
this._model = _model;
|
|
234
|
+
this._pendingKind = _pendingKind;
|
|
193
235
|
}
|
|
194
236
|
}
|
|
195
237
|
let ChatResponseViewModel = class ChatResponseViewModel extends Disposable {
|
|
@@ -337,4 +379,4 @@ let ChatResponseViewModel = class ChatResponseViewModel extends Disposable {
|
|
|
337
379
|
};
|
|
338
380
|
ChatResponseViewModel = ( __decorate([( __param(2, IInstantiationService)), ( __param(3, IChatAgentNameService))], ChatResponseViewModel));
|
|
339
381
|
|
|
340
|
-
export { ChatRequestViewModel, ChatResponseViewModel, ChatViewModel, assertIsResponseVM, isChatTreeItem, isRequestVM, isResponseVM };
|
|
382
|
+
export { ChatRequestViewModel, ChatResponseViewModel, ChatViewModel, assertIsResponseVM, isChatTreeItem, isPendingDividerVM, isRequestVM, isResponseVM };
|
|
@@ -14,6 +14,7 @@ import { IProductService } from "../../../../../platform/product/common/productS
|
|
|
14
14
|
import { IRequestService } from "../../../../../platform/request/common/request.service.js";
|
|
15
15
|
import { IStorageService } from "../../../../../platform/storage/common/storage.service.js";
|
|
16
16
|
import { IChatAgentEditedFileEvent, IChatProgressHistoryResponseContent, IChatRequestModeInstructions, IChatRequestVariableData, ISerializableChatAgentData } from "../model/chatModel.js";
|
|
17
|
+
import { IChatRequestHooks } from "../promptSyntax/hookSchema.js";
|
|
17
18
|
import { IRawChatCommandContribution } from "./chatParticipantContribTypes.js";
|
|
18
19
|
import { IChatFollowup, IChatLocationData, IChatProgress, IChatResponseErrorDetails, IChatTaskDto } from "../chatService/chatService.js";
|
|
19
20
|
import { ChatAgentLocation, ChatModeKind } from "../constants.js";
|
|
@@ -75,6 +76,7 @@ export interface IChatWelcomeMessageContent {
|
|
|
75
76
|
export interface IChatAgentImplementation {
|
|
76
77
|
invoke(request: IChatAgentRequest, progress: (parts: IChatProgress[]) => void, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<IChatAgentResult>;
|
|
77
78
|
setRequestTools?(requestId: string, tools: UserSelectedTools): void;
|
|
79
|
+
setYieldRequested?(requestId: string): void;
|
|
78
80
|
provideFollowups?(request: IChatAgentRequest, result: IChatAgentResult, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<IChatFollowup[]>;
|
|
79
81
|
provideChatTitle?: (history: IChatAgentHistoryEntry[], token: CancellationToken) => Promise<string | undefined>;
|
|
80
82
|
provideChatSummary?: (history: IChatAgentHistoryEntry[], token: CancellationToken) => Promise<string | undefined>;
|
|
@@ -133,6 +135,15 @@ export interface IChatAgentRequest {
|
|
|
133
135
|
userSelectedTools?: UserSelectedTools;
|
|
134
136
|
modeInstructions?: IChatRequestModeInstructions;
|
|
135
137
|
editedFileEvents?: IChatAgentEditedFileEvent[];
|
|
138
|
+
/**
|
|
139
|
+
* Collected hooks configuration for this request.
|
|
140
|
+
* Contains all hooks defined in hooks .json files, organized by hook type.
|
|
141
|
+
*/
|
|
142
|
+
hooks?: IChatRequestHooks;
|
|
143
|
+
/**
|
|
144
|
+
* Whether any hooks are enabled for this request.
|
|
145
|
+
*/
|
|
146
|
+
hasHooksEnabled?: boolean;
|
|
136
147
|
/**
|
|
137
148
|
* Unique ID for the subagent invocation, used to group tool calls from the same subagent run together.
|
|
138
149
|
*/
|
|
@@ -141,6 +152,10 @@ export interface IChatAgentRequest {
|
|
|
141
152
|
* Display name of the subagent that is invoking this request.
|
|
142
153
|
*/
|
|
143
154
|
subAgentName?: string;
|
|
155
|
+
/**
|
|
156
|
+
* The request ID of the parent request that invoked this subagent.
|
|
157
|
+
*/
|
|
158
|
+
parentRequestId?: string;
|
|
144
159
|
}
|
|
145
160
|
export interface IChatQuestion {
|
|
146
161
|
readonly prompt: string;
|
|
@@ -224,6 +239,7 @@ export declare class ChatAgentService extends Disposable implements IChatAgentSe
|
|
|
224
239
|
agentHasDupeName(id: string): boolean;
|
|
225
240
|
invokeAgent(id: string, request: IChatAgentRequest, progress: (parts: IChatProgress[]) => void, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<IChatAgentResult>;
|
|
226
241
|
setRequestTools(id: string, requestId: string, tools: UserSelectedTools): void;
|
|
242
|
+
setYieldRequested(id: string, requestId: string): void;
|
|
227
243
|
getFollowups(id: string, request: IChatAgentRequest, result: IChatAgentResult, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<IChatFollowup[]>;
|
|
228
244
|
getChatTitle(id: string, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<string | undefined>;
|
|
229
245
|
getChatSummary(id: string, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<string | undefined>;
|
|
@@ -265,6 +281,7 @@ export declare class MergedChatAgent implements IChatAgent {
|
|
|
265
281
|
}[];
|
|
266
282
|
invoke(request: IChatAgentRequest, progress: (parts: IChatProgress[]) => void, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<IChatAgentResult>;
|
|
267
283
|
setRequestTools(requestId: string, tools: UserSelectedTools): void;
|
|
284
|
+
setYieldRequested(requestId: string): void;
|
|
268
285
|
provideFollowups(request: IChatAgentRequest, result: IChatAgentResult, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<IChatFollowup[]>;
|
|
269
286
|
toJSON(): IChatAgentData;
|
|
270
287
|
}
|
|
@@ -237,6 +237,13 @@ let ChatAgentService = class ChatAgentService extends Disposable {
|
|
|
237
237
|
}
|
|
238
238
|
data.impl.setRequestTools?.(requestId, tools);
|
|
239
239
|
}
|
|
240
|
+
setYieldRequested(id, requestId) {
|
|
241
|
+
const data = this._agents.get(id);
|
|
242
|
+
if (!data?.impl) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
data.impl.setYieldRequested?.(requestId);
|
|
246
|
+
}
|
|
240
247
|
async getFollowups(id, request, result, history, token) {
|
|
241
248
|
const data = this._agents.get(id);
|
|
242
249
|
if (!data?.impl?.provideFollowups) {
|
|
@@ -374,6 +381,9 @@ class MergedChatAgent {
|
|
|
374
381
|
setRequestTools(requestId, tools) {
|
|
375
382
|
this.impl.setRequestTools?.(requestId, tools);
|
|
376
383
|
}
|
|
384
|
+
setYieldRequested(requestId) {
|
|
385
|
+
this.impl.setYieldRequested?.(requestId);
|
|
386
|
+
}
|
|
377
387
|
async provideFollowups(request, result, history, token) {
|
|
378
388
|
if (this.impl.provideFollowups) {
|
|
379
389
|
return this.impl.provideFollowups(request, result, history, token);
|
|
@@ -27,6 +27,7 @@ export interface IChatAgentService {
|
|
|
27
27
|
hasChatParticipantDetectionProviders(): boolean;
|
|
28
28
|
invokeAgent(agent: string, request: IChatAgentRequest, progress: (parts: IChatProgress[]) => void, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<IChatAgentResult>;
|
|
29
29
|
setRequestTools(agent: string, requestId: string, tools: UserSelectedTools): void;
|
|
30
|
+
setYieldRequested(agent: string, requestId: string): void;
|
|
30
31
|
getFollowups(id: string, request: IChatAgentRequest, result: IChatAgentResult, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<IChatFollowup[]>;
|
|
31
32
|
getChatTitle(id: string, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<string | undefined>;
|
|
32
33
|
getChatSummary(id: string, history: IChatAgentHistoryEntry[], token: CancellationToken): Promise<string | undefined>;
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.d.ts
CHANGED
|
@@ -18,6 +18,9 @@ export type InstructionsCollectionEvent = {
|
|
|
18
18
|
agentInstructionsCount: number;
|
|
19
19
|
listedInstructionsCount: number;
|
|
20
20
|
totalInstructionsCount: number;
|
|
21
|
+
claudeRulesCount: number;
|
|
22
|
+
claudeMdCount: number;
|
|
23
|
+
claudeAgentsCount: number;
|
|
21
24
|
};
|
|
22
25
|
export declare function newInstructionsCollectionEvent(): InstructionsCollectionEvent;
|
|
23
26
|
export declare class ComputeAutomaticInstructions {
|
|
@@ -44,6 +47,12 @@ export declare class ComputeAutomaticInstructions {
|
|
|
44
47
|
}, variables: ChatRequestVariableSet, telemetryEvent: InstructionsCollectionEvent, token: CancellationToken): Promise<void>;
|
|
45
48
|
private _getContext;
|
|
46
49
|
private _addAgentInstructions;
|
|
50
|
+
/**
|
|
51
|
+
* Combines the `applyTo` and `paths` attributes into a single comma-separated
|
|
52
|
+
* pattern string that can be matched by {@link _matches}.
|
|
53
|
+
* Used for the instructions list XML output where both should be shown.
|
|
54
|
+
*/
|
|
55
|
+
private _getApplyToPattern;
|
|
47
56
|
private _matches;
|
|
48
57
|
private _getTool;
|
|
49
58
|
private _getInstructionsWithPatternsList;
|