@codingame/monaco-vscode-chat-service-override 28.4.0 → 29.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +18 -12
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +300 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.js +31 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +84 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +16 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +488 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +424 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +50 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +202 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +114 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +723 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +33 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +40 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +22 -0
- package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +13 -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 +29 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +76 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +162 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +167 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +52 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +82 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +195 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +97 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +78 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +174 -170
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +118 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +13 -2
- 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.d.ts +0 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -10
- 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 +9 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +23 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +341 -196
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +79 -7
- 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.d.ts +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +22 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +85 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +668 -214
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +306 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +84 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +651 -81
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +31 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +9 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +7 -142
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.d.ts +43 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +63 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +25 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +297 -123
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +153 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +17 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +111 -171
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +5 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -186
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +31 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +3 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +4 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +18 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +112 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +16 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +41 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +35 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +1 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +8 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +13 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +29 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +14 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +79 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +125 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +11 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +113 -82
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +18 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +54 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +8 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +103 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +48 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +28 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +62 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +21 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +17 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +43 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.d.ts +59 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +194 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +8 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +81 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +9 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +19 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +2 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +105 -172
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +80 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +56 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +70 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +40 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +33 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +21 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +362 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +15 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +90 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +146 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
- 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/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +10 -9
- 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.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +33 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +200 -55
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +90 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +21 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +22 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +28 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +20 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +68 -5
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +57 -20
- 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 +21 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +171 -57
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +7 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +206 -35
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +11 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +44 -22
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +450 -301
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +165 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +34 -20
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +209 -144
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +205 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +47 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +30 -0
- 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.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.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +191 -159
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +6 -7
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +210 -233
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +19 -26
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +183 -193
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +75 -0
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +97 -35
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +67 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +62 -23
- 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 +8 -8
- 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 +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +23 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +50 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +21 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +20 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +124 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +20 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +10 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +46 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +18 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +74 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +24 -14
- 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/commandLineAnalyzer/commandLineSandboxAnalyzer.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +5 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +66 -64
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +5 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +390 -114
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +21 -11
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +70 -51
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +61 -51
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +94 -76
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +19 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +112 -21
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +0 -53
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +0 -219
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +0 -89
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +0 -251
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +0 -123
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +0 -278
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +0 -76
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +0 -299
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +0 -67
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +0 -263
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +0 -85
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +0 -397
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -56
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +0 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +0 -30
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +0 -40
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +0 -28
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +0 -190
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +0 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +0 -16
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +0 -20
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js
CHANGED
|
@@ -6,16 +6,17 @@ import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/
|
|
|
6
6
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
7
|
import { FileOperationError, FileOperationResult } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
|
|
8
8
|
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
9
|
-
import { PromptsConfig,
|
|
10
|
-
import { dirname, joinPath, basename,
|
|
9
|
+
import { PromptsConfig, getPromptFileLocationsConfigKey, isTildePath } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
|
|
10
|
+
import { dirname, isEqual, joinPath, basename, isEqualOrParent, extname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
11
11
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
12
12
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
13
|
-
import {
|
|
13
|
+
import { PromptFileSource, getPromptFileType, getPromptFileExtension, getPromptFileDefaultLocations, LEGACY_MODE_FILE_EXTENSION, AGENTS_SOURCE_FOLDER, getCleanPromptName, AGENT_FILE_EXTENSION, SKILL_FILENAME } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
|
|
14
14
|
import { PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
15
15
|
import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
16
16
|
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
17
17
|
import { getExcludes, QueryType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/search';
|
|
18
18
|
import { ISearchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/search.service';
|
|
19
|
+
import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
19
20
|
import { isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
20
21
|
import { PromptsStorage, AgentFileType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
|
|
21
22
|
import { IUserDataProfileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
|
|
@@ -23,6 +24,8 @@ import { Event, Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/comm
|
|
|
23
24
|
import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
24
25
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
25
26
|
import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
|
|
27
|
+
import { equalsIgnoreCase } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
28
|
+
import { IWorkspaceTrustManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
|
|
26
29
|
|
|
27
30
|
const MAX_INSTRUCTIONS_RECURSION_DEPTH = 5;
|
|
28
31
|
let PromptFilesLocator = class PromptFilesLocator {
|
|
@@ -34,7 +37,8 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
34
37
|
searchService,
|
|
35
38
|
userDataService,
|
|
36
39
|
logService,
|
|
37
|
-
pathService
|
|
40
|
+
pathService,
|
|
41
|
+
workspaceTrustManagementService
|
|
38
42
|
) {
|
|
39
43
|
this.fileService = fileService;
|
|
40
44
|
this.configService = configService;
|
|
@@ -44,6 +48,17 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
44
48
|
this.userDataService = userDataService;
|
|
45
49
|
this.logService = logService;
|
|
46
50
|
this.pathService = pathService;
|
|
51
|
+
this.workspaceTrustManagementService = workspaceTrustManagementService;
|
|
52
|
+
const userDataPromptsHome = this.userDataService.currentProfile.promptsHome;
|
|
53
|
+
this.userDataFolder = {
|
|
54
|
+
uri: userDataPromptsHome,
|
|
55
|
+
parent: userDataPromptsHome,
|
|
56
|
+
filePattern: undefined,
|
|
57
|
+
source: PromptFileSource.CopilotPersonal,
|
|
58
|
+
storage: PromptsStorage.user,
|
|
59
|
+
displayPath: ( localize(7574, "User Data")),
|
|
60
|
+
isDefault: true
|
|
61
|
+
};
|
|
47
62
|
}
|
|
48
63
|
getWorkspaceFolders() {
|
|
49
64
|
return this.workspaceService.getWorkspace().folders;
|
|
@@ -54,21 +69,65 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
54
69
|
onDidChangeWorkspaceFolders() {
|
|
55
70
|
return ( Event.map(this.workspaceService.onDidChangeWorkspaceFolders, () => undefined));
|
|
56
71
|
}
|
|
57
|
-
async
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
72
|
+
async getWorkspaceFolderRoots(includeParents, logger) {
|
|
73
|
+
const workspaceFolders = this.getWorkspaceFolders();
|
|
74
|
+
if (includeParents) {
|
|
75
|
+
const roots = ( new ResourceSet());
|
|
76
|
+
const userHome = await this.pathService.userHome();
|
|
77
|
+
for (const workspaceFolder of workspaceFolders) {
|
|
78
|
+
roots.add(workspaceFolder.uri);
|
|
79
|
+
const parents = await this.findParentRepoFolders(workspaceFolder.uri, userHome, roots, logger);
|
|
80
|
+
for (const parent of parents) {
|
|
81
|
+
roots.add(parent);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return [...roots];
|
|
62
85
|
}
|
|
63
|
-
|
|
86
|
+
return ( workspaceFolders.map(f => f.uri));
|
|
87
|
+
}
|
|
88
|
+
async findParentRepoFolders(folderUri, userHome, seen, logger) {
|
|
89
|
+
const candidates = [];
|
|
90
|
+
let current = folderUri;
|
|
91
|
+
let parent = dirname(current);
|
|
92
|
+
do {
|
|
93
|
+
try {
|
|
94
|
+
const isRepoRoot = await this.fileService.exists(joinPath(current, ".git"));
|
|
95
|
+
if (isRepoRoot) {
|
|
96
|
+
if ((await this.workspaceTrustManagementService.getUriTrustInfo(current)).trusted) {
|
|
97
|
+
candidates.push(current);
|
|
98
|
+
return candidates;
|
|
99
|
+
}
|
|
100
|
+
logger?.logInfo(`Repository root found at ${( current.toString())}, but it is not trusted. Skipping parent folder inclusion for this workspace folder.`);
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
} catch (e) {
|
|
104
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
105
|
+
logger?.logInfo(`No repository root found for folder ${( folderUri.toString())}. Error accessing ${joinPath(current, ".git")}: ${msg}.`);
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
candidates.push(current);
|
|
109
|
+
current = parent;
|
|
110
|
+
parent = dirname(current);
|
|
111
|
+
} while (!( seen.has(current)) && current.path !== "/" && !isEqual(userHome, current));
|
|
112
|
+
logger?.logInfo(`No repository root found for folder ${( folderUri.toString())}.`);
|
|
113
|
+
return [];
|
|
64
114
|
}
|
|
65
|
-
async
|
|
66
|
-
|
|
115
|
+
async listFiles(type, storage, token) {
|
|
116
|
+
if (storage !== PromptsStorage.user && storage !== PromptsStorage.local) {
|
|
117
|
+
throw ( new Error(`Unsupported prompt file storage: ${storage}`));
|
|
118
|
+
}
|
|
119
|
+
const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
|
|
120
|
+
const absoluteLocations = await this.toAbsoluteLocations(type, configuredLocations.filter(loc => loc.storage === storage));
|
|
121
|
+
if (storage === PromptsStorage.user && (type === PromptsType.agent || type === PromptsType.instructions || type === PromptsType.prompt)) {
|
|
122
|
+
absoluteLocations.push(this.userDataFolder);
|
|
123
|
+
}
|
|
67
124
|
const paths = ( new ResourceSet());
|
|
68
125
|
for (const {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
126
|
+
parent,
|
|
127
|
+
filePattern
|
|
128
|
+
} of absoluteLocations) {
|
|
129
|
+
const files = (filePattern === undefined) ?
|
|
130
|
+
await this.resolveFilesAtLocation(parent, type, token) : await this.searchFilesInLocation(parent, filePattern, token);
|
|
72
131
|
for (const file of files) {
|
|
73
132
|
if (getPromptFileType(file) === type) {
|
|
74
133
|
paths.add(file);
|
|
@@ -80,94 +139,51 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
80
139
|
}
|
|
81
140
|
return [...paths];
|
|
82
141
|
}
|
|
83
|
-
async getUserStorageFolders(type) {
|
|
84
|
-
const userHome = await this.pathService.userHome();
|
|
85
|
-
const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
|
|
86
|
-
const absoluteLocations = this.toAbsoluteLocations(type, configuredLocations, userHome);
|
|
87
|
-
const result = absoluteLocations.filter(loc => loc.storage === PromptsStorage.user);
|
|
88
|
-
if (type === PromptsType.agent || type === PromptsType.instructions || type === PromptsType.prompt) {
|
|
89
|
-
const userDataPromptsHome = this.userDataService.currentProfile.promptsHome;
|
|
90
|
-
return [...result, {
|
|
91
|
-
uri: userDataPromptsHome,
|
|
92
|
-
source: PromptFileSource.CopilotPersonal,
|
|
93
|
-
storage: PromptsStorage.user,
|
|
94
|
-
displayPath: ( localize(7345, "User Data")),
|
|
95
|
-
isDefault: true
|
|
96
|
-
}];
|
|
97
|
-
}
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
getSourceFoldersSync(type, userHome) {
|
|
101
|
-
const result = [];
|
|
102
|
-
const folders = this.getWorkspaceFolders();
|
|
103
|
-
const defaultFileOrFolders = getPromptFileDefaultLocations(type);
|
|
104
|
-
const getFolderUri = (type, fileOrFolderPath) => {
|
|
105
|
-
if (type === PromptsType.hook && fileOrFolderPath.path.toLowerCase().endsWith(".json")) {
|
|
106
|
-
return dirname(fileOrFolderPath);
|
|
107
|
-
}
|
|
108
|
-
return fileOrFolderPath;
|
|
109
|
-
};
|
|
110
|
-
for (const sourceFileOrFolder of defaultFileOrFolders) {
|
|
111
|
-
let fileOrFolderPath;
|
|
112
|
-
if (sourceFileOrFolder.storage === PromptsStorage.local) {
|
|
113
|
-
for (const workspaceFolder of folders) {
|
|
114
|
-
fileOrFolderPath = joinPath(workspaceFolder.uri, sourceFileOrFolder.path);
|
|
115
|
-
result.push(getFolderUri(type, fileOrFolderPath));
|
|
116
|
-
}
|
|
117
|
-
} else if (sourceFileOrFolder.storage === PromptsStorage.user) {
|
|
118
|
-
const relativePath = isTildePath(sourceFileOrFolder.path) ? sourceFileOrFolder.path.substring(2) : sourceFileOrFolder.path;
|
|
119
|
-
fileOrFolderPath = joinPath(userHome, relativePath);
|
|
120
|
-
result.push(getFolderUri(type, fileOrFolderPath));
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return result;
|
|
124
|
-
}
|
|
125
142
|
createFilesUpdatedEvent(type) {
|
|
126
143
|
const disposables = ( new DisposableStore());
|
|
127
144
|
const eventEmitter = disposables.add(( new Emitter()));
|
|
128
|
-
const
|
|
129
|
-
const key = getPromptFileLocationsConfigKey(type);
|
|
130
|
-
let parentFolders = this.getLocalParentFolders(type);
|
|
131
|
-
let allSourceFolders = [];
|
|
145
|
+
const token = disposables.add(( new CancellationTokenSource())).token;
|
|
132
146
|
const externalFolderWatchers = disposables.add(( new DisposableStore()));
|
|
147
|
+
const key = getPromptFileLocationsConfigKey(type);
|
|
148
|
+
const userDataFolder = this.userDataService.currentProfile.promptsHome;
|
|
149
|
+
let parentFolders = [];
|
|
133
150
|
const updateExternalFolderWatchers = () => {
|
|
134
151
|
externalFolderWatchers.clear();
|
|
135
152
|
for (const folder of parentFolders) {
|
|
136
153
|
if (!this.getWorkspaceFolder(folder.parent)) {
|
|
137
|
-
const recursive = folder.filePattern !== undefined;
|
|
154
|
+
const recursive = folder.filePattern !== undefined || type === PromptsType.instructions;
|
|
138
155
|
externalFolderWatchers.add(this.fileService.watch(folder.parent, {
|
|
139
156
|
recursive,
|
|
140
157
|
excludes: []
|
|
141
158
|
}));
|
|
142
159
|
}
|
|
143
160
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
161
|
+
};
|
|
162
|
+
const update = async emitEvent => {
|
|
163
|
+
try {
|
|
164
|
+
const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
|
|
165
|
+
parentFolders = await this.toAbsoluteLocations(type, configuredLocations, undefined);
|
|
166
|
+
if (token.isCancellationRequested) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
updateExternalFolderWatchers();
|
|
170
|
+
if (emitEvent) {
|
|
171
|
+
eventEmitter.fire();
|
|
150
172
|
}
|
|
173
|
+
} catch (err) {
|
|
174
|
+
this.logService.error(`Error updating prompt file watchers after config change:`, err);
|
|
151
175
|
}
|
|
152
176
|
};
|
|
153
|
-
this.pathService.userHome().then(userHome => {
|
|
154
|
-
allSourceFolders = [...this.getSourceFoldersSync(type, userHome)];
|
|
155
|
-
updateExternalFolderWatchers();
|
|
156
|
-
});
|
|
157
177
|
disposables.add(this.configService.onDidChangeConfiguration(e => {
|
|
158
178
|
if (e.affectsConfiguration(key)) {
|
|
159
|
-
|
|
160
|
-
updateExternalFolderWatchers();
|
|
161
|
-
eventEmitter.fire();
|
|
179
|
+
void update(true);
|
|
162
180
|
}
|
|
163
181
|
}));
|
|
164
182
|
disposables.add(this.onDidChangeWorkspaceFolders()(() => {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
});
|
|
170
|
-
eventEmitter.fire();
|
|
183
|
+
void update(true);
|
|
184
|
+
}));
|
|
185
|
+
disposables.add(this.workspaceTrustManagementService.onDidChangeTrustedFolders(() => {
|
|
186
|
+
void update(true);
|
|
171
187
|
}));
|
|
172
188
|
disposables.add(this.fileService.onDidFilesChange(e => {
|
|
173
189
|
if (e.affects(userDataFolder)) {
|
|
@@ -178,76 +194,72 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
178
194
|
eventEmitter.fire();
|
|
179
195
|
return;
|
|
180
196
|
}
|
|
181
|
-
if (( allSourceFolders.some(folder => e.affects(folder)))) {
|
|
182
|
-
eventEmitter.fire();
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
197
|
}));
|
|
186
198
|
disposables.add(this.fileService.watch(userDataFolder));
|
|
199
|
+
void update(false);
|
|
187
200
|
return {
|
|
188
201
|
event: eventEmitter.event,
|
|
189
202
|
dispose: () => disposables.dispose()
|
|
190
203
|
};
|
|
191
204
|
}
|
|
192
205
|
async getHookSourceFolders() {
|
|
193
|
-
const userHome = await this.pathService.userHome();
|
|
194
206
|
const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, PromptsType.hook);
|
|
195
207
|
const allowedHookFolders = configuredLocations.filter(loc => !loc.path.startsWith(".claude/") && !loc.path.includes("/.claude/"));
|
|
196
208
|
const result = ( new ResourceSet());
|
|
197
|
-
const absoluteLocations = this.toAbsoluteLocations(PromptsType.hook, allowedHookFolders
|
|
209
|
+
const absoluteLocations = await this.toAbsoluteLocations(PromptsType.hook, allowedHookFolders);
|
|
198
210
|
for (const location of absoluteLocations) {
|
|
199
|
-
|
|
200
|
-
if (isSpecificFile) {
|
|
201
|
-
result.add(dirname(location.uri));
|
|
202
|
-
} else {
|
|
203
|
-
result.add(location.uri);
|
|
204
|
-
}
|
|
211
|
+
result.add(location.parent);
|
|
205
212
|
}
|
|
206
213
|
return [...result];
|
|
207
214
|
}
|
|
208
215
|
async getConfigBasedSourceFolders(type) {
|
|
209
|
-
const userHome = await this.pathService.userHome();
|
|
210
216
|
const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
|
|
211
|
-
const absoluteLocations =
|
|
217
|
+
const absoluteLocations = await this.toAbsoluteLocations(type, configuredLocations);
|
|
212
218
|
if (type !== PromptsType.prompt && type !== PromptsType.instructions) {
|
|
213
|
-
return absoluteLocations;
|
|
219
|
+
return ( absoluteLocations.map(l => l.uri));
|
|
214
220
|
}
|
|
215
221
|
const result = ( new ResourceSet());
|
|
216
|
-
for (
|
|
217
|
-
|
|
222
|
+
for (const absoluteLocation of absoluteLocations) {
|
|
223
|
+
let location = absoluteLocation.uri;
|
|
224
|
+
const baseName = basename(location);
|
|
218
225
|
const filePatterns = ["*.md", `*${getPromptFileExtension(type)}`];
|
|
219
226
|
for (const filePattern of filePatterns) {
|
|
220
227
|
if (baseName === filePattern) {
|
|
221
|
-
|
|
228
|
+
location = dirname(location);
|
|
222
229
|
continue;
|
|
223
230
|
}
|
|
224
231
|
}
|
|
225
232
|
if (baseName === "*") {
|
|
226
|
-
|
|
233
|
+
location = dirname(location);
|
|
227
234
|
}
|
|
228
|
-
if (isValidGlob(
|
|
235
|
+
if (isValidGlob(location.path) === true) {
|
|
229
236
|
continue;
|
|
230
237
|
}
|
|
231
|
-
result.add(
|
|
238
|
+
result.add(location);
|
|
232
239
|
}
|
|
233
240
|
return [...result];
|
|
234
241
|
}
|
|
235
242
|
async getResolvedSourceFolders(type) {
|
|
236
|
-
const
|
|
237
|
-
const
|
|
243
|
+
const absoluteLocations = await this.getLocalStorageFolders(type);
|
|
244
|
+
const localFolders = absoluteLocations.filter(loc => loc.storage === PromptsStorage.local);
|
|
245
|
+
const userFolders = absoluteLocations.filter(loc => loc.storage === PromptsStorage.user);
|
|
238
246
|
return this.dedupeSourceFolders([...localFolders, ...userFolders]);
|
|
239
247
|
}
|
|
240
248
|
async getSourceFoldersInDiscoveryOrder(type) {
|
|
241
|
-
const
|
|
242
|
-
const
|
|
249
|
+
const absoluteLocations = await this.getLocalStorageFolders(type);
|
|
250
|
+
const userFolders = absoluteLocations.filter(loc => loc.storage === PromptsStorage.user);
|
|
251
|
+
const localFolders = absoluteLocations.filter(loc => loc.storage === PromptsStorage.local);
|
|
243
252
|
return this.dedupeSourceFolders([...userFolders, ...localFolders]);
|
|
244
253
|
}
|
|
245
254
|
async getLocalStorageFolders(type) {
|
|
246
|
-
const userHome = await this.pathService.userHome();
|
|
247
255
|
const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
|
|
248
256
|
const defaultFolders = getPromptFileDefaultLocations(type);
|
|
249
257
|
const allFolders = [...defaultFolders, ...configuredLocations.filter(loc => !( defaultFolders.some(df => df.path === loc.path)))];
|
|
250
|
-
|
|
258
|
+
const absoluteLocations = await this.toAbsoluteLocations(type, allFolders, defaultFolders);
|
|
259
|
+
if (type === PromptsType.agent || type === PromptsType.instructions || type === PromptsType.prompt) {
|
|
260
|
+
absoluteLocations.push(this.userDataFolder);
|
|
261
|
+
}
|
|
262
|
+
return absoluteLocations;
|
|
251
263
|
}
|
|
252
264
|
dedupeSourceFolders(folders) {
|
|
253
265
|
const seen = ( new ResourceSet());
|
|
@@ -260,34 +272,13 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
260
272
|
}
|
|
261
273
|
return result;
|
|
262
274
|
}
|
|
263
|
-
async
|
|
264
|
-
const paths = ( new ResourceSet());
|
|
265
|
-
for (const {
|
|
266
|
-
parent,
|
|
267
|
-
filePattern
|
|
268
|
-
} of this.getLocalParentFolders(type)) {
|
|
269
|
-
const files = (filePattern === undefined) ?
|
|
270
|
-
await this.resolveFilesAtLocation(parent, type, token) : await this.searchFilesInLocation(parent, filePattern, token);
|
|
271
|
-
for (const file of files) {
|
|
272
|
-
if (getPromptFileType(file) === type) {
|
|
273
|
-
paths.add(file);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
if (token.isCancellationRequested) {
|
|
277
|
-
return [];
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
return [...paths];
|
|
281
|
-
}
|
|
282
|
-
getLocalParentFolders(type) {
|
|
283
|
-
const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
|
|
284
|
-
const absoluteLocations = this.toAbsoluteLocations(type, configuredLocations, undefined);
|
|
285
|
-
return ( absoluteLocations.map(location => firstNonGlobParentAndPattern(location.uri)));
|
|
286
|
-
}
|
|
287
|
-
toAbsoluteLocations(type, configuredLocations, userHome, defaultLocations) {
|
|
275
|
+
async toAbsoluteLocations(type, configuredLocations, defaultLocations) {
|
|
288
276
|
const result = [];
|
|
289
277
|
const seen = ( new ResourceSet());
|
|
290
|
-
const
|
|
278
|
+
const userHome = await this.pathService.userHome();
|
|
279
|
+
const rootFolders = await this.getWorkspaceFolderRoots(
|
|
280
|
+
this.configService.getValue(PromptsConfig.USE_CUSTOMIZATIONS_IN_PARENT_REPOS) === true
|
|
281
|
+
);
|
|
291
282
|
const defaultPaths = ( new Set(defaultLocations?.map(loc => loc.path)));
|
|
292
283
|
const validLocations = configuredLocations.filter(sourceFolder => {
|
|
293
284
|
if (type === PromptsType.instructions || type === PromptsType.prompt) {
|
|
@@ -319,18 +310,22 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
319
310
|
const isDefault = defaultPaths?.has(configuredLocation);
|
|
320
311
|
try {
|
|
321
312
|
if (isTildePath(configuredLocation)) {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
313
|
+
const uri = joinPath(userHome, configuredLocation.substring(2));
|
|
314
|
+
if (!( seen.has(uri))) {
|
|
315
|
+
seen.add(uri);
|
|
316
|
+
const {
|
|
317
|
+
parent,
|
|
318
|
+
filePattern
|
|
319
|
+
} = getParentFolder(type, uri);
|
|
320
|
+
result.push({
|
|
321
|
+
uri,
|
|
322
|
+
parent,
|
|
323
|
+
filePattern,
|
|
324
|
+
source: sourceFolder.source,
|
|
325
|
+
storage: sourceFolder.storage,
|
|
326
|
+
displayPath: configuredLocation,
|
|
327
|
+
isDefault
|
|
328
|
+
});
|
|
334
329
|
}
|
|
335
330
|
continue;
|
|
336
331
|
}
|
|
@@ -345,8 +340,14 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
345
340
|
}
|
|
346
341
|
if (!( seen.has(uri))) {
|
|
347
342
|
seen.add(uri);
|
|
343
|
+
const {
|
|
344
|
+
parent,
|
|
345
|
+
filePattern
|
|
346
|
+
} = getParentFolder(type, uri);
|
|
348
347
|
result.push({
|
|
349
348
|
uri,
|
|
349
|
+
parent,
|
|
350
|
+
filePattern,
|
|
350
351
|
source: sourceFolder.source,
|
|
351
352
|
storage: sourceFolder.storage,
|
|
352
353
|
displayPath: configuredLocation,
|
|
@@ -354,12 +355,18 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
354
355
|
});
|
|
355
356
|
}
|
|
356
357
|
} else {
|
|
357
|
-
for (const
|
|
358
|
-
const absolutePath = joinPath(
|
|
358
|
+
for (const folder of rootFolders) {
|
|
359
|
+
const absolutePath = joinPath(folder, configuredLocation);
|
|
359
360
|
if (!( seen.has(absolutePath))) {
|
|
360
361
|
seen.add(absolutePath);
|
|
362
|
+
const {
|
|
363
|
+
parent,
|
|
364
|
+
filePattern
|
|
365
|
+
} = getParentFolder(type, absolutePath);
|
|
361
366
|
result.push({
|
|
362
367
|
uri: absolutePath,
|
|
368
|
+
parent,
|
|
369
|
+
filePattern,
|
|
363
370
|
source: sourceFolder.source,
|
|
364
371
|
storage: sourceFolder.storage,
|
|
365
372
|
displayPath: configuredLocation,
|
|
@@ -444,27 +451,6 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
444
451
|
}
|
|
445
452
|
return [];
|
|
446
453
|
}
|
|
447
|
-
async findCopilotInstructionsMDsInWorkspace(token) {
|
|
448
|
-
const result = [];
|
|
449
|
-
const folders = this.getWorkspaceFolders();
|
|
450
|
-
for (const folder of folders) {
|
|
451
|
-
const file = joinPath(folder.uri, `.github/` + COPILOT_CUSTOM_INSTRUCTIONS_FILENAME);
|
|
452
|
-
try {
|
|
453
|
-
const stat = await this.fileService.stat(file);
|
|
454
|
-
if (stat.isFile) {
|
|
455
|
-
const realPath = stat.isSymbolicLink ? await this.fileService.realpath(file) : undefined;
|
|
456
|
-
result.push({
|
|
457
|
-
uri: file,
|
|
458
|
-
realPath,
|
|
459
|
-
type: AgentFileType.copilotInstructionsMd
|
|
460
|
-
});
|
|
461
|
-
}
|
|
462
|
-
} catch (error) {
|
|
463
|
-
this.logService.trace(`[PromptFilesLocator] Skipping copilot-instructions.md at ${( file.toString())}: ${error}`);
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
return result;
|
|
467
|
-
}
|
|
468
454
|
async findAgentMDsInWorkspace(token) {
|
|
469
455
|
const result = await Promise.all(( this.getWorkspaceFolders().map(folder => this.findAgentMDsInFolder(folder.uri, token))));
|
|
470
456
|
return result.flat(1);
|
|
@@ -539,31 +525,28 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
539
525
|
await traverse(folder);
|
|
540
526
|
return result;
|
|
541
527
|
}
|
|
542
|
-
async
|
|
543
|
-
const
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
return this.findFilesInRoots(( folders.map(f => f.uri)), fileName, type, token, result);
|
|
548
|
-
}
|
|
549
|
-
async findFilesInRoots(roots, fileName, type, token, result = []) {
|
|
550
|
-
const fileNameLower = fileName.toLowerCase();
|
|
551
|
-
const resolvedRoots = await this.fileService.resolveAll(( roots.map(uri => ({
|
|
552
|
-
resource: uri
|
|
553
|
-
}))));
|
|
528
|
+
async findFilesInRoots(roots, folder, paths, token, result = []) {
|
|
529
|
+
const toResolve = ( roots.map(root => ({
|
|
530
|
+
resource: folder !== undefined ? joinPath(root, folder) : root
|
|
531
|
+
})));
|
|
532
|
+
const resolvedRoots = await this.fileService.resolveAll(toResolve);
|
|
554
533
|
if (token.isCancellationRequested) {
|
|
555
534
|
return result;
|
|
556
535
|
}
|
|
557
536
|
for (const root of resolvedRoots) {
|
|
558
537
|
if (root.success && root.stat?.children) {
|
|
559
|
-
const
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
538
|
+
for (const child of root.stat.children) {
|
|
539
|
+
if (child.isFile) {
|
|
540
|
+
const matchingPath = paths.find(p => equalsIgnoreCase(p.fileName, child.name));
|
|
541
|
+
if (matchingPath) {
|
|
542
|
+
const realPath = child.isSymbolicLink ? await this.fileService.realpath(child.resource) : undefined;
|
|
543
|
+
result.push({
|
|
544
|
+
uri: child.resource,
|
|
545
|
+
realPath,
|
|
546
|
+
type: matchingPath.type
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
}
|
|
567
550
|
}
|
|
568
551
|
}
|
|
569
552
|
}
|
|
@@ -618,9 +601,8 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
618
601
|
}
|
|
619
602
|
}
|
|
620
603
|
async findAgentSkills(token) {
|
|
621
|
-
const userHome = await this.pathService.userHome();
|
|
622
604
|
const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, PromptsType.skill);
|
|
623
|
-
const absoluteLocations = this.toAbsoluteLocations(PromptsType.skill, configuredLocations
|
|
605
|
+
const absoluteLocations = await this.toAbsoluteLocations(PromptsType.skill, configuredLocations);
|
|
624
606
|
const allResults = [];
|
|
625
607
|
for (const {
|
|
626
608
|
uri,
|
|
@@ -640,7 +622,7 @@ let PromptFilesLocator = class PromptFilesLocator {
|
|
|
640
622
|
return allResults;
|
|
641
623
|
}
|
|
642
624
|
};
|
|
643
|
-
PromptFilesLocator = ( __decorate([( __param(0, IFileService)), ( __param(1, IConfigurationService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IWorkbenchEnvironmentService)), ( __param(4, ISearchService)), ( __param(5, IUserDataProfileService)), ( __param(6, ILogService)), ( __param(7, IPathService))], PromptFilesLocator));
|
|
625
|
+
PromptFilesLocator = ( __decorate([( __param(0, IFileService)), ( __param(1, IConfigurationService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IWorkbenchEnvironmentService)), ( __param(4, ISearchService)), ( __param(5, IUserDataProfileService)), ( __param(6, ILogService)), ( __param(7, IPathService)), ( __param(8, IWorkspaceTrustManagementService))], PromptFilesLocator));
|
|
644
626
|
function hasGlobPattern(path) {
|
|
645
627
|
return path.includes("*");
|
|
646
628
|
}
|
|
@@ -694,7 +676,15 @@ function isValidGlob(pattern) {
|
|
|
694
676
|
}
|
|
695
677
|
return false;
|
|
696
678
|
}
|
|
697
|
-
function
|
|
679
|
+
function getParentFolder(type, location) {
|
|
680
|
+
if (type === PromptsType.hook && extname(location) === ".json") {
|
|
681
|
+
location = dirname(location);
|
|
682
|
+
}
|
|
683
|
+
if (type !== PromptsType.instructions && type !== PromptsType.prompt) {
|
|
684
|
+
return {
|
|
685
|
+
parent: location
|
|
686
|
+
};
|
|
687
|
+
}
|
|
698
688
|
const segments = location.path.split("/");
|
|
699
689
|
let i = 0;
|
|
700
690
|
while (i < segments.length && isValidGlob(segments[i]) === false) {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
3
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
|
+
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
5
|
+
import { IChatArtifactsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/chatArtifactsService.service";
|
|
6
|
+
export interface IChatArtifact {
|
|
7
|
+
readonly label: string;
|
|
8
|
+
readonly uri: string;
|
|
9
|
+
readonly toolCallId?: string;
|
|
10
|
+
readonly dataPartIndex?: number;
|
|
11
|
+
readonly type: "devServer" | "screenshot" | "plan" | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare class ChatArtifactsService extends Disposable implements IChatArtifactsService {
|
|
14
|
+
readonly _serviceBrand: undefined;
|
|
15
|
+
private readonly _onDidUpdateArtifacts;
|
|
16
|
+
readonly onDidUpdateArtifacts: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<URI>;
|
|
17
|
+
private readonly _storage;
|
|
18
|
+
private readonly _observables;
|
|
19
|
+
constructor(storageService: IStorageService);
|
|
20
|
+
getArtifacts(sessionResource: URI): readonly IChatArtifact[];
|
|
21
|
+
setArtifacts(sessionResource: URI, artifacts: IChatArtifact[]): void;
|
|
22
|
+
migrateArtifacts(oldSessionResource: URI, newSessionResource: URI): void;
|
|
23
|
+
artifacts(sessionResource: URI): IObservable<readonly IChatArtifact[]>;
|
|
24
|
+
}
|