@codingame/monaco-vscode-chat-service-override 28.4.1 → 29.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +18 -12
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +300 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.js +31 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +84 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +16 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +488 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +424 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +50 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +202 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +114 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +723 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +33 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +40 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +22 -0
- package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +29 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +76 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
- 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 +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +162 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +167 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +52 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +82 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +195 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +97 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +78 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +174 -170
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +118 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +13 -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.d.ts +0 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +9 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +23 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +341 -196
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +79 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.d.ts +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +22 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +85 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +668 -214
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +306 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +84 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +651 -81
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +31 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +9 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +7 -142
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.d.ts +43 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +63 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +25 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +297 -123
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +153 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +17 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +111 -171
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +5 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -186
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +31 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +3 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +4 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +18 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +112 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +16 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +41 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +35 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +1 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +8 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +13 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +29 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +14 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +79 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +125 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +11 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +113 -82
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +18 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +54 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +8 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +103 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +48 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +28 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +62 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +21 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +17 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +43 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.d.ts +59 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +194 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +8 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +81 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +22 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +9 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +19 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +2 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +105 -172
- 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 +80 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +56 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +70 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +40 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +33 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +21 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +362 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +15 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +90 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +146 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +10 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +33 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +200 -55
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +90 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +21 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +22 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +28 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +20 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +68 -5
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +57 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +21 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +171 -57
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +7 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +206 -35
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +11 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +44 -22
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +450 -301
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +165 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +34 -20
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +209 -144
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +205 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +47 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +191 -159
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +6 -7
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +210 -233
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +19 -26
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +183 -193
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +75 -0
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +97 -35
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +67 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +62 -23
- 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 +5 -5
- 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 +8 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +23 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +50 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +21 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +20 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +124 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +20 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +10 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +46 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +18 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +74 -37
- 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/commandLineAnalyzer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +24 -14
- 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/commandLineAnalyzer/commandLineSandboxAnalyzer.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +5 -1
- 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 +1 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +66 -64
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +5 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +390 -114
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +21 -11
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +70 -51
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +61 -51
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +94 -76
- 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 +19 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +112 -21
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +0 -53
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +0 -219
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +0 -89
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +0 -251
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +0 -123
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +0 -278
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +0 -76
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +0 -299
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +0 -67
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +0 -263
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +0 -85
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +0 -397
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -56
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +0 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +0 -30
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +0 -40
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +0 -28
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +0 -190
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +0 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +0 -16
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +0 -20
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
|
|
2
|
+
import { CancellationToken, CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
2
3
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
3
4
|
import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
|
|
4
5
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
@@ -6,10 +7,12 @@ import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common
|
|
|
6
7
|
import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
8
|
import { registerAction2, Action2, MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
8
9
|
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
10
|
+
import { IProgressService } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service';
|
|
9
11
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
10
12
|
import { ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
11
13
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
12
14
|
import { isChatTreeItem, isResponseVM, isRequestVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
|
|
15
|
+
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
13
16
|
import { CHAT_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
14
17
|
import { ChatViewPaneTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
15
18
|
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
@@ -19,8 +22,8 @@ function registerChatForkActions() {
|
|
|
19
22
|
constructor() {
|
|
20
23
|
super({
|
|
21
24
|
id: "workbench.action.chat.forkConversation",
|
|
22
|
-
title: ( localize2(
|
|
23
|
-
tooltip: ( localize2(
|
|
25
|
+
title: ( localize2(4927, "Fork Conversation")),
|
|
26
|
+
tooltip: ( localize2(4928, "Fork conversation from this point")),
|
|
24
27
|
f1: false,
|
|
25
28
|
category: CHAT_CATEGORY,
|
|
26
29
|
icon: Codicon.repoForked,
|
|
@@ -29,16 +32,28 @@ function registerChatForkActions() {
|
|
|
29
32
|
id: MenuId.ChatMessageCheckpoint,
|
|
30
33
|
group: "navigation",
|
|
31
34
|
order: 3,
|
|
32
|
-
when: ( ContextKeyExpr.and(ChatContextKeys.isRequest, ( ChatContextKeys.lockedToCodingAgent.negate())))
|
|
35
|
+
when: ( ContextKeyExpr.and(ChatContextKeys.isRequest, ( ContextKeyExpr.or(( ChatContextKeys.lockedToCodingAgent.negate()), ChatContextKeys.chatSessionSupportsFork))))
|
|
33
36
|
}]
|
|
34
37
|
});
|
|
35
38
|
}
|
|
36
39
|
async run(accessor, ...args) {
|
|
37
40
|
const chatWidgetService = accessor.get(IChatWidgetService);
|
|
38
41
|
const chatService = accessor.get(IChatService);
|
|
39
|
-
const
|
|
42
|
+
const chatSessionsService = accessor.get(IChatSessionsService);
|
|
43
|
+
accessor.get(IProgressService);
|
|
44
|
+
const forkedTitlePrefix = ( localize(4929, "Forked: "));
|
|
40
45
|
if (URI.isUri(args[0])) {
|
|
41
46
|
const sourceSessionResource = args[0];
|
|
47
|
+
const contentProviderSchemes = chatSessionsService.getContentProviderSchemes();
|
|
48
|
+
if (contentProviderSchemes.includes(sourceSessionResource.scheme)) {
|
|
49
|
+
await forkContributedChatSession(
|
|
50
|
+
sourceSessionResource,
|
|
51
|
+
undefined,
|
|
52
|
+
false,
|
|
53
|
+
chatSessionsService,
|
|
54
|
+
chatWidgetService);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
42
57
|
const chatModel = chatService.getSession(sourceSessionResource);
|
|
43
58
|
if (!chatModel) {
|
|
44
59
|
return;
|
|
@@ -51,7 +66,7 @@ function registerChatForkActions() {
|
|
|
51
66
|
cleanData.sessionId = generateUuid();
|
|
52
67
|
const forkTimestamp = Date.now();
|
|
53
68
|
cleanData.creationDate = forkTimestamp;
|
|
54
|
-
cleanData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(
|
|
69
|
+
cleanData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4930, "Forked: {0}", chatModel.title));
|
|
55
70
|
for (const [index, req] of cleanData.requests.entries()) {
|
|
56
71
|
req.shouldBeRemovedOnSend = undefined;
|
|
57
72
|
req.isHidden = undefined;
|
|
@@ -89,14 +104,43 @@ function registerChatForkActions() {
|
|
|
89
104
|
if (!sessionResource) {
|
|
90
105
|
return;
|
|
91
106
|
}
|
|
92
|
-
const chatModel = chatService.getSession(sessionResource);
|
|
93
|
-
if (!chatModel) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
107
|
const targetRequestId = isRequestVM(item) ? item.id : isResponseVM(item) ? item.requestId : undefined;
|
|
97
108
|
if (!targetRequestId) {
|
|
98
109
|
return;
|
|
99
110
|
}
|
|
111
|
+
const contentProviderSchemes = chatSessionsService.getContentProviderSchemes();
|
|
112
|
+
if (contentProviderSchemes.includes(sessionResource.scheme)) {
|
|
113
|
+
const contributedSession = await chatSessionsService.getOrCreateChatSession(sessionResource, CancellationToken.None);
|
|
114
|
+
let request = contributedSession.history.find(entry => entry.type === "request" && entry.id === targetRequestId);
|
|
115
|
+
if (!request) {
|
|
116
|
+
const chatModel = chatService.getSession(sessionResource);
|
|
117
|
+
const serializedData = chatModel?.toJSON();
|
|
118
|
+
for (const [, entry] of serializedData?.requests.entries() ?? []) {
|
|
119
|
+
if (entry.requestId === targetRequestId) {
|
|
120
|
+
request = {
|
|
121
|
+
id: entry.requestId,
|
|
122
|
+
type: "request",
|
|
123
|
+
prompt: typeof entry.message === "string" ? entry.message : entry.message.text,
|
|
124
|
+
participant: entry.agent?.id ?? "",
|
|
125
|
+
variableData: entry.variableData,
|
|
126
|
+
modelId: entry.modelId
|
|
127
|
+
};
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
await forkContributedChatSession(
|
|
133
|
+
sessionResource,
|
|
134
|
+
request,
|
|
135
|
+
true,
|
|
136
|
+
chatSessionsService,
|
|
137
|
+
chatWidgetService);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const chatModel = chatService.getSession(sessionResource);
|
|
141
|
+
if (!chatModel) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
100
144
|
const serializedData = chatModel.toJSON();
|
|
101
145
|
const isRequestItem = isRequestVM(item);
|
|
102
146
|
let targetIndex = -1;
|
|
@@ -126,7 +170,7 @@ function registerChatForkActions() {
|
|
|
126
170
|
forkedData.sessionId = generateUuid();
|
|
127
171
|
const forkedTimestamp = Date.now();
|
|
128
172
|
forkedData.creationDate = forkedTimestamp;
|
|
129
|
-
forkedData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(
|
|
173
|
+
forkedData.customTitle = chatModel.title.startsWith(forkedTitlePrefix) ? chatModel.title : ( localize(4930, "Forked: {0}", chatModel.title));
|
|
130
174
|
for (const [index, req] of forkedData.requests.entries()) {
|
|
131
175
|
req.shouldBeRemovedOnSend = undefined;
|
|
132
176
|
req.isHidden = undefined;
|
|
@@ -150,5 +194,27 @@ function registerChatForkActions() {
|
|
|
150
194
|
}
|
|
151
195
|
});
|
|
152
196
|
}
|
|
197
|
+
async function forkContributedChatSession(
|
|
198
|
+
sourceSessionResource,
|
|
199
|
+
request,
|
|
200
|
+
openForkedSessionImmediately,
|
|
201
|
+
chatSessionsService,
|
|
202
|
+
chatWidgetService,
|
|
203
|
+
progressService
|
|
204
|
+
) {
|
|
205
|
+
const cts = ( new CancellationTokenSource());
|
|
206
|
+
try {
|
|
207
|
+
const forkedItem = await chatSessionsService.forkChatSession(sourceSessionResource, request, cts.token);
|
|
208
|
+
if (openForkedSessionImmediately) {
|
|
209
|
+
await chatWidgetService.openSession(forkedItem.resource, ChatViewPaneTarget);
|
|
210
|
+
} else {
|
|
211
|
+
setTimeout(async () => {
|
|
212
|
+
await chatWidgetService.openSession(forkedItem.resource, ChatViewPaneTarget);
|
|
213
|
+
}, 0);
|
|
214
|
+
}
|
|
215
|
+
} finally {
|
|
216
|
+
cts.dispose();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
153
219
|
|
|
154
220
|
export { registerChatForkActions };
|
|
@@ -17,7 +17,7 @@ import { ACTIVE_GROUP } from '@codingame/monaco-vscode-api/vscode/vs/workbench/s
|
|
|
17
17
|
|
|
18
18
|
const defaultFileName = "chat.json";
|
|
19
19
|
const filters = [{
|
|
20
|
-
name: ( localize(
|
|
20
|
+
name: ( localize(4931, "Chat Session")),
|
|
21
21
|
extensions: ["json"]
|
|
22
22
|
}];
|
|
23
23
|
function registerChatExportActions() {
|
|
@@ -26,7 +26,7 @@ function registerChatExportActions() {
|
|
|
26
26
|
super({
|
|
27
27
|
id: "workbench.action.chat.export",
|
|
28
28
|
category: CHAT_CATEGORY,
|
|
29
|
-
title: ( localize2(
|
|
29
|
+
title: ( localize2(4932, "Export Chat...")),
|
|
30
30
|
precondition: ChatContextKeys.enabled,
|
|
31
31
|
f1: true
|
|
32
32
|
});
|
|
@@ -63,7 +63,7 @@ function registerChatExportActions() {
|
|
|
63
63
|
constructor() {
|
|
64
64
|
super({
|
|
65
65
|
id: "workbench.action.chat.import",
|
|
66
|
-
title: ( localize2(
|
|
66
|
+
title: ( localize2(4933, "Import Chat...")),
|
|
67
67
|
category: CHAT_CATEGORY,
|
|
68
68
|
precondition: ChatContextKeys.enabled,
|
|
69
69
|
f1: true
|
|
@@ -21,7 +21,7 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
|
|
|
21
21
|
constructor() {
|
|
22
22
|
super({
|
|
23
23
|
id: ManageLanguageModelAuthenticationAction.ID,
|
|
24
|
-
title: ( localize2(
|
|
24
|
+
title: ( localize2(4934, "Manage Language Model Access...")),
|
|
25
25
|
category: CHAT_CATEGORY,
|
|
26
26
|
precondition: ChatContextKeys.enabled,
|
|
27
27
|
menu: [{
|
|
@@ -91,9 +91,9 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
|
|
|
91
91
|
if (extensionAuth.size === 0) {
|
|
92
92
|
dialogService.prompt({
|
|
93
93
|
type: "info",
|
|
94
|
-
message: ( localize(
|
|
94
|
+
message: ( localize(4935, "No language models requiring authentication found.")),
|
|
95
95
|
detail: ( localize(
|
|
96
|
-
|
|
96
|
+
4936,
|
|
97
97
|
"There are currently no language models that require authentication."
|
|
98
98
|
))
|
|
99
99
|
});
|
|
@@ -108,10 +108,10 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
|
|
|
108
108
|
items.push({
|
|
109
109
|
type: "separator",
|
|
110
110
|
id: ownerId,
|
|
111
|
-
label: ( localize(
|
|
111
|
+
label: ( localize(4937, "{0}", extension.displayName || extension.name)),
|
|
112
112
|
buttons: [{
|
|
113
113
|
iconClass: ThemeIcon.asClassName(Codicon.info),
|
|
114
|
-
tooltip: ( localize(
|
|
114
|
+
tooltip: ( localize(4938, "Open Extension"))
|
|
115
115
|
}]
|
|
116
116
|
});
|
|
117
117
|
let addedTrustedSeparator = false;
|
|
@@ -120,7 +120,7 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
|
|
|
120
120
|
if (allowedExt.trusted && !addedTrustedSeparator) {
|
|
121
121
|
items.push({
|
|
122
122
|
type: "separator",
|
|
123
|
-
label: ( localize(
|
|
123
|
+
label: ( localize(4939, "Trusted by Microsoft"))
|
|
124
124
|
});
|
|
125
125
|
addedTrustedSeparator = true;
|
|
126
126
|
}
|
|
@@ -133,15 +133,15 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
|
|
|
133
133
|
disabled: allowedExt.trusted,
|
|
134
134
|
buttons: [{
|
|
135
135
|
iconClass: ThemeIcon.asClassName(Codicon.info),
|
|
136
|
-
tooltip: ( localize(
|
|
136
|
+
tooltip: ( localize(4938, "Open Extension"))
|
|
137
137
|
}]
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
140
|
} else {
|
|
141
141
|
items.push({
|
|
142
|
-
label: ( localize(
|
|
142
|
+
label: ( localize(4940, "No extensions have access")),
|
|
143
143
|
description: ( localize(
|
|
144
|
-
|
|
144
|
+
4941,
|
|
145
145
|
"No extensions are currently allowed to use models from {0}",
|
|
146
146
|
ownerId
|
|
147
147
|
)),
|
|
@@ -164,8 +164,8 @@ class ManageLanguageModelAuthenticationAction extends Action2 {
|
|
|
164
164
|
void extensionsWorkbenchService.open(extId);
|
|
165
165
|
}
|
|
166
166
|
},
|
|
167
|
-
title: ( localize(
|
|
168
|
-
placeHolder: ( localize(
|
|
167
|
+
title: ( localize(4942, "Manage Language Model Access")),
|
|
168
|
+
placeHolder: ( localize(4943, "Choose which extensions can access language models"))
|
|
169
169
|
});
|
|
170
170
|
if (!result) {
|
|
171
171
|
return;
|
|
@@ -188,7 +188,7 @@ class ConfigureLanguageModelsGroupAction extends Action2 {
|
|
|
188
188
|
constructor() {
|
|
189
189
|
super({
|
|
190
190
|
id: "lm.addLanguageModelsProviderGroup",
|
|
191
|
-
title: ( localize(
|
|
191
|
+
title: ( localize(4944, "Add Language Models Group"))
|
|
192
192
|
});
|
|
193
193
|
}
|
|
194
194
|
async run(accessor, languageModelsProviderGroup) {
|
|
@@ -208,7 +208,7 @@ class MigrateLanguageModelsGroupAction extends Action2 {
|
|
|
208
208
|
constructor() {
|
|
209
209
|
super({
|
|
210
210
|
id: "lm.migrateLanguageModelsProviderGroup",
|
|
211
|
-
title: ( localize(
|
|
211
|
+
title: ( localize(4945, "Migrate Language Models Group"))
|
|
212
212
|
});
|
|
213
213
|
}
|
|
214
214
|
async run(accessor, languageModelsProviderGroup) {
|
|
@@ -28,7 +28,7 @@ function registerMoveActions() {
|
|
|
28
28
|
constructor() {
|
|
29
29
|
super({
|
|
30
30
|
id: "workbench.action.chat.openInEditor",
|
|
31
|
-
title: ( localize2(
|
|
31
|
+
title: ( localize2(4946, "Move Chat into Editor Area")),
|
|
32
32
|
category: CHAT_CATEGORY,
|
|
33
33
|
precondition: ChatContextKeys.enabled,
|
|
34
34
|
f1: true,
|
|
@@ -53,7 +53,7 @@ function registerMoveActions() {
|
|
|
53
53
|
constructor() {
|
|
54
54
|
super({
|
|
55
55
|
id: "workbench.action.chat.openInNewWindow",
|
|
56
|
-
title: ( localize2(
|
|
56
|
+
title: ( localize2(4947, "Move Chat into New Window")),
|
|
57
57
|
category: CHAT_CATEGORY,
|
|
58
58
|
precondition: ChatContextKeys.enabled,
|
|
59
59
|
f1: true,
|
|
@@ -78,7 +78,7 @@ function registerMoveActions() {
|
|
|
78
78
|
constructor() {
|
|
79
79
|
super({
|
|
80
80
|
id: "workbench.action.chat.openInSidebar",
|
|
81
|
-
title: ( localize2(
|
|
81
|
+
title: ( localize2(4948, "Move Chat into Side Bar")),
|
|
82
82
|
category: CHAT_CATEGORY,
|
|
83
83
|
precondition: ChatContextKeys.enabled,
|
|
84
84
|
f1: true
|
|
@@ -101,9 +101,9 @@ function registerMoveActions() {
|
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
[MenuId.EditorTitle, MenuId.CompactWindowEditorTitle].forEach(id => {
|
|
104
|
-
appendOpenChatInViewMenuItem(id, ( localize(
|
|
105
|
-
appendOpenChatInViewMenuItem(id, ( localize(
|
|
106
|
-
appendOpenChatInViewMenuItem(id, ( localize(
|
|
104
|
+
appendOpenChatInViewMenuItem(id, ( localize(4949, "Move Chat into Secondary Side Bar")), Codicon.layoutSidebarRightDock, ( ChatContextKeys.panelLocation.isEqualTo(ViewContainerLocation.AuxiliaryBar)));
|
|
105
|
+
appendOpenChatInViewMenuItem(id, ( localize(4950, "Move Chat into Primary Side Bar")), Codicon.layoutSidebarLeftDock, ( ChatContextKeys.panelLocation.isEqualTo(ViewContainerLocation.Sidebar)));
|
|
106
|
+
appendOpenChatInViewMenuItem(id, ( localize(4951, "Move Chat into Panel")), Codicon.layoutPanelDock, ( ChatContextKeys.panelLocation.isEqualTo(ViewContainerLocation.Panel)));
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
109
|
async function executeMoveToAction(accessor, moveTo, sessionResource) {
|
|
@@ -39,7 +39,7 @@ function isNewEditSessionActionContext(arg) {
|
|
|
39
39
|
function registerNewChatActions() {
|
|
40
40
|
MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
|
|
41
41
|
submenu: MenuId.ChatNewMenu,
|
|
42
|
-
title: ( localize2(
|
|
42
|
+
title: ( localize2(4952, "New Chat")),
|
|
43
43
|
icon: Codicon.plus,
|
|
44
44
|
when: ( ContextKeyExpr.equals("view", ChatViewId)),
|
|
45
45
|
group: "navigation",
|
|
@@ -50,7 +50,7 @@ function registerNewChatActions() {
|
|
|
50
50
|
constructor() {
|
|
51
51
|
super({
|
|
52
52
|
id: "workbench.action.chatEditor.newChat",
|
|
53
|
-
title: ( localize2(
|
|
53
|
+
title: ( localize2(4953, "New Chat")),
|
|
54
54
|
icon: Codicon.plus,
|
|
55
55
|
f1: false,
|
|
56
56
|
precondition: ChatContextKeys.enabled
|
|
@@ -64,7 +64,7 @@ function registerNewChatActions() {
|
|
|
64
64
|
constructor() {
|
|
65
65
|
super({
|
|
66
66
|
id: ACTION_ID_NEW_CHAT,
|
|
67
|
-
title: ( localize2(
|
|
67
|
+
title: ( localize2(4952, "New Chat")),
|
|
68
68
|
category: CHAT_CATEGORY,
|
|
69
69
|
icon: Codicon.plus,
|
|
70
70
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)))),
|
|
@@ -114,7 +114,7 @@ function registerNewChatActions() {
|
|
|
114
114
|
constructor() {
|
|
115
115
|
super({
|
|
116
116
|
id: ACTION_ID_NEW_CHAT + variant.idSuffix,
|
|
117
|
-
title: ( localize2(
|
|
117
|
+
title: ( localize2(4952, "New Chat")),
|
|
118
118
|
category: CHAT_CATEGORY,
|
|
119
119
|
icon: variant.icon,
|
|
120
120
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)))),
|
|
@@ -139,7 +139,7 @@ function registerNewChatActions() {
|
|
|
139
139
|
constructor() {
|
|
140
140
|
super({
|
|
141
141
|
id: "workbench.action.chat.newLocalChat",
|
|
142
|
-
title: ( localize2(
|
|
142
|
+
title: ( localize2(4954, "New Local Chat")),
|
|
143
143
|
category: CHAT_CATEGORY,
|
|
144
144
|
icon: Codicon.plus,
|
|
145
145
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.location.isEqualTo(ChatAgentLocation.Chat)))),
|
|
@@ -155,7 +155,7 @@ function registerNewChatActions() {
|
|
|
155
155
|
MenuRegistry.appendMenuItem(MenuId.ChatViewSessionTitleNavigationToolbar, {
|
|
156
156
|
command: {
|
|
157
157
|
id: ACTION_ID_NEW_CHAT,
|
|
158
|
-
title: ( localize2(
|
|
158
|
+
title: ( localize2(4955, "Go Back")),
|
|
159
159
|
icon: Codicon.arrowLeft
|
|
160
160
|
},
|
|
161
161
|
when: ( ChatContextKeys.agentSessionsViewerOrientation.notEqualsTo(AgentSessionsViewerOrientation.SideBySide)),
|
|
@@ -166,7 +166,7 @@ function registerNewChatActions() {
|
|
|
166
166
|
constructor() {
|
|
167
167
|
super({
|
|
168
168
|
id: "workbench.action.chat.undoEdit",
|
|
169
|
-
title: ( localize2(
|
|
169
|
+
title: ( localize2(4956, "Undo Last Edit")),
|
|
170
170
|
category: CHAT_CATEGORY,
|
|
171
171
|
icon: Codicon.discard,
|
|
172
172
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.chatEditingCanUndo, ChatContextKeys.enabled)),
|
|
@@ -188,7 +188,7 @@ function registerNewChatActions() {
|
|
|
188
188
|
constructor() {
|
|
189
189
|
super({
|
|
190
190
|
id: "workbench.action.chat.redoEdit",
|
|
191
|
-
title: ( localize2(
|
|
191
|
+
title: ( localize2(4957, "Redo Last Edit")),
|
|
192
192
|
category: CHAT_CATEGORY,
|
|
193
193
|
icon: Codicon.redo,
|
|
194
194
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.chatEditingCanRedo, ChatContextKeys.enabled)),
|
|
@@ -212,8 +212,8 @@ function registerNewChatActions() {
|
|
|
212
212
|
constructor() {
|
|
213
213
|
super({
|
|
214
214
|
id: "workbench.action.chat.redoEdit2",
|
|
215
|
-
title: ( localize2(
|
|
216
|
-
tooltip: ( localize2(
|
|
215
|
+
title: ( localize2(4958, "Redo")),
|
|
216
|
+
tooltip: ( localize2(4959, "Reapply discarded workspace changes and chat")),
|
|
217
217
|
category: CHAT_CATEGORY,
|
|
218
218
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.chatEditingCanRedo, ChatContextKeys.enabled)),
|
|
219
219
|
f1: true,
|
|
@@ -260,7 +260,7 @@ async function runNewChatAction(accessor, context, executeCommandContext, sessio
|
|
|
260
260
|
await clearChatSessionPreservingType(widget, viewsService, sessionType);
|
|
261
261
|
widget.attachmentModel.clear(true);
|
|
262
262
|
widget.focusInput();
|
|
263
|
-
accessibilityService.alert(( localize(
|
|
263
|
+
accessibilityService.alert(( localize(4960, "New chat")));
|
|
264
264
|
if (!executeCommandContext) {
|
|
265
265
|
return;
|
|
266
266
|
}
|
package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
|
|
2
|
+
import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
3
|
+
import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
2
4
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
3
|
-
import { localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
5
|
+
import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
4
6
|
import { registerAction2, Action2, MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
5
7
|
import { Categories } from '@codingame/monaco-vscode-api/vscode/vs/platform/action/common/actionCommonCategories';
|
|
6
8
|
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
9
|
+
import { IFileDialogService, IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
10
|
+
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
11
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification';
|
|
12
|
+
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
13
|
+
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
14
|
+
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
15
|
+
import { ActiveEditorContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
7
16
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
8
17
|
import { isChatViewTitleActionContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatActions';
|
|
9
18
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
@@ -11,14 +20,18 @@ import { IChatDebugService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
11
20
|
import { ChatViewId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
12
21
|
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
13
22
|
import { CHAT_CONFIG_MENU_ID, CHAT_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
23
|
+
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
14
24
|
import { ChatDebugEditorInput } from '../chatDebug/chatDebugEditorInput.js';
|
|
25
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
26
|
+
import { LocalChatSessionUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
27
|
+
import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
|
|
15
28
|
|
|
16
29
|
function registerChatOpenAgentDebugPanelAction() {
|
|
17
30
|
registerAction2(class OpenAgentDebugPanelAction extends Action2 {
|
|
18
31
|
constructor() {
|
|
19
32
|
super({
|
|
20
33
|
id: "workbench.action.chat.openAgentDebugPanel",
|
|
21
|
-
title: ( localize2(
|
|
34
|
+
title: ( localize2(4961, "Open Agent Debug Logs")),
|
|
22
35
|
f1: true,
|
|
23
36
|
category: Categories.Developer,
|
|
24
37
|
precondition: ChatContextKeys.enabled
|
|
@@ -39,10 +52,10 @@ function registerChatOpenAgentDebugPanelAction() {
|
|
|
39
52
|
constructor() {
|
|
40
53
|
super({
|
|
41
54
|
id: "workbench.action.chat.openAgentDebugPanelForSession",
|
|
42
|
-
title: ( localize2(
|
|
55
|
+
title: ( localize2(4962, "Show Agent Debug Logs")),
|
|
43
56
|
f1: false,
|
|
44
57
|
category: CHAT_CATEGORY,
|
|
45
|
-
precondition:
|
|
58
|
+
precondition: ChatContextKeys.enabled,
|
|
46
59
|
menu: [{
|
|
47
60
|
id: CHAT_CONFIG_MENU_ID,
|
|
48
61
|
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.equals("view", ChatViewId)))),
|
|
@@ -53,6 +66,11 @@ function registerChatOpenAgentDebugPanelAction() {
|
|
|
53
66
|
group: "2_settings",
|
|
54
67
|
order: 0,
|
|
55
68
|
when: ( ChatContextKeys.inChatEditor.negate())
|
|
69
|
+
}, {
|
|
70
|
+
id: MenuId.ViewTitle,
|
|
71
|
+
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.equals("view", ChatViewId)), ( ContextKeyExpr.has(`config.${ChatConfiguration.ChatCustomizationMenuEnabled}`)))),
|
|
72
|
+
order: 0,
|
|
73
|
+
group: "4_logs"
|
|
56
74
|
}]
|
|
57
75
|
});
|
|
58
76
|
}
|
|
@@ -80,6 +98,146 @@ function registerChatOpenAgentDebugPanelAction() {
|
|
|
80
98
|
await editorService.openEditor(ChatDebugEditorInput.instance, options);
|
|
81
99
|
}
|
|
82
100
|
});
|
|
101
|
+
const defaultDebugLogFileName = "agent-debug-log.json";
|
|
102
|
+
const debugLogFilters = [{
|
|
103
|
+
name: ( localize(4963, "Agent Debug Log")),
|
|
104
|
+
extensions: ["json"]
|
|
105
|
+
}];
|
|
106
|
+
registerAction2(class ExportAgentDebugLogAction extends Action2 {
|
|
107
|
+
constructor() {
|
|
108
|
+
super({
|
|
109
|
+
id: "workbench.action.chat.exportAgentDebugLog",
|
|
110
|
+
title: ( localize2(4964, "Export Agent Debug Log...")),
|
|
111
|
+
icon: Codicon.desktopDownload,
|
|
112
|
+
f1: true,
|
|
113
|
+
category: Categories.Developer,
|
|
114
|
+
precondition: ChatContextKeys.enabled,
|
|
115
|
+
menu: [{
|
|
116
|
+
id: MenuId.EditorTitle,
|
|
117
|
+
group: "navigation",
|
|
118
|
+
when: ( ActiveEditorContext.isEqualTo(ChatDebugEditorInput.ID)),
|
|
119
|
+
order: 10
|
|
120
|
+
}]
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
async run(accessor) {
|
|
124
|
+
const chatDebugService = accessor.get(IChatDebugService);
|
|
125
|
+
const fileDialogService = accessor.get(IFileDialogService);
|
|
126
|
+
const fileService = accessor.get(IFileService);
|
|
127
|
+
const notificationService = accessor.get(INotificationService);
|
|
128
|
+
const openerService = accessor.get(IOpenerService);
|
|
129
|
+
const telemetryService = accessor.get(ITelemetryService);
|
|
130
|
+
const sessionResource = chatDebugService.activeSessionResource;
|
|
131
|
+
if (!sessionResource) {
|
|
132
|
+
notificationService.notify({
|
|
133
|
+
severity: Severity.Info,
|
|
134
|
+
message: ( localize(4965, "No active debug session to export. Navigate to a session first."))
|
|
135
|
+
});
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const localSessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
|
|
139
|
+
const rawIdentifier = localSessionId ?? (sessionResource.path.replace(/^\//, "") || sessionResource.authority);
|
|
140
|
+
const sessionIdentifier = rawIdentifier?.replace(/[/\\:*?"<>|.]+/g, "_").replace(/^_+|_+$/g, "");
|
|
141
|
+
const exportFileName = sessionIdentifier ? `agent-debug-log-${sessionIdentifier}.json` : defaultDebugLogFileName;
|
|
142
|
+
const defaultUri = joinPath(await fileDialogService.defaultFilePath(), exportFileName);
|
|
143
|
+
const outputPath = await fileDialogService.showSaveDialog({
|
|
144
|
+
defaultUri,
|
|
145
|
+
filters: debugLogFilters
|
|
146
|
+
});
|
|
147
|
+
if (!outputPath) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const data = await chatDebugService.exportLog(sessionResource);
|
|
151
|
+
if (!data) {
|
|
152
|
+
notificationService.notify({
|
|
153
|
+
severity: Severity.Warning,
|
|
154
|
+
message: ( localize(4966, "Export is not supported by the current provider."))
|
|
155
|
+
});
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
await fileService.writeFile(outputPath, VSBuffer.wrap(data));
|
|
159
|
+
telemetryService.publicLog2("chatDebugLogExported", {
|
|
160
|
+
fileSizeBytes: data.byteLength
|
|
161
|
+
});
|
|
162
|
+
notificationService.prompt(Severity.Info, ( localize(4967, "Agent debug log exported successfully.")), [{
|
|
163
|
+
label: ( localize(4968, "Open File")),
|
|
164
|
+
run: () => openerService.open(outputPath)
|
|
165
|
+
}]);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
registerAction2(class ImportAgentDebugLogAction extends Action2 {
|
|
169
|
+
constructor() {
|
|
170
|
+
super({
|
|
171
|
+
id: "workbench.action.chat.importAgentDebugLog",
|
|
172
|
+
title: ( localize2(4969, "Import Agent Debug Log...")),
|
|
173
|
+
icon: Codicon.cloudUpload,
|
|
174
|
+
f1: true,
|
|
175
|
+
category: Categories.Developer,
|
|
176
|
+
precondition: ChatContextKeys.enabled,
|
|
177
|
+
menu: [{
|
|
178
|
+
id: MenuId.EditorTitle,
|
|
179
|
+
group: "navigation",
|
|
180
|
+
when: ( ActiveEditorContext.isEqualTo(ChatDebugEditorInput.ID)),
|
|
181
|
+
order: 11
|
|
182
|
+
}]
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
async run(accessor) {
|
|
186
|
+
const chatDebugService = accessor.get(IChatDebugService);
|
|
187
|
+
const dialogService = accessor.get(IDialogService);
|
|
188
|
+
const editorService = accessor.get(IEditorService);
|
|
189
|
+
const fileDialogService = accessor.get(IFileDialogService);
|
|
190
|
+
const fileService = accessor.get(IFileService);
|
|
191
|
+
const notificationService = accessor.get(INotificationService);
|
|
192
|
+
const telemetryService = accessor.get(ITelemetryService);
|
|
193
|
+
const defaultUri = joinPath(await fileDialogService.defaultFilePath(), defaultDebugLogFileName);
|
|
194
|
+
const result = await fileDialogService.showOpenDialog({
|
|
195
|
+
defaultUri,
|
|
196
|
+
canSelectFiles: true,
|
|
197
|
+
filters: debugLogFilters
|
|
198
|
+
});
|
|
199
|
+
if (!result) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const maxImportSize = 50 * 1024 * 1024;
|
|
203
|
+
const stat = await fileService.stat(result[0]);
|
|
204
|
+
if (stat.size !== undefined && stat.size > maxImportSize) {
|
|
205
|
+
telemetryService.publicLog2("chatDebugLogImported", {
|
|
206
|
+
fileSizeBytes: stat.size,
|
|
207
|
+
result: "fileTooLarge"
|
|
208
|
+
});
|
|
209
|
+
await dialogService.warn(( localize(4970, "File Too Large")), ( localize(
|
|
210
|
+
4971,
|
|
211
|
+
"The selected file ({0} MB) exceeds the 50 MB size limit for debug log imports.",
|
|
212
|
+
(stat.size / (1024 * 1024)).toFixed(1)
|
|
213
|
+
)));
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
const content = await fileService.readFile(result[0]);
|
|
217
|
+
const sessionUri = await chatDebugService.importLog(content.value.buffer);
|
|
218
|
+
if (!sessionUri) {
|
|
219
|
+
telemetryService.publicLog2("chatDebugLogImported", {
|
|
220
|
+
fileSizeBytes: content.value.byteLength,
|
|
221
|
+
result: "providerFailed"
|
|
222
|
+
});
|
|
223
|
+
notificationService.notify({
|
|
224
|
+
severity: Severity.Warning,
|
|
225
|
+
message: ( localize(4972, "Import is not supported by the current provider."))
|
|
226
|
+
});
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
telemetryService.publicLog2("chatDebugLogImported", {
|
|
230
|
+
fileSizeBytes: content.value.byteLength,
|
|
231
|
+
result: "success"
|
|
232
|
+
});
|
|
233
|
+
const options = {
|
|
234
|
+
pinned: true,
|
|
235
|
+
sessionResource: sessionUri,
|
|
236
|
+
viewHint: "overview"
|
|
237
|
+
};
|
|
238
|
+
await editorService.openEditor(ChatDebugEditorInput.instance, options);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
83
241
|
}
|
|
84
242
|
|
|
85
243
|
export { registerChatOpenAgentDebugPanelAction };
|