@codingame/monaco-vscode-chat-service-override 23.3.0 → 24.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +13 -10
- package/package.json +5 -41
- package/vscode/src/vs/platform/domWidget/browser/domWidget.d.ts +52 -0
- package/vscode/src/vs/platform/domWidget/browser/domWidget.js +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +61 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +152 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +37 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +7 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +12 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +21 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +27 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +6 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +44 -208
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +23 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +140 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +358 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +222 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +241 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +11 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +67 -230
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +65 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +186 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +140 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +2 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +115 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +389 -166
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +22 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.d.ts +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +63 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +7 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +14 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +173 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +66 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +32 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +6 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +8 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +5 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +15 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +13 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +66 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +6 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +15 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +30 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +13 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +20 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +47 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +270 -143
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +310 -170
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +12 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +42 -42
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +35 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +1 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +22 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +18 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +80 -72
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +2 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +48 -77
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +16 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +257 -77
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatSetup.d.ts → chatSetup/chatSetupContributions.d.ts} +4 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +622 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +359 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +89 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +667 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +260 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/chatSetup.css +4 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.js → chatStatus/chatStatusDashboard.js} +193 -325
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.d.ts → chatStatus/chatStatusEntry.d.ts} +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +190 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.d.ts → chatStatus/chatStatusItemService.d.ts} +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatStatus/media}/chatStatus.css +22 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.d.ts +25 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.js +108 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.js +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +57 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +478 -146
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.d.ts +43 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.js +204 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.d.ts +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.js +187 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +108 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +37 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +37 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +232 -97
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatusWidget.css +57 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css +142 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewTitleControl.css +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +51 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +19 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatCodeMapperService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.d.ts +49 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.js +100 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +3 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +41 -15
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +208 -162
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +15 -7
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +61 -7
- package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +60 -43
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +27 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +37 -47
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +120 -87
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +49 -42
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +293 -187
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +17 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +43 -9
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +48 -29
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -13
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +36 -41
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +18 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +142 -38
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +3 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +19 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +78 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -11
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +26 -44
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +9 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +23 -17
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +4 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +26 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +32 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +15 -29
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +10 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +38 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +32 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +5 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +4 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +4 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +128 -62
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +12 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +68 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +20 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +13 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +20 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +72 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +5 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +0 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +0 -154
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +0 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +0 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +0 -135
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +0 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +0 -216
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +0 -1617
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +0 -44
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +0 -313
- /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-dark.svg +0 -0
- /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-light.svg +0 -0
- /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/github.svg +0 -0
- /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/google.svg +0 -0
- /package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.js → chatStatus/chatStatusItemService.js} +0 -0
|
@@ -12,16 +12,17 @@ import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workben
|
|
|
12
12
|
import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
13
13
|
import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
14
14
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
15
|
+
import { SpecedToolAliases } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
|
|
15
16
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
|
|
16
|
-
import { PromptsType, getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-
|
|
17
|
-
import { PromptHeaderAttributes,
|
|
17
|
+
import { PromptsType, getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
18
|
+
import { PromptHeaderAttributes, Target, GithubPromptHeaderAttributes } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
|
|
18
19
|
import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
19
20
|
import { Delayer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
20
21
|
import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
21
22
|
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
22
23
|
import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
|
|
23
24
|
import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
|
|
24
|
-
import { LEGACY_MODE_FILE_EXTENSION, AGENTS_SOURCE_FOLDER } from '@codingame/monaco-vscode-
|
|
25
|
+
import { LEGACY_MODE_FILE_EXTENSION, AGENTS_SOURCE_FOLDER } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
|
|
25
26
|
import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
26
27
|
|
|
27
28
|
const MARKERS_OWNER_ID = 'prompts-diagnostics-provider';
|
|
@@ -45,14 +46,14 @@ let PromptValidator = class PromptValidator {
|
|
|
45
46
|
const location = this.promptsService.getAgentFileURIFromModeFile(promptAST.uri);
|
|
46
47
|
if (location && (await this.fileService.canCreateFile(location))) {
|
|
47
48
|
report(toMarker(( localize(
|
|
48
|
-
|
|
49
|
+
6016,
|
|
49
50
|
"Chat modes have been renamed to agents. Please move this file to {0}",
|
|
50
51
|
(location.toString())
|
|
51
52
|
)), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
|
|
52
53
|
}
|
|
53
54
|
else {
|
|
54
55
|
report(toMarker(( localize(
|
|
55
|
-
|
|
56
|
+
6017,
|
|
56
57
|
"Chat modes have been renamed to agents. Please move the file to {0}",
|
|
57
58
|
AGENTS_SOURCE_FOLDER
|
|
58
59
|
)), ( new Range(1, 1, 1, 4)), MarkerSeverity.Warning));
|
|
@@ -68,7 +69,7 @@ let PromptValidator = class PromptValidator {
|
|
|
68
69
|
for (const ref of body.fileReferences) {
|
|
69
70
|
const resolved = body.resolveFilePath(ref.content);
|
|
70
71
|
if (!resolved) {
|
|
71
|
-
report(toMarker(( localize(
|
|
72
|
+
report(toMarker(( localize(6018, "Invalid file reference '{0}'.", ref.content)), ref.range, MarkerSeverity.Warning));
|
|
72
73
|
continue;
|
|
73
74
|
}
|
|
74
75
|
if (promptAST.uri.scheme === resolved.scheme) {
|
|
@@ -82,7 +83,7 @@ let PromptValidator = class PromptValidator {
|
|
|
82
83
|
catch {
|
|
83
84
|
}
|
|
84
85
|
const loc = this.labelService.getUriLabel(resolved);
|
|
85
|
-
report(toMarker(( localize(
|
|
86
|
+
report(toMarker(( localize(6019, "File '{0}' not found at '{1}'.", ref.content, loc)), ref.range, MarkerSeverity.Warning));
|
|
86
87
|
})());
|
|
87
88
|
}
|
|
88
89
|
}
|
|
@@ -91,28 +92,42 @@ let PromptValidator = class PromptValidator {
|
|
|
91
92
|
const headerTools = promptAST.header?.tools;
|
|
92
93
|
const headerTarget = promptAST.header?.target;
|
|
93
94
|
const headerToolsMap = headerTools ? this.languageModelToolsService.toToolAndToolSetEnablementMap(headerTools, headerTarget) : undefined;
|
|
94
|
-
const available = ( new Set(this.languageModelToolsService.
|
|
95
|
-
const deprecatedNames = this.languageModelToolsService.
|
|
95
|
+
const available = ( new Set(this.languageModelToolsService.getFullReferenceNames()));
|
|
96
|
+
const deprecatedNames = this.languageModelToolsService.getDeprecatedFullReferenceNames();
|
|
96
97
|
for (const variable of body.variableReferences) {
|
|
97
98
|
if (!( available.has(variable.name))) {
|
|
98
99
|
if (( deprecatedNames.has(variable.name))) {
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
100
|
+
const currentNames = deprecatedNames.get(variable.name);
|
|
101
|
+
if (currentNames && currentNames.size > 0) {
|
|
102
|
+
if (currentNames.size === 1) {
|
|
103
|
+
const newName = Array.from(currentNames)[0];
|
|
104
|
+
report(toMarker(( localize(
|
|
105
|
+
6020,
|
|
106
|
+
"Tool or toolset '{0}' has been renamed, use '{1}' instead.",
|
|
107
|
+
variable.name,
|
|
108
|
+
newName
|
|
109
|
+
)), variable.range, MarkerSeverity.Info));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
const newNames = Array.from(currentNames).sort((a, b) => a.localeCompare(b)).join(', ');
|
|
113
|
+
report(toMarker(( localize(
|
|
114
|
+
6021,
|
|
115
|
+
"Tool or toolset '{0}' has been renamed, use the following tools instead: {1}",
|
|
116
|
+
variable.name,
|
|
117
|
+
newNames
|
|
118
|
+
)), variable.range, MarkerSeverity.Info));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
106
121
|
}
|
|
107
122
|
else {
|
|
108
|
-
report(toMarker(( localize(
|
|
123
|
+
report(toMarker(( localize(6022, "Unknown tool or toolset '{0}'.", variable.name)), variable.range, MarkerSeverity.Warning));
|
|
109
124
|
}
|
|
110
125
|
}
|
|
111
126
|
else if (headerToolsMap) {
|
|
112
|
-
const tool = this.languageModelToolsService.
|
|
127
|
+
const tool = this.languageModelToolsService.getToolByFullReferenceName(variable.name);
|
|
113
128
|
if (tool && headerToolsMap.get(tool) === false) {
|
|
114
129
|
report(toMarker(( localize(
|
|
115
|
-
|
|
130
|
+
6023,
|
|
116
131
|
"Tool or toolset '{0}' also needs to be enabled in the header.",
|
|
117
132
|
variable.name
|
|
118
133
|
)), variable.range, MarkerSeverity.Warning));
|
|
@@ -146,6 +161,7 @@ let PromptValidator = class PromptValidator {
|
|
|
146
161
|
break;
|
|
147
162
|
case PromptsType.agent: {
|
|
148
163
|
this.validateTarget(attributes, report);
|
|
164
|
+
this.validateInfer(attributes, report);
|
|
149
165
|
this.validateTools(attributes, ChatModeKind.Agent, header.target, report);
|
|
150
166
|
if (!isGitHubTarget) {
|
|
151
167
|
this.validateModel(attributes, ChatModeKind.Agent, report);
|
|
@@ -166,7 +182,7 @@ let PromptValidator = class PromptValidator {
|
|
|
166
182
|
switch (promptType) {
|
|
167
183
|
case PromptsType.prompt:
|
|
168
184
|
report(toMarker(( localize(
|
|
169
|
-
|
|
185
|
+
6024,
|
|
170
186
|
"Attribute '{0}' is not supported in prompt files. Supported: {1}.",
|
|
171
187
|
attribute.key,
|
|
172
188
|
supportedNames.value
|
|
@@ -175,7 +191,7 @@ let PromptValidator = class PromptValidator {
|
|
|
175
191
|
case PromptsType.agent:
|
|
176
192
|
if (isGitHubTarget) {
|
|
177
193
|
report(toMarker(( localize(
|
|
178
|
-
|
|
194
|
+
6025,
|
|
179
195
|
"Attribute '{0}' is not supported in custom GitHub Copilot agent files. Supported: {1}.",
|
|
180
196
|
attribute.key,
|
|
181
197
|
supportedNames.value
|
|
@@ -184,14 +200,14 @@ let PromptValidator = class PromptValidator {
|
|
|
184
200
|
else {
|
|
185
201
|
if (( validGithubCopilotAttributeNames.value.has(attribute.key))) {
|
|
186
202
|
report(toMarker(( localize(
|
|
187
|
-
|
|
203
|
+
6026,
|
|
188
204
|
"Attribute '{0}' is ignored when running locally in VS Code.",
|
|
189
205
|
attribute.key
|
|
190
206
|
)), attribute.range, MarkerSeverity.Info));
|
|
191
207
|
}
|
|
192
208
|
else {
|
|
193
209
|
report(toMarker(( localize(
|
|
194
|
-
|
|
210
|
+
6027,
|
|
195
211
|
"Attribute '{0}' is not supported in VS Code agent files. Supported: {1}.",
|
|
196
212
|
attribute.key,
|
|
197
213
|
supportedNames.value
|
|
@@ -201,7 +217,7 @@ let PromptValidator = class PromptValidator {
|
|
|
201
217
|
break;
|
|
202
218
|
case PromptsType.instructions:
|
|
203
219
|
report(toMarker(( localize(
|
|
204
|
-
|
|
220
|
+
6028,
|
|
205
221
|
"Attribute '{0}' is not supported in instructions files. Supported: {1}.",
|
|
206
222
|
attribute.key,
|
|
207
223
|
supportedNames.value
|
|
@@ -217,19 +233,13 @@ let PromptValidator = class PromptValidator {
|
|
|
217
233
|
return;
|
|
218
234
|
}
|
|
219
235
|
if (nameAttribute.value.type !== 'string') {
|
|
220
|
-
report(toMarker(( localize(
|
|
236
|
+
report(toMarker(( localize(6029, "The 'name' attribute must be a string.")), nameAttribute.range, MarkerSeverity.Error));
|
|
221
237
|
return;
|
|
222
238
|
}
|
|
223
239
|
if (nameAttribute.value.value.trim().length === 0) {
|
|
224
|
-
report(toMarker(( localize(
|
|
240
|
+
report(toMarker(( localize(6030, "The 'name' attribute must not be empty.")), nameAttribute.value.range, MarkerSeverity.Error));
|
|
225
241
|
return;
|
|
226
242
|
}
|
|
227
|
-
if (!PROMPT_NAME_REGEXP.test(nameAttribute.value.value)) {
|
|
228
|
-
report(toMarker(( localize(
|
|
229
|
-
5908,
|
|
230
|
-
"The 'name' attribute can only consist of letters, digits, underscores, hyphens, and periods."
|
|
231
|
-
)), nameAttribute.value.range, MarkerSeverity.Error));
|
|
232
|
-
}
|
|
233
243
|
}
|
|
234
244
|
validateDescription(attributes, report) {
|
|
235
245
|
const descriptionAttribute = attributes.find(attr => attr.key === PromptHeaderAttributes.description);
|
|
@@ -237,11 +247,11 @@ let PromptValidator = class PromptValidator {
|
|
|
237
247
|
return;
|
|
238
248
|
}
|
|
239
249
|
if (descriptionAttribute.value.type !== 'string') {
|
|
240
|
-
report(toMarker(( localize(
|
|
250
|
+
report(toMarker(( localize(6031, "The 'description' attribute must be a string.")), descriptionAttribute.range, MarkerSeverity.Error));
|
|
241
251
|
return;
|
|
242
252
|
}
|
|
243
253
|
if (descriptionAttribute.value.value.trim().length === 0) {
|
|
244
|
-
report(toMarker(( localize(
|
|
254
|
+
report(toMarker(( localize(6032, "The 'description' attribute should not be empty.")), descriptionAttribute.value.range, MarkerSeverity.Error));
|
|
245
255
|
return;
|
|
246
256
|
}
|
|
247
257
|
}
|
|
@@ -251,11 +261,11 @@ let PromptValidator = class PromptValidator {
|
|
|
251
261
|
return;
|
|
252
262
|
}
|
|
253
263
|
if (argumentHintAttribute.value.type !== 'string') {
|
|
254
|
-
report(toMarker(( localize(
|
|
264
|
+
report(toMarker(( localize(6033, "The 'argument-hint' attribute must be a string.")), argumentHintAttribute.range, MarkerSeverity.Error));
|
|
255
265
|
return;
|
|
256
266
|
}
|
|
257
267
|
if (argumentHintAttribute.value.value.trim().length === 0) {
|
|
258
|
-
report(toMarker(( localize(
|
|
268
|
+
report(toMarker(( localize(6034, "The 'argument-hint' attribute should not be empty.")), argumentHintAttribute.value.range, MarkerSeverity.Error));
|
|
259
269
|
return;
|
|
260
270
|
}
|
|
261
271
|
}
|
|
@@ -265,12 +275,12 @@ let PromptValidator = class PromptValidator {
|
|
|
265
275
|
return;
|
|
266
276
|
}
|
|
267
277
|
if (attribute.value.type !== 'string') {
|
|
268
|
-
report(toMarker(( localize(
|
|
278
|
+
report(toMarker(( localize(6035, "The 'model' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
|
|
269
279
|
return;
|
|
270
280
|
}
|
|
271
281
|
const modelName = attribute.value.value.trim();
|
|
272
282
|
if (modelName.length === 0) {
|
|
273
|
-
report(toMarker(( localize(
|
|
283
|
+
report(toMarker(( localize(6036, "The 'model' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
|
|
274
284
|
return;
|
|
275
285
|
}
|
|
276
286
|
const languageModes = this.languageModelsService.getLanguageModelIds();
|
|
@@ -279,10 +289,10 @@ let PromptValidator = class PromptValidator {
|
|
|
279
289
|
}
|
|
280
290
|
const modelMetadata = this.findModelByName(languageModes, modelName);
|
|
281
291
|
if (!modelMetadata) {
|
|
282
|
-
report(toMarker(( localize(
|
|
292
|
+
report(toMarker(( localize(6037, "Unknown model '{0}'.", modelName)), attribute.value.range, MarkerSeverity.Warning));
|
|
283
293
|
}
|
|
284
294
|
else if (agentKind === ChatModeKind.Agent && !ILanguageModelChatMetadata.suitableForAgentMode(modelMetadata)) {
|
|
285
|
-
report(toMarker(( localize(
|
|
295
|
+
report(toMarker(( localize(6038, "Model '{0}' is not suited for agent mode.", modelName)), attribute.value.range, MarkerSeverity.Warning));
|
|
286
296
|
}
|
|
287
297
|
}
|
|
288
298
|
findModelByName(languageModes, modelName) {
|
|
@@ -300,13 +310,13 @@ let PromptValidator = class PromptValidator {
|
|
|
300
310
|
if (modeAttribute) {
|
|
301
311
|
if (agentAttribute) {
|
|
302
312
|
report(toMarker(( localize(
|
|
303
|
-
|
|
313
|
+
6039,
|
|
304
314
|
"The 'mode' attribute has been deprecated. The 'agent' attribute is used instead."
|
|
305
315
|
)), modeAttribute.range, MarkerSeverity.Warning));
|
|
306
316
|
}
|
|
307
317
|
else {
|
|
308
318
|
report(toMarker(( localize(
|
|
309
|
-
|
|
319
|
+
6040,
|
|
310
320
|
"The 'mode' attribute has been deprecated. Please rename it to 'agent'."
|
|
311
321
|
)), modeAttribute.range, MarkerSeverity.Error));
|
|
312
322
|
}
|
|
@@ -316,12 +326,12 @@ let PromptValidator = class PromptValidator {
|
|
|
316
326
|
return undefined;
|
|
317
327
|
}
|
|
318
328
|
if (attribute.value.type !== 'string') {
|
|
319
|
-
report(toMarker(( localize(
|
|
329
|
+
report(toMarker(( localize(6041, "The '{0}' attribute must be a string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
|
|
320
330
|
return undefined;
|
|
321
331
|
}
|
|
322
332
|
const agentValue = attribute.value.value;
|
|
323
333
|
if (agentValue.trim().length === 0) {
|
|
324
|
-
report(toMarker(( localize(
|
|
334
|
+
report(toMarker(( localize(6042, "The '{0}' attribute must be a non-empty string.", attribute.key)), attribute.value.range, MarkerSeverity.Error));
|
|
325
335
|
return undefined;
|
|
326
336
|
}
|
|
327
337
|
return this.validateAgentValue(attribute.value, report);
|
|
@@ -336,7 +346,7 @@ let PromptValidator = class PromptValidator {
|
|
|
336
346
|
availableAgents.push(agent.name.get());
|
|
337
347
|
}
|
|
338
348
|
const errorMessage = ( localize(
|
|
339
|
-
|
|
349
|
+
6043,
|
|
340
350
|
"Unknown agent '{0}'. Available agents: {1}.",
|
|
341
351
|
value.value,
|
|
342
352
|
availableAgents.join(', ')
|
|
@@ -351,7 +361,7 @@ let PromptValidator = class PromptValidator {
|
|
|
351
361
|
}
|
|
352
362
|
if (agentKind !== ChatModeKind.Agent) {
|
|
353
363
|
report(toMarker(( localize(
|
|
354
|
-
|
|
364
|
+
6044,
|
|
355
365
|
"The 'tools' attribute is only supported when using agents. Attribute will be ignored."
|
|
356
366
|
)), attribute.range, MarkerSeverity.Warning));
|
|
357
367
|
}
|
|
@@ -363,31 +373,42 @@ let PromptValidator = class PromptValidator {
|
|
|
363
373
|
}
|
|
364
374
|
break;
|
|
365
375
|
default:
|
|
366
|
-
report(toMarker(( localize(
|
|
376
|
+
report(toMarker(( localize(6045, "The 'tools' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
|
|
367
377
|
}
|
|
368
378
|
}
|
|
369
379
|
validateVSCodeTools(valueItem, target, report) {
|
|
370
380
|
if (valueItem.items.length > 0) {
|
|
371
|
-
const available = ( new Set(this.languageModelToolsService.
|
|
372
|
-
const deprecatedNames = this.languageModelToolsService.
|
|
381
|
+
const available = ( new Set(this.languageModelToolsService.getFullReferenceNames()));
|
|
382
|
+
const deprecatedNames = this.languageModelToolsService.getDeprecatedFullReferenceNames();
|
|
373
383
|
for (const item of valueItem.items) {
|
|
374
384
|
if (item.type !== 'string') {
|
|
375
|
-
report(toMarker(( localize(
|
|
385
|
+
report(toMarker(( localize(6046, "Each tool name in the 'tools' attribute must be a string.")), item.range, MarkerSeverity.Error));
|
|
376
386
|
}
|
|
377
387
|
else if (item.value) {
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
if (
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
+
if (!( available.has(item.value))) {
|
|
389
|
+
const currentNames = deprecatedNames.get(item.value);
|
|
390
|
+
if (currentNames) {
|
|
391
|
+
if (currentNames?.size === 1) {
|
|
392
|
+
const newName = Array.from(currentNames)[0];
|
|
393
|
+
report(toMarker(( localize(
|
|
394
|
+
6047,
|
|
395
|
+
"Tool or toolset '{0}' has been renamed, use '{1}' instead.",
|
|
396
|
+
item.value,
|
|
397
|
+
newName
|
|
398
|
+
)), item.range, MarkerSeverity.Info));
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
const newNames = Array.from(currentNames).sort((a, b) => a.localeCompare(b)).join(', ');
|
|
402
|
+
report(toMarker(( localize(
|
|
403
|
+
6048,
|
|
404
|
+
"Tool or toolset '{0}' has been renamed, use the following tools instead: {1}",
|
|
405
|
+
item.value,
|
|
406
|
+
newNames
|
|
407
|
+
)), item.range, MarkerSeverity.Info));
|
|
408
|
+
}
|
|
388
409
|
}
|
|
389
410
|
else {
|
|
390
|
-
report(toMarker(( localize(
|
|
411
|
+
report(toMarker(( localize(6049, "Unknown tool '{0}'.", item.value)), item.range, MarkerSeverity.Warning));
|
|
391
412
|
}
|
|
392
413
|
}
|
|
393
414
|
}
|
|
@@ -400,26 +421,26 @@ let PromptValidator = class PromptValidator {
|
|
|
400
421
|
return;
|
|
401
422
|
}
|
|
402
423
|
if (attribute.value.type !== 'string') {
|
|
403
|
-
report(toMarker(( localize(
|
|
424
|
+
report(toMarker(( localize(6050, "The 'applyTo' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
|
|
404
425
|
return;
|
|
405
426
|
}
|
|
406
427
|
const pattern = attribute.value.value;
|
|
407
428
|
try {
|
|
408
429
|
const patterns = splitGlobAware(pattern, ',');
|
|
409
430
|
if (patterns.length === 0) {
|
|
410
|
-
report(toMarker(( localize(
|
|
431
|
+
report(toMarker(( localize(6051, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
|
|
411
432
|
return;
|
|
412
433
|
}
|
|
413
434
|
for (const pattern of patterns) {
|
|
414
435
|
const globPattern = parse(pattern);
|
|
415
436
|
if (isEmptyPattern(globPattern)) {
|
|
416
|
-
report(toMarker(( localize(
|
|
437
|
+
report(toMarker(( localize(6051, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
|
|
417
438
|
return;
|
|
418
439
|
}
|
|
419
440
|
}
|
|
420
441
|
}
|
|
421
442
|
catch (_error) {
|
|
422
|
-
report(toMarker(( localize(
|
|
443
|
+
report(toMarker(( localize(6051, "The 'applyTo' attribute must be a valid glob pattern.")), attribute.value.range, MarkerSeverity.Error));
|
|
423
444
|
}
|
|
424
445
|
}
|
|
425
446
|
validateExcludeAgent(attributes, report) {
|
|
@@ -428,7 +449,7 @@ let PromptValidator = class PromptValidator {
|
|
|
428
449
|
return;
|
|
429
450
|
}
|
|
430
451
|
if (attribute.value.type !== 'array') {
|
|
431
|
-
report(toMarker(( localize(
|
|
452
|
+
report(toMarker(( localize(6052, "The 'excludeAgent' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
|
|
432
453
|
return;
|
|
433
454
|
}
|
|
434
455
|
}
|
|
@@ -438,13 +459,13 @@ let PromptValidator = class PromptValidator {
|
|
|
438
459
|
return;
|
|
439
460
|
}
|
|
440
461
|
if (attribute.value.type !== 'array') {
|
|
441
|
-
report(toMarker(( localize(
|
|
462
|
+
report(toMarker(( localize(6053, "The 'handoffs' attribute must be an array.")), attribute.value.range, MarkerSeverity.Error));
|
|
442
463
|
return;
|
|
443
464
|
}
|
|
444
465
|
for (const item of attribute.value.items) {
|
|
445
466
|
if (item.type !== 'object') {
|
|
446
467
|
report(toMarker(( localize(
|
|
447
|
-
|
|
468
|
+
6054,
|
|
448
469
|
"Each handoff in the 'handoffs' attribute must be an object with 'label', 'agent', 'prompt' and optional 'send'."
|
|
449
470
|
)), item.range, MarkerSeverity.Error));
|
|
450
471
|
continue;
|
|
@@ -454,12 +475,12 @@ let PromptValidator = class PromptValidator {
|
|
|
454
475
|
switch (prop.key.value) {
|
|
455
476
|
case 'label':
|
|
456
477
|
if (prop.value.type !== 'string' || prop.value.value.trim().length === 0) {
|
|
457
|
-
report(toMarker(( localize(
|
|
478
|
+
report(toMarker(( localize(6055, "The 'label' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
|
|
458
479
|
}
|
|
459
480
|
break;
|
|
460
481
|
case 'agent':
|
|
461
482
|
if (prop.value.type !== 'string' || prop.value.value.trim().length === 0) {
|
|
462
|
-
report(toMarker(( localize(
|
|
483
|
+
report(toMarker(( localize(6056, "The 'agent' property in a handoff must be a non-empty string.")), prop.value.range, MarkerSeverity.Error));
|
|
463
484
|
}
|
|
464
485
|
else {
|
|
465
486
|
this.validateAgentValue(prop.value, report);
|
|
@@ -467,18 +488,23 @@ let PromptValidator = class PromptValidator {
|
|
|
467
488
|
break;
|
|
468
489
|
case 'prompt':
|
|
469
490
|
if (prop.value.type !== 'string') {
|
|
470
|
-
report(toMarker(( localize(
|
|
491
|
+
report(toMarker(( localize(6057, "The 'prompt' property in a handoff must be a string.")), prop.value.range, MarkerSeverity.Error));
|
|
471
492
|
}
|
|
472
493
|
break;
|
|
473
494
|
case 'send':
|
|
474
495
|
if (prop.value.type !== 'boolean') {
|
|
475
|
-
report(toMarker(( localize(
|
|
496
|
+
report(toMarker(( localize(6058, "The 'send' property in a handoff must be a boolean.")), prop.value.range, MarkerSeverity.Error));
|
|
497
|
+
}
|
|
498
|
+
break;
|
|
499
|
+
case 'showContinueOn':
|
|
500
|
+
if (prop.value.type !== 'boolean') {
|
|
501
|
+
report(toMarker(( localize(6059, "The 'showContinueOn' property in a handoff must be a boolean.")), prop.value.range, MarkerSeverity.Error));
|
|
476
502
|
}
|
|
477
503
|
break;
|
|
478
504
|
default:
|
|
479
505
|
report(toMarker(( localize(
|
|
480
|
-
|
|
481
|
-
"Unknown property '{0}' in handoff object. Supported properties are 'label', 'agent', 'prompt' and optional 'send'.",
|
|
506
|
+
6060,
|
|
507
|
+
"Unknown property '{0}' in handoff object. Supported properties are 'label', 'agent', 'prompt' and optional 'send', 'showContinueOn'.",
|
|
482
508
|
prop.key.value
|
|
483
509
|
)), prop.value.range, MarkerSeverity.Warning));
|
|
484
510
|
}
|
|
@@ -486,31 +512,41 @@ let PromptValidator = class PromptValidator {
|
|
|
486
512
|
}
|
|
487
513
|
if (required.size > 0) {
|
|
488
514
|
report(toMarker(( localize(
|
|
489
|
-
|
|
515
|
+
6061,
|
|
490
516
|
"Missing required properties {0} in handoff object.",
|
|
491
517
|
( Array.from(required).map(s => `'${s}'`)).join(', ')
|
|
492
518
|
)), item.range, MarkerSeverity.Error));
|
|
493
519
|
}
|
|
494
520
|
}
|
|
495
521
|
}
|
|
522
|
+
validateInfer(attributes, report) {
|
|
523
|
+
const attribute = attributes.find(attr => attr.key === PromptHeaderAttributes.infer);
|
|
524
|
+
if (!attribute) {
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
if (attribute.value.type !== 'boolean') {
|
|
528
|
+
report(toMarker(( localize(6062, "The 'infer' attribute must be a boolean.")), attribute.value.range, MarkerSeverity.Error));
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
496
532
|
validateTarget(attributes, report) {
|
|
497
533
|
const attribute = attributes.find(attr => attr.key === PromptHeaderAttributes.target);
|
|
498
534
|
if (!attribute) {
|
|
499
535
|
return;
|
|
500
536
|
}
|
|
501
537
|
if (attribute.value.type !== 'string') {
|
|
502
|
-
report(toMarker(( localize(
|
|
538
|
+
report(toMarker(( localize(6063, "The 'target' attribute must be a string.")), attribute.value.range, MarkerSeverity.Error));
|
|
503
539
|
return;
|
|
504
540
|
}
|
|
505
541
|
const targetValue = attribute.value.value.trim();
|
|
506
542
|
if (targetValue.length === 0) {
|
|
507
|
-
report(toMarker(( localize(
|
|
543
|
+
report(toMarker(( localize(6064, "The 'target' attribute must be a non-empty string.")), attribute.value.range, MarkerSeverity.Error));
|
|
508
544
|
return;
|
|
509
545
|
}
|
|
510
546
|
const validTargets = ['github-copilot', 'vscode'];
|
|
511
547
|
if (!validTargets.includes(targetValue)) {
|
|
512
548
|
report(toMarker(( localize(
|
|
513
|
-
|
|
549
|
+
6065,
|
|
514
550
|
"The 'target' attribute must be one of: {0}.",
|
|
515
551
|
validTargets.join(', ')
|
|
516
552
|
)), attribute.value.range, MarkerSeverity.Error));
|
|
@@ -528,9 +564,9 @@ PromptValidator = ( __decorate([
|
|
|
528
564
|
const allAttributeNames = {
|
|
529
565
|
[PromptsType.prompt]: [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.model, PromptHeaderAttributes.tools, PromptHeaderAttributes.mode, PromptHeaderAttributes.agent, PromptHeaderAttributes.argumentHint],
|
|
530
566
|
[PromptsType.instructions]: [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.applyTo, PromptHeaderAttributes.excludeAgent],
|
|
531
|
-
[PromptsType.agent]: [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.model, PromptHeaderAttributes.tools, PromptHeaderAttributes.advancedOptions, PromptHeaderAttributes.handOffs, PromptHeaderAttributes.argumentHint, PromptHeaderAttributes.target]
|
|
567
|
+
[PromptsType.agent]: [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.model, PromptHeaderAttributes.tools, PromptHeaderAttributes.advancedOptions, PromptHeaderAttributes.handOffs, PromptHeaderAttributes.argumentHint, PromptHeaderAttributes.target, PromptHeaderAttributes.infer]
|
|
532
568
|
};
|
|
533
|
-
const githubCopilotAgentAttributeNames = [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.tools, PromptHeaderAttributes.target, GithubPromptHeaderAttributes.mcpServers];
|
|
569
|
+
const githubCopilotAgentAttributeNames = [PromptHeaderAttributes.name, PromptHeaderAttributes.description, PromptHeaderAttributes.tools, PromptHeaderAttributes.target, GithubPromptHeaderAttributes.mcpServers, PromptHeaderAttributes.infer];
|
|
534
570
|
const recommendedAttributeNames = {
|
|
535
571
|
[PromptsType.prompt]: allAttributeNames[PromptsType.prompt].filter(name => !isNonRecommendedAttribute(name)),
|
|
536
572
|
[PromptsType.instructions]: allAttributeNames[PromptsType.instructions].filter(name => !isNonRecommendedAttribute(name)),
|
|
@@ -545,12 +581,9 @@ function getValidAttributeNames(promptType, includeNonRecommended, isGitHubTarge
|
|
|
545
581
|
function isNonRecommendedAttribute(attributeName) {
|
|
546
582
|
return attributeName === PromptHeaderAttributes.advancedOptions || attributeName === PromptHeaderAttributes.excludeAgent || attributeName === PromptHeaderAttributes.mode;
|
|
547
583
|
}
|
|
548
|
-
const knownGithubCopilotTools =
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
'search': ( localize(5943, 'Search in files')),
|
|
552
|
-
'custom-agent': ( localize(5944, 'Call custom agents'))
|
|
553
|
-
};
|
|
584
|
+
const knownGithubCopilotTools = [
|
|
585
|
+
SpecedToolAliases.execute, SpecedToolAliases.read, SpecedToolAliases.edit, SpecedToolAliases.search, SpecedToolAliases.agent,
|
|
586
|
+
];
|
|
554
587
|
function isGithubTarget(promptType, target) {
|
|
555
588
|
return promptType === PromptsType.agent && target === Target.GitHubCopilot;
|
|
556
589
|
}
|
|
@@ -653,4 +686,4 @@ ModelTracker = ( __decorate([
|
|
|
653
686
|
( __param(4, IMarkerService))
|
|
654
687
|
], ModelTracker));
|
|
655
688
|
|
|
656
|
-
export { PromptValidator, PromptValidatorContribution, getValidAttributeNames, isGithubTarget, isNonRecommendedAttribute, knownGithubCopilotTools };
|
|
689
|
+
export { MARKERS_OWNER_ID, PromptValidator, PromptValidatorContribution, getValidAttributeNames, isGithubTarget, isNonRecommendedAttribute, knownGithubCopilotTools };
|
|
@@ -10,7 +10,7 @@ import { PromptDocumentSemanticTokensProvider } from './languageProviders/prompt
|
|
|
10
10
|
import { PromptCodeActionProvider } from './languageProviders/promptCodeActions.js';
|
|
11
11
|
import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service';
|
|
12
12
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
13
|
-
import { ALL_PROMPTS_LANGUAGE_SELECTOR } from '@codingame/monaco-vscode-
|
|
13
|
+
import { ALL_PROMPTS_LANGUAGE_SELECTOR } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
14
14
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
15
15
|
|
|
16
16
|
let PromptLanguageFeaturesProvider = class PromptLanguageFeaturesProvider extends Disposable {
|