@codingame/monaco-vscode-chat-service-override 22.1.9 → 23.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 +17 -8
- package/package.json +43 -40
- package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +57 -48
- 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 +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +26 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +51 -5
- 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.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.d.ts → chatNewActions.d.ts} +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.js → chatNewActions.js} +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +101 -98
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +35 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +43 -25
- 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 +34 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +154 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +347 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +250 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +97 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +290 -231
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +7 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +6 -6
- 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 +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +113 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +102 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +646 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +2 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +46 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +17 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +44 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +46 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +45 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +30 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +60 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +117 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +6 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +60 -55
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +29 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +365 -143
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +2 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +3 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +7 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +58 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +5 -4
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +6 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +7 -11
- 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 +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +38 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +11 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +83 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +91 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +64 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +370 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +25 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +56 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +61 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +349 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +43 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +787 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +109 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +122 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +211 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatUsageWidget.css +69 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +21 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +54 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +31 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +16 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +29 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +37 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +15 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +96 -131
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +12 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +66 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +77 -71
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +91 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +458 -138
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +212 -150
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +96 -89
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +15 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +33 -17
- 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 +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +688 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +15 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +126 -135
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditorController.css +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +38 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +28 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +24 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +15 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +25 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +89 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +30 -29
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +10 -19
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +61 -43
- package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +28 -28
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +254 -165
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +4 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +10 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +20 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +13 -17
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +9 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +51 -21
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +7 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +74 -20
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +11 -6
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +83 -53
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +136 -78
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +18 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +357 -157
- 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 +55 -28
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +235 -108
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +12 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +50 -4
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
- 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/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +11 -7
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +13 -15
- 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 +20 -32
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +63 -140
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +17 -16
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
- 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 +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +119 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +6 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +192 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +21 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +8 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +18 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -25
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +18 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +31 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +24 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +33 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +42 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +14 -21
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +227 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +133 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +36 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +75 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +71 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +28 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +366 -363
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +18 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +9 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +123 -0
- package/vscode/src/vs/base/common/yaml.d.ts +0 -74
- package/vscode/src/vs/base/common/yaml.js +0 -597
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +0 -239
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +0 -102
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +0 -435
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.js +0 -67
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +0 -49
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +0 -380
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.d.ts +0 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.js +0 -137
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +0 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +0 -176
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.d.ts +0 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +0 -206
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +0 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +0 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +0 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +0 -306
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +0 -102
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.d.ts +0 -97
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.js +0 -247
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +0 -118
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +0 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +0 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +0 -55
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +0 -66
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
-
import { getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-
|
|
3
|
+
import { getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
4
4
|
import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
|
|
5
|
+
import { isGithubTarget } from './promptValidator.js';
|
|
5
6
|
|
|
6
7
|
let PromptDocumentSemanticTokensProvider = class PromptDocumentSemanticTokensProvider {
|
|
7
8
|
constructor(promptsService) {
|
|
@@ -13,11 +14,14 @@ let PromptDocumentSemanticTokensProvider = class PromptDocumentSemanticTokensPro
|
|
|
13
14
|
if (!promptType) {
|
|
14
15
|
return undefined;
|
|
15
16
|
}
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
17
|
+
const promptAST = this.promptsService.getParsedPromptFile(model);
|
|
18
|
+
if (!promptAST.body) {
|
|
18
19
|
return undefined;
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
+
if (isGithubTarget(promptType, promptAST.header?.target)) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
const variableReferences = promptAST.body.variableReferences;
|
|
21
25
|
if (!variableReferences.length) {
|
|
22
26
|
return undefined;
|
|
23
27
|
}
|
|
@@ -28,9 +32,10 @@ let PromptDocumentSemanticTokensProvider = class PromptDocumentSemanticTokensPro
|
|
|
28
32
|
? a.range.startColumn - b.range.startColumn
|
|
29
33
|
: a.range.startLineNumber - b.range.startLineNumber);
|
|
30
34
|
for (const ref of ordered) {
|
|
35
|
+
const extraCharCount = '#tool:'.length;
|
|
31
36
|
const line = ref.range.startLineNumber - 1;
|
|
32
|
-
const char = ref.range.startColumn -
|
|
33
|
-
const length = ref.range.endColumn - ref.range.startColumn +
|
|
37
|
+
const char = ref.range.startColumn - extraCharCount - 1;
|
|
38
|
+
const length = ref.range.endColumn - ref.range.startColumn + extraCharCount;
|
|
34
39
|
const deltaLine = line - lastLine;
|
|
35
40
|
const deltaChar = deltaLine === 0 ? char - lastChar : char;
|
|
36
41
|
data.push(deltaLine, deltaChar, length, 0 , 0 );
|
|
@@ -25,9 +25,8 @@ export declare class PromptHeaderAutocompletion implements CompletionItemProvide
|
|
|
25
25
|
* completion items based on the provided arguments.
|
|
26
26
|
*/
|
|
27
27
|
provideCompletionItems(model: ITextModel, position: Position, context: CompletionContext, token: CancellationToken): Promise<CompletionList | undefined>;
|
|
28
|
-
private
|
|
28
|
+
private provideAttributeNameCompletions;
|
|
29
29
|
private provideValueCompletions;
|
|
30
|
-
private removeUsedProperties;
|
|
31
30
|
private getValueSuggestions;
|
|
32
31
|
private getModelNames;
|
|
33
32
|
private provideToolCompletions;
|
|
@@ -8,10 +8,12 @@ import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/
|
|
|
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
10
|
import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
|
|
11
|
-
import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-
|
|
11
|
+
import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
12
12
|
import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
|
|
13
13
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
14
|
-
import {
|
|
14
|
+
import { PromptHeaderAttributes } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
|
|
15
|
+
import { isGithubTarget, getValidAttributeNames, knownGithubCopilotTools } from './promptValidator.js';
|
|
16
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
15
17
|
|
|
16
18
|
let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
|
|
17
19
|
constructor(promptsService, languageModelsService, languageModelToolsService, chatModeService) {
|
|
@@ -27,12 +29,12 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
|
|
|
27
29
|
if (!promptType) {
|
|
28
30
|
return undefined;
|
|
29
31
|
}
|
|
30
|
-
const
|
|
31
|
-
const header =
|
|
32
|
+
const parsedAST = this.promptsService.getParsedPromptFile(model);
|
|
33
|
+
const header = parsedAST.header;
|
|
32
34
|
if (!header) {
|
|
33
35
|
return undefined;
|
|
34
36
|
}
|
|
35
|
-
const headerRange =
|
|
37
|
+
const headerRange = parsedAST.header.range;
|
|
36
38
|
if (position.lineNumber < headerRange.startLineNumber || position.lineNumber >= headerRange.endLineNumber) {
|
|
37
39
|
return undefined;
|
|
38
40
|
}
|
|
@@ -40,34 +42,37 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
|
|
|
40
42
|
const colonIndex = lineText.indexOf(':');
|
|
41
43
|
const colonPosition = colonIndex !== -1 ? ( new Position(position.lineNumber, colonIndex + 1)) : undefined;
|
|
42
44
|
if (!colonPosition || position.isBeforeOrEqual(colonPosition)) {
|
|
43
|
-
return this.
|
|
45
|
+
return this.provideAttributeNameCompletions(model, position, header, colonPosition, promptType);
|
|
44
46
|
}
|
|
45
47
|
else if (colonPosition && colonPosition.isBefore(position)) {
|
|
46
48
|
return this.provideValueCompletions(model, position, header, colonPosition, promptType);
|
|
47
49
|
}
|
|
48
50
|
return undefined;
|
|
49
51
|
}
|
|
50
|
-
async
|
|
52
|
+
async provideAttributeNameCompletions(model, position, header, colonPosition, promptType) {
|
|
51
53
|
const suggestions = [];
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
const
|
|
54
|
+
const isGitHubTarget = isGithubTarget(promptType, header.target);
|
|
55
|
+
const attributesToPropose = ( new Set(getValidAttributeNames(promptType, false, isGitHubTarget)));
|
|
56
|
+
for (const attr of header.attributes) {
|
|
57
|
+
attributesToPropose.delete(attr.key);
|
|
58
|
+
}
|
|
59
|
+
const getInsertText = (key) => {
|
|
55
60
|
if (colonPosition) {
|
|
56
|
-
return
|
|
61
|
+
return key;
|
|
57
62
|
}
|
|
58
|
-
const valueSuggestions = this.getValueSuggestions(promptType,
|
|
63
|
+
const valueSuggestions = this.getValueSuggestions(promptType, key);
|
|
59
64
|
if (valueSuggestions.length > 0) {
|
|
60
|
-
return `${
|
|
65
|
+
return `${key}: \${0:${valueSuggestions[0]}}`;
|
|
61
66
|
}
|
|
62
67
|
else {
|
|
63
|
-
return `${
|
|
68
|
+
return `${key}: \$0`;
|
|
64
69
|
}
|
|
65
70
|
};
|
|
66
|
-
for (const
|
|
71
|
+
for (const attribute of attributesToPropose) {
|
|
67
72
|
const item = {
|
|
68
|
-
label:
|
|
73
|
+
label: attribute,
|
|
69
74
|
kind: CompletionItemKind.Property,
|
|
70
|
-
insertText: getInsertText(
|
|
75
|
+
insertText: getInsertText(attribute),
|
|
71
76
|
insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,
|
|
72
77
|
range: ( new Range(
|
|
73
78
|
position.lineNumber,
|
|
@@ -83,12 +88,13 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
|
|
|
83
88
|
async provideValueCompletions(model, position, header, colonPosition, promptType) {
|
|
84
89
|
const suggestions = [];
|
|
85
90
|
const lineContent = model.getLineContent(position.lineNumber);
|
|
86
|
-
const
|
|
87
|
-
|
|
91
|
+
const attribute = lineContent.substring(0, colonPosition.column - 1).trim();
|
|
92
|
+
const isGitHubTarget = isGithubTarget(promptType, header.target);
|
|
93
|
+
if (!getValidAttributeNames(promptType, true, isGitHubTarget).includes(attribute)) {
|
|
88
94
|
return undefined;
|
|
89
95
|
}
|
|
90
|
-
if (promptType === PromptsType.prompt || promptType === PromptsType.
|
|
91
|
-
const result = this.provideToolCompletions(model, position, header);
|
|
96
|
+
if (promptType === PromptsType.prompt || promptType === PromptsType.agent) {
|
|
97
|
+
const result = this.provideToolCompletions(model, position, header, isGitHubTarget);
|
|
92
98
|
if (result) {
|
|
93
99
|
return result;
|
|
94
100
|
}
|
|
@@ -98,7 +104,7 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
|
|
|
98
104
|
return undefined;
|
|
99
105
|
}
|
|
100
106
|
const whilespaceAfterColon = (lineContent.substring(colonPosition.column).match(/^\s*/)?.[0].length) ?? 0;
|
|
101
|
-
const values = this.getValueSuggestions(promptType,
|
|
107
|
+
const values = this.getValueSuggestions(promptType, attribute);
|
|
102
108
|
for (const value of values) {
|
|
103
109
|
const item = {
|
|
104
110
|
label: value,
|
|
@@ -113,37 +119,60 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
|
|
|
113
119
|
};
|
|
114
120
|
suggestions.push(item);
|
|
115
121
|
}
|
|
122
|
+
if (attribute === PromptHeaderAttributes.handOffs && (promptType === PromptsType.agent)) {
|
|
123
|
+
const value = [
|
|
124
|
+
'',
|
|
125
|
+
' - label: Start Implementation',
|
|
126
|
+
' agent: agent',
|
|
127
|
+
' prompt: Implement the plan',
|
|
128
|
+
' send: true'
|
|
129
|
+
].join('\n');
|
|
130
|
+
const item = {
|
|
131
|
+
label: ( localize(5844, "Handoff Example")),
|
|
132
|
+
kind: CompletionItemKind.Value,
|
|
133
|
+
insertText: whilespaceAfterColon === 0 ? ` ${value}` : value,
|
|
134
|
+
range: ( new Range(
|
|
135
|
+
position.lineNumber,
|
|
136
|
+
colonPosition.column + whilespaceAfterColon + 1,
|
|
137
|
+
position.lineNumber,
|
|
138
|
+
model.getLineMaxColumn(position.lineNumber)
|
|
139
|
+
)),
|
|
140
|
+
};
|
|
141
|
+
suggestions.push(item);
|
|
142
|
+
}
|
|
116
143
|
return { suggestions };
|
|
117
144
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
145
|
+
getValueSuggestions(promptType, attribute) {
|
|
146
|
+
switch (attribute) {
|
|
147
|
+
case PromptHeaderAttributes.applyTo:
|
|
148
|
+
if (promptType === PromptsType.instructions) {
|
|
149
|
+
return [`'**'`, `'**/*.ts, **/*.js'`, `'**/*.php'`, `'**/*.py'`];
|
|
150
|
+
}
|
|
151
|
+
break;
|
|
152
|
+
case PromptHeaderAttributes.agent:
|
|
153
|
+
case PromptHeaderAttributes.mode:
|
|
154
|
+
if (promptType === PromptsType.prompt) {
|
|
155
|
+
const agents = this.chatModeService.getModes();
|
|
156
|
+
const suggestions = [];
|
|
157
|
+
for (const agent of Iterable.concat(agents.builtin, agents.custom)) {
|
|
158
|
+
suggestions.push(agent.name.get());
|
|
159
|
+
}
|
|
160
|
+
return suggestions;
|
|
161
|
+
}
|
|
162
|
+
case PromptHeaderAttributes.target:
|
|
163
|
+
if (promptType === PromptsType.agent) {
|
|
164
|
+
return ['vscode', 'github-copilot'];
|
|
165
|
+
}
|
|
166
|
+
break;
|
|
167
|
+
case PromptHeaderAttributes.tools:
|
|
168
|
+
if (promptType === PromptsType.prompt || promptType === PromptsType.agent) {
|
|
169
|
+
return ['[]', `['search', 'edit', 'fetch']`];
|
|
170
|
+
}
|
|
171
|
+
break;
|
|
172
|
+
case PromptHeaderAttributes.model:
|
|
173
|
+
if (promptType === PromptsType.prompt || promptType === PromptsType.agent) {
|
|
174
|
+
return this.getModelNames(promptType === PromptsType.agent);
|
|
126
175
|
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
getValueSuggestions(promptType, property) {
|
|
131
|
-
if (promptType === PromptsType.instructions && property === 'applyTo') {
|
|
132
|
-
return [`'**'`, `'**/*.ts, **/*.js'`, `'**/*.php'`, `'**/*.py'`];
|
|
133
|
-
}
|
|
134
|
-
if (promptType === PromptsType.prompt && property === 'mode') {
|
|
135
|
-
const modes = this.chatModeService.getModes();
|
|
136
|
-
const suggestions = [];
|
|
137
|
-
for (const mode of Iterable.concat(modes.builtin, modes.custom)) {
|
|
138
|
-
suggestions.push(mode.name);
|
|
139
|
-
}
|
|
140
|
-
return suggestions;
|
|
141
|
-
}
|
|
142
|
-
if (property === 'tools' && (promptType === PromptsType.prompt || promptType === PromptsType.mode)) {
|
|
143
|
-
return ['[]', `['search', 'edit', 'fetch']`];
|
|
144
|
-
}
|
|
145
|
-
if (property === 'model' && (promptType === PromptsType.prompt || promptType === PromptsType.mode)) {
|
|
146
|
-
return this.getModelNames(promptType === PromptsType.mode);
|
|
147
176
|
}
|
|
148
177
|
return [];
|
|
149
178
|
}
|
|
@@ -159,14 +188,15 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
|
|
|
159
188
|
}
|
|
160
189
|
return result;
|
|
161
190
|
}
|
|
162
|
-
provideToolCompletions(model, position, header) {
|
|
163
|
-
const toolsAttr = header.getAttribute(
|
|
191
|
+
provideToolCompletions(model, position, header, isGitHubTarget) {
|
|
192
|
+
const toolsAttr = header.getAttribute(PromptHeaderAttributes.tools);
|
|
164
193
|
if (!toolsAttr || toolsAttr.value.type !== 'array' || !toolsAttr.range.containsPosition(position)) {
|
|
165
194
|
return undefined;
|
|
166
195
|
}
|
|
167
196
|
const getSuggestions = (toolRange) => {
|
|
168
197
|
const suggestions = [];
|
|
169
|
-
|
|
198
|
+
const toolNames = isGitHubTarget ? ( Object.keys(knownGithubCopilotTools)) : this.languageModelToolsService.getQualifiedToolNames();
|
|
199
|
+
for (const toolName of toolNames) {
|
|
170
200
|
let insertText;
|
|
171
201
|
if (!toolRange.isEmpty()) {
|
|
172
202
|
const firstChar = model.getValueInRange(toolRange).charCodeAt(0);
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js
CHANGED
|
@@ -6,10 +6,12 @@ import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/
|
|
|
6
6
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
7
7
|
import { ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
|
|
8
8
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
|
|
9
|
-
import { isBuiltinChatMode } from '@codingame/monaco-vscode-
|
|
9
|
+
import { isBuiltinChatMode } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatModes';
|
|
10
10
|
import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
|
|
11
|
-
import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-
|
|
11
|
+
import { getPromptsTypeForLanguageId, PromptsType } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
12
12
|
import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
|
|
13
|
+
import { PromptHeaderAttributes, Target } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
|
|
14
|
+
import { isGithubTarget, knownGithubCopilotTools } from './promptValidator.js';
|
|
13
15
|
|
|
14
16
|
let PromptHoverProvider = class PromptHoverProvider {
|
|
15
17
|
constructor(promptsService, languageModelToolsService, languageModelsService, chatModeService) {
|
|
@@ -30,12 +32,12 @@ let PromptHoverProvider = class PromptHoverProvider {
|
|
|
30
32
|
if (!promptType) {
|
|
31
33
|
return undefined;
|
|
32
34
|
}
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
35
|
-
return this.provideHeaderHover(position, promptType,
|
|
35
|
+
const promptAST = this.promptsService.getParsedPromptFile(model);
|
|
36
|
+
if (promptAST.header?.range.containsPosition(position)) {
|
|
37
|
+
return this.provideHeaderHover(position, promptType, promptAST.header);
|
|
36
38
|
}
|
|
37
|
-
if (
|
|
38
|
-
return this.provideBodyHover(position,
|
|
39
|
+
if (promptAST.body?.range.containsPosition(position)) {
|
|
40
|
+
return this.provideBodyHover(position, promptAST.body);
|
|
39
41
|
}
|
|
40
42
|
return undefined;
|
|
41
43
|
}
|
|
@@ -50,66 +52,112 @@ let PromptHoverProvider = class PromptHoverProvider {
|
|
|
50
52
|
}
|
|
51
53
|
async provideHeaderHover(position, promptType, header) {
|
|
52
54
|
if (promptType === PromptsType.instructions) {
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
55
|
+
for (const attribute of header.attributes) {
|
|
56
|
+
if (attribute.range.containsPosition(position)) {
|
|
57
|
+
switch (attribute.key) {
|
|
58
|
+
case PromptHeaderAttributes.name:
|
|
59
|
+
return this.createHover(( localize(
|
|
60
|
+
5845,
|
|
61
|
+
'The name of the instruction file as shown in the UI. If not set, the name is derived from the file name.'
|
|
62
|
+
)), attribute.range);
|
|
63
|
+
case PromptHeaderAttributes.description:
|
|
64
|
+
return this.createHover(( localize(
|
|
65
|
+
5846,
|
|
66
|
+
'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.'
|
|
67
|
+
)), attribute.range);
|
|
68
|
+
case PromptHeaderAttributes.applyTo:
|
|
69
|
+
return this.createHover(( localize(
|
|
70
|
+
5847,
|
|
71
|
+
'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/**`'
|
|
72
|
+
)), attribute.range);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
66
75
|
}
|
|
67
76
|
}
|
|
68
|
-
else if (promptType === PromptsType.
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
else if (promptType === PromptsType.agent) {
|
|
78
|
+
const isGitHubTarget = isGithubTarget(promptType, header.target);
|
|
79
|
+
for (const attribute of header.attributes) {
|
|
80
|
+
if (attribute.range.containsPosition(position)) {
|
|
81
|
+
switch (attribute.key) {
|
|
82
|
+
case PromptHeaderAttributes.name:
|
|
83
|
+
return this.createHover(( localize(5848, 'The name of the agent as shown in the UI.')), attribute.range);
|
|
84
|
+
case PromptHeaderAttributes.description:
|
|
85
|
+
return this.createHover(( localize(
|
|
86
|
+
5849,
|
|
87
|
+
'The description of the custom agent, what it does and when to use it.'
|
|
88
|
+
)), attribute.range);
|
|
89
|
+
case PromptHeaderAttributes.argumentHint:
|
|
90
|
+
return this.createHover(( localize(
|
|
91
|
+
5850,
|
|
92
|
+
'The argument-hint describes what inputs the custom agent expects or supports.'
|
|
93
|
+
)), attribute.range);
|
|
94
|
+
case PromptHeaderAttributes.model:
|
|
95
|
+
return this.getModelHover(attribute, attribute.range, ( localize(5851, 'Specify the model that runs this custom agent.')), isGitHubTarget);
|
|
96
|
+
case PromptHeaderAttributes.tools:
|
|
97
|
+
return this.getToolHover(attribute, position, ( localize(5852, 'The set of tools that the custom agent has access to.')), header.target);
|
|
98
|
+
case PromptHeaderAttributes.handOffs:
|
|
99
|
+
return this.getHandsOffHover(attribute, position, isGitHubTarget);
|
|
100
|
+
case PromptHeaderAttributes.target:
|
|
101
|
+
return this.createHover(( localize(
|
|
102
|
+
5853,
|
|
103
|
+
'The target to which the header attributes like tools apply to. Possible values are `github-copilot` and `vscode`.'
|
|
104
|
+
)), attribute.range);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
83
107
|
}
|
|
84
108
|
}
|
|
85
109
|
else {
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
110
|
+
for (const attribute of header.attributes) {
|
|
111
|
+
if (attribute.range.containsPosition(position)) {
|
|
112
|
+
switch (attribute.key) {
|
|
113
|
+
case PromptHeaderAttributes.name:
|
|
114
|
+
return this.createHover(( localize(
|
|
115
|
+
5854,
|
|
116
|
+
'The name of the prompt. This is also the name of the slash command that will run this prompt.'
|
|
117
|
+
)), attribute.range);
|
|
118
|
+
case PromptHeaderAttributes.description:
|
|
119
|
+
return this.createHover(( localize(
|
|
120
|
+
5855,
|
|
121
|
+
'The description of the reusable prompt, what it does and when to use it.'
|
|
122
|
+
)), attribute.range);
|
|
123
|
+
case PromptHeaderAttributes.argumentHint:
|
|
124
|
+
return this.createHover(( localize(
|
|
125
|
+
5856,
|
|
126
|
+
'The argument-hint describes what inputs the prompt expects or supports.'
|
|
127
|
+
)), attribute.range);
|
|
128
|
+
case PromptHeaderAttributes.model:
|
|
129
|
+
return this.getModelHover(attribute, attribute.range, ( localize(5857, 'The model to use in this prompt.')), false);
|
|
130
|
+
case PromptHeaderAttributes.tools:
|
|
131
|
+
return this.getToolHover(attribute, position, ( localize(5858, 'The tools to use in this prompt.')), Target.VSCode);
|
|
132
|
+
case PromptHeaderAttributes.agent:
|
|
133
|
+
case PromptHeaderAttributes.mode:
|
|
134
|
+
return this.getAgentHover(attribute, position);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
104
137
|
}
|
|
105
138
|
}
|
|
106
139
|
return undefined;
|
|
107
140
|
}
|
|
108
|
-
getToolHover(node, position, baseMessage) {
|
|
141
|
+
getToolHover(node, position, baseMessage, target) {
|
|
109
142
|
if (node.value.type === 'array') {
|
|
110
143
|
for (const toolName of node.value.items) {
|
|
111
144
|
if (toolName.type === 'string' && toolName.range.containsPosition(position)) {
|
|
112
|
-
|
|
145
|
+
let toolNameValue = toolName.value;
|
|
146
|
+
if (target === undefined) {
|
|
147
|
+
toolNameValue = this.languageModelToolsService.mapGithubToolName(toolNameValue);
|
|
148
|
+
}
|
|
149
|
+
if (target === Target.VSCode || target === undefined) {
|
|
150
|
+
const description = this.getToolHoverByName(toolNameValue, toolName.range);
|
|
151
|
+
if (description) {
|
|
152
|
+
return description;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (target === Target.GitHubCopilot || target === undefined) {
|
|
156
|
+
const description = knownGithubCopilotTools[toolNameValue];
|
|
157
|
+
if (description) {
|
|
158
|
+
return this.createHover(description, toolName.range);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
113
161
|
}
|
|
114
162
|
}
|
|
115
163
|
}
|
|
@@ -122,14 +170,14 @@ let PromptHoverProvider = class PromptHoverProvider {
|
|
|
122
170
|
return this.getToolsetHover(tool, range);
|
|
123
171
|
}
|
|
124
172
|
else {
|
|
125
|
-
return this.createHover(tool.modelDescription, range);
|
|
173
|
+
return this.createHover(tool.userDescription ?? tool.modelDescription, range);
|
|
126
174
|
}
|
|
127
175
|
}
|
|
128
176
|
return undefined;
|
|
129
177
|
}
|
|
130
178
|
getToolsetHover(toolSet, range) {
|
|
131
179
|
const lines = [];
|
|
132
|
-
lines.push(( localize(
|
|
180
|
+
lines.push(( localize(5859, 'ToolSet: {0}\n\n', toolSet.referenceName)));
|
|
133
181
|
if (toolSet.description) {
|
|
134
182
|
lines.push(toolSet.description);
|
|
135
183
|
}
|
|
@@ -138,16 +186,19 @@ let PromptHoverProvider = class PromptHoverProvider {
|
|
|
138
186
|
}
|
|
139
187
|
return this.createHover(lines.join('\n'), range);
|
|
140
188
|
}
|
|
141
|
-
getModelHover(node, range, baseMessage) {
|
|
189
|
+
getModelHover(node, range, baseMessage, isGitHubTarget) {
|
|
190
|
+
if (isGitHubTarget) {
|
|
191
|
+
return this.createHover(baseMessage + '\n\n' + ( localize(5860, 'Note: This attribute is not used when target is github-copilot.')), range);
|
|
192
|
+
}
|
|
142
193
|
if (node.value.type === 'string') {
|
|
143
194
|
for (const id of this.languageModelsService.getLanguageModelIds()) {
|
|
144
195
|
const meta = this.languageModelsService.lookupLanguageModel(id);
|
|
145
196
|
if (meta && ILanguageModelChatMetadata.matchesQualifiedName(node.value.value, meta)) {
|
|
146
197
|
const lines = [];
|
|
147
198
|
lines.push(baseMessage + '\n');
|
|
148
|
-
lines.push(( localize(
|
|
149
|
-
lines.push(( localize(
|
|
150
|
-
lines.push(( localize(
|
|
199
|
+
lines.push(( localize(5861, '- Name: {0}', meta.name)));
|
|
200
|
+
lines.push(( localize(5862, '- Family: {0}', meta.family)));
|
|
201
|
+
lines.push(( localize(5863, '- Vendor: {0}', meta.vendor)));
|
|
151
202
|
if (meta.tooltip) {
|
|
152
203
|
lines.push('', '', meta.tooltip);
|
|
153
204
|
}
|
|
@@ -157,34 +208,41 @@ let PromptHoverProvider = class PromptHoverProvider {
|
|
|
157
208
|
}
|
|
158
209
|
return this.createHover(baseMessage, range);
|
|
159
210
|
}
|
|
160
|
-
|
|
211
|
+
getAgentHover(agentAttribute, position) {
|
|
161
212
|
const lines = [];
|
|
162
|
-
const value =
|
|
213
|
+
const value = agentAttribute.value;
|
|
163
214
|
if (value.type === 'string' && value.range.containsPosition(position)) {
|
|
164
|
-
const
|
|
165
|
-
if (
|
|
166
|
-
const description =
|
|
167
|
-
lines.push(`\`${
|
|
215
|
+
const agent = this.chatModeService.findModeByName(value.value);
|
|
216
|
+
if (agent) {
|
|
217
|
+
const description = agent.description.get() || (isBuiltinChatMode(agent) ? ( localize(5864, 'Built-in agent')) : ( localize(5865, 'Custom agent')));
|
|
218
|
+
lines.push(`\`${agent.name.get()}\`: ${description}`);
|
|
168
219
|
}
|
|
169
220
|
}
|
|
170
221
|
else {
|
|
171
|
-
const
|
|
172
|
-
lines.push(( localize(
|
|
222
|
+
const agents = this.chatModeService.getModes();
|
|
223
|
+
lines.push(( localize(5866, 'The agent to use when running this prompt.')));
|
|
173
224
|
lines.push('');
|
|
174
|
-
lines.push(( localize(
|
|
175
|
-
for (const
|
|
176
|
-
lines.push(`- \`${
|
|
225
|
+
lines.push(( localize(5867, '**Built-in agents:**')));
|
|
226
|
+
for (const agent of agents.builtin) {
|
|
227
|
+
lines.push(`- \`${agent.name.get()}\`: ${agent.description.get() || agent.label.get()}`);
|
|
177
228
|
}
|
|
178
|
-
if (
|
|
229
|
+
if (agents.custom.length > 0) {
|
|
179
230
|
lines.push('');
|
|
180
|
-
lines.push(( localize(
|
|
181
|
-
for (const
|
|
182
|
-
const description =
|
|
183
|
-
lines.push(`- \`${
|
|
231
|
+
lines.push(( localize(5868, '**Custom agents:**')));
|
|
232
|
+
for (const agent of agents.custom) {
|
|
233
|
+
const description = agent.description.get();
|
|
234
|
+
lines.push(`- \`${agent.name.get()}\`: ${description || ( localize(5865, 'Custom agent'))}`);
|
|
184
235
|
}
|
|
185
236
|
}
|
|
186
237
|
}
|
|
187
|
-
return this.createHover(lines.join('\n'),
|
|
238
|
+
return this.createHover(lines.join('\n'), agentAttribute.range);
|
|
239
|
+
}
|
|
240
|
+
getHandsOffHover(attribute, position, isGitHubTarget) {
|
|
241
|
+
const handoffsBaseMessage = ( localize(5869, 'Possible handoff actions when the agent has completed its task.'));
|
|
242
|
+
if (isGitHubTarget) {
|
|
243
|
+
return this.createHover(handoffsBaseMessage + '\n\n' + ( localize(5870, 'Note: This attribute is not used when target is github-copilot.')), attribute.range);
|
|
244
|
+
}
|
|
245
|
+
return this.createHover(handoffsBaseMessage, attribute.range);
|
|
188
246
|
}
|
|
189
247
|
};
|
|
190
248
|
PromptHoverProvider = ( __decorate([
|
|
@@ -7,14 +7,14 @@ let PromptLinkProvider = class PromptLinkProvider {
|
|
|
7
7
|
this.promptsService = promptsService;
|
|
8
8
|
}
|
|
9
9
|
async provideLinks(model, token) {
|
|
10
|
-
const
|
|
11
|
-
if (!
|
|
10
|
+
const promptAST = this.promptsService.getParsedPromptFile(model);
|
|
11
|
+
if (!promptAST.body) {
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
14
|
const links = [];
|
|
15
|
-
for (const ref of
|
|
15
|
+
for (const ref of promptAST.body.fileReferences) {
|
|
16
16
|
if (!ref.isMarkdownLink) {
|
|
17
|
-
const url =
|
|
17
|
+
const url = promptAST.body.resolveFilePath(ref.content);
|
|
18
18
|
if (url) {
|
|
19
19
|
links.push({ range: ref.range, url });
|
|
20
20
|
}
|