@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
|
@@ -11,6 +11,9 @@ import { ILanguageModelChatMetadata } from "@codingame/monaco-vscode-api/vscode/
|
|
|
11
11
|
import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
|
|
12
12
|
import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service";
|
|
13
13
|
import { ChatModeKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
14
|
+
import { IChatMode } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModes";
|
|
15
|
+
import { IChatModeService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service";
|
|
16
|
+
import { PromptModeMetadata } from "../parsers/promptHeader/metadata/mode.js";
|
|
14
17
|
/**
|
|
15
18
|
* Prompt header diagnostics provider for an individual text model
|
|
16
19
|
* of a prompt file.
|
|
@@ -19,14 +22,16 @@ declare class PromptHeaderDiagnosticsProvider extends ProviderInstanceBase {
|
|
|
19
22
|
private readonly markerService;
|
|
20
23
|
private readonly languageModelsService;
|
|
21
24
|
private readonly languageModelToolsService;
|
|
22
|
-
|
|
25
|
+
private readonly chatModeService;
|
|
26
|
+
constructor(model: ITextModel, promptsService: IPromptsService, markerService: IMarkerService, languageModelsService: ILanguageModelsService, languageModelToolsService: ILanguageModelToolsService, chatModeService: IChatModeService);
|
|
23
27
|
/**
|
|
24
28
|
* Update diagnostic markers for the current editor.
|
|
25
29
|
*/
|
|
26
30
|
protected onPromptSettled(_error: Error | undefined, token: CancellationToken): Promise<void>;
|
|
27
|
-
validateModel(modelNode: PromptModelMetadata | undefined, modeKind: ChatModeKind | undefined, markers: IMarkerData[]): void;
|
|
31
|
+
validateModel(modelNode: PromptModelMetadata | undefined, modeKind: string | ChatModeKind | undefined, markers: IMarkerData[]): void;
|
|
28
32
|
findModelByName(languageModes: string[], modelName: string): ILanguageModelChatMetadata | undefined;
|
|
29
|
-
validateTools(tools: PromptToolsMetadata | undefined, modeKind: ChatModeKind | undefined, markers: IMarkerData[]): void;
|
|
33
|
+
validateTools(tools: PromptToolsMetadata | undefined, modeKind: string | ChatModeKind | undefined, markers: IMarkerData[]): void;
|
|
34
|
+
validateMode(modeNode: PromptModeMetadata | undefined, markers: IMarkerData[]): IChatMode | undefined;
|
|
30
35
|
/**
|
|
31
36
|
* Returns a string representation of this object.
|
|
32
37
|
*/
|
|
@@ -15,20 +15,26 @@ import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/w
|
|
|
15
15
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
|
|
16
16
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
17
17
|
import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
18
|
+
import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
|
|
19
|
+
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
18
20
|
|
|
19
21
|
const MARKERS_OWNER_ID = 'prompts-header-diagnostics-provider';
|
|
20
22
|
let PromptHeaderDiagnosticsProvider = class PromptHeaderDiagnosticsProvider extends ProviderInstanceBase {
|
|
21
|
-
constructor(model, promptsService, markerService, languageModelsService, languageModelToolsService) {
|
|
23
|
+
constructor(model, promptsService, markerService, languageModelsService, languageModelToolsService, chatModeService) {
|
|
22
24
|
super(model, promptsService);
|
|
23
25
|
this.markerService = markerService;
|
|
24
26
|
this.languageModelsService = languageModelsService;
|
|
25
27
|
this.languageModelToolsService = languageModelToolsService;
|
|
28
|
+
this.chatModeService = chatModeService;
|
|
26
29
|
this._register(languageModelsService.onDidChangeLanguageModels(() => {
|
|
27
30
|
this.onPromptSettled(undefined, CancellationToken.None);
|
|
28
31
|
}));
|
|
29
32
|
this._register(languageModelToolsService.onDidChangeTools(() => {
|
|
30
33
|
this.onPromptSettled(undefined, CancellationToken.None);
|
|
31
34
|
}));
|
|
35
|
+
this._register(chatModeService.onDidChangeChatModes(() => {
|
|
36
|
+
this.onPromptSettled(undefined, CancellationToken.None);
|
|
37
|
+
}));
|
|
32
38
|
}
|
|
33
39
|
async onPromptSettled(_error, token) {
|
|
34
40
|
const { header } = this.parser;
|
|
@@ -45,8 +51,9 @@ let PromptHeaderDiagnosticsProvider = class PromptHeaderDiagnosticsProvider exte
|
|
|
45
51
|
markers.push(toMarker(diagnostic));
|
|
46
52
|
}
|
|
47
53
|
if (header instanceof PromptHeader) {
|
|
48
|
-
this.
|
|
49
|
-
this.
|
|
54
|
+
const mode = this.validateMode(header.metadataUtility.mode, markers);
|
|
55
|
+
this.validateTools(header.metadataUtility.tools, mode?.kind, markers);
|
|
56
|
+
this.validateModel(header.metadataUtility.model, mode?.kind, markers);
|
|
50
57
|
}
|
|
51
58
|
else if (header instanceof ModeHeader) {
|
|
52
59
|
this.validateTools(header.metadataUtility.tools, ChatModeKind.Agent, markers);
|
|
@@ -70,14 +77,14 @@ let PromptHeaderDiagnosticsProvider = class PromptHeaderDiagnosticsProvider exte
|
|
|
70
77
|
const modelMetadata = this.findModelByName(languageModes, modelNode.value);
|
|
71
78
|
if (!modelMetadata) {
|
|
72
79
|
markers.push({
|
|
73
|
-
message: ( localize(
|
|
80
|
+
message: ( localize(5569, "Unknown model '{0}'", modelNode.value)),
|
|
74
81
|
severity: MarkerSeverity.Warning,
|
|
75
82
|
...modelNode.range,
|
|
76
83
|
});
|
|
77
84
|
}
|
|
78
85
|
else if (modeKind === ChatModeKind.Agent && !ILanguageModelChatMetadata.suitableForAgentMode(modelMetadata)) {
|
|
79
86
|
markers.push({
|
|
80
|
-
message: ( localize(
|
|
87
|
+
message: ( localize(5570, "Model '{0}' is not suited for agent mode", modelNode.value)),
|
|
81
88
|
severity: MarkerSeverity.Warning,
|
|
82
89
|
...modelNode.range,
|
|
83
90
|
});
|
|
@@ -86,7 +93,7 @@ let PromptHeaderDiagnosticsProvider = class PromptHeaderDiagnosticsProvider exte
|
|
|
86
93
|
findModelByName(languageModes, modelName) {
|
|
87
94
|
for (const model of languageModes) {
|
|
88
95
|
const metadata = this.languageModelsService.lookupLanguageModel(model);
|
|
89
|
-
if (metadata && metadata.isUserSelectable !== false && ILanguageModelChatMetadata.
|
|
96
|
+
if (metadata && metadata.isUserSelectable !== false && ILanguageModelChatMetadata.matchesQualifiedName(modelName, metadata)) {
|
|
90
97
|
return metadata;
|
|
91
98
|
}
|
|
92
99
|
}
|
|
@@ -110,13 +117,38 @@ let PromptHeaderDiagnosticsProvider = class PromptHeaderDiagnosticsProvider exte
|
|
|
110
117
|
const range = tools.getToolRange(toolName);
|
|
111
118
|
if (range) {
|
|
112
119
|
markers.push({
|
|
113
|
-
message: ( localize(
|
|
120
|
+
message: ( localize(5571, "Unknown tool '{0}'", toolName)),
|
|
114
121
|
severity: MarkerSeverity.Warning,
|
|
115
122
|
...range,
|
|
116
123
|
});
|
|
117
124
|
}
|
|
118
125
|
}
|
|
119
126
|
}
|
|
127
|
+
validateMode(modeNode, markers) {
|
|
128
|
+
if (!modeNode || modeNode.value === undefined) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const modeValue = modeNode.value;
|
|
132
|
+
const modes = this.chatModeService.getModes();
|
|
133
|
+
const availableModes = [];
|
|
134
|
+
for (const mode of Iterable.concat(modes.builtin, modes.custom)) {
|
|
135
|
+
if (mode.name === modeValue) {
|
|
136
|
+
return mode;
|
|
137
|
+
}
|
|
138
|
+
availableModes.push(mode.name);
|
|
139
|
+
}
|
|
140
|
+
markers.push({
|
|
141
|
+
message: ( localize(
|
|
142
|
+
5572,
|
|
143
|
+
"Unknown mode '{0}'. Available modes: {1}",
|
|
144
|
+
modeValue,
|
|
145
|
+
availableModes.join(', ')
|
|
146
|
+
)),
|
|
147
|
+
severity: MarkerSeverity.Warning,
|
|
148
|
+
...modeNode.range,
|
|
149
|
+
});
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
120
152
|
toString() {
|
|
121
153
|
return `prompt-header-diagnostics:${this.model.uri.path}`;
|
|
122
154
|
}
|
|
@@ -125,7 +157,8 @@ PromptHeaderDiagnosticsProvider = ( __decorate([
|
|
|
125
157
|
( __param(1, IPromptsService)),
|
|
126
158
|
( __param(2, IMarkerService)),
|
|
127
159
|
( __param(3, ILanguageModelsService)),
|
|
128
|
-
( __param(4, ILanguageModelToolsService))
|
|
160
|
+
( __param(4, ILanguageModelToolsService)),
|
|
161
|
+
( __param(5, IChatModeService))
|
|
129
162
|
], PromptHeaderDiagnosticsProvider));
|
|
130
163
|
function toMarker(diagnostic) {
|
|
131
164
|
if (diagnostic instanceof PromptMetadataWarning) {
|
|
@@ -6,20 +6,23 @@ import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common
|
|
|
6
6
|
import { ILanguageFeaturesService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service";
|
|
7
7
|
import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
|
|
8
8
|
import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service";
|
|
9
|
+
import { IChatModeService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service";
|
|
9
10
|
import { IPromptsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service";
|
|
10
11
|
export declare class PromptHeaderHoverProvider extends Disposable implements HoverProvider {
|
|
11
12
|
private readonly promptsService;
|
|
12
13
|
private readonly languageService;
|
|
13
14
|
private readonly languageModelToolsService;
|
|
14
15
|
private readonly languageModelsService;
|
|
16
|
+
private readonly chatModeService;
|
|
15
17
|
/**
|
|
16
18
|
* Debug display name for this provider.
|
|
17
19
|
*/
|
|
18
20
|
readonly _debugDisplayName: string;
|
|
19
|
-
constructor(promptsService: IPromptsService, languageService: ILanguageFeaturesService, languageModelToolsService: ILanguageModelToolsService, languageModelsService: ILanguageModelsService);
|
|
21
|
+
constructor(promptsService: IPromptsService, languageService: ILanguageFeaturesService, languageModelToolsService: ILanguageModelToolsService, languageModelsService: ILanguageModelsService, chatModeService: IChatModeService);
|
|
20
22
|
private createHover;
|
|
21
23
|
provideHover(model: ITextModel, position: Position, token: CancellationToken, _context?: HoverContext): Promise<Hover | undefined>;
|
|
22
24
|
private getToolHover;
|
|
23
25
|
private getToolsetHover;
|
|
24
26
|
private getModelHover;
|
|
27
|
+
private getModeHover;
|
|
25
28
|
}
|
|
@@ -7,18 +7,21 @@ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
|
7
7
|
import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
8
8
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
9
9
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
|
|
10
|
+
import { isBuiltinChatMode } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModes';
|
|
11
|
+
import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
|
|
10
12
|
import { InstructionsHeader } from '../parsers/promptHeader/instructionsHeader.js';
|
|
11
13
|
import { ModeHeader } from '../parsers/promptHeader/modeHeader.js';
|
|
12
14
|
import { ALL_PROMPTS_LANGUAGE_SELECTOR, getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
13
15
|
import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
|
|
14
16
|
|
|
15
17
|
let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposable {
|
|
16
|
-
constructor(promptsService, languageService, languageModelToolsService, languageModelsService) {
|
|
18
|
+
constructor(promptsService, languageService, languageModelToolsService, languageModelsService, chatModeService) {
|
|
17
19
|
super();
|
|
18
20
|
this.promptsService = promptsService;
|
|
19
21
|
this.languageService = languageService;
|
|
20
22
|
this.languageModelToolsService = languageModelToolsService;
|
|
21
23
|
this.languageModelsService = languageModelsService;
|
|
24
|
+
this.chatModeService = chatModeService;
|
|
22
25
|
this._debugDisplayName = 'PromptHeaderHoverProvider';
|
|
23
26
|
this._register(this.languageService.hoverProvider.register(ALL_PROMPTS_LANGUAGE_SELECTOR, this));
|
|
24
27
|
}
|
|
@@ -50,14 +53,14 @@ let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposab
|
|
|
50
53
|
const descriptionRange = header.metadataUtility.description?.range;
|
|
51
54
|
if (descriptionRange?.containsPosition(position)) {
|
|
52
55
|
return this.createHover(( localize(
|
|
53
|
-
|
|
56
|
+
5573,
|
|
54
57
|
'The description of the instruction file. It can be used to provide additional context or information about the instructions and is passed to the language model as part of the prompt.'
|
|
55
58
|
)), descriptionRange);
|
|
56
59
|
}
|
|
57
60
|
const applyToRange = header.metadataUtility.applyTo?.range;
|
|
58
61
|
if (applyToRange?.containsPosition(position)) {
|
|
59
62
|
return this.createHover(( localize(
|
|
60
|
-
|
|
63
|
+
5574,
|
|
61
64
|
'One or more glob pattern (separated by comma) that describe for which files the instructions apply to. Based on these patterns, the file is automatically included in the prompt, when the context contains a file that matches one or more of these patterns. Use `**` when you want this file to always be added.\nExample: **/*.ts, **/*.js, client/**'
|
|
62
65
|
)), applyToRange);
|
|
63
66
|
}
|
|
@@ -66,38 +69,38 @@ let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposab
|
|
|
66
69
|
const descriptionRange = header.metadataUtility.description?.range;
|
|
67
70
|
if (descriptionRange?.containsPosition(position)) {
|
|
68
71
|
return this.createHover(( localize(
|
|
69
|
-
|
|
72
|
+
5575,
|
|
70
73
|
'The description of the mode file. It can be used to provide additional context or information about the mode to the mode author.'
|
|
71
74
|
)), descriptionRange);
|
|
72
75
|
}
|
|
73
76
|
const model = header.metadataUtility.model;
|
|
74
77
|
if (model?.range.containsPosition(position)) {
|
|
75
|
-
return this.getModelHover(model, model.range, ( localize(
|
|
78
|
+
return this.getModelHover(model, model.range, ( localize(5576, 'The model to use in this mode.')));
|
|
76
79
|
}
|
|
77
80
|
const tools = header.metadataUtility.tools;
|
|
78
|
-
if (tools?.range
|
|
79
|
-
return this.getToolHover(tools, position, ( localize(
|
|
81
|
+
if (tools?.range.containsPosition(position)) {
|
|
82
|
+
return this.getToolHover(tools, position, ( localize(5577, 'The tools to use in this mode.')));
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
85
|
else {
|
|
83
86
|
const descriptionRange = header.metadataUtility.description?.range;
|
|
84
87
|
if (descriptionRange?.containsPosition(position)) {
|
|
85
88
|
return this.createHover(( localize(
|
|
86
|
-
|
|
89
|
+
5578,
|
|
87
90
|
'The description of the prompt file. It can be used to provide additional context or information about the prompt to the prompt author.'
|
|
88
91
|
)), descriptionRange);
|
|
89
92
|
}
|
|
90
93
|
const model = header.metadataUtility.model;
|
|
91
94
|
if (model?.range.containsPosition(position)) {
|
|
92
|
-
return this.getModelHover(model, model.range, ( localize(
|
|
95
|
+
return this.getModelHover(model, model.range, ( localize(5579, 'The model to use in this prompt.')));
|
|
93
96
|
}
|
|
94
97
|
const tools = header.metadataUtility.tools;
|
|
95
|
-
if (tools?.range
|
|
96
|
-
return this.getToolHover(tools, position, ( localize(
|
|
98
|
+
if (tools?.range.containsPosition(position)) {
|
|
99
|
+
return this.getToolHover(tools, position, ( localize(5580, 'The tools to use in this prompt.')));
|
|
97
100
|
}
|
|
98
|
-
const
|
|
99
|
-
if (
|
|
100
|
-
return this.
|
|
101
|
+
const mode = header.metadataUtility.mode;
|
|
102
|
+
if (mode?.range.containsPosition(position)) {
|
|
103
|
+
return this.getModeHover(mode, position, ( localize(5581, 'The mode to use in this prompt.')));
|
|
101
104
|
}
|
|
102
105
|
}
|
|
103
106
|
return undefined;
|
|
@@ -122,7 +125,7 @@ let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposab
|
|
|
122
125
|
}
|
|
123
126
|
getToolsetHover(toolSet, range) {
|
|
124
127
|
const lines = [];
|
|
125
|
-
lines.push(( localize(
|
|
128
|
+
lines.push(( localize(5582, 'ToolSet: {0}\n\n', toolSet.referenceName)));
|
|
126
129
|
if (toolSet.description) {
|
|
127
130
|
lines.push(toolSet.description);
|
|
128
131
|
}
|
|
@@ -136,14 +139,14 @@ let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposab
|
|
|
136
139
|
if (modelName) {
|
|
137
140
|
for (const id of this.languageModelsService.getLanguageModelIds()) {
|
|
138
141
|
const meta = this.languageModelsService.lookupLanguageModel(id);
|
|
139
|
-
if (meta && ILanguageModelChatMetadata.
|
|
142
|
+
if (meta && ILanguageModelChatMetadata.matchesQualifiedName(modelName, meta)) {
|
|
140
143
|
const lines = [];
|
|
141
144
|
lines.push(baseMessage + '\n');
|
|
142
|
-
lines.push(( localize(
|
|
143
|
-
lines.push(( localize(
|
|
144
|
-
lines.push(( localize(
|
|
145
|
-
if (meta.
|
|
146
|
-
lines.push('', '', meta.
|
|
145
|
+
lines.push(( localize(5583, '- Name: {0}', meta.name)));
|
|
146
|
+
lines.push(( localize(5584, '- Family: {0}', meta.family)));
|
|
147
|
+
lines.push(( localize(5585, '- Vendor: {0}', meta.vendor)));
|
|
148
|
+
if (meta.tooltip) {
|
|
149
|
+
lines.push('', '', meta.tooltip);
|
|
147
150
|
}
|
|
148
151
|
return this.createHover(lines.join('\n'), range);
|
|
149
152
|
}
|
|
@@ -151,12 +154,42 @@ let PromptHeaderHoverProvider = class PromptHeaderHoverProvider extends Disposab
|
|
|
151
154
|
}
|
|
152
155
|
return this.createHover(baseMessage, range);
|
|
153
156
|
}
|
|
157
|
+
getModeHover(mode, position, baseMessage) {
|
|
158
|
+
const lines = [];
|
|
159
|
+
const value = mode.value;
|
|
160
|
+
if (value && mode.valueRange?.containsPosition(position)) {
|
|
161
|
+
const mode = this.chatModeService.findModeByName(value);
|
|
162
|
+
if (mode) {
|
|
163
|
+
const description = mode.description.get() || (isBuiltinChatMode(mode) ? ( localize(5586, 'Built-in chat mode')) : ( localize(5587, 'Custom chat mode')));
|
|
164
|
+
lines.push(`\`${mode.name}\`: ${description}`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
const modes = this.chatModeService.getModes();
|
|
169
|
+
lines.push(( localize(5588, 'The chat mode to use when running this prompt.')));
|
|
170
|
+
lines.push('');
|
|
171
|
+
lines.push(( localize(5589, '**Built-in modes:**')));
|
|
172
|
+
for (const mode of modes.builtin) {
|
|
173
|
+
lines.push(`- \`${mode.name}\`: ${mode.description.get() || mode.label}`);
|
|
174
|
+
}
|
|
175
|
+
if (modes.custom.length > 0) {
|
|
176
|
+
lines.push('');
|
|
177
|
+
lines.push(( localize(5590, '**Custom modes:**')));
|
|
178
|
+
for (const mode of modes.custom) {
|
|
179
|
+
const description = mode.description.get();
|
|
180
|
+
lines.push(`- \`${mode.name}\`: ${description || ( localize(5587, 'Custom chat mode'))}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return this.createHover(lines.join('\n'), mode.range);
|
|
185
|
+
}
|
|
154
186
|
};
|
|
155
187
|
PromptHeaderHoverProvider = ( __decorate([
|
|
156
188
|
( __param(0, IPromptsService)),
|
|
157
189
|
( __param(1, ILanguageFeaturesService)),
|
|
158
190
|
( __param(2, ILanguageModelToolsService)),
|
|
159
|
-
( __param(3, ILanguageModelsService))
|
|
191
|
+
( __param(3, ILanguageModelsService)),
|
|
192
|
+
( __param(4, IChatModeService))
|
|
160
193
|
], PromptHeaderHoverProvider));
|
|
161
194
|
|
|
162
195
|
export { PromptHeaderHoverProvider };
|
|
@@ -22,7 +22,7 @@ let PromptLinkDiagnosticsProvider = class PromptLinkDiagnosticsProvider extends
|
|
|
22
22
|
const stats = await this.fileService.resolveAll(( this.parser.references.map(ref => ({ resource: ref.uri }))));
|
|
23
23
|
for (let i = 0; i < stats.length; i++) {
|
|
24
24
|
if (!stats[i].success) {
|
|
25
|
-
markers.push(toMarker(this.parser.references[i], ( localize(
|
|
25
|
+
markers.push(toMarker(this.parser.references[i], ( localize(5591, 'File not found.'))));
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
this.markerService.changeOne(MARKERS_OWNER_ID, this.model.uri, markers);
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.js
CHANGED
|
@@ -225,7 +225,7 @@ let BasePromptParser = class BasePromptParser extends ObservableDisposable {
|
|
|
225
225
|
}
|
|
226
226
|
if (tools !== undefined && mode !== ChatModeKind.Ask && mode !== ChatModeKind.Edit) {
|
|
227
227
|
result.tools = tools;
|
|
228
|
-
result.mode = ChatModeKind.Agent;
|
|
228
|
+
result.mode = mode || ChatModeKind.Agent;
|
|
229
229
|
}
|
|
230
230
|
else if (mode !== undefined) {
|
|
231
231
|
result.mode = mode;
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js
CHANGED
|
@@ -65,12 +65,12 @@ class HeaderBase extends Disposable {
|
|
|
65
65
|
if (token instanceof SimpleToken) {
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
-
this.issues.push(( new PromptMetadataError(token.range, ( localize(
|
|
68
|
+
this.issues.push(( new PromptMetadataError(token.range, ( localize(5592, "Unexpected token '{0}'.", token.text)))));
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
const recordName = token.nameToken.text;
|
|
72
72
|
if (( this.recordNames.has(recordName))) {
|
|
73
|
-
this.issues.push(( new PromptMetadataWarning(token.range, ( localize(
|
|
73
|
+
this.issues.push(( new PromptMetadataWarning(token.range, ( localize(5593, "Duplicate property '{0}' will be ignored.", recordName)))));
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
76
|
this.recordNames.add(recordName);
|
|
@@ -84,10 +84,10 @@ class HeaderBase extends Disposable {
|
|
|
84
84
|
if (this.handleToken(token)) {
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
|
-
this.issues.push(( new PromptMetadataWarning(token.range, ( localize(
|
|
87
|
+
this.issues.push(( new PromptMetadataWarning(token.range, ( localize(5594, "Unknown property '{0}' will be ignored.", recordName)))));
|
|
88
88
|
}
|
|
89
89
|
onError(error) {
|
|
90
|
-
this.issues.push(( new PromptMetadataError(this.token.range, ( localize(
|
|
90
|
+
this.issues.push(( new PromptMetadataError(this.token.range, ( localize(5595, "Failed to parse prompt header: {0}", error.message)))));
|
|
91
91
|
}
|
|
92
92
|
get settled() {
|
|
93
93
|
return this.stream.settled;
|
|
@@ -40,7 +40,7 @@ class PromptApplyToMetadata extends PromptStringMetadata {
|
|
|
40
40
|
}
|
|
41
41
|
if (this.languageId !== INSTRUCTIONS_LANGUAGE_ID) {
|
|
42
42
|
this.issues.push(( new PromptMetadataError(this.range, ( localize(
|
|
43
|
-
|
|
43
|
+
5596,
|
|
44
44
|
"The '{0}' header property is only valid in instruction files.",
|
|
45
45
|
this.recordName
|
|
46
46
|
)))));
|
|
@@ -49,7 +49,7 @@ class PromptApplyToMetadata extends PromptStringMetadata {
|
|
|
49
49
|
}
|
|
50
50
|
const { cleanText } = this.valueToken;
|
|
51
51
|
if (this.isValidGlob(cleanText) === false) {
|
|
52
|
-
this.issues.push(( new PromptMetadataWarning(this.valueToken.range, ( localize(
|
|
52
|
+
this.issues.push(( new PromptMetadataWarning(this.valueToken.range, ( localize(5597, "Invalid glob pattern '{0}'.", cleanText)))));
|
|
53
53
|
delete this.valueToken;
|
|
54
54
|
return this.issues;
|
|
55
55
|
}
|
|
@@ -2,6 +2,7 @@ import { PromptMetadataRecord } from "./record.js";
|
|
|
2
2
|
import { PromptMetadataDiagnostic } from "../../diagnostics.js";
|
|
3
3
|
import { FrontMatterSequence } from "../../../../codecs/base/frontMatterCodec/tokens/frontMatterSequence.js";
|
|
4
4
|
import { FrontMatterRecord, FrontMatterString } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
5
|
+
import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
|
|
5
6
|
/**
|
|
6
7
|
* Base class for all metadata records with a `string` value.
|
|
7
8
|
*/
|
|
@@ -14,6 +15,7 @@ export declare abstract class PromptStringMetadata extends PromptMetadataRecord<
|
|
|
14
15
|
* String value of a metadata record.
|
|
15
16
|
*/
|
|
16
17
|
get value(): string | undefined;
|
|
18
|
+
get valueRange(): Range | undefined;
|
|
17
19
|
constructor(expectedRecordName: string, recordToken: FrontMatterRecord, languageId: string);
|
|
18
20
|
/**
|
|
19
21
|
* Validate the metadata record has a 'string' value.
|
|
@@ -28,6 +28,9 @@ class PromptStringMetadata extends PromptMetadataRecord {
|
|
|
28
28
|
get value() {
|
|
29
29
|
return this.valueToken?.cleanText;
|
|
30
30
|
}
|
|
31
|
+
get valueRange() {
|
|
32
|
+
return this.valueToken?.range;
|
|
33
|
+
}
|
|
31
34
|
constructor(expectedRecordName, recordToken, languageId) {
|
|
32
35
|
super(expectedRecordName, recordToken, languageId);
|
|
33
36
|
}
|
|
@@ -40,8 +43,8 @@ class PromptStringMetadata extends PromptMetadataRecord {
|
|
|
40
43
|
return this.issues;
|
|
41
44
|
}
|
|
42
45
|
this.issues.push(( new PromptMetadataError(valueToken.range, ( localize(
|
|
43
|
-
|
|
44
|
-
"The '{0}'
|
|
46
|
+
5598,
|
|
47
|
+
"The property '{0}' must be of type '{1}', got '{2}'.",
|
|
45
48
|
this.recordName,
|
|
46
49
|
'string',
|
|
47
50
|
(valueToken.valueTypeName.toString())
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PromptEnumMetadata } from "./base/enum.js";
|
|
1
|
+
import { PromptStringMetadata } from "./base/string.js";
|
|
3
2
|
import { FrontMatterRecord, FrontMatterToken } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
4
3
|
/**
|
|
5
4
|
* Prompt `mode` metadata record inside the prompt header.
|
|
5
|
+
* Now supports both built-in modes (ask, edit, agent) and custom mode IDs.
|
|
6
6
|
*/
|
|
7
|
-
export declare class PromptModeMetadata extends
|
|
7
|
+
export declare class PromptModeMetadata extends PromptStringMetadata {
|
|
8
8
|
constructor(recordToken: FrontMatterRecord, languageId: string);
|
|
9
9
|
/**
|
|
10
10
|
* Check if a provided front matter token is a metadata record
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
3
|
-
import { PromptEnumMetadata } from './base/enum.js';
|
|
2
|
+
import { PromptStringMetadata } from './base/string.js';
|
|
4
3
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
5
4
|
import '../../../codecs/base/simpleCodec/tokens/at.js';
|
|
6
5
|
import '../../../codecs/base/simpleCodec/tokens/tab.js';
|
|
@@ -23,9 +22,9 @@ import '../../../codecs/base/simpleCodec/tokens/angleBrackets.js';
|
|
|
23
22
|
import { FrontMatterRecord } from '../../../codecs/base/frontMatterCodec/tokens/frontMatterRecord.js';
|
|
24
23
|
|
|
25
24
|
const RECORD_NAME = 'mode';
|
|
26
|
-
class PromptModeMetadata extends
|
|
25
|
+
class PromptModeMetadata extends PromptStringMetadata {
|
|
27
26
|
constructor(recordToken, languageId) {
|
|
28
|
-
super(
|
|
27
|
+
super(RECORD_NAME, recordToken, languageId);
|
|
29
28
|
}
|
|
30
29
|
static isModeRecord(token) {
|
|
31
30
|
if ((token instanceof FrontMatterRecord) === false) {
|
|
@@ -44,7 +44,7 @@ class PromptToolsMetadata extends PromptMetadataRecord {
|
|
|
44
44
|
const { valueToken } = this.recordToken;
|
|
45
45
|
if ((valueToken instanceof FrontMatterArray) === false) {
|
|
46
46
|
this.issues.push(( new PromptMetadataError(valueToken.range, ( localize(
|
|
47
|
-
|
|
47
|
+
5599,
|
|
48
48
|
"Must be an array of tool names, got '{0}'.",
|
|
49
49
|
(valueToken.valueTypeName.toString())
|
|
50
50
|
)))));
|
|
@@ -66,7 +66,7 @@ class PromptToolsMetadata extends PromptMetadataRecord {
|
|
|
66
66
|
if ((valueToken instanceof FrontMatterString) === false &&
|
|
67
67
|
(valueToken instanceof FrontMatterSequence) === false) {
|
|
68
68
|
issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(
|
|
69
|
-
|
|
69
|
+
5600,
|
|
70
70
|
"Unexpected tool name '{0}', expected a string literal.",
|
|
71
71
|
valueToken.text
|
|
72
72
|
)))));
|
|
@@ -74,11 +74,11 @@ class PromptToolsMetadata extends PromptMetadataRecord {
|
|
|
74
74
|
}
|
|
75
75
|
const cleanToolName = valueToken.cleanText.trim();
|
|
76
76
|
if (cleanToolName.length === 0) {
|
|
77
|
-
issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(
|
|
77
|
+
issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(5601, "Tool name cannot be empty.")))));
|
|
78
78
|
return issues;
|
|
79
79
|
}
|
|
80
80
|
if (( validToolNames.has(cleanToolName))) {
|
|
81
|
-
issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(
|
|
81
|
+
issues.push(( new PromptMetadataWarning(valueToken.range, ( localize(5602, "Duplicate tool name '{0}'.", cleanToolName)))));
|
|
82
82
|
return issues;
|
|
83
83
|
}
|
|
84
84
|
validToolNames.set(cleanToolName, valueToken.range);
|
|
@@ -32,11 +32,6 @@ export type TPromptMetadata = Partial<TDehydrated<IPromptMetadata>> & {
|
|
|
32
32
|
*/
|
|
33
33
|
export declare class PromptHeader extends HeaderBase<IPromptMetadata> {
|
|
34
34
|
protected handleToken(token: FrontMatterRecord): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Check if value of `tools` and `mode` metadata
|
|
37
|
-
* are compatible with each other.
|
|
38
|
-
*/
|
|
39
|
-
private get toolsAndModeCompatible();
|
|
40
35
|
/**
|
|
41
36
|
* Validate that the `tools` and `mode` metadata are compatible
|
|
42
37
|
* with each other. If not, add a warning diagnostic.
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
3
3
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
4
4
|
import { PromptMetadataWarning } from './diagnostics.js';
|
|
5
|
-
import { assert } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
|
|
6
|
-
import { assertDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
7
5
|
import { HeaderBase } from './headerBase.js';
|
|
8
6
|
import { PromptModelMetadata } from './metadata/model.js';
|
|
9
7
|
import { PromptToolsMetadata } from './metadata/tools.js';
|
|
@@ -33,29 +31,16 @@ class PromptHeader extends HeaderBase {
|
|
|
33
31
|
}
|
|
34
32
|
return false;
|
|
35
33
|
}
|
|
36
|
-
get toolsAndModeCompatible() {
|
|
37
|
-
const { tools, mode } = this.meta;
|
|
38
|
-
if (tools === undefined) {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
if (mode?.value === undefined) {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
return (mode.value === ChatModeKind.Agent);
|
|
45
|
-
}
|
|
46
34
|
validateToolsAndModeCompatibility() {
|
|
47
|
-
if (this.toolsAndModeCompatible === true) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
35
|
const { tools, mode } = this.meta;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
36
|
+
const modeValue = mode?.value;
|
|
37
|
+
if (tools !== undefined && (modeValue === ChatModeKind.Edit || modeValue === ChatModeKind.Ask)) {
|
|
38
|
+
this.issues.push(( new PromptMetadataWarning(tools.range, ( localize(
|
|
39
|
+
5603,
|
|
40
|
+
"Tools can not be used in '{0}' mode and will be ignored.",
|
|
41
|
+
modeValue
|
|
42
|
+
)))));
|
|
43
|
+
}
|
|
59
44
|
}
|
|
60
45
|
}
|
|
61
46
|
|
|
@@ -15,29 +15,29 @@ class TopError {
|
|
|
15
15
|
const { originalError, parentUri, errorSubject: subject, errorsCount } = this;
|
|
16
16
|
assert(errorsCount >= 1, `Error count must be at least 1, got '${errorsCount}'.`);
|
|
17
17
|
const moreIssuesLabel = (errorsCount > 1)
|
|
18
|
-
? ( localize(
|
|
18
|
+
? ( localize(5604, "\n(+{0} more issues)", errorsCount - 1))
|
|
19
19
|
: '';
|
|
20
20
|
if (subject === 'root') {
|
|
21
21
|
if (originalError instanceof OpenFailed) {
|
|
22
|
-
return localize(
|
|
22
|
+
return localize(5605, "Cannot open '{0}'.{1}", originalError.uri.path, moreIssuesLabel);
|
|
23
23
|
}
|
|
24
24
|
if (originalError instanceof FailedToResolveContentsStream) {
|
|
25
|
-
return localize(
|
|
25
|
+
return localize(5606, "Cannot read '{0}'.{1}", originalError.uri.path, moreIssuesLabel);
|
|
26
26
|
}
|
|
27
27
|
if (originalError instanceof RecursiveReference) {
|
|
28
|
-
return localize(
|
|
28
|
+
return localize(5607, "Recursion to itself.");
|
|
29
29
|
}
|
|
30
30
|
return originalError.message + moreIssuesLabel;
|
|
31
31
|
}
|
|
32
32
|
assertDefined(parentUri, 'Parent URI must be defined for error of non-root link.');
|
|
33
33
|
const errorMessageStart = (subject === 'child')
|
|
34
|
-
? ( localize(
|
|
35
|
-
: ( localize(
|
|
34
|
+
? ( localize(5608, "Contains"))
|
|
35
|
+
: ( localize(5609, "Indirectly referenced prompt '{0}' contains", parentUri.path));
|
|
36
36
|
const linkIssueName = (originalError instanceof RecursiveReference)
|
|
37
|
-
? ( localize(
|
|
38
|
-
: ( localize(
|
|
37
|
+
? ( localize(5610, "recursive"))
|
|
38
|
+
: ( localize(5611, "broken"));
|
|
39
39
|
return localize(
|
|
40
|
-
|
|
40
|
+
5612,
|
|
41
41
|
"{0} a {1} link to '{2}' that will be ignored.{3}",
|
|
42
42
|
errorMessageStart,
|
|
43
43
|
linkIssueName,
|