@codingame/monaco-vscode-chat-service-override 31.0.0 → 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
package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js
CHANGED
|
@@ -134,14 +134,14 @@ function renderCustomizationDiscoveryContent(
|
|
|
134
134
|
const container = $("div.chat-debug-file-list");
|
|
135
135
|
container.tabIndex = 0;
|
|
136
136
|
const capitalizedType = content.discoveryType.charAt(0).toUpperCase() + content.discoveryType.slice(1);
|
|
137
|
-
append(container, $("div.chat-debug-file-list-title", undefined, ( localize(
|
|
138
|
-
append(container, $("div.chat-debug-file-list-summary", undefined, ( localize(
|
|
137
|
+
append(container, $("div.chat-debug-file-list-title", undefined, ( localize(5975, "{0} Discovery Results", capitalizedType))));
|
|
138
|
+
append(container, $("div.chat-debug-file-list-summary", undefined, ( localize(5976, "Total files: {0}", content.files.length))));
|
|
139
139
|
const loaded = content.files.filter(f => f.status === "loaded");
|
|
140
140
|
if (loaded.length > 0) {
|
|
141
141
|
const section = append(container, $("div.chat-debug-file-list-section"));
|
|
142
142
|
append(
|
|
143
143
|
section,
|
|
144
|
-
$("div.chat-debug-file-list-section-title", undefined, ( localize(
|
|
144
|
+
$("div.chat-debug-file-list-section-title", undefined, ( localize(5977, "Loaded ({0})", loaded.length)))
|
|
145
145
|
);
|
|
146
146
|
const groups = ( new Map());
|
|
147
147
|
for (const file of loaded) {
|
|
@@ -155,7 +155,7 @@ function renderCustomizationDiscoveryContent(
|
|
|
155
155
|
}
|
|
156
156
|
const listEl = append(section, $("div.chat-debug-file-list-rows"));
|
|
157
157
|
listEl.setAttribute("role", "list");
|
|
158
|
-
listEl.setAttribute("aria-label", ( localize(
|
|
158
|
+
listEl.setAttribute("aria-label", ( localize(5978, "Loaded files")));
|
|
159
159
|
const rows = [];
|
|
160
160
|
for (const [locationLabel, files] of groups) {
|
|
161
161
|
const groupHeader = append(listEl, $("div.chat-debug-file-list-group-header"));
|
|
@@ -168,7 +168,7 @@ function renderCustomizationDiscoveryContent(
|
|
|
168
168
|
link.textContent = locationLabel;
|
|
169
169
|
link.tabIndex = -1;
|
|
170
170
|
disposables.add(
|
|
171
|
-
hoverService.setupManagedHover(getDefaultHoverDelegate("element"), link, ( localize(
|
|
171
|
+
hoverService.setupManagedHover(getDefaultHoverDelegate("element"), link, ( localize(5979, "Open {0} in Extensions", firstFile.extensionId)))
|
|
172
172
|
);
|
|
173
173
|
disposables.add(addDisposableListener(link, EventType.CLICK, e => {
|
|
174
174
|
e.preventDefault();
|
|
@@ -224,11 +224,11 @@ function renderCustomizationDiscoveryContent(
|
|
|
224
224
|
const section = append(container, $("div.chat-debug-file-list-section"));
|
|
225
225
|
append(
|
|
226
226
|
section,
|
|
227
|
-
$("div.chat-debug-file-list-section-title", undefined, ( localize(
|
|
227
|
+
$("div.chat-debug-file-list-section-title", undefined, ( localize(5980, "Skipped ({0})", skipped.length)))
|
|
228
228
|
);
|
|
229
229
|
const groups = ( new Map());
|
|
230
230
|
for (const file of skipped) {
|
|
231
|
-
const key = file.skipReason ?? ( localize(
|
|
231
|
+
const key = file.skipReason ?? ( localize(5981, "unknown"));
|
|
232
232
|
let group = groups.get(key);
|
|
233
233
|
if (!group) {
|
|
234
234
|
group = [];
|
|
@@ -238,7 +238,7 @@ function renderCustomizationDiscoveryContent(
|
|
|
238
238
|
}
|
|
239
239
|
const listEl = append(section, $("div.chat-debug-file-list-rows"));
|
|
240
240
|
listEl.setAttribute("role", "list");
|
|
241
|
-
listEl.setAttribute("aria-label", ( localize(
|
|
241
|
+
listEl.setAttribute("aria-label", ( localize(5982, "Skipped files")));
|
|
242
242
|
const rows = [];
|
|
243
243
|
for (const [reasonLabel, files] of groups) {
|
|
244
244
|
const groupHeader = append(listEl, $("div.chat-debug-file-list-group-header"));
|
|
@@ -260,7 +260,7 @@ function renderCustomizationDiscoveryContent(
|
|
|
260
260
|
if (detail) {
|
|
261
261
|
detail += ", ";
|
|
262
262
|
}
|
|
263
|
-
detail += ( localize(
|
|
263
|
+
detail += ( localize(5983, "duplicate of {0}", file.duplicateOf.path));
|
|
264
264
|
}
|
|
265
265
|
row.appendChild(createInlineFileLink(
|
|
266
266
|
file.uri,
|
|
@@ -299,13 +299,13 @@ function renderCustomizationDiscoveryContent(
|
|
|
299
299
|
const chevron = append(header, $("span.chat-debug-message-section-chevron"));
|
|
300
300
|
append(
|
|
301
301
|
header,
|
|
302
|
-
$("span.chat-debug-message-section-title", undefined, ( localize(
|
|
302
|
+
$("span.chat-debug-message-section-title", undefined, ( localize(5984, "Sources ({0})", content.sourceFolders.length)))
|
|
303
303
|
);
|
|
304
304
|
const settingsKey = getSettingsKeyForDiscoveryType(content.discoveryType);
|
|
305
305
|
if (settingsKey) {
|
|
306
306
|
const gearBtn = disposables.add(( new Button(header, {
|
|
307
|
-
title: ( localize(
|
|
308
|
-
ariaLabel: ( localize(
|
|
307
|
+
title: ( localize(5985, "Configure locations")),
|
|
308
|
+
ariaLabel: ( localize(5986, "Configure locations")),
|
|
309
309
|
hoverDelegate: getDefaultHoverDelegate("mouse")
|
|
310
310
|
})));
|
|
311
311
|
gearBtn.icon = Codicon.settingsGear;
|
|
@@ -334,13 +334,13 @@ function renderCustomizationDiscoveryContent(
|
|
|
334
334
|
const contentEl = append(sectionEl, $("div.chat-debug-source-folder-content"));
|
|
335
335
|
contentEl.tabIndex = 0;
|
|
336
336
|
contentEl.setAttribute("role", "region");
|
|
337
|
-
contentEl.setAttribute("aria-label", ( localize(
|
|
337
|
+
contentEl.setAttribute("aria-label", ( localize(5987, "Source folders")));
|
|
338
338
|
const capitalizedType = content.discoveryType.charAt(0).toUpperCase() + content.discoveryType.slice(1);
|
|
339
339
|
const sourcesCaption = capitalizedType.endsWith("s") ? capitalizedType : capitalizedType + "s";
|
|
340
340
|
append(
|
|
341
341
|
contentEl,
|
|
342
342
|
$("div.chat-debug-source-folder-note", undefined, ( localize(
|
|
343
|
-
|
|
343
|
+
5988,
|
|
344
344
|
"{0} were discovered by checking the following sources in order:",
|
|
345
345
|
sourcesCaption
|
|
346
346
|
)))
|
|
@@ -368,13 +368,13 @@ function renderCustomizationDiscoveryContent(
|
|
|
368
368
|
function fileListToPlainText(content) {
|
|
369
369
|
const lines = [];
|
|
370
370
|
const capitalizedType = content.discoveryType.charAt(0).toUpperCase() + content.discoveryType.slice(1);
|
|
371
|
-
lines.push(( localize(
|
|
372
|
-
lines.push(( localize(
|
|
371
|
+
lines.push(( localize(5989, "{0} Discovery Results", capitalizedType)));
|
|
372
|
+
lines.push(( localize(5990, "Total files: {0}", content.files.length)));
|
|
373
373
|
lines.push("");
|
|
374
374
|
const loaded = content.files.filter(f => f.status === "loaded");
|
|
375
375
|
const skipped = content.files.filter(f => f.status === "skipped");
|
|
376
376
|
if (loaded.length > 0) {
|
|
377
|
-
lines.push(( localize(
|
|
377
|
+
lines.push(( localize(5991, "Loaded ({0})", loaded.length)));
|
|
378
378
|
const groups = ( new Map());
|
|
379
379
|
for (const f of loaded) {
|
|
380
380
|
const parentDir = content.discoveryType === "skill" ? dirname(dirname(f.uri)) : dirname(f.uri);
|
|
@@ -396,10 +396,10 @@ function fileListToPlainText(content) {
|
|
|
396
396
|
lines.push("");
|
|
397
397
|
}
|
|
398
398
|
if (skipped.length > 0) {
|
|
399
|
-
lines.push(( localize(
|
|
399
|
+
lines.push(( localize(5992, "Skipped ({0})", skipped.length)));
|
|
400
400
|
const skippedGroups = ( new Map());
|
|
401
401
|
for (const f of skipped) {
|
|
402
|
-
const key = f.skipReason ?? ( localize(
|
|
402
|
+
const key = f.skipReason ?? ( localize(5993, "unknown"));
|
|
403
403
|
let group = skippedGroups.get(key);
|
|
404
404
|
if (!group) {
|
|
405
405
|
group = [];
|
|
@@ -418,7 +418,7 @@ function fileListToPlainText(content) {
|
|
|
418
418
|
parts.push(f.errorMessage);
|
|
419
419
|
}
|
|
420
420
|
if (f.duplicateOf) {
|
|
421
|
-
parts.push(( localize(
|
|
421
|
+
parts.push(( localize(5994, "duplicate of {0}", f.duplicateOf.path)));
|
|
422
422
|
}
|
|
423
423
|
detail += ` (${parts.join(", ")})`;
|
|
424
424
|
}
|
|
@@ -428,7 +428,7 @@ function fileListToPlainText(content) {
|
|
|
428
428
|
}
|
|
429
429
|
if (content.sourceFolders && content.sourceFolders.length > 0) {
|
|
430
430
|
lines.push("");
|
|
431
|
-
lines.push(( localize(
|
|
431
|
+
lines.push(( localize(5995, "Sources ({0})", content.sourceFolders.length)));
|
|
432
432
|
for (const folder of content.sourceFolders) {
|
|
433
433
|
lines.push(` ${folder.uri.path}`);
|
|
434
434
|
}
|
|
@@ -438,17 +438,17 @@ function fileListToPlainText(content) {
|
|
|
438
438
|
function getCategorySectionTitle(category, count) {
|
|
439
439
|
switch (category) {
|
|
440
440
|
case "applying":
|
|
441
|
-
return localize(
|
|
441
|
+
return localize(5996, "Instructions ({0})", count);
|
|
442
442
|
case "referenced":
|
|
443
|
-
return localize(
|
|
443
|
+
return localize(5997, "Referenced ({0})", count);
|
|
444
444
|
case "skill":
|
|
445
|
-
return localize(
|
|
445
|
+
return localize(5998, "Skills ({0})", count);
|
|
446
446
|
case "custom-agent":
|
|
447
|
-
return localize(
|
|
447
|
+
return localize(5999, "Agents ({0})", count);
|
|
448
448
|
case "hook":
|
|
449
|
-
return localize(
|
|
449
|
+
return localize(6000, "Hooks ({0})", count);
|
|
450
450
|
case "skipped":
|
|
451
|
-
return localize(
|
|
451
|
+
return localize(6001, "Skipped ({0})", count);
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
454
|
function renderCustomizationSummaryContent(
|
|
@@ -464,11 +464,11 @@ function renderCustomizationSummaryContent(
|
|
|
464
464
|
const container = $("div.chat-debug-customization-summary");
|
|
465
465
|
container.tabIndex = 0;
|
|
466
466
|
const mainSection = append(container, $("div.chat-debug-file-list"));
|
|
467
|
-
append(mainSection, $("div.chat-debug-file-list-title", undefined, ( localize(
|
|
467
|
+
append(mainSection, $("div.chat-debug-file-list-title", undefined, ( localize(6002, "Customization Resolution Results"))));
|
|
468
468
|
append(
|
|
469
469
|
mainSection,
|
|
470
470
|
$("div.chat-debug-file-list-summary", undefined, ( localize(
|
|
471
|
-
|
|
471
|
+
6003,
|
|
472
472
|
"{0} instructions, {1} skills, {2} agents, {3} hooks, {4} skipped in {5}ms",
|
|
473
473
|
content.counts.instructions,
|
|
474
474
|
content.counts.skills,
|
|
@@ -614,7 +614,7 @@ function renderCustomizationSummaryContent(
|
|
|
614
614
|
if (content.resolutionLogs.length === 0) {
|
|
615
615
|
append(
|
|
616
616
|
mainSection,
|
|
617
|
-
$("div.chat-debug-file-list-summary", undefined, ( localize(
|
|
617
|
+
$("div.chat-debug-file-list-summary", undefined, ( localize(6004, "No resolution logs")))
|
|
618
618
|
);
|
|
619
619
|
}
|
|
620
620
|
return {
|
|
@@ -624,9 +624,9 @@ function renderCustomizationSummaryContent(
|
|
|
624
624
|
}
|
|
625
625
|
function customizationSummaryToPlainText(content) {
|
|
626
626
|
const lines = [];
|
|
627
|
-
lines.push(( localize(
|
|
627
|
+
lines.push(( localize(6005, "Customization Resolution Results")));
|
|
628
628
|
lines.push(( localize(
|
|
629
|
-
|
|
629
|
+
6006,
|
|
630
630
|
"{0} instructions, {1} skills, {2} agents, {3} hooks, {4} skipped in {5}ms",
|
|
631
631
|
content.counts.instructions,
|
|
632
632
|
content.counts.skills,
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers used by the Cache Explorer to compare two model-turn requests
|
|
3
|
+
* (A and B) and identify where the prompt prefix diverges.
|
|
4
|
+
*
|
|
5
|
+
* The engine works on the {@link IChatDebugEventModelTurnContent.sections}
|
|
6
|
+
* "Input Messages" section, which is a JSON-stringified array of
|
|
7
|
+
* `[{ role, name?, parts: [{ type: 'text', content, name? }, ...] }]`
|
|
8
|
+
* matching the OpenTelemetry GenAI semantic convention used by
|
|
9
|
+
* `chatParticipantTelemetry.ts`.
|
|
10
|
+
*
|
|
11
|
+
* All functions are pure — no DOM, no services — so they can be unit tested
|
|
12
|
+
* in isolation.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* A normalized request message used by the diff engine.
|
|
16
|
+
*/
|
|
17
|
+
export interface INormalizedMessage {
|
|
18
|
+
readonly role: string;
|
|
19
|
+
readonly name?: string;
|
|
20
|
+
/** Concatenation of all `text` parts in the message. */
|
|
21
|
+
readonly text: string;
|
|
22
|
+
/** Character length of `text` as a UTF-16 code unit count (`text.length`). */
|
|
23
|
+
readonly charLength: number;
|
|
24
|
+
}
|
|
25
|
+
/** Classification of a single signature token when comparing A and B. */
|
|
26
|
+
export declare enum CacheDiffKind {
|
|
27
|
+
/** Same role+name and same charLength in both A and B. */
|
|
28
|
+
Identical = "identical",
|
|
29
|
+
/** Same role+name and same charLength but different content. */
|
|
30
|
+
ContentDrift = "contentDrift",
|
|
31
|
+
/** Same role+name but different charLength. */
|
|
32
|
+
LengthChange = "lengthChange",
|
|
33
|
+
/** Position exists only in A. */
|
|
34
|
+
OnlyInA = "onlyInA",
|
|
35
|
+
/** Position exists only in B. */
|
|
36
|
+
OnlyInB = "onlyInB"
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A single token in the side-by-side prompt signature.
|
|
40
|
+
*
|
|
41
|
+
* The signature is computed by zipping A's and B's normalized messages
|
|
42
|
+
* positionally and classifying each index independently. The first
|
|
43
|
+
* divergence is what breaks the prompt cache, but later positions can
|
|
44
|
+
* still be reported as {@link CacheDiffKind.Identical} if their content
|
|
45
|
+
* happens to match \u2014 we surface per-position truth here and let the
|
|
46
|
+
* UI decide how to interpret it (the cache-break marker, summary copy,
|
|
47
|
+
* and "Where the cache broke" line all key off the *first* divergent
|
|
48
|
+
* index, not the last).
|
|
49
|
+
*/
|
|
50
|
+
export interface ICacheSignatureToken {
|
|
51
|
+
readonly index: number;
|
|
52
|
+
readonly kind: CacheDiffKind;
|
|
53
|
+
readonly aRole?: string;
|
|
54
|
+
readonly aName?: string;
|
|
55
|
+
readonly aCharLength?: number;
|
|
56
|
+
readonly bRole?: string;
|
|
57
|
+
readonly bName?: string;
|
|
58
|
+
readonly bCharLength?: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The first place where A and B's prompt prefix diverges. Anything after
|
|
62
|
+
* this index cannot be served from the prompt cache.
|
|
63
|
+
*/
|
|
64
|
+
export interface ICacheBreak {
|
|
65
|
+
readonly index: number;
|
|
66
|
+
readonly kind: Exclude<CacheDiffKind, CacheDiffKind.Identical>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A single drifting component (e.g. a message at index N).
|
|
70
|
+
*/
|
|
71
|
+
export interface IComponentDrift {
|
|
72
|
+
readonly name: string;
|
|
73
|
+
readonly role?: string;
|
|
74
|
+
readonly status: CacheDiffKind;
|
|
75
|
+
readonly aSize: number;
|
|
76
|
+
readonly bSize: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Aggregate result of comparing two requests.
|
|
80
|
+
*/
|
|
81
|
+
export interface ICacheDiffResult {
|
|
82
|
+
readonly signature: readonly ICacheSignatureToken[];
|
|
83
|
+
readonly break: ICacheBreak | undefined;
|
|
84
|
+
readonly drift: readonly IComponentDrift[];
|
|
85
|
+
/**
|
|
86
|
+
* Counts of identical / drift / one-sided positions across the whole
|
|
87
|
+
* signature. Useful for the summary pills.
|
|
88
|
+
*/
|
|
89
|
+
readonly counts: {
|
|
90
|
+
readonly identical: number;
|
|
91
|
+
readonly contentDrift: number;
|
|
92
|
+
readonly lengthChange: number;
|
|
93
|
+
readonly onlyInA: number;
|
|
94
|
+
readonly onlyInB: number;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Parse a JSON-encoded `inputMessages` payload into normalized messages.
|
|
99
|
+
*
|
|
100
|
+
* Returns an empty array on any parse error so callers can render a clear
|
|
101
|
+
* empty-state without try/catch boilerplate.
|
|
102
|
+
*/
|
|
103
|
+
export declare function parseInputMessages(inputMessagesJson: string | undefined): readonly INormalizedMessage[];
|
|
104
|
+
/**
|
|
105
|
+
* Compute the per-position diff between two normalized message arrays.
|
|
106
|
+
*
|
|
107
|
+
* The algorithm is intentionally simple (positional zip) rather than a full
|
|
108
|
+
* Myers diff: prompt caches are prefix-based, so the moment two messages at
|
|
109
|
+
* the same index diverge in role, length, or content the cache breaks.
|
|
110
|
+
* Reporting that first divergence is far more useful than computing a
|
|
111
|
+
* minimum edit script.
|
|
112
|
+
*/
|
|
113
|
+
export declare function diffPromptSignature(a: readonly INormalizedMessage[], b: readonly INormalizedMessage[]): ICacheDiffResult;
|
|
114
|
+
/**
|
|
115
|
+
* Add a "system" drift entry to the report when the system instructions
|
|
116
|
+
* differ between the two requests. Inserted at the canonical
|
|
117
|
+
* {@link PREFIX_COMPONENT_ORDER} position regardless of what's already in
|
|
118
|
+
* the drift list.
|
|
119
|
+
*/
|
|
120
|
+
export declare function appendSystemDrift(drift: IComponentDrift[], aSystem: string | undefined, bSystem: string | undefined): IComponentDrift[];
|
|
121
|
+
/**
|
|
122
|
+
* Add a "tools" drift entry to the report when the tool definitions catalog
|
|
123
|
+
* differs between the two requests. The catalog is part of the cache key on
|
|
124
|
+
* every model provider, so a change here \u2014 even a pure reorder \u2014 can break
|
|
125
|
+
* the prompt cache. We intentionally do not normalize (sort, hash, parse)
|
|
126
|
+
* the JSON: providers vary in how they hash the catalog, so the safest
|
|
127
|
+
* stance is to surface any byte-level change and let the user judge.
|
|
128
|
+
*
|
|
129
|
+
* Inserted at the canonical {@link PREFIX_COMPONENT_ORDER} position so the
|
|
130
|
+
* order is always `[system, tools, ...messages]` regardless of call order
|
|
131
|
+
* relative to {@link appendSystemDrift}.
|
|
132
|
+
*/
|
|
133
|
+
export declare function appendToolsDrift(drift: IComponentDrift[], aTools: string | undefined, bTools: string | undefined): IComponentDrift[];
|
|
134
|
+
/**
|
|
135
|
+
* Format a normalized message into a single-line `role[-name]:bytes` token,
|
|
136
|
+
* matching the convention used by the existing `promptTypes` telemetry.
|
|
137
|
+
*/
|
|
138
|
+
export declare function formatSignatureToken(token: ICacheSignatureToken): string;
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
var CacheDiffKind;
|
|
4
|
+
(function (CacheDiffKind) {
|
|
5
|
+
CacheDiffKind["Identical"] = "identical";
|
|
6
|
+
CacheDiffKind["ContentDrift"] = "contentDrift";
|
|
7
|
+
CacheDiffKind["LengthChange"] = "lengthChange";
|
|
8
|
+
CacheDiffKind["OnlyInA"] = "onlyInA";
|
|
9
|
+
CacheDiffKind["OnlyInB"] = "onlyInB";
|
|
10
|
+
})(CacheDiffKind || (CacheDiffKind = {}));
|
|
11
|
+
function parseInputMessages(inputMessagesJson) {
|
|
12
|
+
if (!inputMessagesJson) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
let raw;
|
|
16
|
+
try {
|
|
17
|
+
raw = JSON.parse(inputMessagesJson);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
if (!Array.isArray(raw)) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const m of raw) {
|
|
27
|
+
if (!m || typeof m !== 'object') {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
let role = typeof m.role === 'string' ? m.role : 'unknown';
|
|
31
|
+
const name = typeof m.name === 'string' ? m.name : undefined;
|
|
32
|
+
let text = '';
|
|
33
|
+
let hasToolResponse = false;
|
|
34
|
+
let hasToolCall = false;
|
|
35
|
+
let hasToolSearchOutput = false;
|
|
36
|
+
let hasText = false;
|
|
37
|
+
if (Array.isArray(m.parts)) {
|
|
38
|
+
for (const p of m.parts) {
|
|
39
|
+
if (!p || typeof p !== 'object') {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
switch (p.type) {
|
|
43
|
+
case undefined:
|
|
44
|
+
case 'text':
|
|
45
|
+
case 'reasoning':
|
|
46
|
+
if (typeof p.content === 'string') {
|
|
47
|
+
text += p.content;
|
|
48
|
+
hasText = true;
|
|
49
|
+
}
|
|
50
|
+
break;
|
|
51
|
+
case 'tool_call_response':
|
|
52
|
+
case 'tool_result':
|
|
53
|
+
if (typeof p.response === 'string') {
|
|
54
|
+
text += p.response;
|
|
55
|
+
}
|
|
56
|
+
else if (p.response !== undefined) {
|
|
57
|
+
text += stableStringify(p.response);
|
|
58
|
+
}
|
|
59
|
+
else if (typeof p.content === 'string') {
|
|
60
|
+
text += p.content;
|
|
61
|
+
}
|
|
62
|
+
else if (p.content !== undefined) {
|
|
63
|
+
text += stableStringify(p.content);
|
|
64
|
+
}
|
|
65
|
+
hasToolResponse = true;
|
|
66
|
+
break;
|
|
67
|
+
case 'tool_call':
|
|
68
|
+
if (p.name) {
|
|
69
|
+
text += `call:${p.name}`;
|
|
70
|
+
}
|
|
71
|
+
if (p.arguments !== undefined) {
|
|
72
|
+
text += stableStringify(p.arguments);
|
|
73
|
+
}
|
|
74
|
+
hasToolCall = true;
|
|
75
|
+
break;
|
|
76
|
+
case 'tool_search_output':
|
|
77
|
+
text += stableStringify({
|
|
78
|
+
id: p.id,
|
|
79
|
+
status: p.status,
|
|
80
|
+
tools: p.tools,
|
|
81
|
+
});
|
|
82
|
+
hasToolSearchOutput = true;
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (hasToolSearchOutput && !hasText) {
|
|
88
|
+
role = 'tool_search';
|
|
89
|
+
}
|
|
90
|
+
else if (hasToolResponse && !hasText) {
|
|
91
|
+
role = 'tool';
|
|
92
|
+
}
|
|
93
|
+
else if (hasToolCall && !hasText && role === 'assistant') {
|
|
94
|
+
role = 'assistant';
|
|
95
|
+
}
|
|
96
|
+
if (text.length === 0 && role === 'unknown') {
|
|
97
|
+
text = stableStringify(m);
|
|
98
|
+
}
|
|
99
|
+
out.push({ role, name, text, charLength: text.length });
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
|
103
|
+
function stableStringify(value) {
|
|
104
|
+
try {
|
|
105
|
+
return JSON.stringify(value);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return String(value);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function messagesEqual(a, b) {
|
|
112
|
+
return a.role === b.role && a.name === b.name && a.charLength === b.charLength && a.text === b.text;
|
|
113
|
+
}
|
|
114
|
+
function diffPromptSignature(a, b) {
|
|
115
|
+
const signature = [];
|
|
116
|
+
const drift = [];
|
|
117
|
+
const counts = { identical: 0, contentDrift: 0, lengthChange: 0, onlyInA: 0, onlyInB: 0 };
|
|
118
|
+
let breakResult;
|
|
119
|
+
let broken = false;
|
|
120
|
+
const max = Math.max(a.length, b.length);
|
|
121
|
+
for (let i = 0; i < max; i++) {
|
|
122
|
+
const ai = a[i];
|
|
123
|
+
const bi = b[i];
|
|
124
|
+
if (ai && !bi) {
|
|
125
|
+
counts.onlyInA++;
|
|
126
|
+
signature.push({ index: i, kind: CacheDiffKind.OnlyInA, aRole: ai.role, aName: ai.name, aCharLength: ai.charLength });
|
|
127
|
+
drift.push({ name: `messages[${i}]`, role: ai.role, status: CacheDiffKind.OnlyInA, aSize: ai.charLength, bSize: 0 });
|
|
128
|
+
if (!broken) {
|
|
129
|
+
broken = true;
|
|
130
|
+
breakResult = { index: i, kind: CacheDiffKind.OnlyInA };
|
|
131
|
+
}
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
if (bi && !ai) {
|
|
135
|
+
counts.onlyInB++;
|
|
136
|
+
signature.push({ index: i, kind: CacheDiffKind.OnlyInB, bRole: bi.role, bName: bi.name, bCharLength: bi.charLength });
|
|
137
|
+
drift.push({ name: `messages[${i}]`, role: bi.role, status: CacheDiffKind.OnlyInB, aSize: 0, bSize: bi.charLength });
|
|
138
|
+
if (!broken) {
|
|
139
|
+
broken = true;
|
|
140
|
+
breakResult = { index: i, kind: CacheDiffKind.OnlyInB };
|
|
141
|
+
}
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
if (!ai || !bi) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if (messagesEqual(ai, bi)) {
|
|
148
|
+
counts.identical++;
|
|
149
|
+
signature.push({
|
|
150
|
+
index: i, kind: CacheDiffKind.Identical,
|
|
151
|
+
aRole: ai.role, aName: ai.name, aCharLength: ai.charLength,
|
|
152
|
+
bRole: bi.role, bName: bi.name, bCharLength: bi.charLength,
|
|
153
|
+
});
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
const kind = ai.charLength === bi.charLength ? CacheDiffKind.ContentDrift : CacheDiffKind.LengthChange;
|
|
157
|
+
if (kind === CacheDiffKind.ContentDrift) {
|
|
158
|
+
counts.contentDrift++;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
counts.lengthChange++;
|
|
162
|
+
}
|
|
163
|
+
signature.push({
|
|
164
|
+
index: i, kind,
|
|
165
|
+
aRole: ai.role, aName: ai.name, aCharLength: ai.charLength,
|
|
166
|
+
bRole: bi.role, bName: bi.name, bCharLength: bi.charLength,
|
|
167
|
+
});
|
|
168
|
+
drift.push({ name: `messages[${i}]`, role: ai.role, status: kind, aSize: ai.charLength, bSize: bi.charLength });
|
|
169
|
+
if (!broken) {
|
|
170
|
+
broken = true;
|
|
171
|
+
breakResult = { index: i, kind };
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return { signature, break: breakResult, drift, counts };
|
|
175
|
+
}
|
|
176
|
+
const PREFIX_COMPONENT_ORDER = ['system', 'tools'];
|
|
177
|
+
function insertPrefixComponent(drift, entry) {
|
|
178
|
+
const prefixEntries = [];
|
|
179
|
+
const rest = [];
|
|
180
|
+
for (const d of drift) {
|
|
181
|
+
if (PREFIX_COMPONENT_ORDER.includes(d.name)) {
|
|
182
|
+
if (d.name !== entry.name) {
|
|
183
|
+
prefixEntries.push(d);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
rest.push(d);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
prefixEntries.push(entry);
|
|
191
|
+
prefixEntries.sort((a, b) => PREFIX_COMPONENT_ORDER.indexOf(a.name) - PREFIX_COMPONENT_ORDER.indexOf(b.name));
|
|
192
|
+
return [...prefixEntries, ...rest];
|
|
193
|
+
}
|
|
194
|
+
function classifyStringDrift(a, b) {
|
|
195
|
+
if (a === b) {
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
if (!a) {
|
|
199
|
+
return CacheDiffKind.OnlyInB;
|
|
200
|
+
}
|
|
201
|
+
if (!b) {
|
|
202
|
+
return CacheDiffKind.OnlyInA;
|
|
203
|
+
}
|
|
204
|
+
return a.length === b.length ? CacheDiffKind.ContentDrift : CacheDiffKind.LengthChange;
|
|
205
|
+
}
|
|
206
|
+
function appendSystemDrift(drift, aSystem, bSystem) {
|
|
207
|
+
const status = classifyStringDrift(aSystem, bSystem);
|
|
208
|
+
if (status === undefined) {
|
|
209
|
+
return drift;
|
|
210
|
+
}
|
|
211
|
+
return insertPrefixComponent(drift, { name: 'system', status, aSize: aSystem?.length ?? 0, bSize: bSystem?.length ?? 0 });
|
|
212
|
+
}
|
|
213
|
+
function appendToolsDrift(drift, aTools, bTools) {
|
|
214
|
+
const status = classifyStringDrift(aTools, bTools);
|
|
215
|
+
if (status === undefined) {
|
|
216
|
+
return drift;
|
|
217
|
+
}
|
|
218
|
+
return insertPrefixComponent(drift, { name: 'tools', status, aSize: aTools?.length ?? 0, bSize: bTools?.length ?? 0 });
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export { CacheDiffKind, appendSystemDrift, appendToolsDrift, diffPromptSignature, parseInputMessages };
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.d.ts
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
3
|
+
import { IChatDebugService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatDebugService.service";
|
|
4
|
+
import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
|
|
5
|
+
/**
|
|
6
|
+
* Navigation events fired by the Cache Explorer breadcrumb.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum CacheExplorerNavigation {
|
|
9
|
+
Home = "home",
|
|
10
|
+
Overview = "overview"
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Cache Explorer view — the third entry under "Explore Trace Data". Shows a
|
|
14
|
+
* left rail of model turns with their cache hit %, plus a side-by-side prompt
|
|
15
|
+
* signature diff that pinpoints where the prefix breaks.
|
|
16
|
+
*
|
|
17
|
+
* v1 reads {@link IChatDebugEventModelTurnContent} from the in-memory chat
|
|
18
|
+
* debug service via {@link IChatDebugService.resolveEvent}. Content may be
|
|
19
|
+
* truncated by the OTel attribute cap; the file-logger backed full-fidelity
|
|
20
|
+
* provider is a follow-up.
|
|
21
|
+
*/
|
|
22
|
+
export declare class ChatDebugCacheExplorerView extends Disposable {
|
|
23
|
+
private readonly chatService;
|
|
24
|
+
private readonly chatDebugService;
|
|
25
|
+
private readonly _onNavigate;
|
|
26
|
+
readonly onNavigate: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<CacheExplorerNavigation>;
|
|
27
|
+
readonly container: HTMLElement;
|
|
28
|
+
private readonly breadcrumbWidget;
|
|
29
|
+
private readonly rail;
|
|
30
|
+
private readonly railList;
|
|
31
|
+
private readonly content;
|
|
32
|
+
private readonly sash;
|
|
33
|
+
private railWidth;
|
|
34
|
+
private readonly loadDisposables;
|
|
35
|
+
private readonly refreshScheduler;
|
|
36
|
+
private currentSessionResource;
|
|
37
|
+
private modelTurns;
|
|
38
|
+
/** Selected turn (B side). A is computed as `selectedIndex - 1`. -1 = no explicit selection yet. */
|
|
39
|
+
private selectedIndex;
|
|
40
|
+
/**
|
|
41
|
+
* Monotonically-increasing render token. Each call to {@link render}
|
|
42
|
+
* captures the current value, then re-checks it after each await; if a
|
|
43
|
+
* newer render has started in the meantime, the older one bails out
|
|
44
|
+
* before mutating the DOM. Avoids races where a slow model-turn
|
|
45
|
+
* resolve from one session writes into another's panel.
|
|
46
|
+
*/
|
|
47
|
+
private renderToken;
|
|
48
|
+
/** Cache of resolved model-turn content keyed by event id. */
|
|
49
|
+
private readonly resolvedCache;
|
|
50
|
+
/** Components currently expanded (by component name). */
|
|
51
|
+
private readonly openComponents;
|
|
52
|
+
/** Rail groups currently collapsed (by group key — the parent event id). */
|
|
53
|
+
private readonly collapsedGroups;
|
|
54
|
+
constructor(parent: HTMLElement, chatService: IChatService, chatDebugService: IChatDebugService);
|
|
55
|
+
setSession(sessionResource: URI): void;
|
|
56
|
+
show(): void;
|
|
57
|
+
hide(): void;
|
|
58
|
+
refresh(): void;
|
|
59
|
+
updateBreadcrumb(): void;
|
|
60
|
+
private render;
|
|
61
|
+
private resolveSide;
|
|
62
|
+
private renderRail;
|
|
63
|
+
private renderTitleRow;
|
|
64
|
+
private renderSummary;
|
|
65
|
+
private renderSideCard;
|
|
66
|
+
/**
|
|
67
|
+
* Render the summary cards alone when there is no prior turn to diff
|
|
68
|
+
* against (e.g. the first request in a brand-new session). The OTel-
|
|
69
|
+
* reported cache hit is still useful here — the system prompt and tool
|
|
70
|
+
* definitions can already be cached from previous sessions.
|
|
71
|
+
*/
|
|
72
|
+
private renderSingleSummary;
|
|
73
|
+
private appendKv;
|
|
74
|
+
private renderSignature;
|
|
75
|
+
/**
|
|
76
|
+
* Render the per-key request-options table. Shows every cache-keying
|
|
77
|
+
* option captured from the model provider request body, with a column
|
|
78
|
+
* for the previous turn and one for the current turn. Rows whose
|
|
79
|
+
* values differ are highlighted.
|
|
80
|
+
*/
|
|
81
|
+
private renderRequestOptions;
|
|
82
|
+
private renderComponents;
|
|
83
|
+
private renderComponentDiff;
|
|
84
|
+
}
|