@codingame/monaco-vscode-chat-service-override 31.0.1 → 32.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.d.ts +1 -1
- package/index.js +21 -5
- package/package.json +5 -5
- package/vscode/src/vs/base/common/defaultAccount.d.ts +69 -0
- package/vscode/src/vs/base/common/defaultAccount.js +12 -0
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +91 -22
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +301 -68
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +24 -5
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +89 -16
- package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.d.ts +17 -5
- package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.js +73 -10
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +32 -6
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +32 -20
- package/vscode/src/vs/platform/agentHost/common/agentHostPermissionService.d.ts +37 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostPermissionService.js +15 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +242 -201
- package/vscode/src/vs/platform/agentHost/common/agentService.js +3 -1
- package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.d.ts +35 -0
- package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.js +106 -0
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +38 -30
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +2 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +114 -4
- package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +10 -10
- package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +52 -19
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +42 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +7 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +42 -41
- package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.d.ts +6 -6
- package/vscode/src/vs/platform/agentHost/common/transportConstants.d.ts +15 -0
- package/vscode/src/vs/platform/agentHost/common/transportConstants.js +6 -0
- package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +4 -3
- package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +4 -3
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +4 -2
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +15 -7
- package/vscode/src/vs/workbench/contrib/browserView/common/browserChatToolReferenceNames.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/browserView/common/browserChatToolReferenceNames.js +17 -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 +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +64 -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 +31 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +18 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +30 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +8 -7
- 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 +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +27 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +21 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.js +171 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +12 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +99 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.js +11 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +9 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +63 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +10 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +3 -3
- 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 +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +25 -48
- 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.js +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +8 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +99 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +17 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +78 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +35 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +347 -326
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +1 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +113 -109
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +37 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +436 -134
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +52 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +13 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +60 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.d.ts +25 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +93 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +9 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +73 -104
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +272 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +12 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +30 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +430 -185
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +44 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +480 -279
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.d.ts +138 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.js +221 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.d.ts +84 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +1216 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +32 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +26 -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 +28 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +25 -24
- 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.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +68 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +650 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +46 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +533 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +390 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +101 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +509 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +18 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +130 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +276 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +1 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +6 -87
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +116 -182
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +12 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +31 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +61 -41
- 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 +27 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +16 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +106 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +25 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +629 -425
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +105 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +175 -148
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +20 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +9 -2
- 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/githubRepoFetcher.d.ts +58 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/githubRepoFetcher.js +339 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/media/planReviewFeedback.css +160 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +123 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.d.ts +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +572 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackService.d.ts +36 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackService.js +167 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.d.ts +49 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +315 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +45 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +44 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileContributions.js +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- 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 +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +111 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +3 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +13 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +4 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.js +56 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +3 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +14 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +17 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +23 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.d.ts +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +136 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletionsBase.d.ts +72 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletionsBase.js +56 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.js +14 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +41 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +30 -12
- 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 +2 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +25 -6
- 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 +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +108 -45
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +7 -3
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +20 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +65 -26
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +38 -11
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +17 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +165 -16
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +62 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +2 -1
- 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.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +15 -21
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +18 -24
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +203 -180
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.js +35 -0
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +27 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +14 -49
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +0 -16
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +35 -177
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -8
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +2 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +4 -4
- 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 +13 -13
- 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 +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/terminalChatWidget.d.ts +29 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +129 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +14 -6
- 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.d.ts +1 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +12 -38
- 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 +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.d.ts +12 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +77 -70
- 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/browser/tools/terminalOutputCompressor.d.ts +32 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.js +232 -0
- package/vscode/src/vs/workbench/services/agentHost/common/agentHostPermissionService.d.ts +83 -0
- package/vscode/src/vs/workbench/services/agentHost/common/agentHostPermissionService.js +243 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +0 -749
- package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.js +0 -14
- package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.d.ts +0 -17
- package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.js +0 -5
- package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +0 -40
- package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.js +0 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +0 -61
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +0 -638
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +0 -131
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +0 -363
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +0 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +0 -306
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +0 -97
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatStatusWidget.css +0 -57
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +0 -50
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +0 -29
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +0 -50
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +0 -78
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +0 -77
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +0 -120
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +0 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +0 -23
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +0 -242
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +0 -1701
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +0 -191
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +0 -728
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +0 -69
|
@@ -9,11 +9,11 @@ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/comm
|
|
|
9
9
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
10
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
|
-
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
13
12
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
14
13
|
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
15
14
|
import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
|
|
16
15
|
import { isDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
16
|
+
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
17
17
|
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
18
18
|
import { OffsetRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/offsetRange';
|
|
19
19
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
@@ -28,7 +28,6 @@ import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs
|
|
|
28
28
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
29
29
|
import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
|
|
30
30
|
import { IChatDebugService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatDebugService.service';
|
|
31
|
-
import { InlineChatConfigKeys } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
|
|
32
31
|
import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
|
|
33
32
|
import { awaitStatsForSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chat';
|
|
34
33
|
import { clearChatMarks, markChat, ChatPerfMark } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatPerf';
|
|
@@ -40,7 +39,7 @@ import { ChatRequestTextPart, ChatRequestSlashCommandPart, getPromptText, ChatRe
|
|
|
40
39
|
import { ChatRequestParser } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatRequestParser';
|
|
41
40
|
import { ChatPendingRequestChangeEventName, ChatRequestQueueKind, ChatMcpServersStarting, ChatStopCancellationNoopEventName, ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
42
41
|
import { ChatServiceTelemetry, ChatRequestTelemetry } from './chatServiceTelemetry.js';
|
|
43
|
-
import { localChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
42
|
+
import { isAgentHostTarget, localChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
44
43
|
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
45
44
|
import { ChatSessionStore } from '../model/chatSessionStore.js';
|
|
46
45
|
import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service';
|
|
@@ -63,6 +62,16 @@ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/obse
|
|
|
63
62
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
64
63
|
|
|
65
64
|
const serializedChatKey = "interactive.sessions";
|
|
65
|
+
function hasDraftInput(model) {
|
|
66
|
+
const state = model.inputModel.state.get();
|
|
67
|
+
if (!state) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
if (state.inputText.trim().length > 0) {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
return state.attachments.length > 0;
|
|
74
|
+
}
|
|
66
75
|
let CancellableRequest = class CancellableRequest {
|
|
67
76
|
get yieldRequested() {
|
|
68
77
|
return this._yieldRequested;
|
|
@@ -101,6 +110,8 @@ let CancellableRequest = class CancellableRequest {
|
|
|
101
110
|
}
|
|
102
111
|
};
|
|
103
112
|
CancellableRequest = ( __decorate([( __param(4, ILanguageModelToolsService))], CancellableRequest));
|
|
113
|
+
const EMPTY_REFERENCES = ( Object.freeze([]));
|
|
114
|
+
const EMPTY_TOOL_ENABLEMENT_MAP = ( new Map());
|
|
104
115
|
let ChatService = class ChatService extends Disposable {
|
|
105
116
|
get transferredSessionResource() {
|
|
106
117
|
return this._transferredSessionResource;
|
|
@@ -175,7 +186,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
175
186
|
} else if (this._saveModelsEnabled) {
|
|
176
187
|
await this._chatSessionStore.storeSessions([model]);
|
|
177
188
|
}
|
|
178
|
-
} else if (!localSessionId && model.getRequests().length > 0) {
|
|
189
|
+
} else if (!localSessionId && (model.getRequests().length > 0 || hasDraftInput(model))) {
|
|
179
190
|
await this._chatSessionStore.storeSessionsMetadataOnly([model]);
|
|
180
191
|
}
|
|
181
192
|
}
|
|
@@ -230,10 +241,11 @@ let ChatService = class ChatService extends Disposable {
|
|
|
230
241
|
return;
|
|
231
242
|
}
|
|
232
243
|
const liveLocalChats = Array.from(( this._sessionModels.values())).filter(session => this.shouldStoreSession(session));
|
|
233
|
-
this._chatSessionStore.storeSessions(liveLocalChats);
|
|
234
244
|
const liveNonLocalChats = Array.from(( this._sessionModels.values())).filter(
|
|
235
245
|
session => !LocalChatSessionUri.parseLocalSessionId(session.sessionResource)
|
|
236
246
|
);
|
|
247
|
+
this._chatSessionStore.updateAndFlushIndexSync(liveLocalChats, liveNonLocalChats);
|
|
248
|
+
this._chatSessionStore.storeSessions(liveLocalChats);
|
|
237
249
|
this._chatSessionStore.storeSessionsMetadataOnly(liveNonLocalChats);
|
|
238
250
|
}
|
|
239
251
|
shouldStoreSession(session) {
|
|
@@ -330,10 +342,15 @@ let ChatService = class ChatService extends Disposable {
|
|
|
330
342
|
const index = await this._chatSessionStore.getIndex();
|
|
331
343
|
return ( ( Object.values(index)).filter(entry => !entry.isExternal).filter(entry => !( this._sessionModels.has(LocalChatSessionUri.forSession(entry.sessionId))) && entry.initialLocation === ChatAgentLocation.Chat && !entry.isEmpty).map(entry => {
|
|
332
344
|
const sessionResource = LocalChatSessionUri.forSession(entry.sessionId);
|
|
345
|
+
const {
|
|
346
|
+
workingDirectory: workingDirectoryStr,
|
|
347
|
+
...rest
|
|
348
|
+
} = entry;
|
|
333
349
|
return ({
|
|
334
|
-
...
|
|
350
|
+
...rest,
|
|
335
351
|
sessionResource,
|
|
336
|
-
isActive: ( this._sessionModels.has(sessionResource))
|
|
352
|
+
isActive: ( this._sessionModels.has(sessionResource)),
|
|
353
|
+
workingDirectory: workingDirectoryStr ? ( URI.parse(workingDirectoryStr)) : undefined
|
|
337
354
|
});
|
|
338
355
|
}));
|
|
339
356
|
}
|
|
@@ -341,10 +358,15 @@ let ChatService = class ChatService extends Disposable {
|
|
|
341
358
|
const index = await this._chatSessionStore.getIndex();
|
|
342
359
|
const metadata = index[( sessionResource.toString())];
|
|
343
360
|
if (metadata) {
|
|
361
|
+
const {
|
|
362
|
+
workingDirectory: workingDirectoryStr,
|
|
363
|
+
...rest
|
|
364
|
+
} = metadata;
|
|
344
365
|
return {
|
|
345
|
-
...
|
|
366
|
+
...rest,
|
|
346
367
|
sessionResource,
|
|
347
|
-
isActive: ( this._sessionModels.has(sessionResource))
|
|
368
|
+
isActive: ( this._sessionModels.has(sessionResource)),
|
|
369
|
+
workingDirectory: workingDirectoryStr ? ( URI.parse(workingDirectoryStr)) : undefined
|
|
348
370
|
};
|
|
349
371
|
}
|
|
350
372
|
return undefined;
|
|
@@ -475,7 +497,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
475
497
|
}, debugOwner ?? "ChatService#loadSessionFromData");
|
|
476
498
|
}
|
|
477
499
|
async acquireOrLoadSession(sessionResource, location, token, debugOwner) {
|
|
478
|
-
if (sessionResource
|
|
500
|
+
if (LocalChatSessionUri.isLocalSession(sessionResource)) {
|
|
479
501
|
return this.acquireOrRestoreLocalSession(sessionResource, debugOwner);
|
|
480
502
|
} else {
|
|
481
503
|
return this.loadRemoteSession(sessionResource, location, token, debugOwner);
|
|
@@ -488,7 +510,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
488
510
|
return existingRef;
|
|
489
511
|
}
|
|
490
512
|
}
|
|
491
|
-
if (!(await this.chatSessionService.canResolveChatSession(sessionResource
|
|
513
|
+
if (!(await this.chatSessionService.canResolveChatSession(getChatSessionType(sessionResource)))) {
|
|
492
514
|
return undefined;
|
|
493
515
|
}
|
|
494
516
|
const providedSession = await this.chatSessionService.getOrCreateChatSession(sessionResource, token);
|
|
@@ -508,7 +530,9 @@ let ChatService = class ChatService extends Disposable {
|
|
|
508
530
|
providedSession.history.filter(m => m.type === "request"),
|
|
509
531
|
req => req.modeInstructions?.uri
|
|
510
532
|
)?.modeInstructions?.uri;
|
|
511
|
-
const
|
|
533
|
+
const storedMetadata = this._chatSessionStore.getMetadataForSessionSync(sessionResource);
|
|
534
|
+
const storedPermissionLevel = storedMetadata?.permissionLevel;
|
|
535
|
+
const storedInputState = storedMetadata?.inputState;
|
|
512
536
|
let initialData = undefined;
|
|
513
537
|
if ((modelId || agentUri)) {
|
|
514
538
|
const mode = agentUri ? {
|
|
@@ -553,9 +577,9 @@ let ChatService = class ChatService extends Disposable {
|
|
|
553
577
|
sessionResource: sessionResource,
|
|
554
578
|
canUseTools: false,
|
|
555
579
|
transferEditingSession: providedSession.transferredState?.editingSession,
|
|
556
|
-
inputState: providedSession.transferredState?.inputState
|
|
580
|
+
inputState: providedSession.transferredState?.inputState ?? storedInputState
|
|
557
581
|
}, debugOwner ?? "ChatService#loadRemoteSession");
|
|
558
|
-
if (storedPermissionLevel && !initialData) {
|
|
582
|
+
if (storedPermissionLevel && !initialData && !storedInputState) {
|
|
559
583
|
modelRef.object.inputModel.setState({
|
|
560
584
|
permissionLevel: storedPermissionLevel
|
|
561
585
|
});
|
|
@@ -569,6 +593,37 @@ let ChatService = class ChatService extends Disposable {
|
|
|
569
593
|
disposables.dispose();
|
|
570
594
|
providedSession.dispose();
|
|
571
595
|
}));
|
|
596
|
+
const isAgentHostSession = isAgentHostTarget(chatSessionType);
|
|
597
|
+
const requestParser = isAgentHostSession ? this.instantiationService.createInstance(ChatRequestParser) : undefined;
|
|
598
|
+
const parseAgentHostHistoryPrompt = (text, agent) => {
|
|
599
|
+
if (requestParser) {
|
|
600
|
+
try {
|
|
601
|
+
const attachmentCapabilities = this.getAttachmentCapabilitiesForParser(chatSessionType, agent);
|
|
602
|
+
const parsed = requestParser.parseChatRequestWithReferences(EMPTY_REFERENCES, EMPTY_TOOL_ENABLEMENT_MAP, text, location, {
|
|
603
|
+
sessionType: chatSessionType,
|
|
604
|
+
forcedAgent: agent,
|
|
605
|
+
attachmentCapabilities
|
|
606
|
+
});
|
|
607
|
+
if (parsed.parts.length > 0) {
|
|
608
|
+
return parsed;
|
|
609
|
+
}
|
|
610
|
+
} catch (e) {
|
|
611
|
+
this.logService.warn(
|
|
612
|
+
`ChatService#loadRemoteSession: failed to re-parse historical prompt for ${chatSessionType}`,
|
|
613
|
+
e
|
|
614
|
+
);
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
return {
|
|
618
|
+
text,
|
|
619
|
+
parts: [( new ChatRequestTextPart(( new OffsetRange(0, text.length)), {
|
|
620
|
+
startLineNumber: 1,
|
|
621
|
+
startColumn: 1,
|
|
622
|
+
endLineNumber: 1,
|
|
623
|
+
endColumn: text.length + 1
|
|
624
|
+
}, text))]
|
|
625
|
+
};
|
|
626
|
+
};
|
|
572
627
|
let lastRequest;
|
|
573
628
|
for (const message of providedSession.history) {
|
|
574
629
|
if (message.type === "request") {
|
|
@@ -576,17 +631,9 @@ let ChatService = class ChatService extends Disposable {
|
|
|
576
631
|
lastRequest.response?.complete();
|
|
577
632
|
}
|
|
578
633
|
const requestText = message.prompt;
|
|
579
|
-
const parsedRequest = {
|
|
580
|
-
text: requestText,
|
|
581
|
-
parts: [( new ChatRequestTextPart(( new OffsetRange(0, requestText.length)), {
|
|
582
|
-
startLineNumber: 1,
|
|
583
|
-
startColumn: 1,
|
|
584
|
-
endLineNumber: 1,
|
|
585
|
-
endColumn: requestText.length + 1
|
|
586
|
-
}, requestText))]
|
|
587
|
-
};
|
|
588
634
|
const agent = message.participant ?
|
|
589
635
|
this.chatAgentService.getAgent(message.participant) : this.chatAgentService.getAgent(chatSessionType);
|
|
636
|
+
const parsedRequest = parseAgentHostHistoryPrompt(requestText, agent);
|
|
590
637
|
const modeInfo = message.modeInstructions ? {
|
|
591
638
|
kind: ChatModeKind.Agent,
|
|
592
639
|
isBuiltin: message.modeInstructions.isBuiltin ?? false,
|
|
@@ -608,6 +655,11 @@ let ChatService = class ChatService extends Disposable {
|
|
|
608
655
|
for (const part of message.parts) {
|
|
609
656
|
model.acceptResponseProgress(lastRequest, part);
|
|
610
657
|
}
|
|
658
|
+
if (message.details && lastRequest.response) {
|
|
659
|
+
lastRequest.response.setResult({
|
|
660
|
+
details: message.details
|
|
661
|
+
});
|
|
662
|
+
}
|
|
611
663
|
}
|
|
612
664
|
}
|
|
613
665
|
}
|
|
@@ -645,24 +697,16 @@ let ChatService = class ChatService extends Disposable {
|
|
|
645
697
|
if (providedSession.onDidStartServerRequest) {
|
|
646
698
|
disposables.add(providedSession.onDidStartServerRequest((
|
|
647
699
|
{
|
|
648
|
-
prompt
|
|
700
|
+
prompt,
|
|
701
|
+
variableData
|
|
649
702
|
}
|
|
650
703
|
) => {
|
|
651
704
|
if (lastRequest?.response && !lastRequest.response.isComplete) {
|
|
652
705
|
lastRequest.response.complete();
|
|
653
706
|
}
|
|
654
|
-
const requestText = prompt;
|
|
655
|
-
const parsedRequest = {
|
|
656
|
-
text: requestText,
|
|
657
|
-
parts: [( new ChatRequestTextPart(( new OffsetRange(0, requestText.length)), {
|
|
658
|
-
startLineNumber: 1,
|
|
659
|
-
startColumn: 1,
|
|
660
|
-
endLineNumber: 1,
|
|
661
|
-
endColumn: requestText.length + 1
|
|
662
|
-
}, requestText))]
|
|
663
|
-
};
|
|
664
707
|
const agent = this.chatAgentService.getAgent(chatSessionType);
|
|
665
|
-
|
|
708
|
+
const parsedRequest = parseAgentHostHistoryPrompt(prompt, agent);
|
|
709
|
+
lastRequest = model.addRequest(parsedRequest, variableData ?? {
|
|
666
710
|
variables: []
|
|
667
711
|
}, 0, undefined, agent);
|
|
668
712
|
lastProgressLength = 0;
|
|
@@ -866,14 +910,20 @@ let ChatService = class ChatService extends Disposable {
|
|
|
866
910
|
};
|
|
867
911
|
} finally {}
|
|
868
912
|
}
|
|
913
|
+
getAttachmentCapabilitiesForParser(chatSessionType, agent) {
|
|
914
|
+
return this.chatSessionService.getCapabilitiesForSessionType(chatSessionType) ?? agent?.capabilities;
|
|
915
|
+
}
|
|
869
916
|
parseChatRequest(sessionResource, request, location, options) {
|
|
870
917
|
let parserContext = options?.parserContext;
|
|
918
|
+
let contextAgent = parserContext?.forcedAgent ?? parserContext?.selectedAgent;
|
|
871
919
|
if (options?.agentId) {
|
|
872
920
|
const agent = this.chatAgentService.getAgent(options.agentId);
|
|
873
921
|
if (!agent) {
|
|
874
922
|
throw ( new Error(`Unknown agent: ${options.agentId}`));
|
|
875
923
|
}
|
|
924
|
+
contextAgent = agent;
|
|
876
925
|
parserContext = {
|
|
926
|
+
...parserContext,
|
|
877
927
|
selectedAgent: agent,
|
|
878
928
|
mode: options.modeInfo?.kind
|
|
879
929
|
};
|
|
@@ -882,12 +932,20 @@ let ChatService = class ChatService extends Disposable {
|
|
|
882
932
|
} else if (options?.agentIdSilent && !parserContext?.forcedAgent) {
|
|
883
933
|
const silentAgent = this.chatAgentService.getAgent(options.agentIdSilent);
|
|
884
934
|
if (silentAgent) {
|
|
935
|
+
contextAgent = silentAgent;
|
|
885
936
|
parserContext = {
|
|
886
937
|
...parserContext,
|
|
887
938
|
forcedAgent: silentAgent
|
|
888
939
|
};
|
|
889
940
|
}
|
|
890
941
|
}
|
|
942
|
+
const attachmentCapabilities = parserContext?.attachmentCapabilities ?? this.getAttachmentCapabilitiesForParser(getChatSessionType(sessionResource), contextAgent);
|
|
943
|
+
if (attachmentCapabilities) {
|
|
944
|
+
parserContext = {
|
|
945
|
+
...parserContext,
|
|
946
|
+
attachmentCapabilities
|
|
947
|
+
};
|
|
948
|
+
}
|
|
891
949
|
const parsedRequest = this.instantiationService.createInstance(ChatRequestParser).parseChatRequest(sessionResource, request, location, parserContext);
|
|
892
950
|
return parsedRequest;
|
|
893
951
|
}
|
|
@@ -983,7 +1041,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
983
1041
|
model.acceptResponseProgress(request, {
|
|
984
1042
|
kind: "markdownContent",
|
|
985
1043
|
content: ( new MarkdownString(( localize(
|
|
986
|
-
|
|
1044
|
+
7688,
|
|
987
1045
|
"The `{0}` skill requires `{1}` to be enabled. After enabling, reload the window to apply. [Enable in Settings](command:workbench.action.openSettings?{2})",
|
|
988
1046
|
TROUBLESHOOT_COMMAND_NAME,
|
|
989
1047
|
AGENT_DEBUG_LOG_FILE_LOGGING_ENABLED_SETTING,
|
|
@@ -1017,7 +1075,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1017
1075
|
if (agentName) {
|
|
1018
1076
|
try {
|
|
1019
1077
|
const agents = await this.promptsService.getCustomAgents(token);
|
|
1020
|
-
const customAgent = agents.find(a => a.name === agentName);
|
|
1078
|
+
const customAgent = agents.find(a => a.name === agentName && a.enabled);
|
|
1021
1079
|
if (customAgent?.hooks) {
|
|
1022
1080
|
collectedHooks = mergeHooks(collectedHooks, customAgent.hooks);
|
|
1023
1081
|
}
|
|
@@ -1149,7 +1207,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1149
1207
|
editedFileEvents: thisRequest.editedFileEvents,
|
|
1150
1208
|
hooks: collectedHooks,
|
|
1151
1209
|
hasHooksEnabled: !!collectedHooks && ( ( Object.values(collectedHooks)).some(arr => arr.length > 0)),
|
|
1152
|
-
isSystemInitiated: options?.isSystemInitiated
|
|
1210
|
+
isSystemInitiated: options?.isSystemInitiated,
|
|
1211
|
+
workingDirectory: model.workingDirectory
|
|
1153
1212
|
};
|
|
1154
1213
|
let isInitialTools = true;
|
|
1155
1214
|
store.add(autorun(reader => {
|
|
@@ -1165,7 +1224,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1165
1224
|
}));
|
|
1166
1225
|
return agentRequest;
|
|
1167
1226
|
};
|
|
1168
|
-
if (this.configurationService.getValue("chat.detectParticipant.enabled") !== false && this.chatAgentService.hasChatParticipantDetectionProviders() && !agentPart && !commandPart && !agentSlashCommandPart && enableCommandDetection &&
|
|
1227
|
+
if (this.configurationService.getValue("chat.detectParticipant.enabled") !== false && this.chatAgentService.hasChatParticipantDetectionProviders() && !agentPart && !commandPart && !agentSlashCommandPart && enableCommandDetection && location !== ChatAgentLocation.EditorInline && options?.modeInfo?.kind !== ChatModeKind.Agent && options?.modeInfo?.kind !== ChatModeKind.Edit && !options?.agentIdSilent) {
|
|
1169
1228
|
const defaultAgentHistory = this.getHistoryEntriesFromModel(requests, location, defaultAgent.id);
|
|
1170
1229
|
const chatAgentRequest = buildAgentRequest(defaultAgent, undefined, enableCommandDetection, false);
|
|
1171
1230
|
const result = await this.chatAgentService.detectAgentOrCommand(chatAgentRequest, defaultAgentHistory, {
|
|
@@ -1223,7 +1282,10 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1223
1282
|
const agentResult = await this.chatAgentService.invokeAgent(agent.id, requestProps, progressCallback, history, token);
|
|
1224
1283
|
rawResult = agentResult;
|
|
1225
1284
|
agentOrCommandFollowups = this.chatAgentService.getFollowups(agent.id, requestProps, agentResult, history, followupsCancelToken);
|
|
1226
|
-
} else if (commandPart && this.chatSlashCommandService.hasCommand(
|
|
1285
|
+
} else if (commandPart && this.chatSlashCommandService.hasCommand(
|
|
1286
|
+
commandPart.slashCommand.command,
|
|
1287
|
+
getChatSessionType(model.sessionResource)
|
|
1288
|
+
)) {
|
|
1227
1289
|
if (commandPart.slashCommand.silent !== true) {
|
|
1228
1290
|
request = model.addRequest(parsedRequest, {
|
|
1229
1291
|
variables: []
|
|
@@ -1281,7 +1343,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1281
1343
|
);
|
|
1282
1344
|
rawResult = {
|
|
1283
1345
|
errorDetails: {
|
|
1284
|
-
message: ( localize(
|
|
1346
|
+
message: ( localize(7689, "Provider returned null response"))
|
|
1285
1347
|
}
|
|
1286
1348
|
};
|
|
1287
1349
|
}
|
|
@@ -1303,7 +1365,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1303
1365
|
if (rawResult.errorDetails?.isRateLimited) {
|
|
1304
1366
|
this.chatEntitlementService.markAnonymousRateLimited();
|
|
1305
1367
|
}
|
|
1306
|
-
shouldProcessPending = !rawResult.errorDetails && !token.isCancellationRequested;
|
|
1368
|
+
shouldProcessPending = !rawResult.errorDetails && !token.isCancellationRequested && !request.response?.response.value.some(v => v.kind === "confirmation" && !v.isUsed);
|
|
1307
1369
|
request.response?.complete();
|
|
1308
1370
|
if (agentOrCommandFollowups) {
|
|
1309
1371
|
const completedRequest = request;
|
|
@@ -1382,7 +1444,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1382
1444
|
}
|
|
1383
1445
|
}
|
|
1384
1446
|
_isServerManagedQueue(sessionResource) {
|
|
1385
|
-
return sessionResource.
|
|
1447
|
+
return getChatSessionType(sessionResource).startsWith("agent-host-");
|
|
1386
1448
|
}
|
|
1387
1449
|
processNextPendingRequest(model) {
|
|
1388
1450
|
if (this._isServerManagedQueue(model.sessionResource)) {
|
|
@@ -1765,7 +1827,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1765
1827
|
};
|
|
1766
1828
|
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));
|
|
1767
1829
|
async function chatModelToChatDetail(model) {
|
|
1768
|
-
const title = model.title || ( localize(
|
|
1830
|
+
const title = model.title || ( localize(7690, "New Chat"));
|
|
1769
1831
|
return {
|
|
1770
1832
|
sessionResource: model.sessionResource,
|
|
1771
1833
|
title,
|
|
@@ -1773,7 +1835,8 @@ async function chatModelToChatDetail(model) {
|
|
|
1773
1835
|
timing: model.timing,
|
|
1774
1836
|
isActive: true,
|
|
1775
1837
|
stats: await awaitStatsForSession(model),
|
|
1776
|
-
lastResponseState: model.lastRequest?.response?.state ?? ResponseModelState.Pending
|
|
1838
|
+
lastResponseState: model.lastRequest?.response?.state ?? ResponseModelState.Pending,
|
|
1839
|
+
workingDirectory: model.workingDirectory
|
|
1777
1840
|
};
|
|
1778
1841
|
}
|
|
1779
1842
|
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
3
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
4
4
|
import { isLocation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
|
|
5
|
+
import { escapeModelIdForTelemetry } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry';
|
|
5
6
|
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
6
7
|
import { ChatAgentVoteDirection, ChatCopyKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
7
8
|
import { isImageVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
8
9
|
import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
9
10
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
10
|
-
import { chatSessionResourceToId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
11
|
+
import { getChatSessionType, chatSessionResourceToId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
11
12
|
|
|
12
13
|
let ChatServiceTelemetry = class ChatServiceTelemetry {
|
|
13
14
|
constructor(telemetryService) {
|
|
@@ -56,7 +57,10 @@ let ChatServiceTelemetry = class ChatServiceTelemetry {
|
|
|
56
57
|
agentId: action.agentId ?? "",
|
|
57
58
|
outcome: action.action.outcome,
|
|
58
59
|
lineCount: action.action.lineCount,
|
|
59
|
-
hasRemainingEdits: action.action.hasRemainingEdits
|
|
60
|
+
hasRemainingEdits: action.action.hasRemainingEdits,
|
|
61
|
+
requestId: action.requestId,
|
|
62
|
+
modelId: escapeModelIdForTelemetry(action.modelId) ?? "",
|
|
63
|
+
modeId: action.modeId ?? ""
|
|
60
64
|
});
|
|
61
65
|
}
|
|
62
66
|
}
|
|
@@ -131,7 +135,7 @@ let ChatRequestTelemetry = class ChatRequestTelemetry {
|
|
|
131
135
|
model: this.resolveModelId(this.opts.options?.userSelectedModelId),
|
|
132
136
|
permissionLevel: this.opts.options?.modeInfo?.kind === ChatModeKind.Ask ? undefined : this.opts.options?.modeInfo?.permissionLevel,
|
|
133
137
|
chatMode: this.opts.options?.modeInfo?.modeName ?? this.opts.options?.modeInfo?.modeId,
|
|
134
|
-
sessionType: this.opts.sessionResource
|
|
138
|
+
sessionType: getChatSessionType(this.opts.sessionResource)
|
|
135
139
|
});
|
|
136
140
|
}
|
|
137
141
|
attachmentKindsForTelemetry(variableData) {
|
|
@@ -55,6 +55,7 @@ const responsePartSchema = v(
|
|
|
55
55
|
case "planReview":
|
|
56
56
|
case "undoStop":
|
|
57
57
|
case "warning":
|
|
58
|
+
case "info":
|
|
58
59
|
case "treeData":
|
|
59
60
|
case "workspaceEdit":
|
|
60
61
|
case "disabledClaudeHooks":
|
|
@@ -150,7 +151,8 @@ const storageSchema = object({
|
|
|
150
151
|
m => m.editingSession?.entries.get().some(e => e.state.get() === ModifiedFileEntryState.Modified)
|
|
151
152
|
),
|
|
152
153
|
repoData: v(m => m.repoData, equals),
|
|
153
|
-
pendingRequests: t(m => m.getPendingRequests(), array(pendingRequestSchema))
|
|
154
|
+
pendingRequests: t(m => m.getPendingRequests(), array(pendingRequestSchema)),
|
|
155
|
+
workingDirectory: v(m => m.workingDirectory?.toString())
|
|
154
156
|
});
|
|
155
157
|
class ChatSessionOperationLog extends ObjectMutationLog {
|
|
156
158
|
constructor() {
|
|
@@ -14,7 +14,7 @@ import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
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
16
|
import { ChatAgentLocation, ChatPermissionLevel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
17
|
-
import { ChatModel, ISerializableChatData, ISerializableChatsData, ISerializedChatDataReference } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
|
|
17
|
+
import { ChatModel, ISerializableChatData, ISerializableChatModelInputState, 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;
|
|
20
20
|
private readonly environmentService;
|
|
@@ -71,6 +71,14 @@ export declare class ChatSessionStore extends Disposable {
|
|
|
71
71
|
private readSessionFromPreviousLocation;
|
|
72
72
|
private getStorageLocation;
|
|
73
73
|
private getTransferredSessionStorageLocation;
|
|
74
|
+
/**
|
|
75
|
+
* Synchronously update the in-memory index entries for the given sessions
|
|
76
|
+
* and flush the index to storage. This ensures the index is persisted
|
|
77
|
+
* even when called from a synchronous `onWillSaveState` handler where
|
|
78
|
+
* async file-write work would complete after the storage service has
|
|
79
|
+
* already flushed.
|
|
80
|
+
*/
|
|
81
|
+
updateAndFlushIndexSync(localSessions: ChatModel[], externalSessions: ChatModel[]): void;
|
|
74
82
|
getChatStorageFolder(): URI;
|
|
75
83
|
}
|
|
76
84
|
export interface IChatSessionEntryMetadata {
|
|
@@ -82,6 +90,11 @@ export interface IChatSessionEntryMetadata {
|
|
|
82
90
|
hasPendingEdits?: boolean;
|
|
83
91
|
stats?: IChatSessionStats;
|
|
84
92
|
lastResponseState: ResponseModelState;
|
|
93
|
+
/**
|
|
94
|
+
* The working directory URI string associated with this session.
|
|
95
|
+
* Persisted so it survives window reload in the agents/sessions window.
|
|
96
|
+
*/
|
|
97
|
+
workingDirectory?: string;
|
|
85
98
|
/**
|
|
86
99
|
* This only exists because the migrated data from the storage service had empty sessions persisted, and it's impossible to know which ones are
|
|
87
100
|
* currently in use. Now, `clearSession` deletes empty sessions, so old ones shouldn't take up space in the store anymore, but we still need to
|
|
@@ -96,6 +109,12 @@ export interface IChatSessionEntryMetadata {
|
|
|
96
109
|
* The permission level for tool auto-approval, if not default.
|
|
97
110
|
*/
|
|
98
111
|
permissionLevel?: ChatPermissionLevel;
|
|
112
|
+
/**
|
|
113
|
+
* Serialized draft input state (text, attachments, mode, selected model, ...) for
|
|
114
|
+
* external sessions, so that unsent input is preserved when switching away and
|
|
115
|
+
* back. Local sessions instead persist their full state via storeSessions.
|
|
116
|
+
*/
|
|
117
|
+
inputState?: ISerializableChatModelInputState;
|
|
99
118
|
}
|
|
100
119
|
export type IChatSessionIndex = Record<string, IChatSessionEntryMetadata>;
|
|
101
120
|
export interface IChatTransfer {
|
|
@@ -98,7 +98,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
98
98
|
}
|
|
99
99
|
e.join(this.storeTask, {
|
|
100
100
|
id: "join.chatSessionStore",
|
|
101
|
-
label: ( localize(
|
|
101
|
+
label: ( localize(7727, "Saving chat history"))
|
|
102
102
|
});
|
|
103
103
|
}));
|
|
104
104
|
}
|
|
@@ -356,14 +356,14 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
356
356
|
this._didReportIssue = true;
|
|
357
357
|
this.dialogService.prompt({
|
|
358
358
|
custom: true,
|
|
359
|
-
title: ( localize(
|
|
359
|
+
title: ( localize(7728, "Error saving chat session")),
|
|
360
360
|
message: ( localize(
|
|
361
|
-
|
|
361
|
+
7729,
|
|
362
362
|
"Error serializing chat session for storage. The session will be lost if the window is closed. Please report this issue to the VS Code team:\n\n{0}",
|
|
363
363
|
e.stack || toErrorMessage(e)
|
|
364
364
|
)),
|
|
365
365
|
buttons: [{
|
|
366
|
-
label: ( localize(
|
|
366
|
+
label: ( localize(7730, "Report Issue")),
|
|
367
367
|
run: () => this.openerService.open("https://github.com/microsoft/vscode/issues/new?template=bug_report.md")
|
|
368
368
|
}]
|
|
369
369
|
});
|
|
@@ -664,6 +664,26 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
664
664
|
const sessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
|
|
665
665
|
return joinPath(this.transferredSessionStorageRoot, `${sessionId}.json`);
|
|
666
666
|
}
|
|
667
|
+
updateAndFlushIndexSync(localSessions, externalSessions) {
|
|
668
|
+
const index = this.internalGetIndex();
|
|
669
|
+
for (const session of localSessions) {
|
|
670
|
+
index.entries[session.sessionId] = getSessionMetadataSync(session);
|
|
671
|
+
}
|
|
672
|
+
for (const session of externalSessions) {
|
|
673
|
+
const externalSessionId = ( session.sessionResource.toString());
|
|
674
|
+
index.entries[externalSessionId] = getSessionMetadataSync(session);
|
|
675
|
+
}
|
|
676
|
+
try {
|
|
677
|
+
this.storageService.store(
|
|
678
|
+
ChatIndexStorageKey,
|
|
679
|
+
index,
|
|
680
|
+
this.getIndexStorageScope(),
|
|
681
|
+
StorageTarget.MACHINE
|
|
682
|
+
);
|
|
683
|
+
} catch (e) {
|
|
684
|
+
this.reportError("indexWrite", "Error writing index synchronously", e);
|
|
685
|
+
}
|
|
686
|
+
}
|
|
667
687
|
getChatStorageFolder() {
|
|
668
688
|
return this.storageRoot;
|
|
669
689
|
}
|
|
@@ -690,35 +710,54 @@ function isChatSessionIndex(data) {
|
|
|
690
710
|
}
|
|
691
711
|
return true;
|
|
692
712
|
}
|
|
693
|
-
|
|
694
|
-
const title = session.customTitle ||
|
|
695
|
-
let
|
|
696
|
-
if (session instanceof ChatModel) {
|
|
697
|
-
stats = await awaitStatsForSession(session);
|
|
698
|
-
}
|
|
699
|
-
const lastMessageDate = session instanceof ChatModel ? session.lastMessageDate : session.requests.at(-1)?.timestamp ?? session.creationDate;
|
|
700
|
-
const timing = session instanceof ChatModel ? session.timing :
|
|
701
|
-
{
|
|
702
|
-
created: session.creationDate,
|
|
703
|
-
lastRequestStarted: session.requests.at(-1)?.timestamp,
|
|
704
|
-
lastRequestEnded: lastMessageDate
|
|
705
|
-
};
|
|
706
|
-
let lastResponseState = session instanceof ChatModel ? (session.lastRequest?.response?.state ?? ResponseModelState.Complete) : ResponseModelState.Complete;
|
|
713
|
+
function getSessionMetadataSync(session) {
|
|
714
|
+
const title = session.customTitle || session.title;
|
|
715
|
+
let lastResponseState = session.lastRequest?.response?.state ?? ResponseModelState.Complete;
|
|
707
716
|
if (lastResponseState === ResponseModelState.Pending || lastResponseState === ResponseModelState.NeedsInput) {
|
|
708
717
|
lastResponseState = ResponseModelState.Cancelled;
|
|
709
718
|
}
|
|
719
|
+
const isExternal = !LocalChatSessionUri.parseLocalSessionId(session.sessionResource);
|
|
720
|
+
const rawInputState = isExternal ? session.inputModel.toJSON() : undefined;
|
|
721
|
+
const inputState = rawInputState ? {
|
|
722
|
+
...rawInputState,
|
|
723
|
+
attachments: []
|
|
724
|
+
} : undefined;
|
|
710
725
|
return {
|
|
711
726
|
sessionId: session.sessionId,
|
|
712
|
-
title: title || ( localize(
|
|
713
|
-
lastMessageDate,
|
|
714
|
-
timing,
|
|
727
|
+
title: title || ( localize(7731, "New Chat")),
|
|
728
|
+
lastMessageDate: session.lastMessageDate,
|
|
729
|
+
timing: session.timing,
|
|
715
730
|
initialLocation: session.initialLocation,
|
|
716
|
-
hasPendingEdits: session
|
|
717
|
-
isEmpty: session
|
|
718
|
-
|
|
719
|
-
isExternal: session instanceof ChatModel && !LocalChatSessionUri.parseLocalSessionId(session.sessionResource),
|
|
731
|
+
hasPendingEdits: session.editingSession?.entries.get().some(e => e.state.get() === ModifiedFileEntryState.Modified) ?? false,
|
|
732
|
+
isEmpty: session.getRequests().length === 0,
|
|
733
|
+
isExternal,
|
|
720
734
|
lastResponseState,
|
|
721
|
-
permissionLevel: session
|
|
735
|
+
permissionLevel: session.inputModel.state.get()?.permissionLevel,
|
|
736
|
+
inputState,
|
|
737
|
+
workingDirectory: session.workingDirectory?.toString()
|
|
738
|
+
};
|
|
739
|
+
}
|
|
740
|
+
async function getSessionMetadata(session) {
|
|
741
|
+
if (session instanceof ChatModel) {
|
|
742
|
+
const metadata = getSessionMetadataSync(session);
|
|
743
|
+
metadata.stats = await awaitStatsForSession(session);
|
|
744
|
+
return metadata;
|
|
745
|
+
}
|
|
746
|
+
const lastMessageDate = session.requests.at(-1)?.timestamp ?? session.creationDate;
|
|
747
|
+
return {
|
|
748
|
+
sessionId: session.sessionId,
|
|
749
|
+
title: session.customTitle || ( localize(7731, "New Chat")),
|
|
750
|
+
lastMessageDate,
|
|
751
|
+
timing: {
|
|
752
|
+
created: session.creationDate,
|
|
753
|
+
lastRequestStarted: session.requests.at(-1)?.timestamp,
|
|
754
|
+
lastRequestEnded: lastMessageDate
|
|
755
|
+
},
|
|
756
|
+
initialLocation: session.initialLocation,
|
|
757
|
+
hasPendingEdits: false,
|
|
758
|
+
isEmpty: session.requests.length === 0,
|
|
759
|
+
isExternal: false,
|
|
760
|
+
lastResponseState: ResponseModelState.Complete
|
|
722
761
|
};
|
|
723
762
|
}
|
|
724
763
|
|
|
@@ -8,7 +8,6 @@ import { IChatFollowup, IChatProgress, IChatResponseProgressFileTreeData, IChatS
|
|
|
8
8
|
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
9
9
|
import { ChatAgentLocation, ChatModeKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
10
10
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
11
|
-
import { Target } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
|
|
12
11
|
import { IChatSlashCommandService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatSlashCommands.service";
|
|
13
12
|
export interface IChatSlashData {
|
|
14
13
|
command: string;
|
|
@@ -29,7 +28,7 @@ export interface IChatSlashData {
|
|
|
29
28
|
silent?: boolean;
|
|
30
29
|
locations: ChatAgentLocation[];
|
|
31
30
|
modes?: ChatModeKind[];
|
|
32
|
-
|
|
31
|
+
sessionTypes?: string[];
|
|
33
32
|
/**
|
|
34
33
|
* Optional context key expression that controls visibility of this command.
|
|
35
34
|
* When set, the command is only shown if the expression evaluates to true.
|
|
@@ -54,9 +53,12 @@ export declare class ChatSlashCommandService extends Disposable implements IChat
|
|
|
54
53
|
readonly onDidChangeCommands: Event<void>;
|
|
55
54
|
constructor(_extensionService: IExtensionService);
|
|
56
55
|
dispose(): void;
|
|
56
|
+
private getSessionScopedCommands;
|
|
57
|
+
private commandsOverlap;
|
|
58
|
+
private getCommand;
|
|
57
59
|
registerSlashCommand(data: IChatSlashData, command: IChatSlashCallback): IDisposable;
|
|
58
60
|
getCommands(location: ChatAgentLocation, mode: ChatModeKind): Array<IChatSlashData>;
|
|
59
|
-
hasCommand(id: string): boolean;
|
|
61
|
+
hasCommand(id: string, sessionType: string): boolean;
|
|
60
62
|
executeCommand(id: string, prompt: string, progress: IProgress<IChatProgress>, history: IChatMessage[], location: ChatAgentLocation, sessionResource: URI, token: CancellationToken, options?: IChatSendRequestOptions): Promise<{
|
|
61
63
|
followUp: IChatFollowup[];
|
|
62
64
|
} | void>;
|