@codingame/monaco-vscode-chat-service-override 29.1.0 → 30.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 +5 -2
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +37 -39
- package/vscode/src/vs/platform/agentHost/common/agentService.js +3 -1
- package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +11 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +4 -4
- package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +132 -42
- package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +54 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +15 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +5 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +188 -51
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +7 -6
- package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +7 -2
- package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.d.ts +6 -0
- package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +14 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +18 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +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.js +37 -16
- 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 +10 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +37 -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 +6 -6
- 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 +20 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +18 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.d.ts +36 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +482 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +10 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +43 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +74 -76
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
- 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 +4 -4
- 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 +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +27 -35
- 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 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +86 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +38 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +38 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +427 -167
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +108 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +28 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +3 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +65 -68
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +64 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +288 -195
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -0
- 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 +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +19 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +54 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +14 -14
- 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 +50 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
- 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.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.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +86 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +65 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +24 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +3 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +54 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +24 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +72 -14
- 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/promptFileContributions.js +181 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- 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.js +8 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +28 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +7 -7
- 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/chatInputCompletionUtils.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.js +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +1 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +148 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
- 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 +16 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +158 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +8 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +155 -76
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +31 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +228 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +190 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +25 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +130 -107
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +19 -18
- 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 +2 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +169 -266
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +12 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +149 -206
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +27 -22
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +20 -8
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +183 -43
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +2 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +21 -21
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -11
- 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 +11 -11
- 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/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- 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/terminalChatService.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +3 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +26 -23
- 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/commandLineRewriter/commandLineSandboxRewriter.js +4 -9
- 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 +16 -6
- 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.js +9 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -50
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +2 -2
- 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 +66 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +239 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +0 -208
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +0 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +0 -637
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +0 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +0 -384
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +0 -33
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +0 -47
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +0 -30
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +0 -55
- /package/vscode/src/vs/workbench/contrib/chat/{common → browser}/promptSyntax/promptFileContributions.d.ts +0 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
|
|
2
|
+
import { match } from '@codingame/monaco-vscode-api/vscode/vs/base/common/glob';
|
|
3
|
+
import { getExtensionForMimeType } from '@codingame/monaco-vscode-api/vscode/vs/base/common/mime';
|
|
4
|
+
import { basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
|
|
5
|
+
import { basename as basename$1 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
6
|
+
import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
7
|
+
import { ChatResponseResource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
8
|
+
import { isToolResultInputOutputDetails } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
|
|
9
|
+
|
|
10
|
+
function matchMimeType(pattern, mimeType) {
|
|
11
|
+
if (pattern === mimeType) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
const [patternType, patternSubtype] = pattern.split("/");
|
|
15
|
+
const [type] = mimeType.split("/");
|
|
16
|
+
return patternSubtype === "*" && patternType === type;
|
|
17
|
+
}
|
|
18
|
+
function findFilePathRule(filePath, byFilePath) {
|
|
19
|
+
const fileBasename = basename(filePath);
|
|
20
|
+
for (const [pattern, config] of Object.entries(byFilePath)) {
|
|
21
|
+
if (match(pattern, filePath) || match(pattern, fileBasename)) {
|
|
22
|
+
return config;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
function findMimeTypeRule(mimeType, byMimeType) {
|
|
28
|
+
for (const [pattern, config] of Object.entries(byMimeType)) {
|
|
29
|
+
if (matchMimeType(pattern, mimeType)) {
|
|
30
|
+
return config;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
function isToolResultOutputDetailsSerialized(obj) {
|
|
36
|
+
return typeof obj === "object" && obj !== null && "output" in obj && typeof obj.output === "object" && obj.output?.type === "data" && typeof obj.output?.mimeType === "string";
|
|
37
|
+
}
|
|
38
|
+
function extractArtifactsFromResponse(response, sessionResource, byMimeType, byFilePath) {
|
|
39
|
+
const artifacts = [];
|
|
40
|
+
const seenUris = ( new Set());
|
|
41
|
+
for (const part of response.value) {
|
|
42
|
+
if (part.kind === "codeblockUri") {
|
|
43
|
+
const uri = part.uri;
|
|
44
|
+
const uriStr = ( uri.toString());
|
|
45
|
+
if (( seenUris.has(uriStr))) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const rule = findFilePathRule(uri.path, byFilePath);
|
|
49
|
+
if (rule) {
|
|
50
|
+
seenUris.add(uriStr);
|
|
51
|
+
artifacts.push({
|
|
52
|
+
label: basename$1(uri),
|
|
53
|
+
uri: uriStr,
|
|
54
|
+
type: "plan",
|
|
55
|
+
groupName: rule.groupName,
|
|
56
|
+
onlyShowGroup: rule.onlyShowGroup
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (part.kind === "textEditGroup") {
|
|
61
|
+
const uri = part.uri;
|
|
62
|
+
const uriStr = ( uri.toString());
|
|
63
|
+
if (( seenUris.has(uriStr))) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const rule = findFilePathRule(uri.path, byFilePath);
|
|
67
|
+
if (rule) {
|
|
68
|
+
seenUris.add(uriStr);
|
|
69
|
+
artifacts.push({
|
|
70
|
+
label: basename$1(uri),
|
|
71
|
+
uri: uriStr,
|
|
72
|
+
type: "plan",
|
|
73
|
+
groupName: rule.groupName,
|
|
74
|
+
onlyShowGroup: rule.onlyShowGroup
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (part.kind === "workspaceEdit") {
|
|
79
|
+
for (const edit of part.edits) {
|
|
80
|
+
const uri = edit.newResource ?? edit.oldResource;
|
|
81
|
+
if (!uri) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
const uriStr = ( uri.toString());
|
|
85
|
+
if (( seenUris.has(uriStr))) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const rule = findFilePathRule(uri.path, byFilePath);
|
|
89
|
+
if (rule) {
|
|
90
|
+
seenUris.add(uriStr);
|
|
91
|
+
artifacts.push({
|
|
92
|
+
label: basename$1(uri),
|
|
93
|
+
uri: uriStr,
|
|
94
|
+
type: "plan",
|
|
95
|
+
groupName: rule.groupName,
|
|
96
|
+
onlyShowGroup: rule.onlyShowGroup
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (part.kind === "toolInvocation" || part.kind === "toolInvocationSerialized") {
|
|
102
|
+
const details = IChatToolInvocation.resultDetails(part);
|
|
103
|
+
if (!details) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (isToolResultInputOutputDetails(details)) {
|
|
107
|
+
for (let i = 0; i < details.output.length; i++) {
|
|
108
|
+
const outputPart = details.output[i];
|
|
109
|
+
if (outputPart.type === "embed" && !outputPart.isText && outputPart.mimeType) {
|
|
110
|
+
const rule = findMimeTypeRule(outputPart.mimeType, byMimeType);
|
|
111
|
+
if (rule) {
|
|
112
|
+
const key = `${part.toolCallId}:${i}`;
|
|
113
|
+
if (!( seenUris.has(key))) {
|
|
114
|
+
seenUris.add(key);
|
|
115
|
+
const ext = getExtensionForMimeType(outputPart.mimeType);
|
|
116
|
+
const permalinkBasename = ext ? `file${ext}` : "file.bin";
|
|
117
|
+
const artifactUri = ChatResponseResource.createUri(sessionResource, part.toolCallId, i, permalinkBasename);
|
|
118
|
+
artifacts.push({
|
|
119
|
+
label: outputPart.uri?.path.split("/").pop() ?? `${rule.groupName} ${i + 1}`,
|
|
120
|
+
uri: ( artifactUri.toString()),
|
|
121
|
+
toolCallId: part.toolCallId,
|
|
122
|
+
dataPartIndex: i,
|
|
123
|
+
type: "screenshot",
|
|
124
|
+
groupName: rule.groupName,
|
|
125
|
+
onlyShowGroup: rule.onlyShowGroup
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (isToolResultOutputDetailsSerialized(details)) {
|
|
133
|
+
const rule = findMimeTypeRule(details.output.mimeType, byMimeType);
|
|
134
|
+
if (rule) {
|
|
135
|
+
const key = `${part.toolCallId}:0`;
|
|
136
|
+
if (!( seenUris.has(key))) {
|
|
137
|
+
seenUris.add(key);
|
|
138
|
+
const ext = getExtensionForMimeType(details.output.mimeType);
|
|
139
|
+
const permalinkBasename = ext ? `file${ext}` : "file.bin";
|
|
140
|
+
const artifactUri = ChatResponseResource.createUri(sessionResource, part.toolCallId, 0, permalinkBasename);
|
|
141
|
+
artifacts.push({
|
|
142
|
+
label: `${rule.groupName}`,
|
|
143
|
+
uri: ( artifactUri.toString()),
|
|
144
|
+
toolCallId: part.toolCallId,
|
|
145
|
+
dataPartIndex: 0,
|
|
146
|
+
type: "screenshot",
|
|
147
|
+
groupName: rule.groupName,
|
|
148
|
+
onlyShowGroup: rule.onlyShowGroup
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return artifacts;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export { extractArtifactsFromResponse };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
|
|
2
2
|
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
3
|
-
import { Disposable
|
|
3
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
4
4
|
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
5
5
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
6
6
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
@@ -64,7 +64,7 @@ export declare class ChatService extends Disposable implements IChatService {
|
|
|
64
64
|
}>;
|
|
65
65
|
private readonly _onDidDisposeSession;
|
|
66
66
|
readonly onDidDisposeSession: Event<{
|
|
67
|
-
readonly
|
|
67
|
+
readonly sessionResources: URI[];
|
|
68
68
|
reason: "cleared";
|
|
69
69
|
}>;
|
|
70
70
|
private readonly _sessionFollowupCancelTokens;
|
|
@@ -140,6 +140,11 @@ export declare class ChatService extends Disposable implements IChatService {
|
|
|
140
140
|
private refreshFollowupsCancellationToken;
|
|
141
141
|
private _sendRequestAsync;
|
|
142
142
|
processPendingRequests(sessionResource: URI): void;
|
|
143
|
+
/**
|
|
144
|
+
* Returns true if the session is backed by an agent host server, which
|
|
145
|
+
* controls queued-message dequeuing on the server side.
|
|
146
|
+
*/
|
|
147
|
+
private _isServerManagedQueue;
|
|
143
148
|
/**
|
|
144
149
|
* Process the next pending request from the model's queue, if any.
|
|
145
150
|
* Called after a request completes to continue processing queued requests.
|
|
@@ -167,5 +172,5 @@ export declare class ChatService extends Disposable implements IChatService {
|
|
|
167
172
|
setSessionTitle(sessionResource: URI, title: string): void;
|
|
168
173
|
appendProgress(request: IChatRequestModel, progress: IChatProgress): void;
|
|
169
174
|
private toLocalSessionId;
|
|
170
|
-
registerChatModelChangeListeners(chatSessionType: string, onChange: (chatSessionResource: URI) => void): IDisposable;
|
|
171
175
|
}
|
|
176
|
+
export declare function chatModelToChatDetail(model: IChatModel): Promise<IChatDetail>;
|
|
@@ -7,7 +7,7 @@ import { ErrorNoTelemetry, BugIndicatingError } from '@codingame/monaco-vscode-a
|
|
|
7
7
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
8
8
|
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
9
9
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
10
|
-
import { Disposable, DisposableResourceMap, DisposableStore, MutableDisposable
|
|
10
|
+
import { Disposable, DisposableResourceMap, DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
11
11
|
import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
|
|
12
12
|
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
13
13
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
@@ -32,13 +32,14 @@ import { IChatDebugService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
32
32
|
import { InlineChatConfigKeys } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
|
|
33
33
|
import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
|
|
34
34
|
import { awaitStatsForSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chat';
|
|
35
|
+
import { clearChatMarks, markChat, ChatPerfMark } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatPerf';
|
|
35
36
|
import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents.service';
|
|
36
37
|
import { chatEditingSessionIsReady } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService';
|
|
37
38
|
import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, ChatRequestModel, updateRanges, toChatHistoryContent } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
38
39
|
import { ChatModelStore } from '../model/chatModelStore.js';
|
|
39
40
|
import { ChatRequestTextPart, ChatRequestSlashCommandPart, getPromptText, ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatParserTypes';
|
|
40
41
|
import { ChatRequestParser } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatRequestParser';
|
|
41
|
-
import {
|
|
42
|
+
import { ChatPendingRequestChangeEventName, ChatRequestQueueKind, ChatMcpServersStarting, ChatStopCancellationNoopEventName, ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
42
43
|
import { ChatServiceTelemetry, ChatRequestTelemetry } from './chatServiceTelemetry.js';
|
|
43
44
|
import { localChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
44
45
|
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
@@ -55,10 +56,10 @@ import { ChatSessionOperationLog } from '../model/chatSessionOperationLog.js';
|
|
|
55
56
|
import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
|
|
56
57
|
import { AGENT_DEBUG_LOG_ENABLED_SETTING, AGENT_DEBUG_LOG_FILE_LOGGING_ENABLED_SETTING, TROUBLESHOOT_COMMAND_NAME, COPILOT_SKILL_URI_SCHEME, TROUBLESHOOT_SKILL_PATH } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
57
58
|
import { mergeHooks } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
|
|
58
|
-
import {
|
|
59
|
+
import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
|
|
60
|
+
import { ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
|
|
59
61
|
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
60
|
-
import { autorun
|
|
61
|
-
import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
|
|
62
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
62
63
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
63
64
|
|
|
64
65
|
const serializedChatKey = "interactive.sessions";
|
|
@@ -180,9 +181,10 @@ let ChatService = class ChatService extends Disposable {
|
|
|
180
181
|
}
|
|
181
182
|
}));
|
|
182
183
|
this._register(this._sessionModels.onDidDisposeModel(model => {
|
|
184
|
+
clearChatMarks(model.sessionResource);
|
|
183
185
|
this.chatDebugService.endSession(model.sessionResource);
|
|
184
186
|
this._onDidDisposeSession.fire({
|
|
185
|
-
|
|
187
|
+
sessionResources: [model.sessionResource],
|
|
186
188
|
reason: "cleared"
|
|
187
189
|
});
|
|
188
190
|
}));
|
|
@@ -343,18 +345,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
343
345
|
return [...liveSessionItems, ...historySessionItems];
|
|
344
346
|
}
|
|
345
347
|
async getLiveSessionItems() {
|
|
346
|
-
return await Promise.all(( Array.from(( this._sessionModels.values())).filter(session => this.shouldBeInHistory(session)).map(
|
|
347
|
-
const title = session.title || ( localize(7200, "New Chat"));
|
|
348
|
-
return {
|
|
349
|
-
sessionResource: session.sessionResource,
|
|
350
|
-
title,
|
|
351
|
-
lastMessageDate: session.lastMessageDate,
|
|
352
|
-
timing: session.timing,
|
|
353
|
-
isActive: true,
|
|
354
|
-
stats: await awaitStatsForSession(session),
|
|
355
|
-
lastResponseState: session.lastRequest?.response?.state ?? ResponseModelState.Pending
|
|
356
|
-
};
|
|
357
|
-
})));
|
|
348
|
+
return await Promise.all(( Array.from(( this._sessionModels.values())).filter(session => this.shouldBeInHistory(session)).map(chatModelToChatDetail)));
|
|
358
349
|
}
|
|
359
350
|
async getHistorySessionItems() {
|
|
360
351
|
const index = await this._chatSessionStore.getIndex();
|
|
@@ -385,7 +376,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
385
376
|
async removeHistoryEntry(sessionResource) {
|
|
386
377
|
await this._chatSessionStore.deleteSession(this.toLocalSessionId(sessionResource));
|
|
387
378
|
this._onDidDisposeSession.fire({
|
|
388
|
-
|
|
379
|
+
sessionResources: [sessionResource],
|
|
389
380
|
reason: "cleared"
|
|
390
381
|
});
|
|
391
382
|
}
|
|
@@ -527,14 +518,68 @@ let ChatService = class ChatService extends Disposable {
|
|
|
527
518
|
}
|
|
528
519
|
}
|
|
529
520
|
const chatSessionType = getChatSessionType(sessionResource);
|
|
521
|
+
const contribution = this.chatSessionService.getChatSessionContribution(chatSessionType);
|
|
522
|
+
const modelId = findLast(
|
|
523
|
+
providedSession.history.filter(m => m.type === "request"),
|
|
524
|
+
req => req.modelId
|
|
525
|
+
)?.modelId;
|
|
526
|
+
const agentUri = findLast(
|
|
527
|
+
providedSession.history.filter(m => m.type === "request"),
|
|
528
|
+
req => req.modeInstructions?.uri
|
|
529
|
+
)?.modeInstructions?.uri;
|
|
530
|
+
const storedPermissionLevel = this._chatSessionStore.getMetadataForSessionSync(sessionResource)?.permissionLevel;
|
|
531
|
+
let initialData = undefined;
|
|
532
|
+
if ((modelId || agentUri) && contribution?.useRequestToPopulateBuiltInPickers) {
|
|
533
|
+
const mode = agentUri ? {
|
|
534
|
+
kind: ChatModeKind.Agent,
|
|
535
|
+
id: ( agentUri.toString())
|
|
536
|
+
} : {
|
|
537
|
+
kind: ChatModeKind.Agent,
|
|
538
|
+
id: ChatMode.Agent.id
|
|
539
|
+
};
|
|
540
|
+
const modelMetadata = modelId ? this.languageModelsService.lookupLanguageModel(modelId) : undefined;
|
|
541
|
+
const selectedModel = modelId && modelMetadata ? {
|
|
542
|
+
identifier: modelId,
|
|
543
|
+
metadata: modelMetadata
|
|
544
|
+
} : undefined;
|
|
545
|
+
initialData = {
|
|
546
|
+
serializer: ( new ChatSessionOperationLog()),
|
|
547
|
+
value: {
|
|
548
|
+
creationDate: Date.now(),
|
|
549
|
+
initialLocation: undefined,
|
|
550
|
+
customTitle: undefined,
|
|
551
|
+
requests: [],
|
|
552
|
+
responderUsername: "",
|
|
553
|
+
sessionId: "",
|
|
554
|
+
version: 3,
|
|
555
|
+
hasPendingEdits: undefined,
|
|
556
|
+
inputState: {
|
|
557
|
+
attachments: [],
|
|
558
|
+
contrib: {},
|
|
559
|
+
inputText: "",
|
|
560
|
+
mode,
|
|
561
|
+
selectedModel: selectedModel,
|
|
562
|
+
selections: [],
|
|
563
|
+
permissionLevel: storedPermissionLevel
|
|
564
|
+
},
|
|
565
|
+
pendingRequests: undefined,
|
|
566
|
+
repoData: undefined
|
|
567
|
+
}
|
|
568
|
+
};
|
|
569
|
+
}
|
|
530
570
|
const modelRef = this._sessionModels.acquireOrCreate({
|
|
531
|
-
initialData
|
|
571
|
+
initialData,
|
|
532
572
|
location,
|
|
533
573
|
sessionResource: sessionResource,
|
|
534
574
|
canUseTools: false,
|
|
535
575
|
transferEditingSession: providedSession.transferredState?.editingSession,
|
|
536
576
|
inputState: providedSession.transferredState?.inputState
|
|
537
577
|
});
|
|
578
|
+
if (storedPermissionLevel && !initialData) {
|
|
579
|
+
modelRef.object.inputModel.setState({
|
|
580
|
+
permissionLevel: storedPermissionLevel
|
|
581
|
+
});
|
|
582
|
+
}
|
|
538
583
|
modelRef.object.setContributedChatSession({
|
|
539
584
|
chatSessionResource: sessionResource
|
|
540
585
|
});
|
|
@@ -565,10 +610,17 @@ let ChatService = class ChatService extends Disposable {
|
|
|
565
610
|
};
|
|
566
611
|
const agent = message.participant ?
|
|
567
612
|
this.chatAgentService.getAgent(message.participant) : this.chatAgentService.getAgent(chatSessionType);
|
|
613
|
+
const modeInfo = message.modeInstructions ? {
|
|
614
|
+
kind: ChatModeKind.Agent,
|
|
615
|
+
isBuiltin: message.modeInstructions.isBuiltin ?? false,
|
|
616
|
+
modeInstructions: message.modeInstructions,
|
|
617
|
+
modeId: "custom",
|
|
618
|
+
applyCodeBlockSuggestionId: undefined
|
|
619
|
+
} : undefined;
|
|
568
620
|
lastRequest = model.addRequest(parsedRequest, message.variableData ?? {
|
|
569
621
|
variables: []
|
|
570
622
|
}, 0,
|
|
571
|
-
|
|
623
|
+
modeInfo, agent, undefined,
|
|
572
624
|
undefined,
|
|
573
625
|
undefined,
|
|
574
626
|
undefined,
|
|
@@ -585,14 +637,9 @@ let ChatService = class ChatService extends Disposable {
|
|
|
585
637
|
if (providedSession.isCompleteObs?.get()) {
|
|
586
638
|
lastRequest?.response?.complete();
|
|
587
639
|
}
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
|
|
592
|
-
action: "add",
|
|
593
|
-
source: "remoteSession",
|
|
594
|
-
chatSessionId: chatSessionResourceToId(model.sessionResource)
|
|
595
|
-
});
|
|
640
|
+
const hasProgressStreaming = providedSession.progressObs && providedSession.interruptActiveResponseCallback;
|
|
641
|
+
if (hasProgressStreaming) {
|
|
642
|
+
let lastProgressLength = 0;
|
|
596
643
|
const cancellationListener = disposables.add(( new MutableDisposable()));
|
|
597
644
|
const createCancellationListener = token => {
|
|
598
645
|
return token.onCancellationRequested(() => {
|
|
@@ -610,19 +657,66 @@ let ChatService = class ChatService extends Disposable {
|
|
|
610
657
|
});
|
|
611
658
|
});
|
|
612
659
|
};
|
|
613
|
-
|
|
614
|
-
|
|
660
|
+
const ensureCancellationTracking = () => {
|
|
661
|
+
if (!( this._pendingRequests.has(model.sessionResource))) {
|
|
662
|
+
const cts = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined, undefined, undefined);
|
|
663
|
+
this._pendingRequests.set(model.sessionResource, cts);
|
|
664
|
+
this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
|
|
665
|
+
action: "add",
|
|
666
|
+
source: "remoteSession",
|
|
667
|
+
chatSessionId: chatSessionResourceToId(model.sessionResource)
|
|
668
|
+
});
|
|
669
|
+
cancellationListener.value = createCancellationListener(cts.cancellationTokenSource.token);
|
|
670
|
+
}
|
|
671
|
+
};
|
|
672
|
+
if (lastRequest) {
|
|
673
|
+
const initialCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined, undefined, undefined);
|
|
674
|
+
this._pendingRequests.set(model.sessionResource, initialCancellationRequest);
|
|
675
|
+
this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
|
|
676
|
+
action: "add",
|
|
677
|
+
source: "remoteSession",
|
|
678
|
+
chatSessionId: chatSessionResourceToId(model.sessionResource)
|
|
679
|
+
});
|
|
680
|
+
cancellationListener.value = createCancellationListener(initialCancellationRequest.cancellationTokenSource.token);
|
|
681
|
+
}
|
|
682
|
+
if (providedSession.onDidStartServerRequest) {
|
|
683
|
+
disposables.add(providedSession.onDidStartServerRequest((
|
|
684
|
+
{
|
|
685
|
+
prompt
|
|
686
|
+
}
|
|
687
|
+
) => {
|
|
688
|
+
if (lastRequest?.response && !lastRequest.response.isComplete) {
|
|
689
|
+
lastRequest.response.complete();
|
|
690
|
+
}
|
|
691
|
+
const requestText = prompt;
|
|
692
|
+
const parsedRequest = {
|
|
693
|
+
text: requestText,
|
|
694
|
+
parts: [( new ChatRequestTextPart(( new OffsetRange(0, requestText.length)), {
|
|
695
|
+
startLineNumber: 1,
|
|
696
|
+
startColumn: 1,
|
|
697
|
+
endLineNumber: 1,
|
|
698
|
+
endColumn: requestText.length + 1
|
|
699
|
+
}, requestText))]
|
|
700
|
+
};
|
|
701
|
+
const agent = this.chatAgentService.getAgent(chatSessionType);
|
|
702
|
+
lastRequest = model.addRequest(parsedRequest, {
|
|
703
|
+
variables: []
|
|
704
|
+
}, 0, undefined, agent);
|
|
705
|
+
lastProgressLength = 0;
|
|
706
|
+
ensureCancellationTracking();
|
|
707
|
+
}));
|
|
708
|
+
}
|
|
615
709
|
disposables.add(autorun(reader => {
|
|
616
710
|
const progressArray = providedSession.progressObs?.read(reader) ?? [];
|
|
617
711
|
const isComplete = providedSession.isCompleteObs?.read(reader) ?? false;
|
|
618
|
-
if (progressArray.length > lastProgressLength) {
|
|
712
|
+
if (lastRequest && progressArray.length > lastProgressLength) {
|
|
619
713
|
const newProgress = progressArray.slice(lastProgressLength);
|
|
620
714
|
for (const progress of newProgress) {
|
|
621
715
|
model?.acceptResponseProgress(lastRequest, progress);
|
|
622
716
|
}
|
|
623
717
|
lastProgressLength = progressArray.length;
|
|
624
718
|
}
|
|
625
|
-
if (isComplete) {
|
|
719
|
+
if (isComplete && lastRequest) {
|
|
626
720
|
lastRequest.response?.complete();
|
|
627
721
|
cancellationListener.clear();
|
|
628
722
|
}
|
|
@@ -883,6 +977,9 @@ let ChatService = class ChatService extends Disposable {
|
|
|
883
977
|
if (token.isCancellationRequested) {
|
|
884
978
|
return;
|
|
885
979
|
}
|
|
980
|
+
if (!gotProgress) {
|
|
981
|
+
markChat(sessionResource, ChatPerfMark.FirstToken);
|
|
982
|
+
}
|
|
886
983
|
gotProgress = true;
|
|
887
984
|
for (let i = 0; i < progress.length; i++) {
|
|
888
985
|
const isLast = i === progress.length - 1;
|
|
@@ -932,7 +1029,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
932
1029
|
model.acceptResponseProgress(request, {
|
|
933
1030
|
kind: "markdownContent",
|
|
934
1031
|
content: ( new MarkdownString(( localize(
|
|
935
|
-
|
|
1032
|
+
7257,
|
|
936
1033
|
"The `{0}` skill requires the following settings to be enabled: {1}. After enabling, reload the window to apply. [Enable in Settings](command:workbench.action.openSettings?{2})",
|
|
937
1034
|
TROUBLESHOOT_COMMAND_NAME,
|
|
938
1035
|
missingSettings.join(", "),
|
|
@@ -1192,7 +1289,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1192
1289
|
);
|
|
1193
1290
|
rawResult = {
|
|
1194
1291
|
errorDetails: {
|
|
1195
|
-
message: ( localize(
|
|
1292
|
+
message: ( localize(7258, "Provider returned null response"))
|
|
1196
1293
|
}
|
|
1197
1294
|
};
|
|
1198
1295
|
}
|
|
@@ -1258,6 +1355,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1258
1355
|
chatSessionId: chatSessionResourceToId(model.sessionResource)
|
|
1259
1356
|
});
|
|
1260
1357
|
rawResponsePromise.finally(() => {
|
|
1358
|
+
markChat(sessionResource, ChatPerfMark.RequestComplete);
|
|
1359
|
+
clearChatMarks(sessionResource);
|
|
1261
1360
|
if (this._pendingRequests.get(model.sessionResource) === cancellableRequest) {
|
|
1262
1361
|
this._pendingRequests.deleteAndDispose(model.sessionResource);
|
|
1263
1362
|
this.telemetryService.publicLog2(ChatPendingRequestChangeEventName, {
|
|
@@ -1289,7 +1388,13 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1289
1388
|
this.processNextPendingRequest(model);
|
|
1290
1389
|
}
|
|
1291
1390
|
}
|
|
1391
|
+
_isServerManagedQueue(sessionResource) {
|
|
1392
|
+
return sessionResource.scheme.startsWith("agent-host-");
|
|
1393
|
+
}
|
|
1292
1394
|
processNextPendingRequest(model) {
|
|
1395
|
+
if (this._isServerManagedQueue(model.sessionResource)) {
|
|
1396
|
+
return;
|
|
1397
|
+
}
|
|
1293
1398
|
const steeringRequests = model.dequeueAllSteeringRequests();
|
|
1294
1399
|
const nextQueued = steeringRequests.length === 0 ? model.dequeuePendingRequest() : undefined;
|
|
1295
1400
|
const allRequests = steeringRequests.length > 0 ? steeringRequests : (nextQueued ? [nextQueued] : []);
|
|
@@ -1428,7 +1533,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1428
1533
|
command: request.response.slashCommand?.name,
|
|
1429
1534
|
variables: updateRanges(request.variableData, promptTextResult.diff),
|
|
1430
1535
|
location: ChatAgentLocation.Chat,
|
|
1431
|
-
editedFileEvents: request.editedFileEvents
|
|
1536
|
+
editedFileEvents: request.editedFileEvents,
|
|
1537
|
+
modeInstructions: request.modeInfo?.modeInstructions
|
|
1432
1538
|
};
|
|
1433
1539
|
history.push({
|
|
1434
1540
|
request: historyRequest,
|
|
@@ -1652,46 +1758,19 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1652
1758
|
}
|
|
1653
1759
|
return localSessionId;
|
|
1654
1760
|
}
|
|
1655
|
-
registerChatModelChangeListeners(chatSessionType, onChange) {
|
|
1656
|
-
const disposableStore = ( new DisposableStore());
|
|
1657
|
-
const chatModelsICareAbout = ( this.chatModels.map(
|
|
1658
|
-
models => Array.from(models).filter(model => model.sessionResource.scheme === chatSessionType)
|
|
1659
|
-
));
|
|
1660
|
-
const listeners = ( new ResourceMap());
|
|
1661
|
-
const autoRunDisposable = autorunIterableDelta(reader => chatModelsICareAbout.read(reader), (
|
|
1662
|
-
{
|
|
1663
|
-
addedValues,
|
|
1664
|
-
removedValues
|
|
1665
|
-
}
|
|
1666
|
-
) => {
|
|
1667
|
-
removedValues.forEach(removed => {
|
|
1668
|
-
const listener = listeners.get(removed.sessionResource);
|
|
1669
|
-
if (listener) {
|
|
1670
|
-
listeners.delete(removed.sessionResource);
|
|
1671
|
-
listener.dispose();
|
|
1672
|
-
}
|
|
1673
|
-
});
|
|
1674
|
-
addedValues.forEach(added => {
|
|
1675
|
-
const requestChangeListener = ( added.lastRequestObs.map(
|
|
1676
|
-
last => last?.response && observableSignalFromEvent("chatSessions.modelRequestChangeListener", last.response.onDidChange)
|
|
1677
|
-
));
|
|
1678
|
-
const modelChangeListener = observableSignalFromEvent("chatSessions.modelChangeListener", added.onDidChange);
|
|
1679
|
-
listeners.set(added.sessionResource, autorun(reader => {
|
|
1680
|
-
requestChangeListener.read(reader)?.read(reader);
|
|
1681
|
-
modelChangeListener.read(reader);
|
|
1682
|
-
onChange(added.sessionResource);
|
|
1683
|
-
}));
|
|
1684
|
-
});
|
|
1685
|
-
});
|
|
1686
|
-
disposableStore.add(toDisposable(() => {
|
|
1687
|
-
for (const listener of ( listeners.values())) {
|
|
1688
|
-
listener.dispose();
|
|
1689
|
-
}
|
|
1690
|
-
}));
|
|
1691
|
-
disposableStore.add(autoRunDisposable);
|
|
1692
|
-
return disposableStore;
|
|
1693
|
-
}
|
|
1694
1761
|
};
|
|
1695
1762
|
ChatService = ( __decorate([( __param(0, IStorageService)), ( __param(1, ILogService)), ( __param(2, ITelemetryService)), ( __param(3, IExtensionService)), ( __param(4, IInstantiationService)), ( __param(5, IWorkspaceContextService)), ( __param(6, IChatSlashCommandService)), ( __param(7, IChatAgentService)), ( __param(8, IConfigurationService)), ( __param(9, IChatTransferService)), ( __param(10, IChatSessionsService)), ( __param(11, IMcpService)), ( __param(12, IPromptsService)), ( __param(13, IChatEntitlementService)), ( __param(14, ILanguageModelsService)), ( __param(15, IChatDebugService))], ChatService));
|
|
1763
|
+
async function chatModelToChatDetail(model) {
|
|
1764
|
+
const title = model.title || ( localize(7259, "New Chat"));
|
|
1765
|
+
return {
|
|
1766
|
+
sessionResource: model.sessionResource,
|
|
1767
|
+
title,
|
|
1768
|
+
lastMessageDate: model.lastMessageDate,
|
|
1769
|
+
timing: model.timing,
|
|
1770
|
+
isActive: true,
|
|
1771
|
+
stats: await awaitStatsForSession(model),
|
|
1772
|
+
lastResponseState: model.lastRequest?.response?.state ?? ResponseModelState.Pending
|
|
1773
|
+
};
|
|
1774
|
+
}
|
|
1696
1775
|
|
|
1697
|
-
export { ChatService };
|
|
1776
|
+
export { ChatService, chatModelToChatDetail };
|
|
@@ -18,8 +18,7 @@ let ChatServiceTelemetry = class ChatServiceTelemetry {
|
|
|
18
18
|
this.telemetryService.publicLog2("interactiveSessionVote", {
|
|
19
19
|
direction: action.action.direction === ChatAgentVoteDirection.Up ? "up" : "down",
|
|
20
20
|
agentId: action.agentId ?? "",
|
|
21
|
-
command: action.command
|
|
22
|
-
reason: action.action.reason
|
|
21
|
+
command: action.command
|
|
23
22
|
});
|
|
24
23
|
} else if (action.action.kind === "copy") {
|
|
25
24
|
this.telemetryService.publicLog2("interactiveSessionCopy", {
|
|
@@ -5,6 +5,7 @@ import { equals } from '@codingame/monaco-vscode-api/vscode/vs/base/common/objec
|
|
|
5
5
|
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
6
6
|
import { hasKey } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
7
7
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
8
|
+
import { IChatRequestVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
8
9
|
import { ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
9
10
|
import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService';
|
|
10
11
|
import { serializeSendOptions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
@@ -37,6 +38,7 @@ const responsePartSchema = v(
|
|
|
37
38
|
case "textEditGroup":
|
|
38
39
|
case "multiDiffData":
|
|
39
40
|
case "mcpServersStarting":
|
|
41
|
+
case "thinking":
|
|
40
42
|
return equals(a, b);
|
|
41
43
|
case "clearToPreviousToolInvocation":
|
|
42
44
|
case "codeblockUri":
|
|
@@ -50,7 +52,6 @@ const responsePartSchema = v(
|
|
|
50
52
|
case "progressMessage":
|
|
51
53
|
case "pullRequest":
|
|
52
54
|
case "questionCarousel":
|
|
53
|
-
case "thinking":
|
|
54
55
|
case "undoStop":
|
|
55
56
|
case "warning":
|
|
56
57
|
case "treeData":
|
|
@@ -81,7 +82,7 @@ const agentEditedFileEventSchema = object({
|
|
|
81
82
|
eventKind: v(e => e.eventKind)
|
|
82
83
|
});
|
|
83
84
|
const chatVariableSchema = object({
|
|
84
|
-
variables: t(v => v.variables, array(value((a, b) => a.name === b.name)))
|
|
85
|
+
variables: t(v => ( v.variables.map(IChatRequestVariableEntry.toExport)), array(value((a, b) => a.name === b.name)))
|
|
85
86
|
});
|
|
86
87
|
const requestSchema = object({
|
|
87
88
|
requestId: t(m => m.id, key()),
|
|
@@ -104,7 +105,6 @@ const requestSchema = object({
|
|
|
104
105
|
followups: v(m => m.response?.followups, equals),
|
|
105
106
|
modelState: v(m => m.response?.stateT, equals),
|
|
106
107
|
vote: v(m => m.response?.vote),
|
|
107
|
-
voteDownReason: v(m => m.response?.voteDownReason),
|
|
108
108
|
slashCommand: t(m => m.response?.slashCommand, value((a, b) => a?.name === b?.name)),
|
|
109
109
|
usedContext: v(m => m.response?.usedContext, equals),
|
|
110
110
|
contentReferences: v(m => m.response?.contentReferences, equals),
|
|
@@ -115,11 +115,12 @@ const requestSchema = object({
|
|
|
115
115
|
sealed: o => o.modelState?.value === ResponseModelState.Cancelled || o.modelState?.value === ResponseModelState.Failed || o.modelState?.value === ResponseModelState.Complete
|
|
116
116
|
});
|
|
117
117
|
const inputStateSchema = object({
|
|
118
|
-
attachments: v(i => i.attachments, equals),
|
|
118
|
+
attachments: v(i => ( i.attachments.map(IChatRequestVariableEntry.toExport)), equals),
|
|
119
119
|
mode: v(i => i.mode, (a, b) => a.id === b.id),
|
|
120
120
|
selectedModel: v(i => i.selectedModel, (a, b) => a?.identifier === b?.identifier),
|
|
121
121
|
inputText: v(i => i.inputText),
|
|
122
122
|
selections: v(i => i.selections, equals),
|
|
123
|
+
permissionLevel: v(i => i.permissionLevel),
|
|
123
124
|
contrib: v(i => i.contrib, equals)
|
|
124
125
|
});
|
|
125
126
|
const pendingRequestSchema = object({
|
|
@@ -13,7 +13,7 @@ import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs
|
|
|
13
13
|
import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service";
|
|
14
14
|
import { IWorkspaceEditingService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/workspaces/common/workspaceEditing.service";
|
|
15
15
|
import { IChatSessionStats, IChatSessionTiming, ResponseModelState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
16
|
-
import { ChatAgentLocation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
16
|
+
import { ChatAgentLocation, ChatPermissionLevel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
17
17
|
import { ChatModel, ISerializableChatData, ISerializableChatsData, ISerializedChatDataReference } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
|
|
18
18
|
export declare class ChatSessionStore extends Disposable {
|
|
19
19
|
private readonly fileService;
|
|
@@ -92,6 +92,10 @@ export interface IChatSessionEntryMetadata {
|
|
|
92
92
|
* Whether this session was loaded from an external provider (eg background/cloud sessions).
|
|
93
93
|
*/
|
|
94
94
|
isExternal?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* The permission level for tool auto-approval, if not default.
|
|
97
|
+
*/
|
|
98
|
+
permissionLevel?: ChatPermissionLevel;
|
|
95
99
|
}
|
|
96
100
|
export type IChatSessionIndex = Record<string, IChatSessionEntryMetadata>;
|
|
97
101
|
export interface IChatTransfer {
|