@codingame/monaco-vscode-chat-service-override 37.0.0 → 37.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +11 -0
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/browser/agentHostProtocolClient.js +1 -1
- package/vscode/src/vs/platform/agentHost/common/agentHostCustomizationConfig.d.ts +74 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostCustomizationConfig.js +90 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostSlashCommand.d.ts +8 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostSlashCommand.js +16 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +53 -53
- package/vscode/src/vs/platform/agentHost/common/agentHostWorkingDirectories.d.ts +16 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostWorkingDirectories.js +14 -0
- package/vscode/src/vs/platform/agentHost/common/agentMerge.js +7 -7
- package/vscode/src/vs/platform/agentHost/common/agentModelByokMeta.d.ts +24 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelByokMeta.js +13 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelNotices.d.ts +22 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelNotices.js +21 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelPricing.d.ts +114 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelPricing.js +56 -0
- package/vscode/src/vs/platform/agentHost/common/changesetUri.js +15 -1
- package/vscode/src/vs/platform/agentHost/common/copilotConfigSlashCommands.d.ts +73 -0
- package/vscode/src/vs/platform/agentHost/common/copilotConfigSlashCommands.js +141 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCompletionAttachmentMeta.js +42 -1
- package/vscode/src/vs/platform/agentHost/common/meta/agentCustomizationMeta.d.ts +27 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCustomizationMeta.js +14 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentEphemeralSessionMeta.d.ts +14 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentEphemeralSessionMeta.js +11 -0
- package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +13 -13
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +4 -1
- package/vscode/src/vs/platform/agentHost/common/toolSearchConstants.d.ts +4 -0
- package/vscode/src/vs/platform/agentHost/common/toolSearchConstants.js +6 -0
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +1 -1
- package/vscode/src/vs/workbench/browser/chatChangesPill.js +2 -2
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.js +28 -28
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.js +2 -2
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.js +18 -18
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.js +3 -3
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.js +3 -3
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.js +6 -6
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.js +11 -11
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.js +11 -11
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.js +9 -9
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.js +5 -5
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.js +2 -2
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.js +7 -7
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/voiceModeOnboarding.js +28 -28
- package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +93 -93
- 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 +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFindActions.js +7 -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 +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/openAgentHostStateFileAction.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginCommands.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationContentExpander.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationContentExpander.js +229 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationItemProvider.d.ts +57 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationItemProvider.js +460 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHost.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHost.contribution.js +92 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAllowSignedOutWhenUsableContribution.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAllowSignedOutWhenUsableContribution.js +46 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAuth.d.ts +142 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAuth.js +746 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatContribution.d.ts +77 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatContribution.js +474 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostConfigEditor.d.ts +169 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostConfigEditor.js +261 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCopilotCliSettingsContribution.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCopilotCliSettingsContribution.js +90 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostDownloadProgress.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostDownloadProgress.js +73 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostExistingSessionHarnessPickerEnablement.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostExistingSessionHarnessPickerEnablement.js +61 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLanguageModelProvider.d.ts +112 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLanguageModelProvider.js +192 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPromptCacheNotification.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPromptCacheNotification.js +137 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostResponseFileChanges.js +301 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostRootConfigForwarder.d.ts +84 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostRootConfigForwarder.js +96 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionHandler.d.ts +884 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionHandler.js +5868 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionInputPills.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListContribution.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListContribution.js +129 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListController.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListController.js +221 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListStore.d.ts +125 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListStore.js +345 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectorySynchronizer.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSettings.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSettings.contribution.js +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSettingsFileSystemProvider.d.ts +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSettingsFileSystemProvider.js +163 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSignedOutModelsNotification.d.ts +54 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSignedOutModelsNotification.js +219 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSubagentProgress.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSubagentProgress.js +50 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostTerminalContribution.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostTerminalContribution.js +132 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentSessionSettings.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentSessionSettings.contribution.js +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentSessionSettingsFileSystemProvider.d.ts +79 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentSessionSettingsFileSystemProvider.js +161 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/applyAgentHostSubmitConfig.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/applyAgentHostSubmitConfig.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/copilotConfigSlashSubmitHandler.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/copilotConfigSlashSubmitHandler.js +71 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/openSessionLinkOpener.contribution.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/openSessionLinkOpener.contribution.js +205 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +50 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.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 +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +22 -22
- 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/externalSessionsFilterMenu.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionSummaryHover.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessionsConfiguration.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +126 -126
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +44 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +137 -137
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationPresentation.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCardList.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationAccessibility.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationCategories.js +145 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationDashboard.js +29 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationServiceImpl.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +40 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +75 -75
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +115 -115
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.js +50 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +344 -344
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostLogSources.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +124 -124
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.js +72 -72
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEnablement.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
- 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 +22 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -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 +35 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugWireLogView.js +40 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
- 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/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPills.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +63 -63
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievements.contribution.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievementsEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievementsEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievementsWidget.js +35 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPromoNotification.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +19 -19
- 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 +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +62 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorOverlay.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +27 -27
- 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 +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolSetsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +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/promptTimeline/promptTimeline.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineCard.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineGutterRail.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineModel.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineRulerRail.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineStickyHeader.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionChatPillOptions.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionPullRequestPill.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/clientToolSetsContribution.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceInputMode/voiceInputMode.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentOpenChat.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatFind/chatFindAccessibilityHelp.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +154 -154
- package/vscode/src/vs/workbench/contrib/chat/common/sessionChatPills.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +10 -10
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditReviewSession.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
- 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/terminalChat.js +10 -10
- 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/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.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +73 -73
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +10 -10
- 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.js +4 -4
- package/vscode/src/vs/workbench/services/agentEditorComments/browser/agentEditorCommentsOverlayWidget.js +3 -3
- package/vscode/src/vs/platform/agentHost/common/state/legacyProtocolCompatibility.d.ts +0 -30
- package/vscode/src/vs/platform/agentHost/common/state/legacyProtocolCompatibility.js +0 -87
- package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.d.ts +0 -205
- package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.js +0 -1580
package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js
CHANGED
|
@@ -150,7 +150,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
152
152
|
const sessionTitle = this.chatService.getSessionTitle(this.currentSessionResource) || LocalChatSessionUri.parseLocalSessionId(this.currentSessionResource) || ( this.currentSessionResource.toString());
|
|
153
|
-
this.breadcrumbWidget.setItems([( new TextBreadcrumbItem(( localize(
|
|
153
|
+
this.breadcrumbWidget.setItems([( new TextBreadcrumbItem(( localize(7748, "Agent Debug Logs")), true)), ( new TextBreadcrumbItem(sessionTitle, true)), ( new TextBreadcrumbItem(( localize(7749, "Cache Explorer"))))]);
|
|
154
154
|
}
|
|
155
155
|
async render() {
|
|
156
156
|
const token = ++this.renderToken;
|
|
@@ -173,7 +173,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
173
173
|
this.contentDisposables.clear();
|
|
174
174
|
clearNode(this.content);
|
|
175
175
|
const empty = append(this.content, $(".chat-debug-cache-empty"));
|
|
176
|
-
empty.textContent = ( localize(
|
|
176
|
+
empty.textContent = ( localize(7750, "No model turns recorded for this session yet."));
|
|
177
177
|
return;
|
|
178
178
|
}
|
|
179
179
|
const agentCounts = computeAgentCounts(this.allModelTurns);
|
|
@@ -186,7 +186,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
186
186
|
this.contentDisposables.clear();
|
|
187
187
|
clearNode(this.content);
|
|
188
188
|
const empty = append(this.content, $(".chat-debug-cache-empty"));
|
|
189
|
-
empty.textContent = ( localize(
|
|
189
|
+
empty.textContent = ( localize(7751, "No model turns match the selected agent filter."));
|
|
190
190
|
return;
|
|
191
191
|
}
|
|
192
192
|
if (this.pendingSelectTurn) {
|
|
@@ -345,13 +345,13 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
345
345
|
return report;
|
|
346
346
|
}
|
|
347
347
|
renderSessionHealth(container, report) {
|
|
348
|
-
append(container, $(".chat-debug-cache-card-h", undefined, ( localize(
|
|
348
|
+
append(container, $(".chat-debug-cache-card-h", undefined, ( localize(7752, "Session cache health"))));
|
|
349
349
|
if (report.overall) {
|
|
350
350
|
const headline = append(container, $(".chat-debug-cache-card-headline"));
|
|
351
|
-
headline.textContent = ( localize(
|
|
351
|
+
headline.textContent = ( localize(7753, "{0}% overall cache hit", formatCachePct(report.overall.hitPct)));
|
|
352
352
|
const sub = append(container, $(".chat-debug-cache-card-sub"));
|
|
353
353
|
sub.textContent = ( localize(
|
|
354
|
-
|
|
354
|
+
7754,
|
|
355
355
|
"{0} of {1} input tokens served from cache across {2} requests (token-weighted)",
|
|
356
356
|
numberFormatter.value.format(report.overall.cachedTokens),
|
|
357
357
|
numberFormatter.value.format(report.overall.inputTokens),
|
|
@@ -360,13 +360,13 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
360
360
|
}
|
|
361
361
|
const statsLine = append(container, $(".chat-debug-cache-session-health-stats"));
|
|
362
362
|
statsLine.textContent = report.avoidableLostTokens > 0 ? ( localize(
|
|
363
|
-
|
|
363
|
+
7755,
|
|
364
364
|
"{0} of {1} request pairs healthy · ~{2} tokens recomputed avoidably",
|
|
365
365
|
report.healthyCount,
|
|
366
366
|
report.pairCount,
|
|
367
367
|
numberFormatter.value.format(report.avoidableLostTokens)
|
|
368
368
|
)) : ( localize(
|
|
369
|
-
|
|
369
|
+
7756,
|
|
370
370
|
"{0} of {1} request pairs healthy",
|
|
371
371
|
report.healthyCount,
|
|
372
372
|
report.pairCount
|
|
@@ -382,7 +382,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
382
382
|
"aria-hidden": "true"
|
|
383
383
|
}));
|
|
384
384
|
append(chip, $("span", undefined, ( localize(
|
|
385
|
-
|
|
385
|
+
7757,
|
|
386
386
|
"{0} ×{1} · {2} tok",
|
|
387
387
|
cacheBreakCategoryLabel(stat.category),
|
|
388
388
|
stat.count,
|
|
@@ -439,10 +439,10 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
439
439
|
const selected = this.selectedAgents ?? ( new Set(agents));
|
|
440
440
|
const selectedCount = agents.filter(a => ( selected.has(a))).length;
|
|
441
441
|
const label = append(this.railToolbar, $("span.chat-debug-cache-filter-label"));
|
|
442
|
-
label.textContent = ( localize(
|
|
442
|
+
label.textContent = ( localize(7758, "Agent"));
|
|
443
443
|
const button = append(this.railToolbar, $("button.chat-debug-cache-filter-button"));
|
|
444
444
|
button.setAttribute("aria-haspopup", "menu");
|
|
445
|
-
const summary = selectedCount === agents.length ? ( localize(
|
|
445
|
+
const summary = selectedCount === agents.length ? ( localize(7759, "All agents ({0})", agents.length)) : selectedCount === 1 ? agents.find(a => ( selected.has(a))) ?? "" : ( localize(7760, "{0} of {1} agents", selectedCount, agents.length));
|
|
446
446
|
const text = append(button, $("span.chat-debug-cache-filter-button-text"));
|
|
447
447
|
text.textContent = summary;
|
|
448
448
|
text.title = summary;
|
|
@@ -463,13 +463,13 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
463
463
|
const selected = this.selectedAgents ?? ( new Set(agents));
|
|
464
464
|
const agentActions = ( agents.map(agent => toAction({
|
|
465
465
|
id: `chatDebug.cache.agent.${agent}`,
|
|
466
|
-
label: ( localize(
|
|
466
|
+
label: ( localize(7761, "{0} ({1})", agent, agentCounts.get(agent) ?? 0)),
|
|
467
467
|
checked: ( selected.has(agent)),
|
|
468
468
|
run: () => this.toggleAgent(agent)
|
|
469
469
|
})));
|
|
470
470
|
const selectAll = toAction({
|
|
471
471
|
id: "chatDebug.cache.agentSelectAll",
|
|
472
|
-
label: ( localize(
|
|
472
|
+
label: ( localize(7762, "Show All Agents")),
|
|
473
473
|
run: () => this.setAgentSelection(( new Set(agents)))
|
|
474
474
|
});
|
|
475
475
|
this.contextMenuService.showContextMenu({
|
|
@@ -505,7 +505,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
505
505
|
"aria-hidden": "true"
|
|
506
506
|
}
|
|
507
507
|
));
|
|
508
|
-
append(toggle, $("span", undefined, ( localize(
|
|
508
|
+
append(toggle, $("span", undefined, ( localize(7763, "Chunk breakdown"))));
|
|
509
509
|
this.contentDisposables.add(addDisposableListener(toggle, EventType.CLICK, () => {
|
|
510
510
|
this.sigBreakdownOpen = !this.sigBreakdownOpen;
|
|
511
511
|
const token = ++this.renderToken;
|
|
@@ -522,22 +522,22 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
522
522
|
}));
|
|
523
523
|
append(head, $(".cell.idx", {
|
|
524
524
|
role: "columnheader"
|
|
525
|
-
}, ( localize(
|
|
525
|
+
}, ( localize(7764, "#"))));
|
|
526
526
|
append(head, $(".cell.chunk", {
|
|
527
527
|
role: "columnheader"
|
|
528
|
-
}, ( localize(
|
|
528
|
+
}, ( localize(7765, "Chunk"))));
|
|
529
529
|
append(head, $(".cell.num", {
|
|
530
530
|
role: "columnheader"
|
|
531
|
-
}, ( localize(
|
|
531
|
+
}, ( localize(7766, "Previous"))));
|
|
532
532
|
append(head, $(".cell.num", {
|
|
533
533
|
role: "columnheader"
|
|
534
|
-
}, ( localize(
|
|
534
|
+
}, ( localize(7767, "Current"))));
|
|
535
535
|
append(head, $(".cell.num", {
|
|
536
536
|
role: "columnheader"
|
|
537
|
-
}, ( localize(
|
|
537
|
+
}, ( localize(7768, "≈ tok"))));
|
|
538
538
|
append(head, $(".cell.num", {
|
|
539
539
|
role: "columnheader"
|
|
540
|
-
}, ( localize(
|
|
540
|
+
}, ( localize(7769, "% of current"))));
|
|
541
541
|
rows.forEach((r, i) => {
|
|
542
542
|
const row = append(table, $(".chat-debug-cache-sig-breakdown-row", {
|
|
543
543
|
role: "row"
|
|
@@ -571,7 +571,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
571
571
|
const pct = r.bChars !== undefined && totalB > 0 ? (r.bChars / totalB) * 100 : undefined;
|
|
572
572
|
append(row, $(".cell.num", {
|
|
573
573
|
role: "cell"
|
|
574
|
-
}, pct !== undefined ? ( localize(
|
|
574
|
+
}, pct !== undefined ? ( localize(7770, "{0}%", pct.toFixed(1))) : "—"));
|
|
575
575
|
});
|
|
576
576
|
const totals = append(table, $(".chat-debug-cache-sig-breakdown-row.total", {
|
|
577
577
|
role: "row"
|
|
@@ -581,7 +581,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
581
581
|
}, ""));
|
|
582
582
|
append(totals, $(".cell.chunk", {
|
|
583
583
|
role: "cell"
|
|
584
|
-
}, ( localize(
|
|
584
|
+
}, ( localize(7771, "Total"))));
|
|
585
585
|
append(totals, $(".cell.num", {
|
|
586
586
|
role: "cell"
|
|
587
587
|
}, numberFormatter.value.format(totalA)));
|
|
@@ -593,7 +593,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
593
593
|
}, bTokensPerChar !== undefined ? numberFormatter.value.format(Math.round(totalB * bTokensPerChar)) : "—"));
|
|
594
594
|
append(totals, $(".cell.num", {
|
|
595
595
|
role: "cell"
|
|
596
|
-
}, ( localize(
|
|
596
|
+
}, ( localize(7770, "{0}%", "100"))));
|
|
597
597
|
}
|
|
598
598
|
async resolveSide(event) {
|
|
599
599
|
let content;
|
|
@@ -643,7 +643,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
643
643
|
append(gap, $("span.codicon.codicon-clock", {
|
|
644
644
|
"aria-hidden": "true"
|
|
645
645
|
}));
|
|
646
|
-
append(gap, $("span", undefined, ( localize(
|
|
646
|
+
append(gap, $("span", undefined, ( localize(7772, "{0} min idle · cache likely expired", gapMinutes.toFixed(1)))));
|
|
647
647
|
};
|
|
648
648
|
for (const group of groups) {
|
|
649
649
|
const collapsed = ( this.collapsedGroups.has(group.key));
|
|
@@ -658,16 +658,16 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
658
658
|
header.tabIndex = 0;
|
|
659
659
|
header.setAttribute("role", "button");
|
|
660
660
|
header.setAttribute("aria-expanded", collapsed ? "false" : "true");
|
|
661
|
-
header.title = ( localize(
|
|
661
|
+
header.title = ( localize(7773, "Toggle group"));
|
|
662
662
|
const topLine = append(header, $(".chat-debug-cache-group-top"));
|
|
663
663
|
append(topLine, $("span.chat-debug-cache-group-chev"));
|
|
664
664
|
const headerLine = append(topLine, $(".chat-debug-cache-group-prompt"));
|
|
665
|
-
headerLine.textContent = group.userMessage?.message?.trim() || ( localize(
|
|
665
|
+
headerLine.textContent = group.userMessage?.message?.trim() || ( localize(7774, "(no prompt captured)"));
|
|
666
666
|
const countBadge = append(topLine, $("span.chat-debug-cache-group-count"));
|
|
667
667
|
countBadge.textContent = String(group.turns.length);
|
|
668
668
|
const headerMeta = append(header, $(".chat-debug-cache-group-meta"));
|
|
669
669
|
headerMeta.textContent = group.key;
|
|
670
|
-
headerMeta.title = ( localize(
|
|
670
|
+
headerMeta.title = ( localize(7775, "Request id: {0}", group.key));
|
|
671
671
|
const toggle = () => {
|
|
672
672
|
if (( this.collapsedGroups.has(group.key))) {
|
|
673
673
|
this.collapsedGroups.delete(group.key);
|
|
@@ -706,13 +706,13 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
706
706
|
const main = append(row, $(".chat-debug-cache-turn-main"));
|
|
707
707
|
const top = append(main, $(".chat-debug-cache-turn-top"));
|
|
708
708
|
const source = append(top, $("span.chat-debug-cache-turn-source"));
|
|
709
|
-
source.textContent = evt.requestName || ( localize(
|
|
709
|
+
source.textContent = evt.requestName || ( localize(7776, "Model Turn"));
|
|
710
710
|
if (evt.inputTokens) {
|
|
711
711
|
const hit = computeCacheHit(evt);
|
|
712
712
|
const hitChip = append(top, $(
|
|
713
713
|
"span.chat-debug-cache-turn-chip.chat-debug-cache-turn-hit",
|
|
714
714
|
undefined,
|
|
715
|
-
( localize(
|
|
715
|
+
( localize(7777, "[cache {0}%]", formatCachePctInt(hit)))
|
|
716
716
|
));
|
|
717
717
|
if (hit < 90) {
|
|
718
718
|
hitChip.classList.add("is-bad");
|
|
@@ -720,7 +720,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
720
720
|
}
|
|
721
721
|
if (evt.durationInMillis !== undefined) {
|
|
722
722
|
append(top, $("span.chat-debug-cache-turn-chip", undefined, ( localize(
|
|
723
|
-
|
|
723
|
+
7778,
|
|
724
724
|
"[{0}ms]",
|
|
725
725
|
numberFormatter.value.format(Math.round(evt.durationInMillis))
|
|
726
726
|
))));
|
|
@@ -734,17 +734,17 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
734
734
|
const sub = append(main, $(".chat-debug-cache-turn-sub"));
|
|
735
735
|
sub.textContent = evt.model;
|
|
736
736
|
}
|
|
737
|
-
row.title = ( localize(
|
|
737
|
+
row.title = ( localize(7779, "Click to compare this request against the previous one"));
|
|
738
738
|
row.tabIndex = 0;
|
|
739
739
|
row.setAttribute("role", "button");
|
|
740
740
|
if (i === this.selectedIndex) {
|
|
741
741
|
row.setAttribute("aria-current", "true");
|
|
742
742
|
}
|
|
743
743
|
row.setAttribute("aria-label", ( localize(
|
|
744
|
-
|
|
744
|
+
7780,
|
|
745
745
|
"Turn {0}: {1}",
|
|
746
746
|
i,
|
|
747
|
-
evt.requestName ?? evt.model ?? ( localize(
|
|
747
|
+
evt.requestName ?? evt.model ?? ( localize(7776, "Model Turn"))
|
|
748
748
|
)));
|
|
749
749
|
this.railDisposables.add(
|
|
750
750
|
addDisposableListener(row, EventType.CLICK, () => this.selectTurn(i, {
|
|
@@ -771,19 +771,19 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
771
771
|
renderTitleRow() {
|
|
772
772
|
const titleRow = append(this.content, $(".chat-debug-cache-title-row"));
|
|
773
773
|
const title = append(titleRow, $("h2.chat-debug-cache-title"));
|
|
774
|
-
title.textContent = ( localize(
|
|
774
|
+
title.textContent = ( localize(7781, "Cache Explorer — Prefix Diff"));
|
|
775
775
|
}
|
|
776
776
|
renderSummary(a, b, diff, compareInputMessages, insights, optionsDiff) {
|
|
777
777
|
const row = append(this.content, $(".chat-debug-cache-summary"));
|
|
778
|
-
row.appendChild(this.renderSideCard(a, ( localize(
|
|
779
|
-
row.appendChild(this.renderSideCard(b, ( localize(
|
|
778
|
+
row.appendChild(this.renderSideCard(a, ( localize(7782, "Previous request"))));
|
|
779
|
+
row.appendChild(this.renderSideCard(b, ( localize(7783, "Request"))));
|
|
780
780
|
const hit = computeCacheHit(b.event);
|
|
781
781
|
const breakCard = append(row, $(".chat-debug-cache-card.break"));
|
|
782
782
|
breakCard.classList.add(`is-${maxInsightSeverity(insights)}`);
|
|
783
|
-
append(breakCard, $(".chat-debug-cache-card-h", undefined, ( localize(
|
|
783
|
+
append(breakCard, $(".chat-debug-cache-card-h", undefined, ( localize(7784, "Cache performance"))));
|
|
784
784
|
const primary = primaryInsight(insights);
|
|
785
785
|
const headline = append(breakCard, $(".chat-debug-cache-card-headline"));
|
|
786
|
-
headline.textContent = primary ? ( localize(
|
|
786
|
+
headline.textContent = primary ? ( localize(7785, "{0}% cache hit — {1}", formatCachePct(hit), primary.title)) : ( localize(7786, "{0}% cache hit", formatCachePct(hit)));
|
|
787
787
|
this.appendTokensReusedLine(breakCard, b.event);
|
|
788
788
|
if (b.requestShape.description) {
|
|
789
789
|
const shapeLine = append(
|
|
@@ -793,33 +793,33 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
793
793
|
shapeLine.textContent = b.requestShape.description;
|
|
794
794
|
}
|
|
795
795
|
append(breakCard, $(".chat-debug-cache-perf-rule"));
|
|
796
|
-
append(breakCard, $(".chat-debug-cache-perf-section-h", undefined, ( localize(
|
|
796
|
+
append(breakCard, $(".chat-debug-cache-perf-section-h", undefined, ( localize(7787, "Findings"))));
|
|
797
797
|
const list = append(breakCard, $(".chat-debug-cache-findings"));
|
|
798
798
|
if (insights.length === 0) {
|
|
799
|
-
append(list, $(".chat-debug-cache-finding-detail", undefined, ( localize(
|
|
799
|
+
append(list, $(".chat-debug-cache-finding-detail", undefined, ( localize(7788, "No findings for this request pair."))));
|
|
800
800
|
}
|
|
801
801
|
for (const insight of insights) {
|
|
802
802
|
this.renderFinding(list, insight);
|
|
803
803
|
}
|
|
804
804
|
if (compareInputMessages) {
|
|
805
805
|
append(breakCard, $(".chat-debug-cache-perf-rule"));
|
|
806
|
-
append(breakCard, $(".chat-debug-cache-perf-section-h", undefined, ( localize(
|
|
806
|
+
append(breakCard, $(".chat-debug-cache-perf-section-h", undefined, ( localize(7789, "Diff summary"))));
|
|
807
807
|
const summaryLine = append(breakCard, $(".chat-debug-cache-perf-line"));
|
|
808
808
|
const inPlaceChanged = diff.counts.contentDrift + diff.counts.lengthChange;
|
|
809
809
|
const addedInB = diff.counts.onlyInB;
|
|
810
810
|
const droppedFromA = diff.counts.onlyInA;
|
|
811
|
-
const parts = [( localize(
|
|
811
|
+
const parts = [( localize(7790, "{0} identical", diff.counts.identical)), ( localize(7791, "{0} in-place changed", inPlaceChanged))];
|
|
812
812
|
if (addedInB > 0) {
|
|
813
|
-
parts.push(( localize(
|
|
813
|
+
parts.push(( localize(7792, "{0} added in this request", addedInB)));
|
|
814
814
|
}
|
|
815
815
|
if (droppedFromA > 0) {
|
|
816
|
-
parts.push(( localize(
|
|
816
|
+
parts.push(( localize(7793, "{0} dropped from previous", droppedFromA)));
|
|
817
817
|
}
|
|
818
818
|
summaryLine.textContent = parts.join(" · ");
|
|
819
819
|
}
|
|
820
820
|
if (optionsDiff.length > 0) {
|
|
821
821
|
const optsLine = append(this.content, $(".chat-debug-cache-options-banner"));
|
|
822
|
-
optsLine.textContent = ( localize(
|
|
822
|
+
optsLine.textContent = ( localize(7794, "Options changed: {0}", ( optionsDiff.map(
|
|
823
823
|
d => `${d.key} (${formatOptionValue(d.previous)} \u2192 ${formatOptionValue(d.current)})`
|
|
824
824
|
)).join(", ")));
|
|
825
825
|
}
|
|
@@ -844,7 +844,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
844
844
|
append(body, $(".chat-debug-cache-finding-hint", undefined, insight.hint));
|
|
845
845
|
}
|
|
846
846
|
if (isLink) {
|
|
847
|
-
row.title = ( localize(
|
|
847
|
+
row.title = ( localize(7795, "Reveal {0} in Components", insight.component));
|
|
848
848
|
this.contentDisposables.add(
|
|
849
849
|
addDisposableListener(row, EventType.CLICK, () => this.revealComponent(insight.component))
|
|
850
850
|
);
|
|
@@ -879,40 +879,40 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
879
879
|
if (title) {
|
|
880
880
|
append(card, $(".chat-debug-cache-card-h", undefined, title));
|
|
881
881
|
}
|
|
882
|
-
this.appendKv(card, ( localize(
|
|
883
|
-
this.appendKv(card, ( localize(
|
|
884
|
-
this.appendKv(card, ( localize(
|
|
885
|
-
this.appendKv(card, ( localize(
|
|
886
|
-
this.appendKv(card, ( localize(
|
|
882
|
+
this.appendKv(card, ( localize(7796, "model")), data.event.model ?? "—");
|
|
883
|
+
this.appendKv(card, ( localize(7797, "input tok")), formatTokens(data.event.inputTokens));
|
|
884
|
+
this.appendKv(card, ( localize(7798, "cached tok")), formatTokens(data.event.cachedTokens));
|
|
885
|
+
this.appendKv(card, ( localize(7799, "cache hit")), `${formatCachePct(computeCacheHit(data.event))}%`);
|
|
886
|
+
this.appendKv(card, ( localize(7800, "shape")), data.requestShape.label);
|
|
887
887
|
const startTime = data.event.created;
|
|
888
888
|
const endTime = data.event.durationInMillis !== undefined ? ( new Date(startTime.getTime() + data.event.durationInMillis)) : undefined;
|
|
889
|
-
this.appendKv(card, ( localize(
|
|
889
|
+
this.appendKv(card, ( localize(7801, "startTime")), startTime.toISOString(), true);
|
|
890
890
|
if (endTime) {
|
|
891
|
-
this.appendKv(card, ( localize(
|
|
891
|
+
this.appendKv(card, ( localize(7802, "endTime")), endTime.toISOString(), true);
|
|
892
892
|
}
|
|
893
893
|
if (data.event.durationInMillis !== undefined) {
|
|
894
|
-
this.appendKv(card, ( localize(
|
|
894
|
+
this.appendKv(card, ( localize(7803, "duration")), `${numberFormatter.value.format(Math.round(data.event.durationInMillis))}ms`);
|
|
895
895
|
}
|
|
896
896
|
const ttft = data.content?.timeToFirstTokenInMillis;
|
|
897
897
|
if (ttft !== undefined) {
|
|
898
|
-
this.appendKv(card, ( localize(
|
|
898
|
+
this.appendKv(card, ( localize(7804, "timeToFirstToken")), `${numberFormatter.value.format(Math.round(ttft))}ms`);
|
|
899
899
|
}
|
|
900
900
|
const requestId = data.content?.requestId ?? data.event.parentEventId ?? data.event.id;
|
|
901
901
|
if (requestId) {
|
|
902
|
-
this.appendKv(card, ( localize(
|
|
902
|
+
this.appendKv(card, ( localize(7805, "requestId")), requestId, true);
|
|
903
903
|
}
|
|
904
904
|
return card;
|
|
905
905
|
}
|
|
906
906
|
renderSingleSummary(b) {
|
|
907
907
|
const row = append(this.content, $(".chat-debug-cache-summary"));
|
|
908
|
-
row.appendChild(this.renderSideCard(b, ( localize(
|
|
908
|
+
row.appendChild(this.renderSideCard(b, ( localize(7783, "Request"))));
|
|
909
909
|
const note = append(row, $(".chat-debug-cache-card.break"));
|
|
910
|
-
append(note, $(".chat-debug-cache-card-h", undefined, ( localize(
|
|
910
|
+
append(note, $(".chat-debug-cache-card-h", undefined, ( localize(7806, "First request in session"))));
|
|
911
911
|
const headline = append(note, $(".chat-debug-cache-card-headline"));
|
|
912
912
|
headline.textContent = `${formatCachePct(computeCacheHit(b.event))}%`;
|
|
913
913
|
const sub = append(note, $(".chat-debug-cache-card-sub"));
|
|
914
914
|
sub.textContent = ( localize(
|
|
915
|
-
|
|
915
|
+
7807,
|
|
916
916
|
"OTel-reported cache hit. Nothing earlier in this session to diff against — the system prompt and tools may still match a previous session's cache."
|
|
917
917
|
));
|
|
918
918
|
if (b.requestShape.description) {
|
|
@@ -922,17 +922,17 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
922
922
|
}
|
|
923
923
|
renderTokenOnlySummary(a, b) {
|
|
924
924
|
const row = append(this.content, $(".chat-debug-cache-summary"));
|
|
925
|
-
row.appendChild(this.renderSideCard(a, ( localize(
|
|
926
|
-
row.appendChild(this.renderSideCard(b, ( localize(
|
|
925
|
+
row.appendChild(this.renderSideCard(a, ( localize(7782, "Previous request"))));
|
|
926
|
+
row.appendChild(this.renderSideCard(b, ( localize(7783, "Request"))));
|
|
927
927
|
const card = append(row, $(".chat-debug-cache-card.break"));
|
|
928
|
-
append(card, $(".chat-debug-cache-card-h", undefined, ( localize(
|
|
928
|
+
append(card, $(".chat-debug-cache-card-h", undefined, ( localize(7784, "Cache performance"))));
|
|
929
929
|
const headline = append(card, $(".chat-debug-cache-card-headline"));
|
|
930
|
-
headline.textContent = ( localize(
|
|
930
|
+
headline.textContent = ( localize(7786, "{0}% cache hit", formatCachePct(computeCacheHit(b.event))));
|
|
931
931
|
this.appendTokensReusedLine(card, b.event);
|
|
932
932
|
append(card, $(".chat-debug-cache-perf-rule"));
|
|
933
933
|
const note = append(card, $(".chat-debug-cache-perf-line.chat-debug-cache-request-shape-note"));
|
|
934
934
|
note.textContent = ( localize(
|
|
935
|
-
|
|
935
|
+
7808,
|
|
936
936
|
"The request-side prompt (system instructions, tool catalog, and input messages) was not captured for this session, so the prompt-signature diff and root-cause findings are unavailable. The cache-hit numbers above come from reported token usage."
|
|
937
937
|
));
|
|
938
938
|
}
|
|
@@ -942,14 +942,14 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
942
942
|
const lostTokens = Math.max(0, inputTokens - cachedTokens);
|
|
943
943
|
const line = append(parent, $(".chat-debug-cache-card-sub"));
|
|
944
944
|
line.textContent = lostTokens > 0 && inputTokens > 0 ? ( localize(
|
|
945
|
-
|
|
945
|
+
7809,
|
|
946
946
|
"{0} of {1} input tokens reused · {2} uncached ({3}%)",
|
|
947
947
|
numberFormatter.value.format(cachedTokens),
|
|
948
948
|
numberFormatter.value.format(inputTokens),
|
|
949
949
|
numberFormatter.value.format(lostTokens),
|
|
950
950
|
formatCachePct((lostTokens / inputTokens) * 100)
|
|
951
951
|
)) : ( localize(
|
|
952
|
-
|
|
952
|
+
7810,
|
|
953
953
|
"{0} of {1} input tokens reused",
|
|
954
954
|
numberFormatter.value.format(cachedTokens),
|
|
955
955
|
numberFormatter.value.format(inputTokens)
|
|
@@ -968,14 +968,14 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
968
968
|
const continuationComparison = b.requestShape.isContinuation;
|
|
969
969
|
const section = append(this.content, $(".chat-debug-cache-section"));
|
|
970
970
|
const heading = append(section, $("h3.chat-debug-cache-section-h"));
|
|
971
|
-
heading.textContent = continuationComparison ? ( localize(
|
|
971
|
+
heading.textContent = continuationComparison ? ( localize(7811, "Visible Request Signature")) : ( localize(7812, "Prompt Signature"));
|
|
972
972
|
if (continuationComparison) {
|
|
973
973
|
const note = append(
|
|
974
974
|
section,
|
|
975
975
|
$(".chat-debug-cache-sig-summary.chat-debug-cache-request-shape-note")
|
|
976
976
|
);
|
|
977
977
|
note.textContent = ( localize(
|
|
978
|
-
|
|
978
|
+
7813,
|
|
979
979
|
"For Responses API continuations, this shows the captured request inputs: system instructions, tools sent on this request, and the visible input delta. Earlier conversation state is referenced by previous response id and is not expanded here."
|
|
980
980
|
));
|
|
981
981
|
}
|
|
@@ -983,14 +983,14 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
983
983
|
for (const role of ["system", "user", "assistant", "tool", "tool_search", "tools"]) {
|
|
984
984
|
const entry = append(legend, $("span.chat-debug-cache-sig-legend-entry"));
|
|
985
985
|
append(entry, $(`span.chat-debug-cache-sig-swatch.role-${roleClass(role)}`));
|
|
986
|
-
append(entry, $$1("span", undefined, role === "tools" ? ( localize(
|
|
986
|
+
append(entry, $$1("span", undefined, role === "tools" ? ( localize(7814, "tools (catalog)")) : role === "tool_search" ? ( localize(7815, "tool search")) : role));
|
|
987
987
|
}
|
|
988
988
|
const driftEntry = append(legend, $("span.chat-debug-cache-sig-legend-entry"));
|
|
989
989
|
append(driftEntry, $("span.chat-debug-cache-sig-swatch.role-drift"));
|
|
990
|
-
append(driftEntry, $$1("span", undefined, ( localize(
|
|
990
|
+
append(driftEntry, $$1("span", undefined, ( localize(7816, "drift"))));
|
|
991
991
|
const groupEntry = append(legend, $("span.chat-debug-cache-sig-legend-entry"));
|
|
992
992
|
append(groupEntry, $("span.chat-debug-cache-sig-swatch.role-coalesced"));
|
|
993
|
-
append(groupEntry, $$1("span", undefined, ( localize(
|
|
993
|
+
append(groupEntry, $$1("span", undefined, ( localize(7817, "small messages (grouped)"))));
|
|
994
994
|
const toSegments = (side, isA) => {
|
|
995
995
|
const segs = [];
|
|
996
996
|
const sys = side.system;
|
|
@@ -1064,11 +1064,11 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1064
1064
|
const bar = append(row, $(".chat-debug-cache-sig-bar"));
|
|
1065
1065
|
const sideTotal = segs.reduce((sum, s) => sum + s.chars, 0);
|
|
1066
1066
|
const sizeText = chars => tokensPerChar !== undefined ? ( localize(
|
|
1067
|
-
|
|
1067
|
+
7818,
|
|
1068
1068
|
"{0} chars (≈ {1} tok)",
|
|
1069
1069
|
numberFormatter.value.format(chars),
|
|
1070
1070
|
numberFormatter.value.format(Math.round(chars * tokensPerChar))
|
|
1071
|
-
)) : ( localize(
|
|
1071
|
+
)) : ( localize(7819, "{0} chars", numberFormatter.value.format(chars)));
|
|
1072
1072
|
const renderSegment = s => {
|
|
1073
1073
|
const seg = append(bar, $(`span.chat-debug-cache-sig-seg.role-${roleClass(s.role)}`));
|
|
1074
1074
|
if (s.drift) {
|
|
@@ -1087,12 +1087,12 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1087
1087
|
}
|
|
1088
1088
|
seg.style.width = `${(s.chars / max) * 100}%`;
|
|
1089
1089
|
seg.title = s.drift ? ( localize(
|
|
1090
|
-
|
|
1090
|
+
7820,
|
|
1091
1091
|
"{0} ({1}): {2} — drifted. Click to inspect.",
|
|
1092
1092
|
s.component,
|
|
1093
1093
|
s.label,
|
|
1094
1094
|
sizeText(s.chars)
|
|
1095
|
-
)) : ( localize(
|
|
1095
|
+
)) : ( localize(7821, "{0} ({1}): {2}", s.component, s.label, sizeText(s.chars)));
|
|
1096
1096
|
if (s.drift) {
|
|
1097
1097
|
seg.setAttribute("aria-label", seg.title);
|
|
1098
1098
|
}
|
|
@@ -1109,7 +1109,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1109
1109
|
const seg = append(bar, $("span.chat-debug-cache-sig-seg.role-coalesced"));
|
|
1110
1110
|
seg.style.width = `${(chars / max) * 100}%`;
|
|
1111
1111
|
seg.title = ( localize(
|
|
1112
|
-
|
|
1112
|
+
7822,
|
|
1113
1113
|
"{0} … {1}: {2} small messages, {3}",
|
|
1114
1114
|
group[0].component,
|
|
1115
1115
|
group[group.length - 1].component,
|
|
@@ -1143,14 +1143,14 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1143
1143
|
if (breakPos !== undefined && diff.break) {
|
|
1144
1144
|
const line = append(bar, $(".chat-debug-cache-sig-break"));
|
|
1145
1145
|
line.style.left = `${(breakPos / max) * 100}%`;
|
|
1146
|
-
line.title = ( localize(
|
|
1146
|
+
line.title = ( localize(7823, "Cache break at messages[{0}]", diff.break.index));
|
|
1147
1147
|
}
|
|
1148
|
-
append(row, $(".chat-debug-cache-sig-lane-total", undefined, ( localize(
|
|
1148
|
+
append(row, $(".chat-debug-cache-sig-lane-total", undefined, ( localize(7824, "{0} chars", numberFormatter.value.format(sideTotal)))));
|
|
1149
1149
|
return row;
|
|
1150
1150
|
};
|
|
1151
1151
|
const lanes = append(section, $(".chat-debug-cache-sig-lanes"));
|
|
1152
|
-
lanes.appendChild(buildLane(( localize(
|
|
1153
|
-
lanes.appendChild(buildLane(( localize(
|
|
1152
|
+
lanes.appendChild(buildLane(( localize(7825, "Previous")), aSegs, breakCharPos(aSegs), aTokensPerChar));
|
|
1153
|
+
lanes.appendChild(buildLane(( localize(7826, "Current")), bSegs, breakCharPos(bSegs), bTokensPerChar));
|
|
1154
1154
|
if (compareInputMessages && totalB > 0) {
|
|
1155
1155
|
let reused = 0;
|
|
1156
1156
|
let sawDrift = false;
|
|
@@ -1165,13 +1165,13 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1165
1165
|
reused = totalB;
|
|
1166
1166
|
}
|
|
1167
1167
|
const railRow = append(lanes, $(".chat-debug-cache-sig-lane-row.reuse"));
|
|
1168
|
-
append(railRow, $(".chat-debug-cache-sig-lane-label", undefined, ( localize(
|
|
1168
|
+
append(railRow, $(".chat-debug-cache-sig-lane-label", undefined, ( localize(7827, "Match"))));
|
|
1169
1169
|
const rail = append(railRow, $(".chat-debug-cache-sig-reuse-rail"));
|
|
1170
1170
|
if (reused > 0) {
|
|
1171
1171
|
const ok = append(rail, $("span.chat-debug-cache-sig-reuse-seg.is-reused"));
|
|
1172
1172
|
ok.style.width = `${(reused / max) * 100}%`;
|
|
1173
1173
|
ok.title = ( localize(
|
|
1174
|
-
|
|
1174
|
+
7828,
|
|
1175
1175
|
"Byte-identical to the previous request: {0} chars can be served from cache",
|
|
1176
1176
|
numberFormatter.value.format(reused)
|
|
1177
1177
|
));
|
|
@@ -1180,12 +1180,12 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1180
1180
|
const bad = append(rail, $("span.chat-debug-cache-sig-reuse-seg.is-recomputed"));
|
|
1181
1181
|
bad.style.width = `${((totalB - reused) / max) * 100}%`;
|
|
1182
1182
|
bad.title = ( localize(
|
|
1183
|
-
|
|
1183
|
+
7829,
|
|
1184
1184
|
"Diverges from the previous request: {0} chars are recomputed",
|
|
1185
1185
|
numberFormatter.value.format(totalB - reused)
|
|
1186
1186
|
));
|
|
1187
1187
|
}
|
|
1188
|
-
append(railRow, $(".chat-debug-cache-sig-lane-total", undefined, ( localize(
|
|
1188
|
+
append(railRow, $(".chat-debug-cache-sig-lane-total", undefined, ( localize(7830, "{0}% match", String(Math.floor((reused / totalB) * 100))))));
|
|
1189
1189
|
}
|
|
1190
1190
|
this.renderChunkBreakdown(
|
|
1191
1191
|
section,
|
|
@@ -1200,14 +1200,14 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1200
1200
|
if ((a.system ?? "") === (b.system ?? "")) {
|
|
1201
1201
|
shared += b.system?.length ?? 0;
|
|
1202
1202
|
} else {
|
|
1203
|
-
firstDrift = ( localize(
|
|
1203
|
+
firstDrift = ( localize(7831, "system"));
|
|
1204
1204
|
}
|
|
1205
1205
|
}
|
|
1206
1206
|
if (!firstDrift && (a.tools || b.tools)) {
|
|
1207
1207
|
if ((a.tools ?? "") === (b.tools ?? "")) {
|
|
1208
1208
|
shared += b.tools?.length ?? 0;
|
|
1209
1209
|
} else {
|
|
1210
|
-
firstDrift = ( localize(
|
|
1210
|
+
firstDrift = ( localize(7832, "tools catalog"));
|
|
1211
1211
|
}
|
|
1212
1212
|
}
|
|
1213
1213
|
if (!firstDrift) {
|
|
@@ -1223,13 +1223,13 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1223
1223
|
const summary = append(section, $(".chat-debug-cache-sig-summary"));
|
|
1224
1224
|
if (firstDrift) {
|
|
1225
1225
|
summary.textContent = continuationComparison ? ( localize(
|
|
1226
|
-
|
|
1226
|
+
7833,
|
|
1227
1227
|
"{0} of {1} captured request chars match before first captured drift: {2}",
|
|
1228
1228
|
numberFormatter.value.format(shared),
|
|
1229
1229
|
numberFormatter.value.format(totalB),
|
|
1230
1230
|
firstDrift
|
|
1231
1231
|
)) : ( localize(
|
|
1232
|
-
|
|
1232
|
+
7834,
|
|
1233
1233
|
"{0} of {1} chars reused · break at {2}",
|
|
1234
1234
|
numberFormatter.value.format(shared),
|
|
1235
1235
|
numberFormatter.value.format(totalB),
|
|
@@ -1237,12 +1237,12 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1237
1237
|
));
|
|
1238
1238
|
} else {
|
|
1239
1239
|
summary.textContent = continuationComparison ? ( localize(
|
|
1240
|
-
|
|
1240
|
+
7835,
|
|
1241
1241
|
"{0} of {1} captured request chars match · no captured divergence detected",
|
|
1242
1242
|
numberFormatter.value.format(shared),
|
|
1243
1243
|
numberFormatter.value.format(totalB)
|
|
1244
1244
|
)) : ( localize(
|
|
1245
|
-
|
|
1245
|
+
7836,
|
|
1246
1246
|
"{0} of {1} chars reused · no divergence detected",
|
|
1247
1247
|
numberFormatter.value.format(shared),
|
|
1248
1248
|
numberFormatter.value.format(totalB)
|
|
@@ -1257,12 +1257,12 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1257
1257
|
return;
|
|
1258
1258
|
}
|
|
1259
1259
|
const section = append(this.content, $(".chat-debug-cache-section"));
|
|
1260
|
-
append(section, $("h3.chat-debug-cache-section-h", undefined, ( localize(
|
|
1260
|
+
append(section, $("h3.chat-debug-cache-section-h", undefined, ( localize(7837, "Request Options"))));
|
|
1261
1261
|
const table = append(section, $(".chat-debug-cache-options-table"));
|
|
1262
1262
|
const head = append(table, $(".chat-debug-cache-options-row.head"));
|
|
1263
|
-
append(head, $(".chat-debug-cache-options-cell.key", undefined, ( localize(
|
|
1264
|
-
append(head, $(".chat-debug-cache-options-cell", undefined, ( localize(
|
|
1265
|
-
append(head, $(".chat-debug-cache-options-cell", undefined, ( localize(
|
|
1263
|
+
append(head, $(".chat-debug-cache-options-cell.key", undefined, ( localize(7838, "Option"))));
|
|
1264
|
+
append(head, $(".chat-debug-cache-options-cell", undefined, ( localize(7839, "Previous"))));
|
|
1265
|
+
append(head, $(".chat-debug-cache-options-cell", undefined, ( localize(7840, "Current"))));
|
|
1266
1266
|
const sortedKeys = [...keys].sort((x, y) => x.localeCompare(y));
|
|
1267
1267
|
for (const key of sortedKeys) {
|
|
1268
1268
|
const row = append(table, $(".chat-debug-cache-options-row"));
|
|
@@ -1280,14 +1280,14 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1280
1280
|
renderComponents(drift, a, b, compareInputMessages, identicalCount) {
|
|
1281
1281
|
this.componentElements.clear();
|
|
1282
1282
|
const section = append(this.content, $(".chat-debug-cache-section"));
|
|
1283
|
-
append(section, $("h3.chat-debug-cache-section-h", undefined, ( localize(
|
|
1283
|
+
append(section, $("h3.chat-debug-cache-section-h", undefined, ( localize(7841, "Components"))));
|
|
1284
1284
|
if (!compareInputMessages && b.requestShape.isContinuation) {
|
|
1285
1285
|
const note = append(
|
|
1286
1286
|
section,
|
|
1287
1287
|
$(".chat-debug-cache-sig-summary.chat-debug-cache-request-shape-note")
|
|
1288
1288
|
);
|
|
1289
1289
|
note.textContent = ( localize(
|
|
1290
|
-
|
|
1290
|
+
7842,
|
|
1291
1291
|
"This request uses previous_response_id, so input messages are not positionally diffed against the previous request. Components below show cache-key shape changes; the current continuation delta is shown separately."
|
|
1292
1292
|
));
|
|
1293
1293
|
}
|
|
@@ -1295,7 +1295,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1295
1295
|
const effectiveDrift = !compareInputMessages && b.requestShape.isContinuation && b.inputMessages.length > 0 ? [...drift, currentDeltaComponent(b)] : drift;
|
|
1296
1296
|
if (effectiveDrift.length === 0) {
|
|
1297
1297
|
const empty = append(acc, $(".chat-debug-cache-acc-empty"));
|
|
1298
|
-
empty.textContent = ( localize(
|
|
1298
|
+
empty.textContent = ( localize(7843, "All components are identical between A and B."));
|
|
1299
1299
|
return;
|
|
1300
1300
|
}
|
|
1301
1301
|
for (const c of effectiveDrift) {
|
|
@@ -1331,7 +1331,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1331
1331
|
const badge = append(head, $(`span.chat-debug-cache-acc-badge.${c.status}`));
|
|
1332
1332
|
badge.textContent = badgeLabel(c.status);
|
|
1333
1333
|
const sizes = append(head, $("span.chat-debug-cache-acc-sizes"));
|
|
1334
|
-
sizes.textContent = ( localize(
|
|
1334
|
+
sizes.textContent = ( localize(7844, "{0} → {1} chars", formatTokens(c.aSize), formatTokens(c.bSize)));
|
|
1335
1335
|
const body = append(item, $(".chat-debug-cache-acc-body"));
|
|
1336
1336
|
const aText = c.name === CURRENT_CONTINUATION_DELTA_COMPONENT ? "" : textForComponent(c, a);
|
|
1337
1337
|
const bText = c.name === CURRENT_CONTINUATION_DELTA_COMPONENT ? continuationDeltaText(b) : textForComponent(c, b);
|
|
@@ -1346,7 +1346,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1346
1346
|
const dv = analyzeStringDivergence(aText, bText);
|
|
1347
1347
|
if (dv) {
|
|
1348
1348
|
const changeNote = append(body, $(".chat-debug-cache-acc-change-note"));
|
|
1349
|
-
changeNote.textContent = ( localize(
|
|
1349
|
+
changeNote.textContent = ( localize(7845, "What changed: {0}", describeStringDivergence(dv)));
|
|
1350
1350
|
}
|
|
1351
1351
|
}
|
|
1352
1352
|
body.appendChild(this.renderComponentDiff(aText, bText, c.aSize, c.bSize));
|
|
@@ -1372,7 +1372,7 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1372
1372
|
if (compareInputMessages && identicalCount > 0) {
|
|
1373
1373
|
const note = append(section, $(".chat-debug-cache-acc-identical-note"));
|
|
1374
1374
|
note.textContent = ( localize(
|
|
1375
|
-
|
|
1375
|
+
7846,
|
|
1376
1376
|
"{0} identical message(s) not shown — they extend the shared, cache-servable prefix.",
|
|
1377
1377
|
identicalCount
|
|
1378
1378
|
));
|
|
@@ -1381,14 +1381,14 @@ let ChatDebugCacheExplorerView = class ChatDebugCacheExplorerView extends Dispos
|
|
|
1381
1381
|
renderComponentDiff(aText, bText, aSize, bSize) {
|
|
1382
1382
|
const grid = $(".chat-debug-cache-diff");
|
|
1383
1383
|
const colA = append(grid, $(".chat-debug-cache-diff-col"));
|
|
1384
|
-
append(colA, $("h4", undefined, ( localize(
|
|
1384
|
+
append(colA, $("h4", undefined, ( localize(7847, "Previous · {0} chars", numberFormatter.value.format(aSize)))));
|
|
1385
1385
|
const aBody = append(colA, $(".chat-debug-cache-diff-body"));
|
|
1386
1386
|
const colB = append(grid, $(".chat-debug-cache-diff-col"));
|
|
1387
|
-
append(colB, $("h4", undefined, ( localize(
|
|
1387
|
+
append(colB, $("h4", undefined, ( localize(7848, "Current · {0} chars", numberFormatter.value.format(bSize)))));
|
|
1388
1388
|
const bBody = append(colB, $(".chat-debug-cache-diff-body"));
|
|
1389
1389
|
if (!aText && !bText) {
|
|
1390
|
-
aBody.textContent = ( localize(
|
|
1391
|
-
bBody.textContent = ( localize(
|
|
1390
|
+
aBody.textContent = ( localize(7849, "(not present)"));
|
|
1391
|
+
bBody.textContent = ( localize(7849, "(not present)"));
|
|
1392
1392
|
return grid;
|
|
1393
1393
|
}
|
|
1394
1394
|
renderInlineDiff(aBody, bBody, aText, bText);
|
|
@@ -1435,7 +1435,7 @@ function alignSignatureChunks(aSegs, bSegs) {
|
|
|
1435
1435
|
return rows;
|
|
1436
1436
|
}
|
|
1437
1437
|
function agentKey(turn) {
|
|
1438
|
-
return turn.requestName?.trim() || ( localize(
|
|
1438
|
+
return turn.requestName?.trim() || ( localize(7850, "(unnamed)"));
|
|
1439
1439
|
}
|
|
1440
1440
|
function computeAgentCounts(turns) {
|
|
1441
1441
|
const counts = ( new Map());
|
|
@@ -1572,15 +1572,15 @@ function findingIcon(severity) {
|
|
|
1572
1572
|
function badgeLabel(status) {
|
|
1573
1573
|
switch (status) {
|
|
1574
1574
|
case CacheDiffKind.Identical:
|
|
1575
|
-
return localize(
|
|
1575
|
+
return localize(7851, "identical");
|
|
1576
1576
|
case CacheDiffKind.ContentDrift:
|
|
1577
|
-
return localize(
|
|
1577
|
+
return localize(7852, "content drift");
|
|
1578
1578
|
case CacheDiffKind.LengthChange:
|
|
1579
|
-
return localize(
|
|
1579
|
+
return localize(7853, "length change");
|
|
1580
1580
|
case CacheDiffKind.OnlyInA:
|
|
1581
|
-
return localize(
|
|
1581
|
+
return localize(7854, "only in A");
|
|
1582
1582
|
case CacheDiffKind.OnlyInB:
|
|
1583
|
-
return localize(
|
|
1583
|
+
return localize(7855, "only in B");
|
|
1584
1584
|
}
|
|
1585
1585
|
}
|
|
1586
1586
|
function describeTruncation(aText, bText) {
|
|
@@ -1592,16 +1592,16 @@ function describeTruncation(aText, bText) {
|
|
|
1592
1592
|
}
|
|
1593
1593
|
if (aMatch && bMatch) {
|
|
1594
1594
|
return localize(
|
|
1595
|
-
|
|
1595
|
+
7856,
|
|
1596
1596
|
"Both sides truncated by the OTel attribute cap (originals were {0} and {1} chars) — diff may be partial.",
|
|
1597
1597
|
numberFormatter.value.format(parseInt(aMatch[1], 10)),
|
|
1598
1598
|
numberFormatter.value.format(parseInt(bMatch[1], 10))
|
|
1599
1599
|
);
|
|
1600
1600
|
}
|
|
1601
1601
|
const match = (aMatch ?? bMatch);
|
|
1602
|
-
const side = aMatch ? ( localize(
|
|
1602
|
+
const side = aMatch ? ( localize(7857, "Previous")) : ( localize(7858, "Current"));
|
|
1603
1603
|
return localize(
|
|
1604
|
-
|
|
1604
|
+
7859,
|
|
1605
1605
|
"{0} side truncated by the OTel attribute cap (original was {1} chars) — diff may be partial.",
|
|
1606
1606
|
side,
|
|
1607
1607
|
numberFormatter.value.format(parseInt(match[1], 10))
|
|
@@ -1628,9 +1628,9 @@ function describeRequestShape(inputMessages, requestShapeJson) {
|
|
|
1628
1628
|
const hasOnlyToolOutput = inputMessages.length > 0 && inputMessages.every(m => m.role === "tool");
|
|
1629
1629
|
if (hasPreviousResponseId && hasToolSearchOutput) {
|
|
1630
1630
|
return {
|
|
1631
|
-
label: ( localize(
|
|
1631
|
+
label: ( localize(7860, "tool_search_output continuation")),
|
|
1632
1632
|
description: ( localize(
|
|
1633
|
-
|
|
1633
|
+
7861,
|
|
1634
1634
|
"Responses API continuation: the displayed input is only the tool-search delta sent over the wire. The provider reconstructs prior context from the previous response id."
|
|
1635
1635
|
)),
|
|
1636
1636
|
isContinuation: true,
|
|
@@ -1639,9 +1639,9 @@ function describeRequestShape(inputMessages, requestShapeJson) {
|
|
|
1639
1639
|
}
|
|
1640
1640
|
if (hasPreviousResponseId && hasOnlyToolOutput) {
|
|
1641
1641
|
return {
|
|
1642
|
-
label: ( localize(
|
|
1642
|
+
label: ( localize(7862, "tool output continuation")),
|
|
1643
1643
|
description: ( localize(
|
|
1644
|
-
|
|
1644
|
+
7863,
|
|
1645
1645
|
"Responses API continuation: the displayed input is only the tool-output delta sent over the wire. The provider reconstructs prior context from the previous response id."
|
|
1646
1646
|
)),
|
|
1647
1647
|
isContinuation: true,
|
|
@@ -1650,9 +1650,9 @@ function describeRequestShape(inputMessages, requestShapeJson) {
|
|
|
1650
1650
|
}
|
|
1651
1651
|
if (hasPreviousResponseId) {
|
|
1652
1652
|
return {
|
|
1653
|
-
label: ( localize(
|
|
1653
|
+
label: ( localize(7864, "Responses API continuation")),
|
|
1654
1654
|
description: ( localize(
|
|
1655
|
-
|
|
1655
|
+
7865,
|
|
1656
1656
|
"Responses API continuation: the displayed input is only the delta sent over the wire. The provider reconstructs prior context from the previous response id."
|
|
1657
1657
|
)),
|
|
1658
1658
|
isContinuation: true,
|
|
@@ -1661,9 +1661,9 @@ function describeRequestShape(inputMessages, requestShapeJson) {
|
|
|
1661
1661
|
}
|
|
1662
1662
|
if (hasToolSearchOutput) {
|
|
1663
1663
|
return {
|
|
1664
|
-
label: ( localize(
|
|
1664
|
+
label: ( localize(7866, "tool_search_output request")),
|
|
1665
1665
|
description: ( localize(
|
|
1666
|
-
|
|
1666
|
+
7867,
|
|
1667
1667
|
"This request contains a Responses API tool_search_output item. No previous-response continuation marker was captured, so the displayed input may be a full or history-sliced request rather than only a continuation delta."
|
|
1668
1668
|
)),
|
|
1669
1669
|
isContinuation: false,
|
|
@@ -1672,14 +1672,14 @@ function describeRequestShape(inputMessages, requestShapeJson) {
|
|
|
1672
1672
|
}
|
|
1673
1673
|
if (hasOnlyToolOutput) {
|
|
1674
1674
|
return {
|
|
1675
|
-
label: ( localize(
|
|
1675
|
+
label: ( localize(7868, "tool output request")),
|
|
1676
1676
|
description: undefined,
|
|
1677
1677
|
isContinuation: false,
|
|
1678
1678
|
...common
|
|
1679
1679
|
};
|
|
1680
1680
|
}
|
|
1681
1681
|
return {
|
|
1682
|
-
label: ( localize(
|
|
1682
|
+
label: ( localize(7869, "full input request")),
|
|
1683
1683
|
description: undefined,
|
|
1684
1684
|
isContinuation: false,
|
|
1685
1685
|
...common
|
|
@@ -1733,7 +1733,7 @@ function sideOptions(side) {
|
|
|
1733
1733
|
const hasEffort = out["output_config.effort"] !== undefined || out["reasoning.effort"] !== undefined || out["reasoning_effort"] !== undefined;
|
|
1734
1734
|
const hasThinking = ( ( Object.keys(out)).some(k => k === "thinking" || k.startsWith("thinking.")));
|
|
1735
1735
|
if (!hasEffort && hasThinking) {
|
|
1736
|
-
out["output_config.effort"] = ( localize(
|
|
1736
|
+
out["output_config.effort"] = ( localize(7870, "(not sent — provider default)"));
|
|
1737
1737
|
}
|
|
1738
1738
|
return out;
|
|
1739
1739
|
}
|