@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
|
@@ -77,12 +77,12 @@ let ChatWindowNotifier = class ChatWindowNotifier extends Disposable {
|
|
|
77
77
|
mode: FocusMode.Notify
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
|
-
const notificationTitle = info.title ? ( localize(
|
|
80
|
+
const notificationTitle = info.title ? ( localize(6702, "Session: {0}", info.title)) : ( localize(6703, "Untitled Session"));
|
|
81
81
|
const cts = ( new CancellationTokenSource());
|
|
82
82
|
this._activeNotifications.set(sessionResource, toDisposable(() => cts.dispose(true)));
|
|
83
83
|
const isQuestionCarousel = this._isQuestionCarouselPending(sessionResource);
|
|
84
84
|
try {
|
|
85
|
-
const actionLabel = isQuestionCarousel ? ( localize(
|
|
85
|
+
const actionLabel = isQuestionCarousel ? ( localize(6704, "Open Session")) : ( localize(6705, "Allow"));
|
|
86
86
|
const result = await this._hostService.showToast({
|
|
87
87
|
title: this._sanitizeOSToastText(notificationTitle),
|
|
88
88
|
body: this._getNotificationBody(sessionResource, info, isQuestionCarousel),
|
|
@@ -121,7 +121,7 @@ let ChatWindowNotifier = class ChatWindowNotifier extends Disposable {
|
|
|
121
121
|
}
|
|
122
122
|
_getNotificationBody(sessionResource, info, isQuestionCarousel) {
|
|
123
123
|
if (isQuestionCarousel) {
|
|
124
|
-
return localize(
|
|
124
|
+
return localize(6706, "Questions need your input.");
|
|
125
125
|
}
|
|
126
126
|
const terminalCommand = this._getPendingTerminalCommand(sessionResource);
|
|
127
127
|
if (terminalCommand) {
|
|
@@ -130,7 +130,7 @@ let ChatWindowNotifier = class ChatWindowNotifier extends Disposable {
|
|
|
130
130
|
if (info.detail) {
|
|
131
131
|
return this._sanitizeOSToastText(info.detail);
|
|
132
132
|
}
|
|
133
|
-
return localize(
|
|
133
|
+
return localize(6707, "Approval needed to continue.");
|
|
134
134
|
}
|
|
135
135
|
_getPendingTerminalCommand(sessionResource) {
|
|
136
136
|
const model = this._chatService.getSession(sessionResource);
|
|
@@ -51,8 +51,8 @@ let AgentPluginRecommendations = class AgentPluginRecommendations extends Dispos
|
|
|
51
51
|
if (uninstalledCount === 0) {
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
this._notificationService.prompt(Severity.Info, uninstalledCount === 1 ? ( localize(
|
|
55
|
-
label: ( localize(
|
|
54
|
+
this._notificationService.prompt(Severity.Info, uninstalledCount === 1 ? ( localize(6708, "This workspace recommends 1 agent plugin.")) : ( localize(6709, "This workspace recommends {0} agent plugins.", uninstalledCount)), [{
|
|
55
|
+
label: ( localize(6710, "Show Plugins")),
|
|
56
56
|
run: () => {
|
|
57
57
|
this._extensionsWorkbenchService.openSearch("@agentPlugins @recommended");
|
|
58
58
|
}
|
|
@@ -13,8 +13,8 @@ const configurationRegistry = ( Registry.as(Extensions.Configuration));
|
|
|
13
13
|
function createDefaultModelArrays() {
|
|
14
14
|
return {
|
|
15
15
|
modelIds: [""],
|
|
16
|
-
modelLabels: [( localize(
|
|
17
|
-
modelDescriptions: [( localize(
|
|
16
|
+
modelLabels: [( localize(6711, "Auto (Vendor Default)"))],
|
|
17
|
+
modelDescriptions: [( localize(6712, "Use the vendor's default model"))]
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
let DefaultModelContribution = class DefaultModelContribution extends Disposable {
|
|
@@ -46,8 +46,8 @@ let DefaultModelContribution = class DefaultModelContribution extends Disposable
|
|
|
46
46
|
modelLabels.length = 0;
|
|
47
47
|
modelDescriptions.length = 0;
|
|
48
48
|
modelIds.push("");
|
|
49
|
-
modelLabels.push(( localize(
|
|
50
|
-
modelDescriptions.push(( localize(
|
|
49
|
+
modelLabels.push(( localize(6711, "Auto (Vendor Default)")));
|
|
50
|
+
modelDescriptions.push(( localize(6712, "Use the vendor's default model")));
|
|
51
51
|
const models = [];
|
|
52
52
|
const allModelIds = this._languageModelsService.getLanguageModelIds();
|
|
53
53
|
for (const modelId of allModelIds) {
|
|
@@ -5,16 +5,16 @@ import { WorkbenchState } from '@codingame/monaco-vscode-api/vscode/vs/platform/
|
|
|
5
5
|
import { ContributionEnablementState, isContributionDisabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
|
|
6
6
|
|
|
7
7
|
function createEnablementActions(key, enablementModel, idPrefix) {
|
|
8
|
-
return [( new Action(`${idPrefix}.enable`, ( localize(
|
|
8
|
+
return [( new Action(`${idPrefix}.enable`, ( localize(6713, "Enable")), undefined, true, () => {
|
|
9
9
|
enablementModel.setEnabled(key, ContributionEnablementState.EnabledProfile);
|
|
10
10
|
return Promise.resolve();
|
|
11
|
-
})), ( new Action(`${idPrefix}.enableForWorkspace`, ( localize(
|
|
11
|
+
})), ( new Action(`${idPrefix}.enableForWorkspace`, ( localize(6714, "Enable (Workspace)")), undefined, true, () => {
|
|
12
12
|
enablementModel.setEnabled(key, ContributionEnablementState.EnabledWorkspace);
|
|
13
13
|
return Promise.resolve();
|
|
14
|
-
})), ( new Action(`${idPrefix}.disable`, ( localize(
|
|
14
|
+
})), ( new Action(`${idPrefix}.disable`, ( localize(6715, "Disable")), undefined, true, () => {
|
|
15
15
|
enablementModel.setEnabled(key, ContributionEnablementState.DisabledProfile);
|
|
16
16
|
return Promise.resolve();
|
|
17
|
-
})), ( new Action(`${idPrefix}.disableForWorkspace`, ( localize(
|
|
17
|
+
})), ( new Action(`${idPrefix}.disableForWorkspace`, ( localize(6716, "Disable (Workspace)")), undefined, true, () => {
|
|
18
18
|
enablementModel.setEnabled(key, ContributionEnablementState.DisabledWorkspace);
|
|
19
19
|
return Promise.resolve();
|
|
20
20
|
}))];
|
|
@@ -46,8 +46,8 @@ let EnablementStatusWidget = class EnablementStatusWidget extends Disposable {
|
|
|
46
46
|
};
|
|
47
47
|
EnablementStatusWidget = ( __decorate([( __param(3, IMarkdownRendererService))], EnablementStatusWidget));
|
|
48
48
|
const pluginEnablementLabels = {
|
|
49
|
-
disabledProfile: ( localize(
|
|
50
|
-
disabledWorkspace: ( localize(
|
|
49
|
+
disabledProfile: ( localize(6717, "This plugin is disabled.")),
|
|
50
|
+
disabledWorkspace: ( localize(6718, "This plugin is disabled for this workspace."))
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export { EnablementStatusWidget, pluginEnablementLabels };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
|
|
2
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
3
|
+
import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
|
|
4
|
+
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
5
|
+
import { IRequestService } from "@codingame/monaco-vscode-api/vscode/vs/platform/request/common/request.service";
|
|
6
|
+
/**
|
|
7
|
+
* GitHub `owner/repo` parsed from a clone URL. Only `https://github.com/...` URLs
|
|
8
|
+
* are supported in the browser implementation.
|
|
9
|
+
*/
|
|
10
|
+
export interface IGitHubRepoRef {
|
|
11
|
+
readonly owner: string;
|
|
12
|
+
readonly repo: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Parse a clone URL into an `owner/repo` pair.
|
|
16
|
+
* @returns the parsed reference, or `undefined` if the URL is not a recognised
|
|
17
|
+
* GitHub HTTPS clone URL.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseGitHubCloneUrl(cloneUrl: string): IGitHubRepoRef | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a ref (branch / tag / SHA / undefined for default branch) to a
|
|
22
|
+
* commit SHA via the GitHub commits API.
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveGitHubRefToSha(requestService: IRequestService, repo: IGitHubRepoRef, ref: string | undefined, authToken: string | undefined, token: CancellationToken): Promise<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Thrown when GitHub responds with 401/403 to indicate the caller needs to
|
|
27
|
+
* sign in (or has insufficient permissions) for a private repository.
|
|
28
|
+
*/
|
|
29
|
+
export declare class GitHubAuthRequiredError extends Error {
|
|
30
|
+
constructor(message: string);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Thrown when GitHub responds with 403 + `X-RateLimit-Remaining: 0` to
|
|
34
|
+
* indicate the caller has exhausted the request quota for the current
|
|
35
|
+
* window. Distinct from {@link GitHubAuthRequiredError} so callers don't
|
|
36
|
+
* push users to sign in when the actual fix is "wait".
|
|
37
|
+
*/
|
|
38
|
+
export declare class GitHubRateLimitError extends Error {
|
|
39
|
+
readonly retryAfterSeconds?: number | undefined;
|
|
40
|
+
constructor(message: string, retryAfterSeconds?: number | undefined);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Fetches the file tree of a GitHub repository at the given SHA and writes
|
|
44
|
+
* each blob into {@link targetDir} via {@link IFileService}.
|
|
45
|
+
*
|
|
46
|
+
* Uses two CORS-friendly endpoints on `api.github.com` (the `/tarball/` host
|
|
47
|
+
* has no CORS, and `raw.githubusercontent.com` rejects the OPTIONS preflight
|
|
48
|
+
* forced by an `Authorization` header):
|
|
49
|
+
*
|
|
50
|
+
* - `GET /repos/{owner}/{repo}/git/trees/{sha}?recursive=1` for the listing.
|
|
51
|
+
* - `GET /repos/{owner}/{repo}/git/blobs/{blob_sha}` for each blob (base64).
|
|
52
|
+
*
|
|
53
|
+
* Extraction is staged to a sibling directory and atomically swapped into
|
|
54
|
+
* place on success; failures clean up the staging dir and leave `targetDir`
|
|
55
|
+
* untouched. Symlinks (`mode === '120000'`) and submodules (`type === 'commit'`)
|
|
56
|
+
* are skipped — neither is representable in the workbench virtual file system.
|
|
57
|
+
*/
|
|
58
|
+
export declare function fetchAndExtractGitHubRepo(requestService: IRequestService, fileService: IFileService, logService: ILogService, repo: IGitHubRepoRef, sha: string, targetDir: URI, authToken: string | undefined, token: CancellationToken): Promise<void>;
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
|
|
2
|
+
import { Limiter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
3
|
+
import { decodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
4
|
+
import { CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
5
|
+
import { joinPath, dirname, isEqualOrParent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
6
|
+
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
7
|
+
import { isSuccess, isClientError, asJson } from '@codingame/monaco-vscode-api/vscode/vs/platform/request/common/request';
|
|
8
|
+
|
|
9
|
+
const GITHUB_HOSTS = ( new Set(["github.com", "www.github.com"]));
|
|
10
|
+
function parseGitHubCloneUrl(cloneUrl) {
|
|
11
|
+
let url;
|
|
12
|
+
try {
|
|
13
|
+
url = ( new URL(cloneUrl));
|
|
14
|
+
} catch {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
if (url.protocol !== "https:" || !( GITHUB_HOSTS.has(url.hostname.toLowerCase()))) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const path = url.pathname.replace(/^\/+/, "").replace(/\/+$/, "").replace(/\.git$/i, "");
|
|
21
|
+
const segments = path.split("/");
|
|
22
|
+
if (segments.length !== 2 || !segments[0] || !segments[1]) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
owner: segments[0],
|
|
27
|
+
repo: segments[1]
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
async function loggedRequest(requestService, options, token) {
|
|
31
|
+
try {
|
|
32
|
+
return await requestService.request({
|
|
33
|
+
type: "GET",
|
|
34
|
+
url: options.url,
|
|
35
|
+
headers: options.headers,
|
|
36
|
+
callSite: options.callSite
|
|
37
|
+
}, token);
|
|
38
|
+
} catch (err) {
|
|
39
|
+
const reason = err instanceof Error ? `${err.name}: ${err.message}` : String(err);
|
|
40
|
+
throw ( new Error(
|
|
41
|
+
`Network error during ${options.callSite} (GET ${options.url}): ${reason}`,
|
|
42
|
+
{
|
|
43
|
+
cause: err instanceof Error ? err : undefined
|
|
44
|
+
}
|
|
45
|
+
));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async function resolveGitHubRefToSha(requestService, repo, ref, authToken, token) {
|
|
49
|
+
const refSegment = ref && ref.length > 0 ? encodeURIComponent(ref) : "HEAD";
|
|
50
|
+
const url = `https://api.github.com/repos/${encodeURIComponent(repo.owner)}/${encodeURIComponent(repo.repo)}/commits/${refSegment}`;
|
|
51
|
+
const headers = {
|
|
52
|
+
"Accept": "application/vnd.github+json",
|
|
53
|
+
"X-GitHub-Api-Version": "2022-11-28"
|
|
54
|
+
};
|
|
55
|
+
if (authToken) {
|
|
56
|
+
headers["Authorization"] = `Bearer ${authToken}`;
|
|
57
|
+
}
|
|
58
|
+
const ctx = await loggedRequest(requestService, {
|
|
59
|
+
url,
|
|
60
|
+
headers,
|
|
61
|
+
callSite: "pluginGit.resolveSha"
|
|
62
|
+
}, token);
|
|
63
|
+
if (token.isCancellationRequested) {
|
|
64
|
+
throw ( new CancellationError());
|
|
65
|
+
}
|
|
66
|
+
const status = ctx.res.statusCode ?? 0;
|
|
67
|
+
if (status === 403 && isRateLimited(ctx.res.headers)) {
|
|
68
|
+
throw ( new GitHubRateLimitError(
|
|
69
|
+
`GitHub rate limit hit resolving ref '${ref ?? "HEAD"}' on ${repo.owner}/${repo.repo}`,
|
|
70
|
+
retryAfterFromHeaders(ctx.res.headers)
|
|
71
|
+
));
|
|
72
|
+
}
|
|
73
|
+
if (status === 401 || status === 403) {
|
|
74
|
+
throw ( new GitHubAuthRequiredError(
|
|
75
|
+
`GitHub returned ${status} resolving ref '${ref ?? "HEAD"}' on ${repo.owner}/${repo.repo}`
|
|
76
|
+
));
|
|
77
|
+
}
|
|
78
|
+
if (status === 404) {
|
|
79
|
+
throw ( new Error(
|
|
80
|
+
`GitHub repository or ref not found: ${repo.owner}/${repo.repo}@${ref ?? "HEAD"}`
|
|
81
|
+
));
|
|
82
|
+
}
|
|
83
|
+
if (!isSuccess(ctx)) {
|
|
84
|
+
throw ( new Error(
|
|
85
|
+
`GitHub returned ${status}${isClientError(ctx) ? " (client error)" : ""} resolving ref for ${repo.owner}/${repo.repo}`
|
|
86
|
+
));
|
|
87
|
+
}
|
|
88
|
+
const body = await asJson(ctx);
|
|
89
|
+
if (!body || typeof body.sha !== "string") {
|
|
90
|
+
throw ( new Error(
|
|
91
|
+
`GitHub commit response for ${repo.owner}/${repo.repo} missing 'sha' field`
|
|
92
|
+
));
|
|
93
|
+
}
|
|
94
|
+
return body.sha;
|
|
95
|
+
}
|
|
96
|
+
class GitHubAuthRequiredError extends Error {
|
|
97
|
+
constructor(message) {
|
|
98
|
+
super(message);
|
|
99
|
+
this.name = "GitHubAuthRequiredError";
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
class GitHubRateLimitError extends Error {
|
|
103
|
+
constructor(message, retryAfterSeconds) {
|
|
104
|
+
super(message);
|
|
105
|
+
this.retryAfterSeconds = retryAfterSeconds;
|
|
106
|
+
this.name = "GitHubRateLimitError";
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function isRateLimited(headers) {
|
|
110
|
+
if (!headers) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
if (readHeader(headers, "x-ratelimit-remaining") === "0") {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
return readHeader(headers, "retry-after") !== undefined;
|
|
117
|
+
}
|
|
118
|
+
function retryAfterFromHeaders(headers) {
|
|
119
|
+
if (!headers) {
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
const value = readHeader(headers, "retry-after");
|
|
123
|
+
if (!value) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
const parsed = parseInt(value, 10);
|
|
127
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
128
|
+
}
|
|
129
|
+
function readHeader(headers, name) {
|
|
130
|
+
const value = headers[name] ?? headers[name.toLowerCase()];
|
|
131
|
+
if (Array.isArray(value)) {
|
|
132
|
+
return value[0];
|
|
133
|
+
}
|
|
134
|
+
return value;
|
|
135
|
+
}
|
|
136
|
+
async function fetchAndExtractGitHubRepo(
|
|
137
|
+
requestService,
|
|
138
|
+
fileService,
|
|
139
|
+
logService,
|
|
140
|
+
repo,
|
|
141
|
+
sha,
|
|
142
|
+
targetDir,
|
|
143
|
+
authToken,
|
|
144
|
+
token
|
|
145
|
+
) {
|
|
146
|
+
const tree = await fetchGitHubTree(requestService, repo, sha, authToken, token);
|
|
147
|
+
if (tree.truncated) {
|
|
148
|
+
logService.warn(
|
|
149
|
+
`[GitHubRepoFetcher] Tree for ${repo.owner}/${repo.repo}@${sha} is truncated; some files will be missing from the install`
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
const stagingDir = joinPath(dirname(targetDir), `.staging-${generateUuid()}`);
|
|
153
|
+
try {
|
|
154
|
+
await fileService.createFolder(stagingDir);
|
|
155
|
+
const blobsToFetch = [];
|
|
156
|
+
const createdDirs = ( new Set([( stagingDir.toString())]));
|
|
157
|
+
for (const entry of tree.tree) {
|
|
158
|
+
if (token.isCancellationRequested) {
|
|
159
|
+
throw ( new CancellationError());
|
|
160
|
+
}
|
|
161
|
+
if (entry.type === "commit") {
|
|
162
|
+
logService.trace(`[GitHubRepoFetcher] Skipping submodule entry ${entry.path}`);
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
if (entry.mode === "120000") {
|
|
166
|
+
logService.trace(`[GitHubRepoFetcher] Skipping symlink entry ${entry.path}`);
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const dest = safeJoinUnderTarget(stagingDir, entry.path);
|
|
170
|
+
if (!dest) {
|
|
171
|
+
logService.warn(`[GitHubRepoFetcher] Skipping unsafe tree entry path: ${entry.path}`);
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
if (entry.type === "tree") {
|
|
175
|
+
if (!( createdDirs.has(( dest.toString())))) {
|
|
176
|
+
await fileService.createFolder(dest);
|
|
177
|
+
createdDirs.add(( dest.toString()));
|
|
178
|
+
}
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
if (entry.type !== "blob") {
|
|
182
|
+
logService.trace(
|
|
183
|
+
`[GitHubRepoFetcher] Skipping tree entry with unsupported type '${entry.type}': ${entry.path}`
|
|
184
|
+
);
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
const parent = dirname(dest);
|
|
188
|
+
if (( parent.toString()) !== ( dest.toString()) && !( createdDirs.has(( parent.toString())))) {
|
|
189
|
+
await fileService.createFolder(parent);
|
|
190
|
+
createdDirs.add(( parent.toString()));
|
|
191
|
+
}
|
|
192
|
+
blobsToFetch.push({
|
|
193
|
+
entry,
|
|
194
|
+
dest
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
const limiter = ( new Limiter(MAX_PARALLEL_BLOB_FETCHES));
|
|
198
|
+
await Promise.all(( blobsToFetch.map((
|
|
199
|
+
{
|
|
200
|
+
entry,
|
|
201
|
+
dest
|
|
202
|
+
}
|
|
203
|
+
) => limiter.queue(async () => {
|
|
204
|
+
if (token.isCancellationRequested) {
|
|
205
|
+
throw ( new CancellationError());
|
|
206
|
+
}
|
|
207
|
+
const content = await fetchGitHubBlob(requestService, repo, sha, entry, authToken, token);
|
|
208
|
+
await fileService.writeFile(dest, content);
|
|
209
|
+
}))));
|
|
210
|
+
await fileService.move(stagingDir, targetDir, true);
|
|
211
|
+
} catch (err) {
|
|
212
|
+
try {
|
|
213
|
+
if (await fileService.exists(stagingDir)) {
|
|
214
|
+
await fileService.del(stagingDir, {
|
|
215
|
+
recursive: true
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
} catch (cleanupErr) {
|
|
219
|
+
logService.warn(`[GitHubRepoFetcher] Failed to clean up staging dir ${( stagingDir.toString())}:`, cleanupErr);
|
|
220
|
+
}
|
|
221
|
+
throw err;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const MAX_PARALLEL_BLOB_FETCHES = 10;
|
|
225
|
+
async function fetchGitHubTree(requestService, repo, sha, authToken, token) {
|
|
226
|
+
const url = `https://api.github.com/repos/${encodeURIComponent(repo.owner)}/${encodeURIComponent(repo.repo)}/git/trees/${encodeURIComponent(sha)}?recursive=1`;
|
|
227
|
+
const headers = {
|
|
228
|
+
"Accept": "application/vnd.github+json",
|
|
229
|
+
"X-GitHub-Api-Version": "2022-11-28"
|
|
230
|
+
};
|
|
231
|
+
if (authToken) {
|
|
232
|
+
headers["Authorization"] = `Bearer ${authToken}`;
|
|
233
|
+
}
|
|
234
|
+
const ctx = await loggedRequest(requestService, {
|
|
235
|
+
url,
|
|
236
|
+
headers,
|
|
237
|
+
callSite: "pluginGit.tree"
|
|
238
|
+
}, token);
|
|
239
|
+
if (token.isCancellationRequested) {
|
|
240
|
+
throw ( new CancellationError());
|
|
241
|
+
}
|
|
242
|
+
const status = ctx.res.statusCode ?? 0;
|
|
243
|
+
if (status === 403 && isRateLimited(ctx.res.headers)) {
|
|
244
|
+
throw ( new GitHubRateLimitError(
|
|
245
|
+
`GitHub rate limit hit fetching tree for ${repo.owner}/${repo.repo}@${sha}`,
|
|
246
|
+
retryAfterFromHeaders(ctx.res.headers)
|
|
247
|
+
));
|
|
248
|
+
}
|
|
249
|
+
if (status === 401 || status === 403) {
|
|
250
|
+
throw ( new GitHubAuthRequiredError(
|
|
251
|
+
`GitHub returned ${status} fetching tree for ${repo.owner}/${repo.repo}@${sha}`
|
|
252
|
+
));
|
|
253
|
+
}
|
|
254
|
+
if (status === 404) {
|
|
255
|
+
throw ( new Error(`GitHub repository or commit not found: ${repo.owner}/${repo.repo}@${sha}`));
|
|
256
|
+
}
|
|
257
|
+
if (!isSuccess(ctx)) {
|
|
258
|
+
throw ( new Error(
|
|
259
|
+
`GitHub returned ${status}${isClientError(ctx) ? " (client error)" : ""} fetching tree for ${repo.owner}/${repo.repo}@${sha}`
|
|
260
|
+
));
|
|
261
|
+
}
|
|
262
|
+
const body = await asJson(ctx);
|
|
263
|
+
if (!body || !Array.isArray(body.tree)) {
|
|
264
|
+
throw ( new Error(
|
|
265
|
+
`GitHub tree response for ${repo.owner}/${repo.repo}@${sha} missing 'tree' array`
|
|
266
|
+
));
|
|
267
|
+
}
|
|
268
|
+
return body;
|
|
269
|
+
}
|
|
270
|
+
async function fetchGitHubBlob(requestService, repo, commitSha, entry, authToken, token) {
|
|
271
|
+
const url = `https://api.github.com/repos/${encodeURIComponent(repo.owner)}/${encodeURIComponent(repo.repo)}/git/blobs/${encodeURIComponent(entry.sha)}`;
|
|
272
|
+
const headers = {
|
|
273
|
+
"Accept": "application/vnd.github+json",
|
|
274
|
+
"X-GitHub-Api-Version": "2022-11-28"
|
|
275
|
+
};
|
|
276
|
+
if (authToken) {
|
|
277
|
+
headers["Authorization"] = `Bearer ${authToken}`;
|
|
278
|
+
}
|
|
279
|
+
const ctx = await loggedRequest(requestService, {
|
|
280
|
+
url,
|
|
281
|
+
headers,
|
|
282
|
+
callSite: "pluginGit.blob"
|
|
283
|
+
}, token);
|
|
284
|
+
if (token.isCancellationRequested) {
|
|
285
|
+
throw ( new CancellationError());
|
|
286
|
+
}
|
|
287
|
+
const status = ctx.res.statusCode ?? 0;
|
|
288
|
+
if (status === 403 && isRateLimited(ctx.res.headers)) {
|
|
289
|
+
throw ( new GitHubRateLimitError(
|
|
290
|
+
`GitHub rate limit hit fetching blob '${entry.path}' for ${repo.owner}/${repo.repo}@${commitSha}`,
|
|
291
|
+
retryAfterFromHeaders(ctx.res.headers)
|
|
292
|
+
));
|
|
293
|
+
}
|
|
294
|
+
if (status === 401 || status === 403) {
|
|
295
|
+
throw ( new GitHubAuthRequiredError(
|
|
296
|
+
`GitHub returned ${status} fetching blob '${entry.path}' for ${repo.owner}/${repo.repo}@${commitSha}`
|
|
297
|
+
));
|
|
298
|
+
}
|
|
299
|
+
if (!isSuccess(ctx)) {
|
|
300
|
+
throw ( new Error(
|
|
301
|
+
`GitHub returned ${status} fetching blob '${entry.path}' for ${repo.owner}/${repo.repo}@${commitSha}`
|
|
302
|
+
));
|
|
303
|
+
}
|
|
304
|
+
const body = await asJson(ctx);
|
|
305
|
+
if (!body || typeof body.content !== "string") {
|
|
306
|
+
throw ( new Error(`GitHub blob response for '${entry.path}' missing 'content' field`));
|
|
307
|
+
}
|
|
308
|
+
if (body.encoding !== "base64") {
|
|
309
|
+
throw ( new Error(
|
|
310
|
+
`GitHub blob response for '${entry.path}' has unsupported encoding '${body.encoding}'`
|
|
311
|
+
));
|
|
312
|
+
}
|
|
313
|
+
return decodeBase64(body.content.replace(/\s+/g, ""));
|
|
314
|
+
}
|
|
315
|
+
function safeJoinUnderTarget(targetDir, inner) {
|
|
316
|
+
if (inner.includes("\u0000") || inner.startsWith("/") || inner.startsWith("\\")) {
|
|
317
|
+
return undefined;
|
|
318
|
+
}
|
|
319
|
+
const segments = [];
|
|
320
|
+
for (const seg of inner.split("/")) {
|
|
321
|
+
if (seg.length === 0 || seg === ".") {
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
324
|
+
if (seg === ".." || seg.includes("\\")) {
|
|
325
|
+
return undefined;
|
|
326
|
+
}
|
|
327
|
+
segments.push(seg);
|
|
328
|
+
}
|
|
329
|
+
if (segments.length === 0) {
|
|
330
|
+
return undefined;
|
|
331
|
+
}
|
|
332
|
+
const dest = joinPath(targetDir, ...segments);
|
|
333
|
+
if (!isEqualOrParent(dest, targetDir)) {
|
|
334
|
+
return undefined;
|
|
335
|
+
}
|
|
336
|
+
return dest;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
export { GitHubAuthRequiredError, GitHubRateLimitError, fetchAndExtractGitHubRepo, parseGitHubCloneUrl, resolveGitHubRefToSha };
|
|
@@ -340,7 +340,7 @@ let ChatLanguageModelsDataContribution = class ChatLanguageModelsDataContributio
|
|
|
340
340
|
},
|
|
341
341
|
settings: {
|
|
342
342
|
type: "object",
|
|
343
|
-
description: ( localize(
|
|
343
|
+
description: ( localize(6719, "Per-model settings"))
|
|
344
344
|
}
|
|
345
345
|
},
|
|
346
346
|
allOf: [...( vendors.map(vendor => ({
|
package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/media/planReviewFeedback.css
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
.plan-review-feedback-input-widget {
|
|
7
|
+
position: absolute;
|
|
8
|
+
z-index: 10000;
|
|
9
|
+
background-color: var(--vscode-panel-background);
|
|
10
|
+
border: 1px solid var(--vscode-editorWidget-border, var(--vscode-contrastBorder));
|
|
11
|
+
box-shadow: var(--vscode-shadow-lg);
|
|
12
|
+
border-radius: 8px;
|
|
13
|
+
padding: 4px;
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: row;
|
|
16
|
+
align-items: flex-end;
|
|
17
|
+
animation: planReviewFeedbackInputAppear 0.15s ease-out;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@keyframes planReviewFeedbackInputAppear {
|
|
21
|
+
from {
|
|
22
|
+
opacity: 0;
|
|
23
|
+
transform: translateY(4px);
|
|
24
|
+
}
|
|
25
|
+
to {
|
|
26
|
+
opacity: 1;
|
|
27
|
+
transform: translateY(0);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@media (prefers-reduced-motion: reduce) {
|
|
32
|
+
.plan-review-feedback-input-widget {
|
|
33
|
+
animation: none;
|
|
34
|
+
transform: none;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.plan-review-feedback-input-widget textarea {
|
|
39
|
+
background-color: var(--vscode-panel-background);
|
|
40
|
+
border: none;
|
|
41
|
+
color: var(--vscode-input-foreground);
|
|
42
|
+
font: inherit;
|
|
43
|
+
border-radius: 4px;
|
|
44
|
+
padding: 0 0 0 6px;
|
|
45
|
+
outline: none;
|
|
46
|
+
min-width: 150px;
|
|
47
|
+
max-width: 400px;
|
|
48
|
+
resize: none;
|
|
49
|
+
overflow-y: hidden;
|
|
50
|
+
white-space: pre-wrap;
|
|
51
|
+
word-wrap: break-word;
|
|
52
|
+
box-sizing: border-box;
|
|
53
|
+
display: block;
|
|
54
|
+
flex: 1;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.plan-review-feedback-input-widget textarea:focus {
|
|
58
|
+
border-color: var(--vscode-focusBorder);
|
|
59
|
+
outline: none !important;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.plan-review-feedback-input-widget textarea::placeholder {
|
|
63
|
+
color: var(--vscode-input-placeholderForeground);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.plan-review-feedback-input-widget .plan-review-feedback-input-measure {
|
|
67
|
+
position: absolute;
|
|
68
|
+
visibility: hidden;
|
|
69
|
+
height: 0;
|
|
70
|
+
overflow: hidden;
|
|
71
|
+
white-space: pre;
|
|
72
|
+
font: inherit;
|
|
73
|
+
font-size: 13px;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.plan-review-feedback-input-widget .plan-review-feedback-input-actions {
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
margin-left: 2px;
|
|
80
|
+
flex-shrink: 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.plan-review-feedback-input-widget .plan-review-feedback-input-actions .action-bar .action-item .action-label {
|
|
84
|
+
width: 16px;
|
|
85
|
+
height: 16px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Overlay toolbar (submit / navigate / clear actions) */
|
|
89
|
+
.plan-review-feedback-overlay-widget {
|
|
90
|
+
padding: 2px 4px;
|
|
91
|
+
color: var(--vscode-foreground);
|
|
92
|
+
background-color: var(--vscode-editorWidget-background);
|
|
93
|
+
border-radius: 6px;
|
|
94
|
+
border: 1px solid var(--vscode-editorHoverWidget-border);
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: center;
|
|
97
|
+
justify-content: center;
|
|
98
|
+
gap: 4px;
|
|
99
|
+
z-index: 10;
|
|
100
|
+
box-shadow: var(--vscode-shadow-lg);
|
|
101
|
+
overflow: hidden;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.plan-review-feedback-overlay-widget .action-item > .action-label {
|
|
105
|
+
padding: 4px 6px;
|
|
106
|
+
font-size: 11px;
|
|
107
|
+
line-height: 14px;
|
|
108
|
+
border-radius: 4px;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.plan-review-feedback-overlay-widget .monaco-action-bar .actions-container {
|
|
112
|
+
gap: 4px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.plan-review-feedback-overlay-widget .action-item.primary > .action-label {
|
|
116
|
+
background-color: var(--vscode-button-background);
|
|
117
|
+
color: var(--vscode-button-foreground);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.monaco-workbench .plan-review-feedback-overlay-widget .monaco-action-bar .action-item.primary > .action-label:hover {
|
|
121
|
+
background-color: var(--vscode-button-hoverBackground);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.plan-review-feedback-overlay-widget .action-item > .action-label.codicon:not(.separator) {
|
|
125
|
+
color: var(--vscode-foreground);
|
|
126
|
+
width: 22px;
|
|
127
|
+
height: 22px;
|
|
128
|
+
padding: 0;
|
|
129
|
+
font-size: 16px;
|
|
130
|
+
line-height: 22px;
|
|
131
|
+
display: flex;
|
|
132
|
+
align-items: center;
|
|
133
|
+
justify-content: center;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.plan-review-feedback-overlay-widget .monaco-action-bar .action-item.disabled {
|
|
137
|
+
|
|
138
|
+
> .action-label.codicon::before,
|
|
139
|
+
> .action-label.codicon,
|
|
140
|
+
> .action-label,
|
|
141
|
+
> .action-label:hover {
|
|
142
|
+
color: var(--vscode-button-separator);
|
|
143
|
+
opacity: 1;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.plan-review-feedback-overlay-widget .action-item.label-item {
|
|
148
|
+
font-variant-numeric: tabular-nums;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.plan-review-feedback-overlay-widget .monaco-action-bar .action-item.label-item > .action-label,
|
|
152
|
+
.plan-review-feedback-overlay-widget .monaco-action-bar .action-item.label-item > .action-label:hover {
|
|
153
|
+
color: var(--vscode-foreground);
|
|
154
|
+
opacity: 1;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* Gutter decoration for feedback lines */
|
|
158
|
+
.plan-review-feedback-line-number {
|
|
159
|
+
color: var(--vscode-editorInfo-foreground);
|
|
160
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MenuId } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
|
|
2
|
+
import { RawContextKey } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey";
|
|
3
|
+
export declare const PlanReviewFeedbackMenuId: MenuId;
|
|
4
|
+
export declare const hasPlanReviewFeedback: RawContextKey<boolean>;
|
|
5
|
+
export declare const navigatePreviousPlanReviewFeedbackActionId = "planReviewFeedback.action.navigatePrevious";
|
|
6
|
+
export declare const navigateNextPlanReviewFeedbackActionId = "planReviewFeedback.action.navigateNext";
|
|
7
|
+
export declare const clearAllPlanReviewFeedbackActionId = "planReviewFeedback.action.clearAll";
|
|
8
|
+
export declare const navigationBearingFakeActionId = "planReviewFeedback.navigation.bearings";
|
|
9
|
+
export declare function registerPlanReviewFeedbackEditorActions(): void;
|