@codingame/monaco-vscode-chat-service-override 26.2.1 → 27.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 +31 -1
- package/package.json +5 -5
- package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +15 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +53 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +219 -0
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +39 -0
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +83 -0
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +123 -0
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +274 -0
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +71 -0
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +284 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +79 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +378 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +27 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +9 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +74 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +54 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +87 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +71 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +43 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +22 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +154 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +53 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +84 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +33 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +204 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +77 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +541 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +10 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +27 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +90 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +20 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +43 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +7 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +84 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.d.ts → localAgentSessionsController.d.ts} +7 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.js → localAgentSessionsController.js} +24 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +171 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +48 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +181 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +943 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +248 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +57 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +118 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +727 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +72 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +165 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +75 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +623 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +858 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +30 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.d.ts +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.js +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +19 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +36 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +529 -363
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +419 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +46 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +198 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +305 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +64 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +84 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +110 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +111 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +71 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +611 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +125 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +504 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +914 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +128 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +58 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +429 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +113 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +126 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +279 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +122 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.js +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +781 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +5 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +16 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +63 -76
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +26 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +15 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +40 -413
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +38 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +56 -46
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +15 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +52 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +138 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +166 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +37 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +351 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +118 -63
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +182 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +892 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +55 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +28 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.js +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +36 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +110 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.js +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.js +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +102 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +16 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +69 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +2 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +76 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +43 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +67 -42
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +242 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +311 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +10 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +8 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +64 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.d.ts +15 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +42 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +58 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +15 -6
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +39 -0
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +27 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +190 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +11 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +36 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +188 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +18 -8
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +192 -85
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -6
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +16 -8
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +8 -4
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +111 -7
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +52 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +29 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +73 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +622 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +64 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +478 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +35 -16
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +1 -30
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +2 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +23 -22
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +44 -14
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +345 -113
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +14 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +34 -24
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +11 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +248 -24
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +6 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +18 -81
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +2 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +10 -10
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +6 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +35 -26
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +1 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +5 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +13 -11
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- 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/killTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +280 -65
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +47 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +31 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +38 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +0 -72
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +0 -587
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +0 -71
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +0 -293
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +0 -31
package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js
CHANGED
|
@@ -58,7 +58,7 @@ let ChatAgentRecommendation = class ChatAgentRecommendation extends Disposable {
|
|
|
58
58
|
const availabilityContextId = `${INSTALL_CONTEXT_PREFIX}.${extensionKey}`;
|
|
59
59
|
const availabilityContext = ( new RawContextKey(availabilityContextId, false)).bindTo(this.contextKeyService);
|
|
60
60
|
this.availabilityContextKeys.set(extensionKey, availabilityContext);
|
|
61
|
-
const title = ( localize2(
|
|
61
|
+
const title = ( localize2(4826, "New {0}", recommendation.displayName));
|
|
62
62
|
this._register(registerAction2(class extends Action2 {
|
|
63
63
|
constructor() {
|
|
64
64
|
super({
|
|
@@ -39,7 +39,7 @@ function isCodeBlockActionContext(thing) {
|
|
|
39
39
|
return typeof thing === "object" && thing !== null && "code" in thing && "element" in thing;
|
|
40
40
|
}
|
|
41
41
|
function isCodeCompareBlockActionContext(thing) {
|
|
42
|
-
return typeof thing === "object" && thing !== null && "element" in thing;
|
|
42
|
+
return typeof thing === "object" && thing !== null && "element" in thing && "diffEditor" in thing && "toggleDiffViewMode" in thing;
|
|
43
43
|
}
|
|
44
44
|
function isResponseFiltered(context) {
|
|
45
45
|
return isResponseVM(context.element) && context.element.errorDetails?.responseIsFiltered;
|
|
@@ -79,7 +79,7 @@ let CodeBlockActionRendering = class CodeBlockActionRendering extends Disposable
|
|
|
79
79
|
const label = labelService.getUriLabel(context.codemapperUri, {
|
|
80
80
|
relative: true
|
|
81
81
|
});
|
|
82
|
-
return localize(
|
|
82
|
+
return localize(4827, "Apply to {0}", label);
|
|
83
83
|
}
|
|
84
84
|
return super.getTooltip();
|
|
85
85
|
}
|
|
@@ -98,7 +98,7 @@ function registerChatCodeBlockActions() {
|
|
|
98
98
|
constructor() {
|
|
99
99
|
super({
|
|
100
100
|
id: "workbench.action.chat.copyCodeBlock",
|
|
101
|
-
title: ( localize2(
|
|
101
|
+
title: ( localize2(4828, "Copy")),
|
|
102
102
|
f1: false,
|
|
103
103
|
category: CHAT_CATEGORY,
|
|
104
104
|
icon: Codicon.copy,
|
|
@@ -221,7 +221,7 @@ function registerChatCodeBlockActions() {
|
|
|
221
221
|
constructor() {
|
|
222
222
|
super({
|
|
223
223
|
id: APPLY_IN_EDITOR_ID,
|
|
224
|
-
title: ( localize2(
|
|
224
|
+
title: ( localize2(4829, "Apply in Editor")),
|
|
225
225
|
precondition: ChatContextKeys.enabled,
|
|
226
226
|
f1: false,
|
|
227
227
|
category: CHAT_CATEGORY,
|
|
@@ -256,7 +256,7 @@ function registerChatCodeBlockActions() {
|
|
|
256
256
|
constructor() {
|
|
257
257
|
super({
|
|
258
258
|
id: "workbench.action.chat.insertCodeBlock",
|
|
259
|
-
title: ( localize2(
|
|
259
|
+
title: ( localize2(4830, "Insert At Cursor")),
|
|
260
260
|
precondition: ChatContextKeys.enabled,
|
|
261
261
|
f1: true,
|
|
262
262
|
category: CHAT_CATEGORY,
|
|
@@ -292,7 +292,7 @@ function registerChatCodeBlockActions() {
|
|
|
292
292
|
constructor() {
|
|
293
293
|
super({
|
|
294
294
|
id: "workbench.action.chat.insertIntoNewFile",
|
|
295
|
-
title: ( localize2(
|
|
295
|
+
title: ( localize2(4831, "Insert into New File")),
|
|
296
296
|
precondition: ChatContextKeys.enabled,
|
|
297
297
|
f1: true,
|
|
298
298
|
category: CHAT_CATEGORY,
|
|
@@ -356,7 +356,7 @@ function registerChatCodeBlockActions() {
|
|
|
356
356
|
constructor() {
|
|
357
357
|
super({
|
|
358
358
|
id: "workbench.action.chat.runInTerminal",
|
|
359
|
-
title: ( localize2(
|
|
359
|
+
title: ( localize2(4832, "Insert into Terminal")),
|
|
360
360
|
precondition: ChatContextKeys.enabled,
|
|
361
361
|
f1: true,
|
|
362
362
|
category: CHAT_CATEGORY,
|
|
@@ -452,7 +452,7 @@ function registerChatCodeBlockActions() {
|
|
|
452
452
|
constructor() {
|
|
453
453
|
super({
|
|
454
454
|
id: "workbench.action.chat.nextCodeBlock",
|
|
455
|
-
title: ( localize2(
|
|
455
|
+
title: ( localize2(4833, "Next Code Block")),
|
|
456
456
|
keybinding: {
|
|
457
457
|
primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.PageDown,
|
|
458
458
|
mac: {
|
|
@@ -474,7 +474,7 @@ function registerChatCodeBlockActions() {
|
|
|
474
474
|
constructor() {
|
|
475
475
|
super({
|
|
476
476
|
id: "workbench.action.chat.previousCodeBlock",
|
|
477
|
-
title: ( localize2(
|
|
477
|
+
title: ( localize2(4834, "Previous Code Block")),
|
|
478
478
|
keybinding: {
|
|
479
479
|
primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.PageUp,
|
|
480
480
|
mac: {
|
|
@@ -535,15 +535,16 @@ function registerChatCodeCompareBlockActions() {
|
|
|
535
535
|
constructor() {
|
|
536
536
|
super({
|
|
537
537
|
id: "workbench.action.chat.applyCompareEdits",
|
|
538
|
-
title: ( localize2(
|
|
538
|
+
title: ( localize2(4835, "Apply Edits")),
|
|
539
539
|
f1: false,
|
|
540
540
|
category: CHAT_CATEGORY,
|
|
541
541
|
icon: Codicon.gitPullRequestGoToChanges,
|
|
542
|
-
precondition: ( ContextKeyExpr.and(EditorContextKeys.hasChanges, ( ChatContextKeys.editApplied.negate()))),
|
|
542
|
+
precondition: ( ContextKeyExpr.and(EditorContextKeys.hasChanges, ( ChatContextKeys.editApplied.negate()), ( EditorContextKeys.readOnly.negate()))),
|
|
543
543
|
menu: {
|
|
544
544
|
id: MenuId.ChatCompareBlock,
|
|
545
545
|
group: "navigation",
|
|
546
|
-
order:
|
|
546
|
+
order: 10,
|
|
547
|
+
when: ( EditorContextKeys.readOnly.negate())
|
|
547
548
|
}
|
|
548
549
|
});
|
|
549
550
|
}
|
|
@@ -579,15 +580,16 @@ function registerChatCodeCompareBlockActions() {
|
|
|
579
580
|
constructor() {
|
|
580
581
|
super({
|
|
581
582
|
id: "workbench.action.chat.discardCompareEdits",
|
|
582
|
-
title: ( localize2(
|
|
583
|
+
title: ( localize2(4836, "Discard Edits")),
|
|
583
584
|
f1: false,
|
|
584
585
|
category: CHAT_CATEGORY,
|
|
585
586
|
icon: Codicon.trash,
|
|
586
|
-
precondition: ( ContextKeyExpr.and(EditorContextKeys.hasChanges, ( ChatContextKeys.editApplied.negate()))),
|
|
587
|
+
precondition: ( ContextKeyExpr.and(EditorContextKeys.hasChanges, ( ChatContextKeys.editApplied.negate()), ( EditorContextKeys.readOnly.negate()))),
|
|
587
588
|
menu: {
|
|
588
589
|
id: MenuId.ChatCompareBlock,
|
|
589
590
|
group: "navigation",
|
|
590
|
-
order:
|
|
591
|
+
order: 11,
|
|
592
|
+
when: ( EditorContextKeys.readOnly.negate())
|
|
591
593
|
}
|
|
592
594
|
});
|
|
593
595
|
}
|
|
@@ -597,6 +599,60 @@ function registerChatCodeCompareBlockActions() {
|
|
|
597
599
|
editor.discard(context.element, context.edit);
|
|
598
600
|
}
|
|
599
601
|
});
|
|
602
|
+
registerAction2(class ToggleDiffViewModeAction extends ChatCompareCodeBlockAction {
|
|
603
|
+
constructor() {
|
|
604
|
+
super({
|
|
605
|
+
id: "workbench.action.chat.toggleCompareBlockDiffViewMode",
|
|
606
|
+
title: ( localize2(4837, "Toggle Inline/Side-by-Side Diff")),
|
|
607
|
+
f1: false,
|
|
608
|
+
category: CHAT_CATEGORY,
|
|
609
|
+
icon: Codicon.diffSingle,
|
|
610
|
+
toggled: {
|
|
611
|
+
condition: EditorContextKeys.diffEditorInlineMode,
|
|
612
|
+
icon: Codicon.diff
|
|
613
|
+
},
|
|
614
|
+
menu: {
|
|
615
|
+
id: MenuId.ChatCompareBlock,
|
|
616
|
+
group: "navigation",
|
|
617
|
+
order: 1
|
|
618
|
+
}
|
|
619
|
+
});
|
|
620
|
+
}
|
|
621
|
+
runWithContext(_accessor, context) {
|
|
622
|
+
context.toggleDiffViewMode();
|
|
623
|
+
}
|
|
624
|
+
});
|
|
625
|
+
registerAction2(class OpenCompareBlockInDiffEditor extends ChatCompareCodeBlockAction {
|
|
626
|
+
constructor() {
|
|
627
|
+
super({
|
|
628
|
+
id: "workbench.action.chat.openCompareBlockInDiffEditor",
|
|
629
|
+
title: ( localize2(4838, "Open in Diff Editor")),
|
|
630
|
+
f1: false,
|
|
631
|
+
category: CHAT_CATEGORY,
|
|
632
|
+
icon: Codicon.goToFile,
|
|
633
|
+
menu: {
|
|
634
|
+
id: MenuId.ChatCompareBlock,
|
|
635
|
+
group: "navigation",
|
|
636
|
+
order: 2
|
|
637
|
+
}
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
async runWithContext(accessor, context) {
|
|
641
|
+
const editorService = accessor.get(IEditorService);
|
|
642
|
+
const model = context.diffEditor.getModel();
|
|
643
|
+
if (!model) {
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
646
|
+
await editorService.openEditor({
|
|
647
|
+
original: {
|
|
648
|
+
resource: model.original.uri
|
|
649
|
+
},
|
|
650
|
+
modified: {
|
|
651
|
+
resource: model.modified.uri
|
|
652
|
+
}
|
|
653
|
+
});
|
|
654
|
+
}
|
|
655
|
+
});
|
|
600
656
|
}
|
|
601
657
|
|
|
602
658
|
export { CodeBlockActionRendering, isCodeBlockActionContext, isCodeCompareBlockActionContext, registerChatCodeBlockActions, registerChatCodeCompareBlockActions };
|
|
@@ -118,8 +118,9 @@ class AttachFileToChatAction extends AttachResourceAction {
|
|
|
118
118
|
constructor() {
|
|
119
119
|
super({
|
|
120
120
|
id: AttachFileToChatAction.ID,
|
|
121
|
-
title: ( localize2(
|
|
121
|
+
title: ( localize2(4847, "Add File to Chat")),
|
|
122
122
|
category: CHAT_CATEGORY,
|
|
123
|
+
icon: Codicon.attach,
|
|
123
124
|
precondition: ChatContextKeys.enabled,
|
|
124
125
|
f1: true,
|
|
125
126
|
menu: [{
|
|
@@ -145,11 +146,16 @@ class AttachFileToChatAction extends AttachResourceAction {
|
|
|
145
146
|
id: MenuId.EditorContext,
|
|
146
147
|
group: "1_chat",
|
|
147
148
|
order: 2,
|
|
148
|
-
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(( ResourceContextKey.Scheme.isEqualTo(Schemas.file)), ( ResourceContextKey.Scheme.isEqualTo(Schemas.vscodeRemote)), ( ResourceContextKey.Scheme.isEqualTo(Schemas.untitled)), ( ResourceContextKey.Scheme.isEqualTo(Schemas.vscodeUserData))))))
|
|
149
|
+
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( EditorContextKeys.hasNonEmptySelection.negate()), ( ContextKeyExpr.or(( ResourceContextKey.Scheme.isEqualTo(Schemas.file)), ( ResourceContextKey.Scheme.isEqualTo(Schemas.vscodeRemote)), ( ResourceContextKey.Scheme.isEqualTo(Schemas.untitled)), ( ResourceContextKey.Scheme.isEqualTo(Schemas.vscodeUserData))))))
|
|
149
150
|
}, {
|
|
150
|
-
id: MenuId.
|
|
151
|
-
group: "
|
|
152
|
-
order:
|
|
151
|
+
id: MenuId.InlineChatEditorAffordance,
|
|
152
|
+
group: "0_chat",
|
|
153
|
+
order: 3,
|
|
154
|
+
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( EditorContextKeys.hasNonEmptySelection.negate())))
|
|
155
|
+
}, {
|
|
156
|
+
id: MenuId.ChatEditorInlineMenu,
|
|
157
|
+
group: "0_chat",
|
|
158
|
+
order: 3,
|
|
153
159
|
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( EditorContextKeys.hasNonEmptySelection.negate())))
|
|
154
160
|
}]
|
|
155
161
|
});
|
|
@@ -174,7 +180,7 @@ class AttachFolderToChatAction extends AttachResourceAction {
|
|
|
174
180
|
constructor() {
|
|
175
181
|
super({
|
|
176
182
|
id: AttachFolderToChatAction.ID,
|
|
177
|
-
title: ( localize2(
|
|
183
|
+
title: ( localize2(4848, "Add Folder to Chat")),
|
|
178
184
|
category: CHAT_CATEGORY,
|
|
179
185
|
f1: false,
|
|
180
186
|
menu: {
|
|
@@ -205,7 +211,7 @@ class AttachPinnedEditorsToChatAction extends Action2 {
|
|
|
205
211
|
constructor() {
|
|
206
212
|
super({
|
|
207
213
|
id: AttachPinnedEditorsToChatAction.ID,
|
|
208
|
-
title: ( localize2(
|
|
214
|
+
title: ( localize2(4849, "Add Pinned Editors to Chat")),
|
|
209
215
|
category: CHAT_CATEGORY,
|
|
210
216
|
precondition: ChatContextKeys.enabled,
|
|
211
217
|
f1: true
|
|
@@ -247,8 +253,9 @@ class AttachSelectionToChatAction extends Action2 {
|
|
|
247
253
|
constructor() {
|
|
248
254
|
super({
|
|
249
255
|
id: AttachSelectionToChatAction.ID,
|
|
250
|
-
title: ( localize2(
|
|
256
|
+
title: ( localize2(4850, "Add Selection to Chat")),
|
|
251
257
|
category: CHAT_CATEGORY,
|
|
258
|
+
icon: Codicon.attach,
|
|
252
259
|
f1: true,
|
|
253
260
|
precondition: ChatContextKeys.enabled,
|
|
254
261
|
menu: [{
|
|
@@ -261,9 +268,14 @@ class AttachSelectionToChatAction extends Action2 {
|
|
|
261
268
|
( ContextKeyExpr.or(( ResourceContextKey.Scheme.isEqualTo(Schemas.file)), ( ResourceContextKey.Scheme.isEqualTo(Schemas.vscodeRemote)), ( ResourceContextKey.Scheme.isEqualTo(Schemas.untitled)), ( ResourceContextKey.Scheme.isEqualTo(Schemas.vscodeUserData))))
|
|
262
269
|
))
|
|
263
270
|
}, {
|
|
264
|
-
id: MenuId.
|
|
265
|
-
group: "
|
|
266
|
-
order:
|
|
271
|
+
id: MenuId.InlineChatEditorAffordance,
|
|
272
|
+
group: "0_chat",
|
|
273
|
+
order: 2,
|
|
274
|
+
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, EditorContextKeys.hasNonEmptySelection))
|
|
275
|
+
}, {
|
|
276
|
+
id: MenuId.ChatEditorInlineMenu,
|
|
277
|
+
group: "0_chat",
|
|
278
|
+
order: 2,
|
|
267
279
|
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, EditorContextKeys.hasNonEmptySelection))
|
|
268
280
|
}]
|
|
269
281
|
});
|
|
@@ -321,7 +333,7 @@ class AttachSearchResultAction extends Action2 {
|
|
|
321
333
|
constructor() {
|
|
322
334
|
super({
|
|
323
335
|
id: "workbench.action.chat.insertSearchResults",
|
|
324
|
-
title: ( localize2(
|
|
336
|
+
title: ( localize2(4851, "Add Search Results to Chat")),
|
|
325
337
|
category: CHAT_CATEGORY,
|
|
326
338
|
f1: false,
|
|
327
339
|
menu: [{
|
|
@@ -384,20 +396,30 @@ class AttachContextAction extends Action2 {
|
|
|
384
396
|
constructor() {
|
|
385
397
|
super({
|
|
386
398
|
id: "workbench.action.chat.attachContext",
|
|
387
|
-
title: ( localize2(
|
|
388
|
-
icon: Codicon.
|
|
399
|
+
title: ( localize2(4852, "Add Context...")),
|
|
400
|
+
icon: Codicon.add,
|
|
389
401
|
category: CHAT_CATEGORY,
|
|
390
402
|
keybinding: {
|
|
391
403
|
when: ( ContextKeyExpr.and(ChatContextKeys.inChatInput, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)))),
|
|
392
404
|
primary: KeyMod.CtrlCmd | KeyCode.Slash,
|
|
393
405
|
weight: KeybindingWeight.EditorContrib
|
|
394
406
|
},
|
|
395
|
-
menu: {
|
|
396
|
-
when: ( ContextKeyExpr.and((
|
|
397
|
-
id: MenuId.
|
|
407
|
+
menu: [{
|
|
408
|
+
when: ( ContextKeyExpr.and(( ChatContextKeys.inQuickChat.negate()), ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)), ( ContextKeyExpr.or(( ChatContextKeys.lockedToCodingAgent.negate()), ChatContextKeys.agentSupportsAttachments)))),
|
|
409
|
+
id: MenuId.ChatInput,
|
|
398
410
|
group: "navigation",
|
|
399
|
-
order:
|
|
400
|
-
}
|
|
411
|
+
order: -1
|
|
412
|
+
}, {
|
|
413
|
+
when: ( ContextKeyExpr.and(( ChatContextKeys.inQuickChat.negate()), ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.EditorInline)), CTX_INLINE_CHAT_V2_ENABLED, ( ContextKeyExpr.or(( ChatContextKeys.lockedToCodingAgent.negate()), ChatContextKeys.agentSupportsAttachments)))),
|
|
414
|
+
id: MenuId.ChatInput,
|
|
415
|
+
group: "navigation",
|
|
416
|
+
order: 2
|
|
417
|
+
}, {
|
|
418
|
+
when: ( ContextKeyExpr.and(ChatContextKeys.inQuickChat, ( ContextKeyExpr.or(( ChatContextKeys.lockedToCodingAgent.negate()), ChatContextKeys.agentSupportsAttachments)))),
|
|
419
|
+
id: MenuId.ChatExecute,
|
|
420
|
+
group: "navigation",
|
|
421
|
+
order: -1
|
|
422
|
+
}]
|
|
401
423
|
});
|
|
402
424
|
}
|
|
403
425
|
async run(accessor, ...args) {
|
|
@@ -465,7 +487,7 @@ class AttachContextAction extends Action2 {
|
|
|
465
487
|
SymbolsQuickAccessProvider.PREFIX,
|
|
466
488
|
AbstractGotoSymbolQuickAccessProvider.PREFIX
|
|
467
489
|
],
|
|
468
|
-
placeholder: placeholder ?? ( localize(
|
|
490
|
+
placeholder: placeholder ?? ( localize(4853, "Search attachments")),
|
|
469
491
|
providerOptions
|
|
470
492
|
});
|
|
471
493
|
}
|
|
@@ -538,7 +560,7 @@ class AttachContextAction extends Action2 {
|
|
|
538
560
|
const pickerConfig = item.asPicker(widget);
|
|
539
561
|
const store = ( new DisposableStore());
|
|
540
562
|
const goBackItem = {
|
|
541
|
-
label: ( localize(
|
|
563
|
+
label: ( localize(4854, "Go back ↩")),
|
|
542
564
|
alwaysShow: true
|
|
543
565
|
};
|
|
544
566
|
const configureItem = pickerConfig.configure ? {
|
|
@@ -14,7 +14,7 @@ function registerChatCopyActions() {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
super({
|
|
16
16
|
id: "workbench.action.chat.copyAll",
|
|
17
|
-
title: ( localize2(
|
|
17
|
+
title: ( localize2(4860, "Copy All")),
|
|
18
18
|
f1: false,
|
|
19
19
|
category: CHAT_CATEGORY,
|
|
20
20
|
menu: {
|
|
@@ -43,7 +43,7 @@ function registerChatCopyActions() {
|
|
|
43
43
|
constructor() {
|
|
44
44
|
super({
|
|
45
45
|
id: "workbench.action.chat.copyItem",
|
|
46
|
-
title: ( localize2(
|
|
46
|
+
title: ( localize2(4861, "Copy")),
|
|
47
47
|
f1: false,
|
|
48
48
|
category: CHAT_CATEGORY,
|
|
49
49
|
menu: {
|
|
@@ -81,7 +81,7 @@ function registerChatCopyActions() {
|
|
|
81
81
|
constructor() {
|
|
82
82
|
super({
|
|
83
83
|
id: "workbench.action.chat.copyKatexMathSource",
|
|
84
|
-
title: ( localize2(
|
|
84
|
+
title: ( localize2(4862, "Copy Math Source")),
|
|
85
85
|
f1: false,
|
|
86
86
|
category: CHAT_CATEGORY,
|
|
87
87
|
menu: {
|
|
@@ -7,6 +7,7 @@ import { registerAction2, Action2 } from '@codingame/monaco-vscode-api/vscode/vs
|
|
|
7
7
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
8
8
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
9
9
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
10
|
+
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
10
11
|
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
11
12
|
|
|
12
13
|
function uriReplacer(_key, value) {
|
|
@@ -22,6 +23,7 @@ function registerChatDeveloperActions() {
|
|
|
22
23
|
registerAction2(LogChatInputHistoryAction);
|
|
23
24
|
registerAction2(LogChatIndexAction);
|
|
24
25
|
registerAction2(InspectChatModelAction);
|
|
26
|
+
registerAction2(ClearRecentlyUsedLanguageModelsAction);
|
|
25
27
|
}
|
|
26
28
|
class LogChatInputHistoryAction extends Action2 {
|
|
27
29
|
static {
|
|
@@ -30,7 +32,7 @@ class LogChatInputHistoryAction extends Action2 {
|
|
|
30
32
|
constructor() {
|
|
31
33
|
super({
|
|
32
34
|
id: LogChatInputHistoryAction.ID,
|
|
33
|
-
title: ( localize2(
|
|
35
|
+
title: ( localize2(4863, "Log Chat Input History")),
|
|
34
36
|
icon: Codicon.attach,
|
|
35
37
|
category: Categories.Developer,
|
|
36
38
|
f1: true,
|
|
@@ -49,7 +51,7 @@ class LogChatIndexAction extends Action2 {
|
|
|
49
51
|
constructor() {
|
|
50
52
|
super({
|
|
51
53
|
id: LogChatIndexAction.ID,
|
|
52
|
-
title: ( localize2(
|
|
54
|
+
title: ( localize2(4864, "Log Chat Index")),
|
|
53
55
|
icon: Codicon.attach,
|
|
54
56
|
category: Categories.Developer,
|
|
55
57
|
f1: true,
|
|
@@ -68,7 +70,7 @@ class InspectChatModelAction extends Action2 {
|
|
|
68
70
|
constructor() {
|
|
69
71
|
super({
|
|
70
72
|
id: InspectChatModelAction.ID,
|
|
71
|
-
title: ( localize2(
|
|
73
|
+
title: ( localize2(4865, "Inspect Chat Model")),
|
|
72
74
|
icon: Codicon.inspect,
|
|
73
75
|
category: Categories.Developer,
|
|
74
76
|
f1: true,
|
|
@@ -105,5 +107,22 @@ class InspectChatModelAction extends Action2 {
|
|
|
105
107
|
});
|
|
106
108
|
}
|
|
107
109
|
}
|
|
110
|
+
class ClearRecentlyUsedLanguageModelsAction extends Action2 {
|
|
111
|
+
static {
|
|
112
|
+
this.ID = "workbench.action.chat.clearRecentlyUsedLanguageModels";
|
|
113
|
+
}
|
|
114
|
+
constructor() {
|
|
115
|
+
super({
|
|
116
|
+
id: ClearRecentlyUsedLanguageModelsAction.ID,
|
|
117
|
+
title: ( localize2(4866, "Clear Recently Used Language Models")),
|
|
118
|
+
category: Categories.Developer,
|
|
119
|
+
f1: true,
|
|
120
|
+
precondition: ChatContextKeys.enabled
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
run(accessor) {
|
|
124
|
+
accessor.get(ILanguageModelsService).clearRecentlyUsedList();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
108
127
|
|
|
109
128
|
export { registerChatDeveloperActions };
|
|
@@ -13,7 +13,7 @@ function registerChatFileTreeActions() {
|
|
|
13
13
|
constructor() {
|
|
14
14
|
super({
|
|
15
15
|
id: "workbench.action.chat.nextFileTree",
|
|
16
|
-
title: ( localize2(
|
|
16
|
+
title: ( localize2(4897, "Next File Tree")),
|
|
17
17
|
keybinding: {
|
|
18
18
|
primary: KeyMod.CtrlCmd | KeyCode.F9,
|
|
19
19
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -32,7 +32,7 @@ function registerChatFileTreeActions() {
|
|
|
32
32
|
constructor() {
|
|
33
33
|
super({
|
|
34
34
|
id: "workbench.action.chat.previousFileTree",
|
|
35
|
-
title: ( localize2(
|
|
35
|
+
title: ( localize2(4898, "Previous File Tree")),
|
|
36
36
|
keybinding: {
|
|
37
37
|
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.F9,
|
|
38
38
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function registerChatForkActions(): void;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
|
|
2
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
3
|
+
import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
|
|
4
|
+
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
5
|
+
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
6
|
+
import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
|
+
import { registerAction2, Action2, MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
8
|
+
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
9
|
+
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
10
|
+
import { ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
11
|
+
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
12
|
+
import { isChatTreeItem, isResponseVM, isRequestVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
|
|
13
|
+
import { CHAT_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
14
|
+
import { ChatViewPaneTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
15
|
+
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
16
|
+
|
|
17
|
+
function registerChatForkActions() {
|
|
18
|
+
registerAction2(class ForkConversationAction extends Action2 {
|
|
19
|
+
constructor() {
|
|
20
|
+
super({
|
|
21
|
+
id: "workbench.action.chat.forkConversation",
|
|
22
|
+
title: ( localize2(4899, "Fork Conversation")),
|
|
23
|
+
tooltip: ( localize2(4900, "Fork conversation from this point")),
|
|
24
|
+
f1: false,
|
|
25
|
+
category: CHAT_CATEGORY,
|
|
26
|
+
icon: Codicon.repoForked,
|
|
27
|
+
precondition: ChatContextKeys.enabled,
|
|
28
|
+
menu: [{
|
|
29
|
+
id: MenuId.ChatMessageCheckpoint,
|
|
30
|
+
group: "navigation",
|
|
31
|
+
order: 3,
|
|
32
|
+
when: ( ContextKeyExpr.and(ChatContextKeys.isRequest, ( ChatContextKeys.lockedToCodingAgent.negate())))
|
|
33
|
+
}]
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async run(accessor, ...args) {
|
|
37
|
+
const chatWidgetService = accessor.get(IChatWidgetService);
|
|
38
|
+
const chatService = accessor.get(IChatService);
|
|
39
|
+
const forkedTitlePrefix = ( localize(4901, "Forked: "));
|
|
40
|
+
if (URI.isUri(args[0])) {
|
|
41
|
+
const sourceSessionResource = args[0];
|
|
42
|
+
const chatModel = chatService.getSession(sourceSessionResource);
|
|
43
|
+
if (!chatModel) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const serializedData = chatModel.toJSON();
|
|
47
|
+
if (serializedData.requests.length === 0) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const cleanData = revive(JSON.parse(JSON.stringify(serializedData)));
|
|
51
|
+
cleanData.sessionId = generateUuid();
|
|
52
|
+
const forkTimestamp = Date.now();
|
|
53
|
+
cleanData.creationDate = forkTimestamp;
|
|
54
|
+
cleanData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4902, "Forked: {0}", chatModel.title));
|
|
55
|
+
for (const [index, req] of cleanData.requests.entries()) {
|
|
56
|
+
req.shouldBeRemovedOnSend = undefined;
|
|
57
|
+
req.isHidden = undefined;
|
|
58
|
+
req.requestId = generateUuid();
|
|
59
|
+
req.responseId = req.responseId ? generateUuid() : undefined;
|
|
60
|
+
req.timestamp = forkTimestamp + index;
|
|
61
|
+
if (req.response) {
|
|
62
|
+
req.modelState = {
|
|
63
|
+
value: ResponseModelState.Complete,
|
|
64
|
+
completedAt: forkTimestamp + index
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const modelRef = chatService.loadSessionFromData(cleanData);
|
|
69
|
+
const newSessionResource = modelRef.object.sessionResource;
|
|
70
|
+
setTimeout(async () => {
|
|
71
|
+
try {
|
|
72
|
+
await chatWidgetService.openSession(newSessionResource, ChatViewPaneTarget);
|
|
73
|
+
} finally {
|
|
74
|
+
modelRef.dispose();
|
|
75
|
+
}
|
|
76
|
+
}, 0);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const arg = args[0];
|
|
80
|
+
let item = isChatTreeItem(arg) ? arg : isChatTreeItem(arg?.element) ? arg.element : isChatTreeItem(arg?.context) ? arg.context : isChatTreeItem(arg?.item) ? arg.item : undefined;
|
|
81
|
+
const widget = (item && chatWidgetService.getWidgetBySessionResource(item.sessionResource)) || chatWidgetService.lastFocusedWidget;
|
|
82
|
+
if (!isResponseVM(item) && !isRequestVM(item)) {
|
|
83
|
+
item = widget?.getFocus();
|
|
84
|
+
}
|
|
85
|
+
if (!item) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const sessionResource = widget?.viewModel?.sessionResource ?? (isChatTreeItem(item) ? item.sessionResource : undefined);
|
|
89
|
+
if (!sessionResource) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const chatModel = chatService.getSession(sessionResource);
|
|
93
|
+
if (!chatModel) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const targetRequestId = isRequestVM(item) ? item.id : isResponseVM(item) ? item.requestId : undefined;
|
|
97
|
+
if (!targetRequestId) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const serializedData = chatModel.toJSON();
|
|
101
|
+
const isRequestItem = isRequestVM(item);
|
|
102
|
+
let targetIndex = -1;
|
|
103
|
+
if (widget?.viewModel) {
|
|
104
|
+
let requestIndex = -1;
|
|
105
|
+
for (const entry of widget.viewModel.getItems()) {
|
|
106
|
+
if (isRequestVM(entry)) {
|
|
107
|
+
requestIndex += 1;
|
|
108
|
+
}
|
|
109
|
+
if (entry.id === item?.id) {
|
|
110
|
+
targetIndex = isRequestVM(entry) ? Math.max(0, requestIndex - 1) : requestIndex;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (targetIndex < 0) {
|
|
116
|
+
const requestIndex = chatModel.getRequests().findIndex(r => r.id === targetRequestId);
|
|
117
|
+
targetIndex = isRequestItem ? Math.max(0, requestIndex - 1) : requestIndex;
|
|
118
|
+
}
|
|
119
|
+
if (targetIndex < 0) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const forkedData = revive(JSON.parse(JSON.stringify({
|
|
123
|
+
...serializedData,
|
|
124
|
+
requests: serializedData.requests.slice(0, targetIndex + 1)
|
|
125
|
+
})));
|
|
126
|
+
forkedData.sessionId = generateUuid();
|
|
127
|
+
const forkedTimestamp = Date.now();
|
|
128
|
+
forkedData.creationDate = forkedTimestamp;
|
|
129
|
+
forkedData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4902, "Forked: {0}", chatModel.title));
|
|
130
|
+
for (const [index, req] of forkedData.requests.entries()) {
|
|
131
|
+
req.shouldBeRemovedOnSend = undefined;
|
|
132
|
+
req.isHidden = undefined;
|
|
133
|
+
req.requestId = generateUuid();
|
|
134
|
+
req.responseId = req.responseId ? generateUuid() : undefined;
|
|
135
|
+
req.timestamp = forkedTimestamp + index;
|
|
136
|
+
if (req.response) {
|
|
137
|
+
req.modelState = {
|
|
138
|
+
value: ResponseModelState.Complete,
|
|
139
|
+
completedAt: forkedTimestamp + index
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const modelRef = chatService.loadSessionFromData(forkedData);
|
|
144
|
+
if (!modelRef) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const newSessionResource = modelRef.object.sessionResource;
|
|
148
|
+
await chatWidgetService.openSession(newSessionResource, ChatViewPaneTarget);
|
|
149
|
+
modelRef.dispose();
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export { registerChatForkActions };
|
|
@@ -13,10 +13,11 @@ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbenc
|
|
|
13
13
|
import { isExportableSessionData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
14
14
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
15
15
|
import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
|
|
16
|
+
import { ACTIVE_GROUP } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService';
|
|
16
17
|
|
|
17
18
|
const defaultFileName = "chat.json";
|
|
18
19
|
const filters = [{
|
|
19
|
-
name: ( localize(
|
|
20
|
+
name: ( localize(4903, "Chat Session")),
|
|
20
21
|
extensions: ["json"]
|
|
21
22
|
}];
|
|
22
23
|
function registerChatExportActions() {
|
|
@@ -25,7 +26,7 @@ function registerChatExportActions() {
|
|
|
25
26
|
super({
|
|
26
27
|
id: "workbench.action.chat.export",
|
|
27
28
|
category: CHAT_CATEGORY,
|
|
28
|
-
title: ( localize2(
|
|
29
|
+
title: ( localize2(4904, "Export Chat...")),
|
|
29
30
|
precondition: ChatContextKeys.enabled,
|
|
30
31
|
f1: true
|
|
31
32
|
});
|
|
@@ -62,7 +63,7 @@ function registerChatExportActions() {
|
|
|
62
63
|
constructor() {
|
|
63
64
|
super({
|
|
64
65
|
id: "workbench.action.chat.import",
|
|
65
|
-
title: ( localize2(
|
|
66
|
+
title: ( localize2(4905, "Import Chat...")),
|
|
66
67
|
category: CHAT_CATEGORY,
|
|
67
68
|
precondition: ChatContextKeys.enabled,
|
|
68
69
|
f1: true
|
|
@@ -96,10 +97,7 @@ function registerChatExportActions() {
|
|
|
96
97
|
let resolvedTarget;
|
|
97
98
|
let options;
|
|
98
99
|
if (opts?.target === "chatViewPane") {
|
|
99
|
-
const modelRef = chatService.
|
|
100
|
-
if (!modelRef) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
100
|
+
const modelRef = chatService.loadSessionFromData(data);
|
|
103
101
|
sessionResource = modelRef.object.sessionResource;
|
|
104
102
|
resolvedTarget = ChatViewPaneTarget;
|
|
105
103
|
options = {
|
|
@@ -107,7 +105,7 @@ function registerChatExportActions() {
|
|
|
107
105
|
};
|
|
108
106
|
} else {
|
|
109
107
|
sessionResource = ChatEditorInput.getNewEditorUri();
|
|
110
|
-
resolvedTarget =
|
|
108
|
+
resolvedTarget = ACTIVE_GROUP;
|
|
111
109
|
options = {
|
|
112
110
|
target: {
|
|
113
111
|
data
|