@codingame/monaco-vscode-chat-service-override 22.1.8 → 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 +16 -7
- package/package.json +43 -41
- 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 +18 -18
- 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 +33 -32
- 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 +12 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +18 -30
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +62 -139
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +16 -15
- 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
package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
-
import { showChatView, ChatViewId } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
4
|
-
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
5
|
-
import { CHAT_CATEGORY, CHAT_CONFIG_MENU_ID } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
6
|
-
import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
|
-
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
8
|
-
import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
|
|
9
|
-
import { PromptsConfig } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
|
|
10
|
-
import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
|
|
11
|
-
import { PromptFilePickers } from './pickers/promptFilePickers.js';
|
|
12
|
-
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
13
|
-
import { Action2, MenuId, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
14
|
-
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
15
|
-
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
16
|
-
import { getCleanPromptName } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
|
|
17
|
-
import { PromptsType, INSTRUCTIONS_LANGUAGE_ID } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
18
|
-
import { compare } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
19
|
-
import { toPromptFileVariableEntry, PromptFileVariableKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatVariableEntries';
|
|
20
|
-
import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
21
|
-
import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
|
|
22
|
-
import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service';
|
|
23
|
-
import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
24
|
-
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
25
|
-
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
26
|
-
|
|
27
|
-
const ATTACH_INSTRUCTIONS_ACTION_ID = 'workbench.action.chat.attach.instructions';
|
|
28
|
-
const CONFIGURE_INSTRUCTIONS_ACTION_ID = 'workbench.action.chat.configure.instructions';
|
|
29
|
-
class AttachInstructionsAction extends Action2 {
|
|
30
|
-
constructor() {
|
|
31
|
-
super({
|
|
32
|
-
id: ATTACH_INSTRUCTIONS_ACTION_ID,
|
|
33
|
-
title: ( localize2(5427, "Attach Instructions...")),
|
|
34
|
-
f1: false,
|
|
35
|
-
precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
|
|
36
|
-
category: CHAT_CATEGORY,
|
|
37
|
-
keybinding: {
|
|
38
|
-
primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.Slash,
|
|
39
|
-
weight: KeybindingWeight.WorkbenchContrib
|
|
40
|
-
},
|
|
41
|
-
menu: {
|
|
42
|
-
id: MenuId.CommandPalette,
|
|
43
|
-
when: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled))
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
async run(accessor, options) {
|
|
48
|
-
const viewsService = accessor.get(IViewsService);
|
|
49
|
-
const instaService = accessor.get(IInstantiationService);
|
|
50
|
-
if (!options) {
|
|
51
|
-
options = {
|
|
52
|
-
resource: getActiveInstructionsFileUri(accessor),
|
|
53
|
-
widget: getFocusedChatWidget(accessor),
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
const pickers = instaService.createInstance(PromptFilePickers);
|
|
57
|
-
const { skipSelectionDialog, resource } = options;
|
|
58
|
-
const widget = options.widget ?? (await showChatView(viewsService));
|
|
59
|
-
if (!widget) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
if (skipSelectionDialog && resource) {
|
|
63
|
-
widget.attachmentModel.addContext(toPromptFileVariableEntry(resource, PromptFileVariableKind.Instruction));
|
|
64
|
-
widget.focusInput();
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
const placeholder = ( localize(5428, 'Select instructions files to attach'));
|
|
68
|
-
const result = await pickers.selectPromptFile({ resource, placeholder, type: PromptsType.instructions });
|
|
69
|
-
if (result !== undefined) {
|
|
70
|
-
widget.attachmentModel.addContext(toPromptFileVariableEntry(result.promptFile, PromptFileVariableKind.Instruction));
|
|
71
|
-
widget.focusInput();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
class ManageInstructionsFilesAction extends Action2 {
|
|
76
|
-
constructor() {
|
|
77
|
-
super({
|
|
78
|
-
id: CONFIGURE_INSTRUCTIONS_ACTION_ID,
|
|
79
|
-
title: ( localize2(5429, "Configure Instructions...")),
|
|
80
|
-
shortTitle: ( localize2(5430, "Instructions")),
|
|
81
|
-
icon: Codicon.bookmark,
|
|
82
|
-
f1: true,
|
|
83
|
-
precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
|
|
84
|
-
category: CHAT_CATEGORY,
|
|
85
|
-
menu: {
|
|
86
|
-
id: CHAT_CONFIG_MENU_ID,
|
|
87
|
-
when: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled, ( ContextKeyExpr.equals('view', ChatViewId)))),
|
|
88
|
-
order: 11,
|
|
89
|
-
group: '0_level'
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
async run(accessor) {
|
|
94
|
-
const openerService = accessor.get(IOpenerService);
|
|
95
|
-
const instaService = accessor.get(IInstantiationService);
|
|
96
|
-
const pickers = instaService.createInstance(PromptFilePickers);
|
|
97
|
-
const placeholder = ( localize(5431, 'Select the instructions file to open'));
|
|
98
|
-
const result = await pickers.selectPromptFile({ placeholder, type: PromptsType.instructions, optionEdit: false });
|
|
99
|
-
if (result !== undefined) {
|
|
100
|
-
await openerService.open(result.promptFile);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
function getFocusedChatWidget(accessor) {
|
|
105
|
-
const chatWidgetService = accessor.get(IChatWidgetService);
|
|
106
|
-
const { lastFocusedWidget } = chatWidgetService;
|
|
107
|
-
if (!lastFocusedWidget) {
|
|
108
|
-
return undefined;
|
|
109
|
-
}
|
|
110
|
-
if (!lastFocusedWidget.hasInputFocus()) {
|
|
111
|
-
return undefined;
|
|
112
|
-
}
|
|
113
|
-
return lastFocusedWidget;
|
|
114
|
-
}
|
|
115
|
-
function getActiveInstructionsFileUri(accessor) {
|
|
116
|
-
const codeEditorService = accessor.get(ICodeEditorService);
|
|
117
|
-
const model = codeEditorService.getActiveCodeEditor()?.getModel();
|
|
118
|
-
if (model?.getLanguageId() === INSTRUCTIONS_LANGUAGE_ID) {
|
|
119
|
-
return model.uri;
|
|
120
|
-
}
|
|
121
|
-
return undefined;
|
|
122
|
-
}
|
|
123
|
-
function registerAttachPromptActions() {
|
|
124
|
-
registerAction2(AttachInstructionsAction);
|
|
125
|
-
registerAction2(ManageInstructionsFilesAction);
|
|
126
|
-
}
|
|
127
|
-
let ChatInstructionsPickerPick = class ChatInstructionsPickerPick {
|
|
128
|
-
constructor(promptsService, configurationService) {
|
|
129
|
-
this.promptsService = promptsService;
|
|
130
|
-
this.configurationService = configurationService;
|
|
131
|
-
this.type = 'pickerPick';
|
|
132
|
-
this.label = ( localize(5432, 'Instructions...'));
|
|
133
|
-
this.icon = Codicon.bookmark;
|
|
134
|
-
this.commandId = ATTACH_INSTRUCTIONS_ACTION_ID;
|
|
135
|
-
}
|
|
136
|
-
isEnabled(widget) {
|
|
137
|
-
return PromptsConfig.enabled(this.configurationService);
|
|
138
|
-
}
|
|
139
|
-
asPicker() {
|
|
140
|
-
const picks = this.promptsService.listPromptFiles(PromptsType.instructions, CancellationToken.None).then(value => {
|
|
141
|
-
const result = [];
|
|
142
|
-
value = value.slice(0).sort((a, b) => compare(a.storage, b.storage));
|
|
143
|
-
let storageType;
|
|
144
|
-
for (const promptsPath of value) {
|
|
145
|
-
if (storageType !== promptsPath.storage) {
|
|
146
|
-
storageType = promptsPath.storage;
|
|
147
|
-
result.push({
|
|
148
|
-
type: 'separator',
|
|
149
|
-
label: this.promptsService.getPromptLocationLabel(promptsPath)
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
result.push({
|
|
153
|
-
label: promptsPath.name ?? getCleanPromptName(promptsPath.uri),
|
|
154
|
-
asAttachment: () => {
|
|
155
|
-
return toPromptFileVariableEntry(promptsPath.uri, PromptFileVariableKind.Instruction);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
return result;
|
|
160
|
-
});
|
|
161
|
-
return {
|
|
162
|
-
placeholder: ( localize(5433, 'Select instructions files to attach')),
|
|
163
|
-
picks,
|
|
164
|
-
configure: {
|
|
165
|
-
label: ( localize(5434, 'Configure Instructions...')),
|
|
166
|
-
commandId: CONFIGURE_INSTRUCTIONS_ACTION_ID
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
ChatInstructionsPickerPick = ( __decorate([
|
|
172
|
-
( __param(0, IPromptsService)),
|
|
173
|
-
( __param(1, IConfigurationService))
|
|
174
|
-
], ChatInstructionsPickerPick));
|
|
175
|
-
|
|
176
|
-
export { ChatInstructionsPickerPick, registerAttachPromptActions };
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare const NEW_PROMPT_COMMAND_ID = "workbench.command.new.prompt";
|
|
2
|
-
export declare const NEW_INSTRUCTIONS_COMMAND_ID = "workbench.command.new.instructions";
|
|
3
|
-
export declare const NEW_MODE_COMMAND_ID = "workbench.command.new.mode";
|
|
4
|
-
export declare function registerNewPromptFileActions(): void;
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
3
|
-
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
4
|
-
import { getCodeEditor } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorBrowser';
|
|
5
|
-
import { SnippetController2 } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/snippet/browser/snippetController2';
|
|
6
|
-
import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
|
-
import { Action2, MenuId, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
8
|
-
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
9
|
-
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
10
|
-
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
11
|
-
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
12
|
-
import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
|
|
13
|
-
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
14
|
-
import { NeverShowAgainScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification';
|
|
15
|
-
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
16
|
-
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
17
|
-
import { PromptsConfig } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
|
|
18
|
-
import { PromptsType, getLanguageIdForPromptsType } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
19
|
-
import { SyncResource } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync';
|
|
20
|
-
import { IUserDataSyncEnablementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync.service';
|
|
21
|
-
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
22
|
-
import { CONFIGURE_SYNC_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataSync/common/userDataSync';
|
|
23
|
-
import { ISnippetsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/snippets/browser/snippets.service';
|
|
24
|
-
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
25
|
-
import { CHAT_CATEGORY } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
26
|
-
import { askForPromptFileName } from './pickers/askForPromptName.js';
|
|
27
|
-
import { askForPromptSourceFolder } from './pickers/askForPromptSourceFolder.js';
|
|
28
|
-
import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
|
|
29
|
-
import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
|
|
30
|
-
|
|
31
|
-
class AbstractNewPromptFileAction extends Action2 {
|
|
32
|
-
constructor(id, title, type) {
|
|
33
|
-
super({
|
|
34
|
-
id,
|
|
35
|
-
title,
|
|
36
|
-
f1: false,
|
|
37
|
-
precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
|
|
38
|
-
category: CHAT_CATEGORY,
|
|
39
|
-
keybinding: {
|
|
40
|
-
weight: KeybindingWeight.WorkbenchContrib
|
|
41
|
-
},
|
|
42
|
-
menu: {
|
|
43
|
-
id: MenuId.CommandPalette,
|
|
44
|
-
when: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled))
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
this.type = type;
|
|
48
|
-
}
|
|
49
|
-
async run(accessor) {
|
|
50
|
-
const logService = accessor.get(ILogService);
|
|
51
|
-
const openerService = accessor.get(IOpenerService);
|
|
52
|
-
const commandService = accessor.get(ICommandService);
|
|
53
|
-
const notificationService = accessor.get(INotificationService);
|
|
54
|
-
const userDataSyncEnablementService = accessor.get(IUserDataSyncEnablementService);
|
|
55
|
-
const editorService = accessor.get(IEditorService);
|
|
56
|
-
const fileService = accessor.get(IFileService);
|
|
57
|
-
const instaService = accessor.get(IInstantiationService);
|
|
58
|
-
const chatModeService = accessor.get(IChatModeService);
|
|
59
|
-
const selectedFolder = await instaService.invokeFunction(askForPromptSourceFolder, this.type);
|
|
60
|
-
if (!selectedFolder) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const fileName = await instaService.invokeFunction(askForPromptFileName, this.type, selectedFolder.uri);
|
|
64
|
-
if (!fileName) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
await fileService.createFolder(selectedFolder.uri);
|
|
68
|
-
const promptUri = URI.joinPath(selectedFolder.uri, fileName);
|
|
69
|
-
await fileService.createFile(promptUri);
|
|
70
|
-
await openerService.open(promptUri);
|
|
71
|
-
const editor = getCodeEditor(editorService.activeTextEditorControl);
|
|
72
|
-
if (editor && editor.hasModel() && isEqual(editor.getModel().uri, promptUri)) {
|
|
73
|
-
SnippetController2.get(editor)?.apply([{
|
|
74
|
-
range: editor.getModel().getFullModelRange(),
|
|
75
|
-
template: this.getDefaultContentSnippet(this.type, chatModeService),
|
|
76
|
-
}]);
|
|
77
|
-
}
|
|
78
|
-
if (selectedFolder.storage !== 'user') {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
const isConfigured = userDataSyncEnablementService
|
|
82
|
-
.isResourceEnablementConfigured(SyncResource.Prompts);
|
|
83
|
-
const isSettingsSyncEnabled = userDataSyncEnablementService.isEnabled();
|
|
84
|
-
if ((isConfigured === true) || (isSettingsSyncEnabled === false)) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
notificationService.prompt(Severity.Info, ( localize(
|
|
88
|
-
5439,
|
|
89
|
-
"Do you want to backup and sync your user prompt, instruction and mode files with Setting Sync?'"
|
|
90
|
-
)), [
|
|
91
|
-
{
|
|
92
|
-
label: ( localize(5440, "Enable")),
|
|
93
|
-
run: () => {
|
|
94
|
-
commandService.executeCommand(CONFIGURE_SYNC_COMMAND_ID)
|
|
95
|
-
.catch((error) => {
|
|
96
|
-
logService.error(`Failed to run '${CONFIGURE_SYNC_COMMAND_ID}' command: ${error}.`);
|
|
97
|
-
});
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
label: ( localize(5441, "Learn More")),
|
|
102
|
-
run: () => {
|
|
103
|
-
openerService.open(( URI.parse('https://aka.ms/vscode-settings-sync-help')));
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
], {
|
|
107
|
-
neverShowAgain: {
|
|
108
|
-
id: 'workbench.command.prompts.create.user.enable-sync-notification',
|
|
109
|
-
scope: NeverShowAgainScope.PROFILE,
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
getDefaultContentSnippet(promptType, chatModeService) {
|
|
114
|
-
const modes = chatModeService.getModes();
|
|
115
|
-
const modeNames = ( modes.builtin.map(mode => mode.name)).join(',') + (modes.custom.length ? (',' + ( modes.custom.map(mode => mode.name)).join(',')) : '');
|
|
116
|
-
switch (promptType) {
|
|
117
|
-
case PromptsType.prompt:
|
|
118
|
-
return [
|
|
119
|
-
`---`,
|
|
120
|
-
`mode: \${1|${modeNames}|}`,
|
|
121
|
-
`---`,
|
|
122
|
-
`\${2:Define the task to achieve, including specific requirements, constraints, and success criteria.}`,
|
|
123
|
-
].join('\n');
|
|
124
|
-
case PromptsType.instructions:
|
|
125
|
-
return [
|
|
126
|
-
`---`,
|
|
127
|
-
`applyTo: '\${1|**,**/*.ts|}'`,
|
|
128
|
-
`---`,
|
|
129
|
-
`\${2:Provide project context and coding guidelines that AI should follow when generating code, answering questions, or reviewing changes.}`,
|
|
130
|
-
].join('\n');
|
|
131
|
-
case PromptsType.mode:
|
|
132
|
-
return [
|
|
133
|
-
`---`,
|
|
134
|
-
`description: '\${1:Description of the custom chat mode.}'`,
|
|
135
|
-
`tools: []`,
|
|
136
|
-
`---`,
|
|
137
|
-
`\${2:Define the purpose of this chat mode and how AI should behave: response style, available tools, focus areas, and any mode-specific instructions or constraints.}`,
|
|
138
|
-
].join('\n');
|
|
139
|
-
default:
|
|
140
|
-
throw ( new Error(`Unknown prompt type: ${promptType}`));
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
const NEW_PROMPT_COMMAND_ID = 'workbench.command.new.prompt';
|
|
145
|
-
const NEW_INSTRUCTIONS_COMMAND_ID = 'workbench.command.new.instructions';
|
|
146
|
-
const NEW_MODE_COMMAND_ID = 'workbench.command.new.mode';
|
|
147
|
-
class NewPromptFileAction extends AbstractNewPromptFileAction {
|
|
148
|
-
constructor() {
|
|
149
|
-
super(NEW_PROMPT_COMMAND_ID, ( localize(5442, "New Prompt File...")), PromptsType.prompt);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
class NewInstructionsFileAction extends AbstractNewPromptFileAction {
|
|
153
|
-
constructor() {
|
|
154
|
-
super(NEW_INSTRUCTIONS_COMMAND_ID, ( localize(5443, "New Instructions File...")), PromptsType.instructions);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
class NewModeFileAction extends AbstractNewPromptFileAction {
|
|
158
|
-
constructor() {
|
|
159
|
-
super(NEW_MODE_COMMAND_ID, ( localize(5444, "New Mode File...")), PromptsType.mode);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
class NewUntitledPromptFileAction extends Action2 {
|
|
163
|
-
constructor() {
|
|
164
|
-
super({
|
|
165
|
-
id: 'workbench.command.new.untitled.prompt',
|
|
166
|
-
title: ( localize2(5445, "New Untitled Prompt File")),
|
|
167
|
-
f1: true,
|
|
168
|
-
precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
|
|
169
|
-
category: CHAT_CATEGORY,
|
|
170
|
-
keybinding: {
|
|
171
|
-
weight: KeybindingWeight.WorkbenchContrib
|
|
172
|
-
},
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
async run(accessor) {
|
|
176
|
-
const editorService = accessor.get(IEditorService);
|
|
177
|
-
const snippetService = accessor.get(ISnippetsService);
|
|
178
|
-
const languageId = getLanguageIdForPromptsType(PromptsType.prompt);
|
|
179
|
-
const input = await editorService.openEditor({
|
|
180
|
-
resource: undefined,
|
|
181
|
-
languageId,
|
|
182
|
-
options: {
|
|
183
|
-
pinned: true
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
const editor = getCodeEditor(editorService.activeTextEditorControl);
|
|
187
|
-
if (editor && editor.hasModel()) {
|
|
188
|
-
const snippets = await snippetService.getSnippets(languageId, { fileTemplateSnippets: true, noRecencySort: true, includeNoPrefixSnippets: true });
|
|
189
|
-
if (snippets.length > 0) {
|
|
190
|
-
SnippetController2.get(editor)?.apply([{
|
|
191
|
-
range: editor.getModel().getFullModelRange(),
|
|
192
|
-
template: snippets[0].body
|
|
193
|
-
}]);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
return input;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
function registerNewPromptFileActions() {
|
|
200
|
-
registerAction2(NewPromptFileAction);
|
|
201
|
-
registerAction2(NewInstructionsFileAction);
|
|
202
|
-
registerAction2(NewModeFileAction);
|
|
203
|
-
registerAction2(NewUntitledPromptFileAction);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
export { NEW_INSTRUCTIONS_COMMAND_ID, NEW_MODE_COMMAND_ID, NEW_PROMPT_COMMAND_ID, registerNewPromptFileActions };
|
package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { PromptsType } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
|
|
2
|
-
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
3
|
-
import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions";
|
|
4
|
-
/**
|
|
5
|
-
* Asks the user for a file name.
|
|
6
|
-
*/
|
|
7
|
-
export declare function askForPromptFileName(accessor: ServicesAccessor, type: PromptsType, selectedFolder: URI, existingFileName?: string): Promise<string | undefined>;
|
package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
3
|
-
import { getPromptFileExtension } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
|
|
4
|
-
import { PromptsType } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
5
|
-
import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
|
|
6
|
-
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
7
|
-
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
8
|
-
import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
|
|
9
|
-
import { isValidBasename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/extpath';
|
|
10
|
-
|
|
11
|
-
async function askForPromptFileName(accessor, type, selectedFolder, existingFileName) {
|
|
12
|
-
const quickInputService = accessor.get(IQuickInputService);
|
|
13
|
-
const fileService = accessor.get(IFileService);
|
|
14
|
-
const sanitizeInput = (input) => {
|
|
15
|
-
const trimmedName = input.trim();
|
|
16
|
-
if (!trimmedName) {
|
|
17
|
-
return undefined;
|
|
18
|
-
}
|
|
19
|
-
const fileExtension = getPromptFileExtension(type);
|
|
20
|
-
return (trimmedName.endsWith(fileExtension))
|
|
21
|
-
? trimmedName
|
|
22
|
-
: `${trimmedName}${fileExtension}`;
|
|
23
|
-
};
|
|
24
|
-
const validateInput = async (value) => {
|
|
25
|
-
const fileName = sanitizeInput(value);
|
|
26
|
-
if (!fileName) {
|
|
27
|
-
return {
|
|
28
|
-
content: ( localize(5446, "Please enter a name.")),
|
|
29
|
-
severity: Severity.Warning
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
if (!isValidBasename(fileName)) {
|
|
33
|
-
return {
|
|
34
|
-
content: ( localize(5447, "The name contains invalid characters.")),
|
|
35
|
-
severity: Severity.Error
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
const fileUri = URI.joinPath(selectedFolder, fileName);
|
|
39
|
-
if (await fileService.exists(fileUri)) {
|
|
40
|
-
return {
|
|
41
|
-
content: ( localize(5448, "A file for the given name already exists.")),
|
|
42
|
-
severity: Severity.Error
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
return undefined;
|
|
46
|
-
};
|
|
47
|
-
const placeHolder = existingFileName ? getPlaceholderStringForRename(type) : getPlaceholderStringForNew(type);
|
|
48
|
-
const result = await quickInputService.input({ placeHolder, validateInput, value: existingFileName });
|
|
49
|
-
if (!result) {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
return sanitizeInput(result);
|
|
53
|
-
}
|
|
54
|
-
function getPlaceholderStringForNew(type) {
|
|
55
|
-
switch (type) {
|
|
56
|
-
case PromptsType.instructions:
|
|
57
|
-
return localize(5449, "Enter the name of the instructions file");
|
|
58
|
-
case PromptsType.prompt:
|
|
59
|
-
return localize(5450, "Enter the name of the prompt file");
|
|
60
|
-
case PromptsType.mode:
|
|
61
|
-
return localize(5451, "Enter the name of the custom chat mode file");
|
|
62
|
-
default:
|
|
63
|
-
throw ( new Error('Unknown prompt type'));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
function getPlaceholderStringForRename(type) {
|
|
67
|
-
switch (type) {
|
|
68
|
-
case PromptsType.instructions:
|
|
69
|
-
return localize(5452, "Enter a new name of the instructions file");
|
|
70
|
-
case PromptsType.prompt:
|
|
71
|
-
return localize(5453, "Enter a new name of the prompt file");
|
|
72
|
-
case PromptsType.mode:
|
|
73
|
-
return localize(5454, "Enter a new name of the custom chat mode file");
|
|
74
|
-
default:
|
|
75
|
-
throw ( new Error('Unknown prompt type'));
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export { askForPromptFileName };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
2
|
-
import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions";
|
|
3
|
-
import { PromptsType } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
|
|
4
|
-
import { IPromptPath } from "../../../common/promptSyntax/service/promptsService.js";
|
|
5
|
-
/**
|
|
6
|
-
* Asks the user for a specific prompt folder, if multiple folders provided.
|
|
7
|
-
*/
|
|
8
|
-
export declare function askForPromptSourceFolder(accessor: ServicesAccessor, type: PromptsType, existingFolder?: URI | undefined, isMove?: boolean): Promise<IPromptPath | undefined>;
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { isEqual, extUri } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
3
|
-
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
4
|
-
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
5
|
-
import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
|
|
6
|
-
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
7
|
-
import { PromptsType, PROMPT_DOCUMENTATION_URL } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
8
|
-
import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
|
|
9
|
-
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
10
|
-
import { PromptsStorage } from '../../../common/promptSyntax/service/promptsService.js';
|
|
11
|
-
import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
|
|
12
|
-
|
|
13
|
-
async function askForPromptSourceFolder(accessor, type, existingFolder, isMove = false) {
|
|
14
|
-
const quickInputService = accessor.get(IQuickInputService);
|
|
15
|
-
const promptsService = accessor.get(IPromptsService);
|
|
16
|
-
const labelService = accessor.get(ILabelService);
|
|
17
|
-
const workspaceService = accessor.get(IWorkspaceContextService);
|
|
18
|
-
const folders = promptsService.getSourceFolders(type);
|
|
19
|
-
if (folders.length === 0) {
|
|
20
|
-
await showNoFoldersDialog(accessor, type);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const pickOptions = {
|
|
24
|
-
placeHolder: existingFolder ? getPlaceholderStringforMove(type, isMove) : getPlaceholderStringforNew(type),
|
|
25
|
-
canPickMany: false,
|
|
26
|
-
matchOnDescription: true,
|
|
27
|
-
};
|
|
28
|
-
const foldersList = ( folders.map(folder => {
|
|
29
|
-
const uri = folder.uri;
|
|
30
|
-
const detail = (existingFolder && isEqual(uri, existingFolder)) ? ( localize(5455, "Current Location")) : undefined;
|
|
31
|
-
if (folder.storage !== PromptsStorage.local) {
|
|
32
|
-
return {
|
|
33
|
-
type: 'item',
|
|
34
|
-
label: promptsService.getPromptLocationLabel(folder),
|
|
35
|
-
detail,
|
|
36
|
-
tooltip: labelService.getUriLabel(uri),
|
|
37
|
-
folder
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
const { folders } = workspaceService.getWorkspace();
|
|
41
|
-
const isMultirootWorkspace = (folders.length > 1);
|
|
42
|
-
const firstFolder = folders[0];
|
|
43
|
-
if (isMultirootWorkspace || !firstFolder || !extUri.isEqual(firstFolder.uri, uri)) {
|
|
44
|
-
return {
|
|
45
|
-
type: 'item',
|
|
46
|
-
label: labelService.getUriLabel(uri, { relative: true }),
|
|
47
|
-
detail,
|
|
48
|
-
tooltip: labelService.getUriLabel(uri),
|
|
49
|
-
folder,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
type: 'item',
|
|
54
|
-
label: ( localize(5456, "Current Workspace")),
|
|
55
|
-
detail,
|
|
56
|
-
tooltip: labelService.getUriLabel(uri),
|
|
57
|
-
folder,
|
|
58
|
-
};
|
|
59
|
-
}));
|
|
60
|
-
const answer = await quickInputService.pick(foldersList, pickOptions);
|
|
61
|
-
if (!answer) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
return answer.folder;
|
|
65
|
-
}
|
|
66
|
-
function getPlaceholderStringforNew(type) {
|
|
67
|
-
switch (type) {
|
|
68
|
-
case PromptsType.instructions:
|
|
69
|
-
return localize(5457, "Select a location to create the instructions file in...");
|
|
70
|
-
case PromptsType.prompt:
|
|
71
|
-
return localize(5458, "Select a location to create the prompt file in...");
|
|
72
|
-
case PromptsType.mode:
|
|
73
|
-
return localize(5459, "Select a location to create the mode file in...");
|
|
74
|
-
default:
|
|
75
|
-
throw ( new Error('Unknown prompt type'));
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function getPlaceholderStringforMove(type, isMove) {
|
|
79
|
-
if (isMove) {
|
|
80
|
-
switch (type) {
|
|
81
|
-
case PromptsType.instructions:
|
|
82
|
-
return localize(5460, "Select a location to move the instructions file to...");
|
|
83
|
-
case PromptsType.prompt:
|
|
84
|
-
return localize(5461, "Select a location to move the prompt file to...");
|
|
85
|
-
case PromptsType.mode:
|
|
86
|
-
return localize(5462, "Select a location to move the mode file to...");
|
|
87
|
-
default:
|
|
88
|
-
throw ( new Error('Unknown prompt type'));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
switch (type) {
|
|
92
|
-
case PromptsType.instructions:
|
|
93
|
-
return localize(5463, "Select a location to copy the instructions file to...");
|
|
94
|
-
case PromptsType.prompt:
|
|
95
|
-
return localize(5464, "Select a location to copy the prompt file to...");
|
|
96
|
-
case PromptsType.mode:
|
|
97
|
-
return localize(5465, "Select a location to copy the mode file to...");
|
|
98
|
-
default:
|
|
99
|
-
throw ( new Error('Unknown prompt type'));
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
async function showNoFoldersDialog(accessor, type) {
|
|
103
|
-
const quickInputService = accessor.get(IQuickInputService);
|
|
104
|
-
const openerService = accessor.get(IOpenerService);
|
|
105
|
-
const docsQuickPick = {
|
|
106
|
-
type: 'item',
|
|
107
|
-
label: getLearnLabel(type),
|
|
108
|
-
description: PROMPT_DOCUMENTATION_URL,
|
|
109
|
-
tooltip: PROMPT_DOCUMENTATION_URL,
|
|
110
|
-
value: ( URI.parse(PROMPT_DOCUMENTATION_URL)),
|
|
111
|
-
};
|
|
112
|
-
const result = await quickInputService.pick([docsQuickPick], {
|
|
113
|
-
placeHolder: getMissingSourceFolderString(type),
|
|
114
|
-
canPickMany: false,
|
|
115
|
-
});
|
|
116
|
-
if (result) {
|
|
117
|
-
await openerService.open(result.value);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
function getLearnLabel(type) {
|
|
121
|
-
switch (type) {
|
|
122
|
-
case PromptsType.prompt:
|
|
123
|
-
return localize(5466, 'Learn how to configure reusable prompts');
|
|
124
|
-
case PromptsType.instructions:
|
|
125
|
-
return localize(5467, 'Learn how to configure reusable instructions');
|
|
126
|
-
case PromptsType.mode:
|
|
127
|
-
return localize(5468, 'Learn how to configure custom chat modes');
|
|
128
|
-
default:
|
|
129
|
-
throw ( new Error('Unknown prompt type'));
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
function getMissingSourceFolderString(type) {
|
|
133
|
-
switch (type) {
|
|
134
|
-
case PromptsType.instructions:
|
|
135
|
-
return localize(5469, 'No instruction source folders found.');
|
|
136
|
-
case PromptsType.prompt:
|
|
137
|
-
return localize(5470, 'No prompt source folders found.');
|
|
138
|
-
case PromptsType.mode:
|
|
139
|
-
return localize(5471, 'No custom chat mode source folders found.');
|
|
140
|
-
default:
|
|
141
|
-
throw ( new Error('Unknown prompt type'));
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export { askForPromptSourceFolder };
|