@codingame/monaco-vscode-chat-service-override 20.4.1 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +15 -7
- package/package.json +38 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +60 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +56 -46
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +18 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +52 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +28 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +19 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +15 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +433 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +7 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +205 -551
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +52 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -163
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +20 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +11 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +32 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +22 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +22 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +6 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +47 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +12 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +8 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +33 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +74 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.js +36 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +36 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +37 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +238 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +23 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +257 -148
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +126 -77
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +3 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +55 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +13 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +130 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-dark.svg +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-light.svg +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +39 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +5 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +4 -8
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +153 -168
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +127 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +111 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +66 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +143 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +12 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.d.ts +8 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +41 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +55 -22
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.js +3 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +8 -23
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +4 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +11 -5
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +54 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +33 -31
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +9 -9
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +9 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +11 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +1 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.d.ts +16 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +84 -25
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +55 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +8 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +15 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +72 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +8 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +19 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +12 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +85 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +448 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +30 -77
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +62 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +174 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +75 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +15 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +81 -38
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +106 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.js → tools/getTerminalOutputTool.js} +5 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +59 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +57 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +452 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +31 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.d.ts → tools/runInTerminalTool.d.ts} +11 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.js → tools/runInTerminalTool.js} +282 -133
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.d.ts +5 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.js +51 -50
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/getTaskOutputTool.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +117 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.d.ts +3 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.js +54 -50
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +36 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.js +8 -0
- package/vscode/src/vs/base/common/policy.d.ts +0 -41
- package/vscode/src/vs/base/common/policy.js +0 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +0 -738
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +0 -42
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.d.ts +0 -67
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.js +0 -167
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.d.ts +0 -23
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +0 -63
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +0 -55
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +0 -163
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +0 -88
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +0 -35
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.js +0 -80
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +0 -40
- /package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.d.ts → tools/getTerminalOutputTool.d.ts} +0 -0
|
@@ -14,7 +14,6 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/in
|
|
|
14
14
|
import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
|
|
15
15
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
16
16
|
import { OffsetRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/offsetRange';
|
|
17
|
-
import { isLocation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
|
|
18
17
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
19
18
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
20
19
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
@@ -22,7 +21,6 @@ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log
|
|
|
22
21
|
import { Progress } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress';
|
|
23
22
|
import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
24
23
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
25
|
-
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
26
24
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
27
25
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
28
26
|
import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
|
|
@@ -30,16 +28,14 @@ import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
30
28
|
import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, updateRanges, toChatHistoryContent, ChatRequestModel } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel';
|
|
31
29
|
import { ChatRequestTextPart, ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader, ChatRequestSlashCommandPart, getPromptText } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
|
|
32
30
|
import { ChatRequestParser } from '@codingame/monaco-vscode-0af61f78-dfc5-57ba-8d32-66268c8de38d-common/vscode/vs/workbench/contrib/chat/common/chatRequestParser';
|
|
33
|
-
import { ChatServiceTelemetry } from './chatServiceTelemetry.js';
|
|
31
|
+
import { ChatServiceTelemetry, ChatRequestTelemetry } from './chatServiceTelemetry.js';
|
|
34
32
|
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
35
33
|
import { ChatSessionStore } from './chatSessionStore.js';
|
|
36
34
|
import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSlashCommands.service';
|
|
37
35
|
import { IChatTransferService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatTransferService.service';
|
|
38
36
|
import { ChatSessionUri } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatUri';
|
|
39
|
-
import { isImageVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatVariableEntries';
|
|
40
37
|
import { ChatConfiguration, ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
41
38
|
import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
42
|
-
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
43
39
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
|
|
44
40
|
import { ObservableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/map';
|
|
45
41
|
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
@@ -82,19 +78,17 @@ let ChatService = class ChatService extends Disposable {
|
|
|
82
78
|
const workspace = this.workspaceContextService.getWorkspace();
|
|
83
79
|
return !workspace.configuration && workspace.folders.length === 0;
|
|
84
80
|
}
|
|
85
|
-
constructor(storageService, logService, extensionService, instantiationService,
|
|
81
|
+
constructor(storageService, logService, extensionService, instantiationService, workspaceContextService, chatSlashCommandService, chatAgentService, configurationService, chatTransferService, chatSessionService, mcpService) {
|
|
86
82
|
super();
|
|
87
83
|
this.storageService = storageService;
|
|
88
84
|
this.logService = logService;
|
|
89
85
|
this.extensionService = extensionService;
|
|
90
86
|
this.instantiationService = instantiationService;
|
|
91
|
-
this.telemetryService = telemetryService;
|
|
92
87
|
this.workspaceContextService = workspaceContextService;
|
|
93
88
|
this.chatSlashCommandService = chatSlashCommandService;
|
|
94
89
|
this.chatAgentService = chatAgentService;
|
|
95
90
|
this.configurationService = configurationService;
|
|
96
91
|
this.chatTransferService = chatTransferService;
|
|
97
|
-
this.languageModelsService = languageModelsService;
|
|
98
92
|
this.chatSessionService = chatSessionService;
|
|
99
93
|
this.mcpService = mcpService;
|
|
100
94
|
this._sessionModels = ( new ObservableMap());
|
|
@@ -135,6 +129,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
135
129
|
this._chatSessionStore = this._register(this.instantiationService.createInstance(ChatSessionStore));
|
|
136
130
|
if (this.useFileStorage) {
|
|
137
131
|
this._chatSessionStore.migrateDataIfNeeded(() => this._persistedSessions);
|
|
132
|
+
this.initializePersistedSessionsFromFileStorage();
|
|
138
133
|
}
|
|
139
134
|
this._register(storageService.onWillSaveState(() => this.saveState()));
|
|
140
135
|
this.requestInProgressObs = derived(reader => {
|
|
@@ -147,7 +142,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
147
142
|
}
|
|
148
143
|
saveState() {
|
|
149
144
|
const liveChats = Array.from(( this._sessionModels.values()))
|
|
150
|
-
.filter(session => session.initialLocation === ChatAgentLocation.Panel);
|
|
145
|
+
.filter(session => !session.inputType && (session.initialLocation === ChatAgentLocation.Panel || session.initialLocation === ChatAgentLocation.Editor));
|
|
151
146
|
if (this.useFileStorage) {
|
|
152
147
|
this._chatSessionStore.storeSessions(liveChats);
|
|
153
148
|
}
|
|
@@ -224,15 +219,32 @@ let ChatService = class ChatService extends Disposable {
|
|
|
224
219
|
const model = this._sessionModels.get(sessionId);
|
|
225
220
|
if (model) {
|
|
226
221
|
model.setCustomTitle(title);
|
|
227
|
-
return;
|
|
228
222
|
}
|
|
229
223
|
if (this.useFileStorage) {
|
|
230
224
|
await this._chatSessionStore.setSessionTitle(sessionId, title);
|
|
231
|
-
|
|
225
|
+
await this.saveState();
|
|
232
226
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
227
|
+
else {
|
|
228
|
+
if (this._persistedSessions[sessionId]) {
|
|
229
|
+
this._persistedSessions[sessionId].customTitle = title;
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
this._persistedSessions[sessionId] = {
|
|
233
|
+
version: 3,
|
|
234
|
+
sessionId: sessionId,
|
|
235
|
+
customTitle: title,
|
|
236
|
+
creationDate: Date.now(),
|
|
237
|
+
lastMessageDate: Date.now(),
|
|
238
|
+
isImported: false,
|
|
239
|
+
initialLocation: undefined,
|
|
240
|
+
requests: [],
|
|
241
|
+
requesterUsername: '',
|
|
242
|
+
responderUsername: '',
|
|
243
|
+
requesterAvatarIconUri: undefined,
|
|
244
|
+
responderAvatarIconUri: undefined,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
await this.saveState();
|
|
236
248
|
}
|
|
237
249
|
}
|
|
238
250
|
trace(method, message) {
|
|
@@ -289,12 +301,36 @@ let ChatService = class ChatService extends Disposable {
|
|
|
289
301
|
this.storageService.store(globalChatKey, JSON.stringify(filtered), StorageScope.PROFILE, StorageTarget.MACHINE);
|
|
290
302
|
return transferred;
|
|
291
303
|
}
|
|
304
|
+
async initializePersistedSessionsFromFileStorage() {
|
|
305
|
+
const index = await this._chatSessionStore.getIndex();
|
|
306
|
+
const sessionIds = ( Object.keys(index));
|
|
307
|
+
for (const sessionId of sessionIds) {
|
|
308
|
+
const metadata = index[sessionId];
|
|
309
|
+
if (metadata && !this._persistedSessions[sessionId]) {
|
|
310
|
+
const minimalSession = {
|
|
311
|
+
version: 3,
|
|
312
|
+
sessionId: sessionId,
|
|
313
|
+
customTitle: metadata.title,
|
|
314
|
+
creationDate: Date.now(),
|
|
315
|
+
lastMessageDate: metadata.lastMessageDate,
|
|
316
|
+
isImported: metadata.isImported || false,
|
|
317
|
+
initialLocation: metadata.initialLocation,
|
|
318
|
+
requests: [],
|
|
319
|
+
requesterUsername: '',
|
|
320
|
+
responderUsername: '',
|
|
321
|
+
requesterAvatarIconUri: undefined,
|
|
322
|
+
responderAvatarIconUri: undefined,
|
|
323
|
+
};
|
|
324
|
+
this._persistedSessions[sessionId] = minimalSession;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
292
328
|
async getHistory() {
|
|
293
329
|
if (this.useFileStorage) {
|
|
294
330
|
const liveSessionItems = ( Array.from(( this._sessionModels.values()))
|
|
295
|
-
.filter(session => !session.isImported)
|
|
331
|
+
.filter(session => !session.isImported && !session.inputType)
|
|
296
332
|
.map(session => {
|
|
297
|
-
const title = session.title || ( localize(
|
|
333
|
+
const title = session.title || ( localize(5544, "New Chat"));
|
|
298
334
|
return {
|
|
299
335
|
sessionId: session.sessionId,
|
|
300
336
|
title,
|
|
@@ -328,7 +364,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
328
364
|
const liveSessionItems = ( Array.from(( this._sessionModels.values()))
|
|
329
365
|
.filter(session => !session.isImported)
|
|
330
366
|
.map(session => {
|
|
331
|
-
const title = session.title || ( localize(
|
|
367
|
+
const title = session.title || ( localize(5544, "New Chat"));
|
|
332
368
|
return {
|
|
333
369
|
sessionId: session.sessionId,
|
|
334
370
|
title,
|
|
@@ -358,12 +394,12 @@ let ChatService = class ChatService extends Disposable {
|
|
|
358
394
|
this._persistedSessions = {};
|
|
359
395
|
this.saveState();
|
|
360
396
|
}
|
|
361
|
-
startSession(location, token, isGlobalEditingSession = true) {
|
|
397
|
+
startSession(location, token, isGlobalEditingSession = true, inputType) {
|
|
362
398
|
this.trace('startSession');
|
|
363
|
-
return this._startSession(undefined, location, isGlobalEditingSession, token);
|
|
399
|
+
return this._startSession(undefined, location, isGlobalEditingSession, token, inputType);
|
|
364
400
|
}
|
|
365
|
-
_startSession(someSessionHistory, location, isGlobalEditingSession, token) {
|
|
366
|
-
const model = this.instantiationService.createInstance(ChatModel, someSessionHistory, location);
|
|
401
|
+
_startSession(someSessionHistory, location, isGlobalEditingSession, token, inputType) {
|
|
402
|
+
const model = this.instantiationService.createInstance(ChatModel, someSessionHistory, { initialLocation: location, inputType });
|
|
367
403
|
if (location === ChatAgentLocation.Panel) {
|
|
368
404
|
model.startEditingSession(isGlobalEditingSession);
|
|
369
405
|
}
|
|
@@ -426,6 +462,24 @@ let ChatService = class ChatService extends Disposable {
|
|
|
426
462
|
}
|
|
427
463
|
return this._chatSessionStore.isSessionEmpty(sessionId);
|
|
428
464
|
}
|
|
465
|
+
getPersistedSessionTitle(sessionId) {
|
|
466
|
+
const session = this._persistedSessions[sessionId];
|
|
467
|
+
if (session) {
|
|
468
|
+
const title = session.customTitle || ChatModel.getDefaultTitle(session.requests);
|
|
469
|
+
return title;
|
|
470
|
+
}
|
|
471
|
+
if (this.useFileStorage) {
|
|
472
|
+
const internalGetIndex = this._chatSessionStore.internalGetIndex;
|
|
473
|
+
if (typeof internalGetIndex === 'function') {
|
|
474
|
+
const indexData = internalGetIndex.call(this._chatSessionStore);
|
|
475
|
+
const metadata = indexData.entries[sessionId];
|
|
476
|
+
if (metadata && metadata.title) {
|
|
477
|
+
return metadata.title;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
return undefined;
|
|
482
|
+
}
|
|
429
483
|
loadSessionFromContent(data) {
|
|
430
484
|
return this._startSession(data, data.initialLocation ?? ChatAgentLocation.Panel, true, CancellationToken.None);
|
|
431
485
|
}
|
|
@@ -438,9 +492,12 @@ let ChatService = class ChatService extends Disposable {
|
|
|
438
492
|
if (existing) {
|
|
439
493
|
return existing.model;
|
|
440
494
|
}
|
|
495
|
+
if (parsed.chatSessionType === 'local') {
|
|
496
|
+
return this.getOrRestoreSession(parsed.sessionId);
|
|
497
|
+
}
|
|
441
498
|
const chatSessionType = parsed.chatSessionType;
|
|
442
499
|
const content = await this.chatSessionService.provideChatSessionContent(chatSessionType, parsed.sessionId, CancellationToken.None);
|
|
443
|
-
const model = this._startSession(undefined, location, true, CancellationToken.None);
|
|
500
|
+
const model = this._startSession(undefined, location, true, CancellationToken.None, chatSessionType);
|
|
444
501
|
if (!( this._contentProviderSessionModels.has(chatSessionType))) {
|
|
445
502
|
this._contentProviderSessionModels.set(chatSessionType, ( new Map()));
|
|
446
503
|
}
|
|
@@ -453,15 +510,20 @@ let ChatService = class ChatService extends Disposable {
|
|
|
453
510
|
let lastRequest;
|
|
454
511
|
for (const message of content.history) {
|
|
455
512
|
if (message.type === 'request') {
|
|
513
|
+
if (lastRequest) {
|
|
514
|
+
model.completeResponse(lastRequest);
|
|
515
|
+
}
|
|
456
516
|
const requestText = message.prompt;
|
|
457
517
|
const parsedRequest = {
|
|
458
518
|
text: requestText,
|
|
459
519
|
parts: [( new ChatRequestTextPart(( new OffsetRange(0, requestText.length)), { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: requestText.length + 1 }, requestText))]
|
|
460
520
|
};
|
|
521
|
+
const agent = message.participant
|
|
522
|
+
? this.chatAgentService.getAgent(message.participant)
|
|
523
|
+
: this.chatAgentService.getAgent(chatSessionType);
|
|
461
524
|
lastRequest = model.addRequest(parsedRequest, { variables: [] },
|
|
462
525
|
0,
|
|
463
|
-
undefined,
|
|
464
|
-
undefined,
|
|
526
|
+
undefined, agent, undefined,
|
|
465
527
|
undefined,
|
|
466
528
|
undefined,
|
|
467
529
|
undefined,
|
|
@@ -476,7 +538,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
476
538
|
}
|
|
477
539
|
}
|
|
478
540
|
}
|
|
479
|
-
if (content.
|
|
541
|
+
if (content.progressObs && lastRequest && content.interruptActiveResponseCallback) {
|
|
480
542
|
const initialCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined);
|
|
481
543
|
this._pendingRequests.set(model.sessionId, initialCancellationRequest);
|
|
482
544
|
const cancellationListener = ( new MutableDisposable());
|
|
@@ -493,15 +555,20 @@ let ChatService = class ChatService extends Disposable {
|
|
|
493
555
|
};
|
|
494
556
|
cancellationListener.value = createCancellationListener(initialCancellationRequest.cancellationTokenSource.token);
|
|
495
557
|
disposables.add(cancellationListener);
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
558
|
+
let lastProgressLength = 0;
|
|
559
|
+
disposables.add(autorun(reader => {
|
|
560
|
+
const progressArray = content.progressObs?.read(reader) ?? [];
|
|
561
|
+
const isComplete = content.isCompleteObs?.read(reader) ?? false;
|
|
562
|
+
if (progressArray.length > lastProgressLength) {
|
|
563
|
+
const newProgress = progressArray.slice(lastProgressLength);
|
|
564
|
+
for (const progress of newProgress) {
|
|
503
565
|
model?.acceptResponseProgress(lastRequest, progress);
|
|
504
566
|
}
|
|
567
|
+
lastProgressLength = progressArray.length;
|
|
568
|
+
}
|
|
569
|
+
if (isComplete) {
|
|
570
|
+
model?.completeResponse(lastRequest);
|
|
571
|
+
cancellationListener.clear();
|
|
505
572
|
}
|
|
506
573
|
}));
|
|
507
574
|
}
|
|
@@ -525,7 +592,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
525
592
|
const location = options?.location ?? model.initialLocation;
|
|
526
593
|
const attempt = options?.attempt ?? 0;
|
|
527
594
|
const enableCommandDetection = !options?.noCommandDetection;
|
|
528
|
-
const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.
|
|
595
|
+
const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.modeInfo?.kind);
|
|
529
596
|
model.removeRequest(request.id, ChatRequestRemovalReason.Resend);
|
|
530
597
|
const resendOptions = {
|
|
531
598
|
...options,
|
|
@@ -536,7 +603,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
536
603
|
}
|
|
537
604
|
async sendRequest(sessionId, request, options) {
|
|
538
605
|
this.trace('sendRequest', `sessionId: ${sessionId}, message: ${request.substring(0, 20)}${request.length > 20 ? '[...]' : ''}}`);
|
|
539
|
-
if (!request.trim() && !options?.slashCommand && !options?.agentId) {
|
|
606
|
+
if (!request.trim() && !options?.slashCommand && !options?.agentId && !options?.agentIdSilent) {
|
|
540
607
|
this.trace('sendRequest', 'Rejected empty message');
|
|
541
608
|
return;
|
|
542
609
|
}
|
|
@@ -562,12 +629,13 @@ let ChatService = class ChatService extends Disposable {
|
|
|
562
629
|
}
|
|
563
630
|
const location = options?.location ?? model.initialLocation;
|
|
564
631
|
const attempt = options?.attempt ?? 0;
|
|
565
|
-
const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.
|
|
632
|
+
const defaultAgent = this.chatAgentService.getDefaultAgent(location, options?.modeInfo?.kind);
|
|
566
633
|
const parsedRequest = this.parseChatRequest(sessionId, request, location, options);
|
|
567
|
-
const
|
|
634
|
+
const silentAgent = options?.agentIdSilent ? this.chatAgentService.getAgent(options.agentIdSilent) : undefined;
|
|
635
|
+
const agent = silentAgent ?? parsedRequest.parts.find((r) => r instanceof ChatRequestAgentPart)?.agent ?? defaultAgent;
|
|
568
636
|
const agentSlashCommandPart = parsedRequest.parts.find((r) => r instanceof ChatRequestAgentSubcommandPart);
|
|
569
637
|
return {
|
|
570
|
-
...this._sendRequestAsync(model, sessionId, parsedRequest, attempt, !options?.noCommandDetection, defaultAgent, location, options),
|
|
638
|
+
...this._sendRequestAsync(model, sessionId, parsedRequest, attempt, !options?.noCommandDetection, silentAgent ?? defaultAgent, location, options),
|
|
571
639
|
agent,
|
|
572
640
|
slashCommand: agentSlashCommandPart?.command,
|
|
573
641
|
};
|
|
@@ -579,7 +647,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
579
647
|
if (!agent) {
|
|
580
648
|
throw ( new Error(`Unknown agent: ${options.agentId}`));
|
|
581
649
|
}
|
|
582
|
-
parserContext = { selectedAgent: agent, mode: options.
|
|
650
|
+
parserContext = { selectedAgent: agent, mode: options.modeInfo?.kind };
|
|
583
651
|
const commandPart = options.slashCommand ? ` ${chatSubcommandLeader}${options.slashCommand}` : '';
|
|
584
652
|
request = `${chatAgentLeader}${agent.name}${commandPart} ${request}`;
|
|
585
653
|
}
|
|
@@ -599,6 +667,15 @@ let ChatService = class ChatService extends Disposable {
|
|
|
599
667
|
const agentSlashCommandPart = 'kind' in parsedRequest ? undefined : parsedRequest.parts.find((r) => r instanceof ChatRequestAgentSubcommandPart);
|
|
600
668
|
const commandPart = 'kind' in parsedRequest ? undefined : parsedRequest.parts.find((r) => r instanceof ChatRequestSlashCommandPart);
|
|
601
669
|
const requests = [...model.getRequests()];
|
|
670
|
+
const requestTelemetry = this.instantiationService.createInstance(ChatRequestTelemetry, {
|
|
671
|
+
agentPart,
|
|
672
|
+
agentSlashCommandPart,
|
|
673
|
+
commandPart,
|
|
674
|
+
sessionId: model.sessionId,
|
|
675
|
+
location: model.initialLocation,
|
|
676
|
+
options,
|
|
677
|
+
enableCommandDetection
|
|
678
|
+
});
|
|
602
679
|
let gotProgress = false;
|
|
603
680
|
const requestType = commandPart ? 'slashCommand' : 'string';
|
|
604
681
|
const responseCreated = ( new DeferredPromise());
|
|
@@ -639,22 +716,13 @@ let ChatService = class ChatService extends Disposable {
|
|
|
639
716
|
if (!request) {
|
|
640
717
|
return;
|
|
641
718
|
}
|
|
642
|
-
|
|
719
|
+
requestTelemetry.complete({
|
|
643
720
|
timeToFirstProgress: undefined,
|
|
644
|
-
totalTime: stopWatch.elapsed(),
|
|
645
721
|
result: 'cancelled',
|
|
722
|
+
totalTime: stopWatch.elapsed(),
|
|
646
723
|
requestType,
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
slashCommand: agentSlashCommandPart ? agentSlashCommandPart.command.name : commandPart?.slashCommand.command,
|
|
650
|
-
chatSessionId: model.sessionId,
|
|
651
|
-
location,
|
|
652
|
-
citations: request?.response?.codeCitations.length ?? 0,
|
|
653
|
-
numCodeBlocks: getCodeBlocks(request.response?.response.toString() ?? '').length,
|
|
654
|
-
isParticipantDetected: !!detectedAgent,
|
|
655
|
-
enableCommandDetection,
|
|
656
|
-
attachmentKinds: this.attachmentKindsForTelemetry(request.variableData),
|
|
657
|
-
model: this.resolveModelId(options?.userSelectedModelId),
|
|
724
|
+
detectedAgent,
|
|
725
|
+
request,
|
|
658
726
|
});
|
|
659
727
|
model.cancelRequest(request);
|
|
660
728
|
}));
|
|
@@ -665,7 +733,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
665
733
|
if (agentPart || (defaultAgent && !commandPart)) {
|
|
666
734
|
const prepareChatAgentRequest = (agent, command, enableCommandDetection, chatRequest, isParticipantDetected) => {
|
|
667
735
|
const initVariableData = { variables: [] };
|
|
668
|
-
request = chatRequest ?? model.addRequest(parsedRequest, initVariableData, attempt, agent, command, options?.confirmation, options?.locationData, options?.attachedContext, undefined, options?.userSelectedModelId);
|
|
736
|
+
request = chatRequest ?? model.addRequest(parsedRequest, initVariableData, attempt, options?.modeInfo, agent, command, options?.confirmation, options?.locationData, options?.attachedContext, undefined, options?.userSelectedModelId);
|
|
669
737
|
let variableData;
|
|
670
738
|
let message;
|
|
671
739
|
if (chatRequest) {
|
|
@@ -687,7 +755,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
687
755
|
return;
|
|
688
756
|
}
|
|
689
757
|
if (tools) {
|
|
690
|
-
this.chatAgentService.setRequestTools(agent.id, request.id,
|
|
758
|
+
this.chatAgentService.setRequestTools(agent.id, request.id, tools);
|
|
691
759
|
}
|
|
692
760
|
}));
|
|
693
761
|
return {
|
|
@@ -706,11 +774,19 @@ let ChatService = class ChatService extends Disposable {
|
|
|
706
774
|
rejectedConfirmationData: options?.rejectedConfirmationData,
|
|
707
775
|
userSelectedModelId: options?.userSelectedModelId,
|
|
708
776
|
userSelectedTools: options?.userSelectedTools?.get(),
|
|
709
|
-
modeInstructions: options?.
|
|
777
|
+
modeInstructions: options?.modeInfo?.instructions,
|
|
710
778
|
editedFileEvents: request.editedFileEvents
|
|
711
779
|
};
|
|
712
780
|
};
|
|
713
|
-
if (this.configurationService.getValue('chat.detectParticipant.enabled') !== false &&
|
|
781
|
+
if (this.configurationService.getValue('chat.detectParticipant.enabled') !== false &&
|
|
782
|
+
this.chatAgentService.hasChatParticipantDetectionProviders() &&
|
|
783
|
+
!agentPart &&
|
|
784
|
+
!commandPart &&
|
|
785
|
+
!agentSlashCommandPart &&
|
|
786
|
+
enableCommandDetection &&
|
|
787
|
+
options?.modeInfo?.kind !== ChatModeKind.Agent &&
|
|
788
|
+
options?.modeInfo?.kind !== ChatModeKind.Edit &&
|
|
789
|
+
!options?.agentIdSilent) {
|
|
714
790
|
const defaultAgentHistory = this.getHistoryEntriesFromModel(requests, model.sessionId, location, defaultAgent.id);
|
|
715
791
|
const chatAgentRequest = prepareChatAgentRequest(defaultAgent, undefined, enableCommandDetection, undefined, false);
|
|
716
792
|
const result = await this.chatAgentService.detectAgentOrCommand(chatAgentRequest, defaultAgentHistory, { location }, token);
|
|
@@ -740,7 +816,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
740
816
|
}
|
|
741
817
|
else if (commandPart && this.chatSlashCommandService.hasCommand(commandPart.slashCommand.command)) {
|
|
742
818
|
if (commandPart.slashCommand.silent !== true) {
|
|
743
|
-
request = model.addRequest(parsedRequest, { variables: [] }, attempt);
|
|
819
|
+
request = model.addRequest(parsedRequest, { variables: [] }, attempt, options?.modeInfo);
|
|
744
820
|
completeResponseCreated();
|
|
745
821
|
}
|
|
746
822
|
const history = [];
|
|
@@ -767,29 +843,19 @@ let ChatService = class ChatService extends Disposable {
|
|
|
767
843
|
else {
|
|
768
844
|
if (!rawResult) {
|
|
769
845
|
this.trace('sendRequest', `Provider returned no response for session ${model.sessionId}`);
|
|
770
|
-
rawResult = { errorDetails: { message: ( localize(
|
|
846
|
+
rawResult = { errorDetails: { message: ( localize(5545, "Provider returned null response")) } };
|
|
771
847
|
}
|
|
772
848
|
const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
|
|
773
849
|
rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
|
|
774
850
|
rawResult.errorDetails ? 'error' :
|
|
775
851
|
'success';
|
|
776
|
-
|
|
777
|
-
this.telemetryService.publicLog2('interactiveSessionProviderInvoked', {
|
|
852
|
+
requestTelemetry.complete({
|
|
778
853
|
timeToFirstProgress: rawResult.timings?.firstProgress,
|
|
779
854
|
totalTime: rawResult.timings?.totalElapsed,
|
|
780
855
|
result,
|
|
781
856
|
requestType,
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
slashCommand: commandForTelemetry,
|
|
785
|
-
chatSessionId: model.sessionId,
|
|
786
|
-
enableCommandDetection,
|
|
787
|
-
isParticipantDetected: !!detectedAgent,
|
|
788
|
-
location,
|
|
789
|
-
citations: request.response?.codeCitations.length ?? 0,
|
|
790
|
-
numCodeBlocks: getCodeBlocks(request.response?.response.toString() ?? '').length,
|
|
791
|
-
attachmentKinds: this.attachmentKindsForTelemetry(request.variableData),
|
|
792
|
-
model: this.resolveModelId(options?.userSelectedModelId),
|
|
857
|
+
detectedAgent,
|
|
858
|
+
request,
|
|
793
859
|
});
|
|
794
860
|
model.setResponse(request, rawResult);
|
|
795
861
|
completeResponseCreated();
|
|
@@ -798,6 +864,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
798
864
|
if (agentOrCommandFollowups) {
|
|
799
865
|
agentOrCommandFollowups.then(followups => {
|
|
800
866
|
model.setFollowups(request, followups);
|
|
867
|
+
const commandForTelemetry = agentSlashCommandPart ? agentSlashCommandPart.command.name : commandPart?.slashCommand.command;
|
|
801
868
|
this._chatServiceTelemetry.retrievedFollowups(agentPart?.agent.id ?? '', commandForTelemetry, followups?.length ?? 0);
|
|
802
869
|
});
|
|
803
870
|
}
|
|
@@ -810,23 +877,13 @@ let ChatService = class ChatService extends Disposable {
|
|
|
810
877
|
}
|
|
811
878
|
catch (err) {
|
|
812
879
|
this.logService.error(`Error while handling chat request: ${toErrorMessage(err, true)}`);
|
|
813
|
-
|
|
814
|
-
this.telemetryService.publicLog2('interactiveSessionProviderInvoked', {
|
|
880
|
+
requestTelemetry.complete({
|
|
815
881
|
timeToFirstProgress: undefined,
|
|
816
882
|
totalTime: undefined,
|
|
817
|
-
result,
|
|
883
|
+
result: 'error',
|
|
818
884
|
requestType,
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
slashCommand: agentSlashCommandPart ? agentSlashCommandPart.command.name : commandPart?.slashCommand.command,
|
|
822
|
-
chatSessionId: model.sessionId,
|
|
823
|
-
location,
|
|
824
|
-
citations: 0,
|
|
825
|
-
numCodeBlocks: 0,
|
|
826
|
-
enableCommandDetection,
|
|
827
|
-
isParticipantDetected: !!detectedAgent,
|
|
828
|
-
attachmentKinds: request ? this.attachmentKindsForTelemetry(request.variableData) : [],
|
|
829
|
-
model: this.resolveModelId(options?.userSelectedModelId)
|
|
885
|
+
detectedAgent,
|
|
886
|
+
request,
|
|
830
887
|
});
|
|
831
888
|
if (request) {
|
|
832
889
|
const rawResult = { errorDetails: { message: err.message } };
|
|
@@ -850,9 +907,6 @@ let ChatService = class ChatService extends Disposable {
|
|
|
850
907
|
responseCompletePromise: rawResponsePromise,
|
|
851
908
|
};
|
|
852
909
|
}
|
|
853
|
-
resolveModelId(userSelectedModelId) {
|
|
854
|
-
return userSelectedModelId && this.languageModelsService.lookupLanguageModel(userSelectedModelId)?.id;
|
|
855
|
-
}
|
|
856
910
|
prepareContext(attachedContextVariables) {
|
|
857
911
|
attachedContextVariables ??= [];
|
|
858
912
|
attachedContextVariables.sort((a, b) => {
|
|
@@ -869,53 +923,6 @@ let ChatService = class ChatService extends Disposable {
|
|
|
869
923
|
});
|
|
870
924
|
return attachedContextVariables;
|
|
871
925
|
}
|
|
872
|
-
attachmentKindsForTelemetry(variableData) {
|
|
873
|
-
return ( variableData.variables.map(v => {
|
|
874
|
-
if (v.kind === 'implicit') {
|
|
875
|
-
return 'implicit';
|
|
876
|
-
}
|
|
877
|
-
else if (v.range) {
|
|
878
|
-
if (v.kind === 'tool') {
|
|
879
|
-
return 'toolInPrompt';
|
|
880
|
-
}
|
|
881
|
-
else if (v.kind === 'toolset') {
|
|
882
|
-
return 'toolsetInPrompt';
|
|
883
|
-
}
|
|
884
|
-
else {
|
|
885
|
-
return 'fileInPrompt';
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
else if (v.kind === 'command') {
|
|
889
|
-
return 'command';
|
|
890
|
-
}
|
|
891
|
-
else if (v.kind === 'symbol') {
|
|
892
|
-
return 'symbol';
|
|
893
|
-
}
|
|
894
|
-
else if (isImageVariableEntry(v)) {
|
|
895
|
-
return 'image';
|
|
896
|
-
}
|
|
897
|
-
else if (v.kind === 'directory') {
|
|
898
|
-
return 'directory';
|
|
899
|
-
}
|
|
900
|
-
else if (v.kind === 'tool') {
|
|
901
|
-
return 'tool';
|
|
902
|
-
}
|
|
903
|
-
else if (v.kind === 'toolset') {
|
|
904
|
-
return 'toolset';
|
|
905
|
-
}
|
|
906
|
-
else {
|
|
907
|
-
if (URI.isUri(v.value)) {
|
|
908
|
-
return 'file';
|
|
909
|
-
}
|
|
910
|
-
else if (isLocation(v.value)) {
|
|
911
|
-
return 'location';
|
|
912
|
-
}
|
|
913
|
-
else {
|
|
914
|
-
return 'otherAttachment';
|
|
915
|
-
}
|
|
916
|
-
}
|
|
917
|
-
}));
|
|
918
|
-
}
|
|
919
926
|
getHistoryEntriesFromModel(requests, sessionId, location, forAgentId) {
|
|
920
927
|
const history = [];
|
|
921
928
|
const agent = this.chatAgentService.getAgent(forAgentId);
|
|
@@ -980,7 +987,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
980
987
|
const parsedRequest = typeof message === 'string' ?
|
|
981
988
|
this.instantiationService.createInstance(ChatRequestParser).parseChatRequest(sessionId, message) :
|
|
982
989
|
message;
|
|
983
|
-
const request = model.addRequest(parsedRequest, variableData || { variables: [] }, attempt ?? 0, undefined, undefined, undefined, undefined, undefined, true);
|
|
990
|
+
const request = model.addRequest(parsedRequest, variableData || { variables: [] }, attempt ?? 0, undefined, undefined, undefined, undefined, undefined, undefined, true);
|
|
984
991
|
if (typeof response.message === 'string') {
|
|
985
992
|
model.acceptResponseProgress(request, { content: ( new MarkdownString(response.message)), kind: 'markdownContent' });
|
|
986
993
|
}
|
|
@@ -1006,9 +1013,10 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1006
1013
|
if (!model) {
|
|
1007
1014
|
throw ( new Error(`Unknown session: ${sessionId}`));
|
|
1008
1015
|
}
|
|
1009
|
-
|
|
1016
|
+
this.trace(`Model input type: ${model.inputType}`);
|
|
1017
|
+
if (!model.inputType && (model.initialLocation === ChatAgentLocation.Panel || model.initialLocation === ChatAgentLocation.Editor)) {
|
|
1010
1018
|
if (this.useFileStorage) {
|
|
1011
|
-
if (model.getRequests().length === 0) {
|
|
1019
|
+
if (model.getRequests().length === 0 && !model.customTitle) {
|
|
1012
1020
|
await this._chatSessionStore.deleteSession(sessionId);
|
|
1013
1021
|
}
|
|
1014
1022
|
else {
|
|
@@ -1016,7 +1024,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1016
1024
|
}
|
|
1017
1025
|
}
|
|
1018
1026
|
else {
|
|
1019
|
-
if (model.getRequests().length === 0) {
|
|
1027
|
+
if (model.getRequests().length === 0 && !model.customTitle) {
|
|
1020
1028
|
delete this._persistedSessions[sessionId];
|
|
1021
1029
|
}
|
|
1022
1030
|
else {
|
|
@@ -1075,36 +1083,13 @@ ChatService = ( __decorate([
|
|
|
1075
1083
|
( __param(1, ILogService)),
|
|
1076
1084
|
( __param(2, IExtensionService)),
|
|
1077
1085
|
( __param(3, IInstantiationService)),
|
|
1078
|
-
( __param(4,
|
|
1079
|
-
( __param(5,
|
|
1080
|
-
( __param(6,
|
|
1081
|
-
( __param(7,
|
|
1082
|
-
( __param(8,
|
|
1083
|
-
( __param(9,
|
|
1084
|
-
( __param(10,
|
|
1085
|
-
( __param(11, IChatSessionsService)),
|
|
1086
|
-
( __param(12, IMcpService))
|
|
1086
|
+
( __param(4, IWorkspaceContextService)),
|
|
1087
|
+
( __param(5, IChatSlashCommandService)),
|
|
1088
|
+
( __param(6, IChatAgentService)),
|
|
1089
|
+
( __param(7, IConfigurationService)),
|
|
1090
|
+
( __param(8, IChatTransferService)),
|
|
1091
|
+
( __param(9, IChatSessionsService)),
|
|
1092
|
+
( __param(10, IMcpService))
|
|
1087
1093
|
], ChatService));
|
|
1088
|
-
function getCodeBlocks(text) {
|
|
1089
|
-
const lines = text.split('\n');
|
|
1090
|
-
const codeBlockLanguages = [];
|
|
1091
|
-
let codeBlockState;
|
|
1092
|
-
for (let i = 0; i < lines.length; i++) {
|
|
1093
|
-
const line = lines[i];
|
|
1094
|
-
if (codeBlockState) {
|
|
1095
|
-
if (( new RegExp(`^\\s*${codeBlockState.delimiter}\\s*$`)).test(line)) {
|
|
1096
|
-
codeBlockLanguages.push(codeBlockState.languageId);
|
|
1097
|
-
codeBlockState = undefined;
|
|
1098
|
-
}
|
|
1099
|
-
}
|
|
1100
|
-
else {
|
|
1101
|
-
const match = line.match(/^(\s*)(`{3,}|~{3,})(\w*)/);
|
|
1102
|
-
if (match) {
|
|
1103
|
-
codeBlockState = { delimiter: match[2], languageId: match[3] };
|
|
1104
|
-
}
|
|
1105
|
-
}
|
|
1106
|
-
}
|
|
1107
|
-
return codeBlockLanguages;
|
|
1108
|
-
}
|
|
1109
1094
|
|
|
1110
1095
|
export { ChatService };
|