@codingame/monaco-vscode-chat-service-override 27.0.0 → 28.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/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +54 -4
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +179 -11
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +5 -1
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +6 -1
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +25 -10
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +67 -0
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +263 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +6 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +13 -5
- 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 +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +49 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +58 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +537 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.js +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/media/agentPluginEditor.css +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +17 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +89 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +4 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +146 -53
- 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 +56 -54
- 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 +5 -5
- 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 +25 -25
- 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/aiCustomization/aiCustomizationIcons.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +13 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +189 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +42 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +210 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +14 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +122 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +87 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +702 -0
- 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 +279 -214
- 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/chatDebugEditor.js +12 -3
- 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.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +63 -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 +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +62 -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.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +2 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +32 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
- 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 +49 -49
- 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.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +14 -14
- 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 +26 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +103 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +61 -61
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +245 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +78 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.js +234 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +31 -126
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +229 -524
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.js +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +54 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +11 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +112 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +99 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +489 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +348 -285
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +18 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +107 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +4 -4
- 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/tools/languageModelToolsConfirmationService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +55 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +20 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +148 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- 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 +29 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +72 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +5 -3
- 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 +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +11 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +72 -23
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +19 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +37 -8
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +36 -3
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +71 -25
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +217 -91
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +85 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +257 -63
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +3 -16
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +7 -50
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +32 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +26 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +287 -88
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +75 -20
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +121 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +1422 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +81 -41
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +8 -6
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.d.ts +14 -2
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +54 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +6 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +38 -22
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +8 -8
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +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.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +36 -18
- 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.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +27 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +1 -1
- 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 +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +0 -67
package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js
CHANGED
|
@@ -129,14 +129,14 @@ function renderCustomizationDiscoveryContent(
|
|
|
129
129
|
const container = $("div.chat-debug-file-list");
|
|
130
130
|
container.tabIndex = 0;
|
|
131
131
|
const capitalizedType = content.discoveryType.charAt(0).toUpperCase() + content.discoveryType.slice(1);
|
|
132
|
-
append(container, $("div.chat-debug-file-list-title", undefined, ( localize(
|
|
133
|
-
append(container, $("div.chat-debug-file-list-summary", undefined, ( localize(
|
|
132
|
+
append(container, $("div.chat-debug-file-list-title", undefined, ( localize(5620, "{0} Discovery Results", capitalizedType))));
|
|
133
|
+
append(container, $("div.chat-debug-file-list-summary", undefined, ( localize(5621, "Total files: {0}", content.files.length))));
|
|
134
134
|
const loaded = content.files.filter(f => f.status === "loaded");
|
|
135
135
|
if (loaded.length > 0) {
|
|
136
136
|
const section = append(container, $("div.chat-debug-file-list-section"));
|
|
137
137
|
append(
|
|
138
138
|
section,
|
|
139
|
-
$("div.chat-debug-file-list-section-title", undefined, ( localize(
|
|
139
|
+
$("div.chat-debug-file-list-section-title", undefined, ( localize(5622, "Loaded ({0})", loaded.length)))
|
|
140
140
|
);
|
|
141
141
|
const groups = ( new Map());
|
|
142
142
|
for (const file of loaded) {
|
|
@@ -150,7 +150,7 @@ function renderCustomizationDiscoveryContent(
|
|
|
150
150
|
}
|
|
151
151
|
const listEl = append(section, $("div.chat-debug-file-list-rows"));
|
|
152
152
|
listEl.setAttribute("role", "list");
|
|
153
|
-
listEl.setAttribute("aria-label", ( localize(
|
|
153
|
+
listEl.setAttribute("aria-label", ( localize(5623, "Loaded files")));
|
|
154
154
|
const rows = [];
|
|
155
155
|
for (const [locationLabel, files] of groups) {
|
|
156
156
|
const groupHeader = append(listEl, $("div.chat-debug-file-list-group-header"));
|
|
@@ -163,7 +163,7 @@ function renderCustomizationDiscoveryContent(
|
|
|
163
163
|
link.textContent = locationLabel;
|
|
164
164
|
link.tabIndex = -1;
|
|
165
165
|
disposables.add(
|
|
166
|
-
hoverService.setupManagedHover(getDefaultHoverDelegate("element"), link, ( localize(
|
|
166
|
+
hoverService.setupManagedHover(getDefaultHoverDelegate("element"), link, ( localize(5624, "Open {0} in Extensions", firstFile.extensionId)))
|
|
167
167
|
);
|
|
168
168
|
disposables.add(addDisposableListener(link, EventType.CLICK, e => {
|
|
169
169
|
e.preventDefault();
|
|
@@ -215,11 +215,11 @@ function renderCustomizationDiscoveryContent(
|
|
|
215
215
|
const section = append(container, $("div.chat-debug-file-list-section"));
|
|
216
216
|
append(
|
|
217
217
|
section,
|
|
218
|
-
$("div.chat-debug-file-list-section-title", undefined, ( localize(
|
|
218
|
+
$("div.chat-debug-file-list-section-title", undefined, ( localize(5625, "Skipped ({0})", skipped.length)))
|
|
219
219
|
);
|
|
220
220
|
const groups = ( new Map());
|
|
221
221
|
for (const file of skipped) {
|
|
222
|
-
const key = file.skipReason ?? ( localize(
|
|
222
|
+
const key = file.skipReason ?? ( localize(5626, "unknown"));
|
|
223
223
|
let group = groups.get(key);
|
|
224
224
|
if (!group) {
|
|
225
225
|
group = [];
|
|
@@ -229,7 +229,7 @@ function renderCustomizationDiscoveryContent(
|
|
|
229
229
|
}
|
|
230
230
|
const listEl = append(section, $("div.chat-debug-file-list-rows"));
|
|
231
231
|
listEl.setAttribute("role", "list");
|
|
232
|
-
listEl.setAttribute("aria-label", ( localize(
|
|
232
|
+
listEl.setAttribute("aria-label", ( localize(5627, "Skipped files")));
|
|
233
233
|
const rows = [];
|
|
234
234
|
for (const [reasonLabel, files] of groups) {
|
|
235
235
|
const groupHeader = append(listEl, $("div.chat-debug-file-list-group-header"));
|
|
@@ -251,7 +251,7 @@ function renderCustomizationDiscoveryContent(
|
|
|
251
251
|
if (detail) {
|
|
252
252
|
detail += ", ";
|
|
253
253
|
}
|
|
254
|
-
detail += ( localize(
|
|
254
|
+
detail += ( localize(5628, "duplicate of {0}", file.duplicateOf.path));
|
|
255
255
|
}
|
|
256
256
|
row.appendChild(createInlineFileLink(
|
|
257
257
|
file.uri,
|
|
@@ -286,13 +286,13 @@ function renderCustomizationDiscoveryContent(
|
|
|
286
286
|
const chevron = append(header, $("span.chat-debug-message-section-chevron"));
|
|
287
287
|
append(
|
|
288
288
|
header,
|
|
289
|
-
$("span.chat-debug-message-section-title", undefined, ( localize(
|
|
289
|
+
$("span.chat-debug-message-section-title", undefined, ( localize(5629, "Sources ({0})", content.sourceFolders.length)))
|
|
290
290
|
);
|
|
291
291
|
const settingsKey = getSettingsKeyForDiscoveryType(content.discoveryType);
|
|
292
292
|
if (settingsKey) {
|
|
293
293
|
const gearBtn = disposables.add(( new Button(header, {
|
|
294
|
-
title: ( localize(
|
|
295
|
-
ariaLabel: ( localize(
|
|
294
|
+
title: ( localize(5630, "Configure locations")),
|
|
295
|
+
ariaLabel: ( localize(5631, "Configure locations")),
|
|
296
296
|
hoverDelegate: getDefaultHoverDelegate("mouse")
|
|
297
297
|
})));
|
|
298
298
|
gearBtn.icon = Codicon.settingsGear;
|
|
@@ -321,13 +321,13 @@ function renderCustomizationDiscoveryContent(
|
|
|
321
321
|
const contentEl = append(sectionEl, $("div.chat-debug-source-folder-content"));
|
|
322
322
|
contentEl.tabIndex = 0;
|
|
323
323
|
contentEl.setAttribute("role", "region");
|
|
324
|
-
contentEl.setAttribute("aria-label", ( localize(
|
|
324
|
+
contentEl.setAttribute("aria-label", ( localize(5632, "Source folders")));
|
|
325
325
|
const capitalizedType = content.discoveryType.charAt(0).toUpperCase() + content.discoveryType.slice(1);
|
|
326
326
|
const sourcesCaption = capitalizedType.endsWith("s") ? capitalizedType : capitalizedType + "s";
|
|
327
327
|
append(
|
|
328
328
|
contentEl,
|
|
329
329
|
$("div.chat-debug-source-folder-note", undefined, ( localize(
|
|
330
|
-
|
|
330
|
+
5633,
|
|
331
331
|
"{0} were discovered by checking the following sources in order:",
|
|
332
332
|
sourcesCaption
|
|
333
333
|
)))
|
|
@@ -348,13 +348,13 @@ function renderCustomizationDiscoveryContent(
|
|
|
348
348
|
function fileListToPlainText(content) {
|
|
349
349
|
const lines = [];
|
|
350
350
|
const capitalizedType = content.discoveryType.charAt(0).toUpperCase() + content.discoveryType.slice(1);
|
|
351
|
-
lines.push(( localize(
|
|
352
|
-
lines.push(( localize(
|
|
351
|
+
lines.push(( localize(5634, "{0} Discovery Results", capitalizedType)));
|
|
352
|
+
lines.push(( localize(5635, "Total files: {0}", content.files.length)));
|
|
353
353
|
lines.push("");
|
|
354
354
|
const loaded = content.files.filter(f => f.status === "loaded");
|
|
355
355
|
const skipped = content.files.filter(f => f.status === "skipped");
|
|
356
356
|
if (loaded.length > 0) {
|
|
357
|
-
lines.push(( localize(
|
|
357
|
+
lines.push(( localize(5636, "Loaded ({0})", loaded.length)));
|
|
358
358
|
const groups = ( new Map());
|
|
359
359
|
for (const f of loaded) {
|
|
360
360
|
const parentDir = content.discoveryType === "skill" ? dirname(dirname(f.uri)) : dirname(f.uri);
|
|
@@ -376,10 +376,10 @@ function fileListToPlainText(content) {
|
|
|
376
376
|
lines.push("");
|
|
377
377
|
}
|
|
378
378
|
if (skipped.length > 0) {
|
|
379
|
-
lines.push(( localize(
|
|
379
|
+
lines.push(( localize(5637, "Skipped ({0})", skipped.length)));
|
|
380
380
|
const skippedGroups = ( new Map());
|
|
381
381
|
for (const f of skipped) {
|
|
382
|
-
const key = f.skipReason ?? ( localize(
|
|
382
|
+
const key = f.skipReason ?? ( localize(5638, "unknown"));
|
|
383
383
|
let group = skippedGroups.get(key);
|
|
384
384
|
if (!group) {
|
|
385
385
|
group = [];
|
|
@@ -398,7 +398,7 @@ function fileListToPlainText(content) {
|
|
|
398
398
|
parts.push(f.errorMessage);
|
|
399
399
|
}
|
|
400
400
|
if (f.duplicateOf) {
|
|
401
|
-
parts.push(( localize(
|
|
401
|
+
parts.push(( localize(5639, "duplicate of {0}", f.duplicateOf.path)));
|
|
402
402
|
}
|
|
403
403
|
detail += ` (${parts.join(", ")})`;
|
|
404
404
|
}
|
|
@@ -408,7 +408,7 @@ function fileListToPlainText(content) {
|
|
|
408
408
|
}
|
|
409
409
|
if (content.sourceFolders && content.sourceFolders.length > 0) {
|
|
410
410
|
lines.push("");
|
|
411
|
-
lines.push(( localize(
|
|
411
|
+
lines.push(( localize(5640, "Sources ({0})", content.sourceFolders.length)));
|
|
412
412
|
for (const folder of content.sourceFolders) {
|
|
413
413
|
lines.push(` ${folder.uri.path}`);
|
|
414
414
|
}
|
|
@@ -76,8 +76,8 @@ let ChatDebugDetailPanel = class ChatDebugDetailPanel extends Disposable {
|
|
|
76
76
|
const header = append(this.element, $(".chat-debug-detail-header"));
|
|
77
77
|
this.element.appendChild(this.contentContainer);
|
|
78
78
|
const fullScreenButton = this.detailDisposables.add(( new Button(header, {
|
|
79
|
-
ariaLabel: ( localize(
|
|
80
|
-
title: ( localize(
|
|
79
|
+
ariaLabel: ( localize(5643, "Open in Editor")),
|
|
80
|
+
title: ( localize(5643, "Open in Editor"))
|
|
81
81
|
})));
|
|
82
82
|
fullScreenButton.element.classList.add("chat-debug-detail-button");
|
|
83
83
|
fullScreenButton.icon = Codicon.goToFile;
|
|
@@ -89,8 +89,8 @@ let ChatDebugDetailPanel = class ChatDebugDetailPanel extends Disposable {
|
|
|
89
89
|
});
|
|
90
90
|
}));
|
|
91
91
|
const copyButton = this.detailDisposables.add(( new Button(header, {
|
|
92
|
-
ariaLabel: ( localize(
|
|
93
|
-
title: ( localize(
|
|
92
|
+
ariaLabel: ( localize(5644, "Copy")),
|
|
93
|
+
title: ( localize(5644, "Copy"))
|
|
94
94
|
})));
|
|
95
95
|
copyButton.element.classList.add("chat-debug-detail-button");
|
|
96
96
|
copyButton.icon = Codicon.copy;
|
|
@@ -98,8 +98,8 @@ let ChatDebugDetailPanel = class ChatDebugDetailPanel extends Disposable {
|
|
|
98
98
|
this.clipboardService.writeText(this.currentDetailText);
|
|
99
99
|
}));
|
|
100
100
|
const closeButton = this.detailDisposables.add(( new Button(header, {
|
|
101
|
-
ariaLabel: ( localize(
|
|
102
|
-
title: ( localize(
|
|
101
|
+
ariaLabel: ( localize(5645, "Close")),
|
|
102
|
+
title: ( localize(5645, "Close"))
|
|
103
103
|
})));
|
|
104
104
|
closeButton.element.classList.add("chat-debug-detail-button");
|
|
105
105
|
closeButton.icon = Codicon.close;
|
|
@@ -196,7 +196,9 @@ let ChatDebugEditor = class ChatDebugEditor extends EditorPane {
|
|
|
196
196
|
this.chatDebugService.endSession(previousSessionResource);
|
|
197
197
|
}
|
|
198
198
|
this.chatDebugService.activeSessionResource = sessionResource;
|
|
199
|
-
this.chatDebugService.
|
|
199
|
+
if (!this.chatDebugService.hasInvokedProviders(sessionResource)) {
|
|
200
|
+
this.chatDebugService.invokeProviders(sessionResource);
|
|
201
|
+
}
|
|
200
202
|
this.trackSessionModelChanges(sessionResource);
|
|
201
203
|
this.overviewView?.setSession(sessionResource);
|
|
202
204
|
this.logsView?.setSession(sessionResource);
|
|
@@ -255,7 +257,9 @@ let ChatDebugEditor = class ChatDebugEditor extends EditorPane {
|
|
|
255
257
|
this.savedSessionResource = undefined;
|
|
256
258
|
if (sessionResource) {
|
|
257
259
|
this.chatDebugService.activeSessionResource = sessionResource;
|
|
258
|
-
this.chatDebugService.
|
|
260
|
+
if (!this.chatDebugService.hasInvokedProviders(sessionResource)) {
|
|
261
|
+
this.chatDebugService.invokeProviders(sessionResource);
|
|
262
|
+
}
|
|
259
263
|
} else {
|
|
260
264
|
this.showView(ViewState.Home);
|
|
261
265
|
}
|
|
@@ -268,7 +272,8 @@ let ChatDebugEditor = class ChatDebugEditor extends EditorPane {
|
|
|
268
272
|
_applyNavigationOptions(options) {
|
|
269
273
|
const {
|
|
270
274
|
sessionResource,
|
|
271
|
-
viewHint
|
|
275
|
+
viewHint,
|
|
276
|
+
filter
|
|
272
277
|
} = options;
|
|
273
278
|
if (viewHint === "logs" && sessionResource) {
|
|
274
279
|
this.navigateToSession(sessionResource, "logs");
|
|
@@ -284,6 +289,10 @@ let ChatDebugEditor = class ChatDebugEditor extends EditorPane {
|
|
|
284
289
|
} else if (this.viewState === ViewState.Home) {
|
|
285
290
|
this.showView(ViewState.Home);
|
|
286
291
|
}
|
|
292
|
+
if (filter !== undefined && this.filterState) {
|
|
293
|
+
this.filterState.setTextFilter(filter);
|
|
294
|
+
this.logsView?.setFilterText(filter);
|
|
295
|
+
}
|
|
287
296
|
}
|
|
288
297
|
layout(dimension) {
|
|
289
298
|
this.currentDimension = dimension;
|
|
@@ -6,7 +6,7 @@ import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/th
|
|
|
6
6
|
import { EditorInputCapabilities } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
|
|
7
7
|
import { EditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor/editorInput';
|
|
8
8
|
|
|
9
|
-
const chatDebugEditorIcon = registerIcon("chat-debug-editor-label-icon", Codicon.bug, ( localize(
|
|
9
|
+
const chatDebugEditorIcon = registerIcon("chat-debug-editor-label-icon", Codicon.bug, ( localize(5646, "Icon of the chat debug editor label.")));
|
|
10
10
|
class ChatDebugEditorInput extends EditorInput {
|
|
11
11
|
constructor() {
|
|
12
12
|
super(...arguments);
|
|
@@ -37,7 +37,7 @@ class ChatDebugEditorInput extends EditorInput {
|
|
|
37
37
|
return EditorInputCapabilities.Readonly | EditorInputCapabilities.Singleton;
|
|
38
38
|
}
|
|
39
39
|
getName() {
|
|
40
|
-
return localize(
|
|
40
|
+
return localize(5647, "Agent Debug Panel");
|
|
41
41
|
}
|
|
42
42
|
getIcon() {
|
|
43
43
|
return chatDebugEditorIcon;
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js
CHANGED
|
@@ -5,38 +5,38 @@ function formatEventDetail(event) {
|
|
|
5
5
|
switch (event.kind) {
|
|
6
6
|
case "toolCall":
|
|
7
7
|
{
|
|
8
|
-
const parts = [( localize(
|
|
8
|
+
const parts = [( localize(5648, "Tool: {0}", event.toolName))];
|
|
9
9
|
if (event.toolCallId) {
|
|
10
|
-
parts.push(( localize(
|
|
10
|
+
parts.push(( localize(5649, "Call ID: {0}", event.toolCallId)));
|
|
11
11
|
}
|
|
12
12
|
if (event.result) {
|
|
13
|
-
parts.push(( localize(
|
|
13
|
+
parts.push(( localize(5650, "Result: {0}", event.result)));
|
|
14
14
|
}
|
|
15
15
|
if (event.durationInMillis !== undefined) {
|
|
16
|
-
parts.push(( localize(
|
|
16
|
+
parts.push(( localize(5651, "Duration: {0}ms", event.durationInMillis)));
|
|
17
17
|
}
|
|
18
18
|
if (event.input) {
|
|
19
|
-
parts.push(`\n${( localize(
|
|
19
|
+
parts.push(`\n${( localize(5652, "Input:"))}\n${event.input}`);
|
|
20
20
|
}
|
|
21
21
|
if (event.output) {
|
|
22
|
-
parts.push(`\n${( localize(
|
|
22
|
+
parts.push(`\n${( localize(5653, "Output:"))}\n${event.output}`);
|
|
23
23
|
}
|
|
24
24
|
return parts.join("\n");
|
|
25
25
|
}
|
|
26
26
|
case "modelTurn":
|
|
27
27
|
{
|
|
28
|
-
const parts = [event.model ?? ( localize(
|
|
28
|
+
const parts = [event.model ?? ( localize(5654, "Model Turn"))];
|
|
29
29
|
if (event.inputTokens !== undefined) {
|
|
30
|
-
parts.push(( localize(
|
|
30
|
+
parts.push(( localize(5655, "Input tokens: {0}", event.inputTokens)));
|
|
31
31
|
}
|
|
32
32
|
if (event.outputTokens !== undefined) {
|
|
33
|
-
parts.push(( localize(
|
|
33
|
+
parts.push(( localize(5656, "Output tokens: {0}", event.outputTokens)));
|
|
34
34
|
}
|
|
35
35
|
if (event.totalTokens !== undefined) {
|
|
36
|
-
parts.push(( localize(
|
|
36
|
+
parts.push(( localize(5657, "Total tokens: {0}", event.totalTokens)));
|
|
37
37
|
}
|
|
38
38
|
if (event.durationInMillis !== undefined) {
|
|
39
|
-
parts.push(( localize(
|
|
39
|
+
parts.push(( localize(5651, "Duration: {0}ms", event.durationInMillis)));
|
|
40
40
|
}
|
|
41
41
|
return parts.join("\n");
|
|
42
42
|
}
|
|
@@ -44,27 +44,27 @@ function formatEventDetail(event) {
|
|
|
44
44
|
return `${event.name}\n${event.details ?? ""}`;
|
|
45
45
|
case "subagentInvocation":
|
|
46
46
|
{
|
|
47
|
-
const parts = [( localize(
|
|
47
|
+
const parts = [( localize(5658, "Agent: {0}", event.agentName))];
|
|
48
48
|
if (event.description) {
|
|
49
|
-
parts.push(( localize(
|
|
49
|
+
parts.push(( localize(5659, "Description: {0}", event.description)));
|
|
50
50
|
}
|
|
51
51
|
if (event.status) {
|
|
52
|
-
parts.push(( localize(
|
|
52
|
+
parts.push(( localize(5660, "Status: {0}", event.status)));
|
|
53
53
|
}
|
|
54
54
|
if (event.durationInMillis !== undefined) {
|
|
55
|
-
parts.push(( localize(
|
|
55
|
+
parts.push(( localize(5651, "Duration: {0}ms", event.durationInMillis)));
|
|
56
56
|
}
|
|
57
57
|
if (event.toolCallCount !== undefined) {
|
|
58
|
-
parts.push(( localize(
|
|
58
|
+
parts.push(( localize(5661, "Tool calls: {0}", event.toolCallCount)));
|
|
59
59
|
}
|
|
60
60
|
if (event.modelTurnCount !== undefined) {
|
|
61
|
-
parts.push(( localize(
|
|
61
|
+
parts.push(( localize(5662, "Model turns: {0}", event.modelTurnCount)));
|
|
62
62
|
}
|
|
63
63
|
return parts.join("\n");
|
|
64
64
|
}
|
|
65
65
|
case "userMessage":
|
|
66
66
|
{
|
|
67
|
-
const parts = [( localize(
|
|
67
|
+
const parts = [( localize(5663, "User Message: {0}", event.message))];
|
|
68
68
|
for (const section of event.sections) {
|
|
69
69
|
parts.push(`\n--- ${section.name} ---\n${section.content}`);
|
|
70
70
|
}
|
|
@@ -72,7 +72,7 @@ function formatEventDetail(event) {
|
|
|
72
72
|
}
|
|
73
73
|
case "agentResponse":
|
|
74
74
|
{
|
|
75
|
-
const parts = [( localize(
|
|
75
|
+
const parts = [( localize(5664, "Agent Response: {0}", event.message))];
|
|
76
76
|
for (const section of event.sections) {
|
|
77
77
|
parts.push(`\n--- ${section.name} ---\n${section.content}`);
|
|
78
78
|
}
|
|
@@ -22,30 +22,30 @@ function renderEventToTemplate(element, templateData) {
|
|
|
22
22
|
templateData.created.textContent = dateFormatter.value.format(element.created);
|
|
23
23
|
switch (element.kind) {
|
|
24
24
|
case "toolCall":
|
|
25
|
-
templateData.name.textContent = safeStr(element.toolName, ( localize(
|
|
25
|
+
templateData.name.textContent = safeStr(element.toolName, ( localize(5665, "(unknown)")));
|
|
26
26
|
templateData.details.textContent = safeStr(element.result);
|
|
27
27
|
break;
|
|
28
28
|
case "modelTurn":
|
|
29
|
-
templateData.name.textContent = safeStr(element.model) || ( localize(
|
|
29
|
+
templateData.name.textContent = safeStr(element.model) || ( localize(5666, "Model Turn"));
|
|
30
30
|
templateData.details.textContent = [
|
|
31
31
|
safeStr(element.requestName),
|
|
32
|
-
element.totalTokens !== undefined ? ( localize(
|
|
32
|
+
element.totalTokens !== undefined ? ( localize(5667, "{0} tokens", element.totalTokens)) : ""
|
|
33
33
|
].filter(Boolean).join(" · ");
|
|
34
34
|
break;
|
|
35
35
|
case "generic":
|
|
36
|
-
templateData.name.textContent = safeStr(element.name, ( localize(
|
|
36
|
+
templateData.name.textContent = safeStr(element.name, ( localize(5665, "(unknown)")));
|
|
37
37
|
templateData.details.textContent = safeStr(element.details);
|
|
38
38
|
break;
|
|
39
39
|
case "subagentInvocation":
|
|
40
|
-
templateData.name.textContent = safeStr(element.agentName, ( localize(
|
|
40
|
+
templateData.name.textContent = safeStr(element.agentName, ( localize(5665, "(unknown)")));
|
|
41
41
|
templateData.details.textContent = safeStr(element.description) || safeStr(element.status);
|
|
42
42
|
break;
|
|
43
43
|
case "userMessage":
|
|
44
|
-
templateData.name.textContent = ( localize(
|
|
44
|
+
templateData.name.textContent = ( localize(5668, "User Message"));
|
|
45
45
|
templateData.details.textContent = safeStr(element.message);
|
|
46
46
|
break;
|
|
47
47
|
case "agentResponse":
|
|
48
|
-
templateData.name.textContent = ( localize(
|
|
48
|
+
templateData.name.textContent = ( localize(5669, "Agent Response"));
|
|
49
49
|
templateData.details.textContent = safeStr(element.message);
|
|
50
50
|
break;
|
|
51
51
|
}
|
|
@@ -16,10 +16,22 @@ export declare class ChatDebugFilterState extends Disposable {
|
|
|
16
16
|
filterKindPromptDiscovery: boolean;
|
|
17
17
|
filterKindSubagent: boolean;
|
|
18
18
|
textFilter: string;
|
|
19
|
+
beforeTimestamp: number | undefined;
|
|
20
|
+
afterTimestamp: number | undefined;
|
|
19
21
|
isKindVisible(kind: string, category?: string): boolean;
|
|
20
22
|
isAllKindsVisible(): boolean;
|
|
21
23
|
isAllFiltersDefault(): boolean;
|
|
22
24
|
setTextFilter(text: string): void;
|
|
25
|
+
setBeforeTimestamp(timestamp: number | undefined): void;
|
|
26
|
+
/**
|
|
27
|
+
* Parse `before:YYYY[-MM[-DD[THH[:MM[:SS]]]]]` from the filter text.
|
|
28
|
+
* Each component after the year is optional.
|
|
29
|
+
*/
|
|
30
|
+
private _parseTimestampFilters;
|
|
31
|
+
static parseTimeToken(text: string, prefix: string): number | undefined;
|
|
32
|
+
/** Returns the text filter with before:/after: tokens removed. */
|
|
33
|
+
get textFilterWithoutTimestamps(): string;
|
|
34
|
+
isTimestampVisible(created: Date): boolean;
|
|
23
35
|
fire(): void;
|
|
24
36
|
}
|
|
25
37
|
/**
|
|
@@ -45,9 +45,68 @@ class ChatDebugFilterState extends Disposable {
|
|
|
45
45
|
const normalized = text.toLowerCase();
|
|
46
46
|
if (this.textFilter !== normalized) {
|
|
47
47
|
this.textFilter = normalized;
|
|
48
|
+
this._parseTimestampFilters(normalized);
|
|
48
49
|
this._onDidChange.fire();
|
|
49
50
|
}
|
|
50
51
|
}
|
|
52
|
+
setBeforeTimestamp(timestamp) {
|
|
53
|
+
if (this.beforeTimestamp !== timestamp) {
|
|
54
|
+
this.beforeTimestamp = timestamp;
|
|
55
|
+
this._onDidChange.fire();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
_parseTimestampFilters(text) {
|
|
59
|
+
this.beforeTimestamp = ChatDebugFilterState.parseTimeToken(text, "before");
|
|
60
|
+
this.afterTimestamp = ChatDebugFilterState.parseTimeToken(text, "after");
|
|
61
|
+
}
|
|
62
|
+
static parseTimeToken(text, prefix) {
|
|
63
|
+
const regex = ( new RegExp(
|
|
64
|
+
`${prefix}:(\\d{4})(?:-(\\d{2})(?:-(\\d{2})(?:t(\\d{1,2})(?::(\\d{2})(?::(\\d{2}))?)?)?)?)?(?!\\w)`
|
|
65
|
+
));
|
|
66
|
+
const m = regex.exec(text);
|
|
67
|
+
if (!m) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
const year = parseInt(m[1], 10);
|
|
71
|
+
const month = m[2] !== undefined ? parseInt(m[2], 10) - 1 : undefined;
|
|
72
|
+
const day = m[3] !== undefined ? parseInt(m[3], 10) : undefined;
|
|
73
|
+
const hour = m[4] !== undefined ? parseInt(m[4], 10) : undefined;
|
|
74
|
+
const minute = m[5] !== undefined ? parseInt(m[5], 10) : undefined;
|
|
75
|
+
const second = m[6] !== undefined ? parseInt(m[6], 10) : undefined;
|
|
76
|
+
if (prefix === "before") {
|
|
77
|
+
if (second !== undefined) {
|
|
78
|
+
return ( new Date(year, month, day, hour, minute, second, 999)).getTime();
|
|
79
|
+
} else if (minute !== undefined) {
|
|
80
|
+
return ( new Date(year, month, day, hour, minute, 59, 999)).getTime();
|
|
81
|
+
} else if (hour !== undefined) {
|
|
82
|
+
return ( new Date(year, month, day, hour, 59, 59, 999)).getTime();
|
|
83
|
+
} else if (day !== undefined) {
|
|
84
|
+
return ( new Date(year, month, day, 23, 59, 59, 999)).getTime();
|
|
85
|
+
} else if (month !== undefined) {
|
|
86
|
+
return ( new Date(year, month + 1, 0, 23, 59, 59, 999)).getTime();
|
|
87
|
+
} else {
|
|
88
|
+
return ( new Date(year, 11, 31, 23, 59, 59, 999)).getTime();
|
|
89
|
+
}
|
|
90
|
+
} else {
|
|
91
|
+
return ( new Date(year, month ?? 0, day ?? 1, hour ?? 0, minute ?? 0, second ?? 0, 0)).getTime();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
get textFilterWithoutTimestamps() {
|
|
95
|
+
return this.textFilter.replace(
|
|
96
|
+
/\b(?:before|after):\d{4}(?:-\d{2}(?:-\d{2}(?:t\d{1,2}(?::\d{2}(?::\d{2})?)?)?)?)?\b/g,
|
|
97
|
+
""
|
|
98
|
+
).trim();
|
|
99
|
+
}
|
|
100
|
+
isTimestampVisible(created) {
|
|
101
|
+
const time = created.getTime();
|
|
102
|
+
if (this.beforeTimestamp !== undefined && time > this.beforeTimestamp) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
if (this.afterTimestamp !== undefined && time < this.afterTimestamp) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
51
110
|
fire() {
|
|
52
111
|
this._onDidChange.fire();
|
|
53
112
|
}
|
|
@@ -80,16 +139,16 @@ function registerFilterMenuItems(state, scopedContextKeyService) {
|
|
|
80
139
|
when: CHAT_DEBUG_FILTER_ACTIVE
|
|
81
140
|
}));
|
|
82
141
|
};
|
|
83
|
-
registerToggle(CHAT_DEBUG_CMD_TOGGLE_TOOL_CALL, ( localize(
|
|
142
|
+
registerToggle(CHAT_DEBUG_CMD_TOGGLE_TOOL_CALL, ( localize(5670, "Tool Calls")), CHAT_DEBUG_KIND_TOOL_CALL, "1_kind", () => state.filterKindToolCall, v => {
|
|
84
143
|
state.filterKindToolCall = v;
|
|
85
144
|
}, kindToolCallKey);
|
|
86
|
-
registerToggle(CHAT_DEBUG_CMD_TOGGLE_MODEL_TURN, ( localize(
|
|
145
|
+
registerToggle(CHAT_DEBUG_CMD_TOGGLE_MODEL_TURN, ( localize(5671, "Model Turns")), CHAT_DEBUG_KIND_MODEL_TURN, "1_kind", () => state.filterKindModelTurn, v => {
|
|
87
146
|
state.filterKindModelTurn = v;
|
|
88
147
|
}, kindModelTurnKey);
|
|
89
|
-
registerToggle(CHAT_DEBUG_CMD_TOGGLE_PROMPT_DISCOVERY, ( localize(
|
|
148
|
+
registerToggle(CHAT_DEBUG_CMD_TOGGLE_PROMPT_DISCOVERY, ( localize(5672, "Chat Customization")), CHAT_DEBUG_KIND_PROMPT_DISCOVERY, "1_kind", () => state.filterKindPromptDiscovery, v => {
|
|
90
149
|
state.filterKindPromptDiscovery = v;
|
|
91
150
|
}, kindPromptDiscoveryKey);
|
|
92
|
-
registerToggle(CHAT_DEBUG_CMD_TOGGLE_SUBAGENT, ( localize(
|
|
151
|
+
registerToggle(CHAT_DEBUG_CMD_TOGGLE_SUBAGENT, ( localize(5673, "Subagent Invocations")), CHAT_DEBUG_KIND_SUBAGENT, "1_kind", () => state.filterKindSubagent, v => {
|
|
93
152
|
state.filterKindSubagent = v;
|
|
94
153
|
}, kindSubagentKey);
|
|
95
154
|
return store;
|
|
@@ -97,8 +97,8 @@ let ChatDebugFlowChartView = class ChatDebugFlowChartView extends Disposable {
|
|
|
97
97
|
syncContextKeys();
|
|
98
98
|
const childInstantiationService = this._register(this.instantiationService.createChild(( new ServiceCollection([IContextKeyService, scopedContextKeyService]))));
|
|
99
99
|
this.filterWidget = this._register(childInstantiationService.createInstance(FilterWidget, {
|
|
100
|
-
placeholder: ( localize(
|
|
101
|
-
ariaLabel: ( localize(
|
|
100
|
+
placeholder: ( localize(5674, "Filter nodes...")),
|
|
101
|
+
ariaLabel: ( localize(5675, "Filter flow chart nodes"))
|
|
102
102
|
}));
|
|
103
103
|
const filterContainer = append(headerContainer, $(".viewpane-filter-container"));
|
|
104
104
|
filterContainer.appendChild(this.filterWidget.element);
|
|
@@ -153,7 +153,7 @@ let ChatDebugFlowChartView = class ChatDebugFlowChartView extends Disposable {
|
|
|
153
153
|
return;
|
|
154
154
|
}
|
|
155
155
|
const sessionTitle = this.chatService.getSessionTitle(this.currentSessionResource) || LocalChatSessionUri.parseLocalSessionId(this.currentSessionResource) || ( this.currentSessionResource.toString());
|
|
156
|
-
this.breadcrumbWidget.setItems([( new TextBreadcrumbItem(( localize(
|
|
156
|
+
this.breadcrumbWidget.setItems([( new TextBreadcrumbItem(( localize(5676, "Agent Debug Panel")), true)), ( new TextBreadcrumbItem(sessionTitle, true)), ( new TextBreadcrumbItem(( localize(5677, "Agent Flow Chart"))))]);
|
|
157
157
|
}
|
|
158
158
|
load() {
|
|
159
159
|
const hadFocus = isAncestorOfActiveElement(this.content);
|
|
@@ -171,7 +171,7 @@ let ChatDebugFlowChartView = class ChatDebugFlowChartView extends Disposable {
|
|
|
171
171
|
}
|
|
172
172
|
if (events.length === 0) {
|
|
173
173
|
const emptyMsg = append(this.content, $(".chat-debug-flowchart-empty"));
|
|
174
|
-
emptyMsg.textContent = ( localize(
|
|
174
|
+
emptyMsg.textContent = ( localize(5678, "No events recorded for this session."));
|
|
175
175
|
return;
|
|
176
176
|
}
|
|
177
177
|
const flowNodes = buildFlowGraph(events);
|
|
@@ -181,7 +181,7 @@ let ChatDebugFlowChartView = class ChatDebugFlowChartView extends Disposable {
|
|
|
181
181
|
});
|
|
182
182
|
if (filtered.length === 0) {
|
|
183
183
|
const emptyMsg = append(this.content, $(".chat-debug-flowchart-empty"));
|
|
184
|
-
emptyMsg.textContent = ( localize(
|
|
184
|
+
emptyMsg.textContent = ( localize(5679, "No nodes match the current filter."));
|
|
185
185
|
return;
|
|
186
186
|
}
|
|
187
187
|
const slice = sliceFlowNodes(filtered, this.visibleLimit);
|
|
@@ -200,9 +200,9 @@ let ChatDebugFlowChartView = class ChatDebugFlowChartView extends Disposable {
|
|
|
200
200
|
const showMoreBtn = this.loadDisposables.add(( new Button(showMoreContainer, {
|
|
201
201
|
...defaultButtonStyles,
|
|
202
202
|
secondary: true,
|
|
203
|
-
title: ( localize(
|
|
203
|
+
title: ( localize(5680, "Load more nodes"))
|
|
204
204
|
})));
|
|
205
|
-
showMoreBtn.label = ( localize(
|
|
205
|
+
showMoreBtn.label = ( localize(5681, "Show More ({0})", remaining));
|
|
206
206
|
this.loadDisposables.add(showMoreBtn.onDidClick(() => {
|
|
207
207
|
this.visibleLimit += PAGE_SIZE;
|
|
208
208
|
this.load();
|