@codingame/monaco-vscode-api 26.1.1 → 26.2.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/missing-services.js +26 -5
- package/package.json +8 -8
- package/services.js +3 -3
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css +9 -0
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.d.ts +2 -0
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +12 -5
- package/vscode/src/vs/platform/actions/common/actions.d.ts +1 -0
- package/vscode/src/vs/platform/actions/common/actions.js +3 -0
- package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.d.ts +4 -0
- package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +5 -1
- package/vscode/src/vs/platform/product/common/product.js +3 -3
- package/vscode/src/vs/platform/window/common/window.d.ts +1 -0
- package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +2 -1
- package/vscode/src/vs/workbench/api/common/extHost.protocol.d.ts +1 -0
- package/vscode/src/vs/workbench/api/common/extHostChatAgents2.d.ts +1 -0
- package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +31 -8
- package/vscode/src/vs/workbench/api/common/extHostChatSessions.js +2 -1
- package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +7 -2
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.d.ts +12 -1
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +67 -3
- package/vscode/src/vs/workbench/api/common/extHostTypes.d.ts +12 -0
- package/vscode/src/vs/workbench/api/common/extHostTypes.js +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +1 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +15 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatScreenshotContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.d.ts +8 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileRewriter.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileRewriter.js +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.js +80 -62
- package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariableEntries.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatModes.d.ts +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatModes.js +8 -9
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.d.ts +70 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.js +27 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.service.d.ts +27 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.service.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/common/constants.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/constants.js +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/editing/chatEditingService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/languageModelStats.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.d.ts +84 -5
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.js +176 -70
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatViewModel.d.ts +18 -5
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatViewModel.js +46 -4
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.js +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.service.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.js +68 -54
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/config.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/config.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.d.ts +48 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.js +64 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.d.ts +159 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.js +387 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser.d.ts +21 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser.js +82 -26
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.js +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +51 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +14 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service.d.ts +11 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptEditHelper.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptEditHelper.js +22 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/manageTodoListTool.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/runSubagentTool.d.ts +14 -2
- package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/runSubagentTool.js +98 -25
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/widget/input/modelPickerWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +11 -11
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +4 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorAccessibilityHelp.js +5 -5
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +9 -9
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +3 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +6 -6
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +4 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +3 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +5 -5
- package/vscode/src/vs/workbench/contrib/codeEditor/common/languageConfigurationExtensionPoint.js +65 -65
- package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +2 -2
- package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsAccessibility.js +12 -12
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +9 -9
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +14 -14
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +16 -16
- package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +12 -12
- package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +29 -29
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +75 -75
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +6 -6
- package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +12 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +38 -38
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +57 -57
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +18 -18
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +9 -9
- package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/debug.js +65 -65
- package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +6 -6
- package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/commands.js +2 -2
- package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/configurationSchema.js +4 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +18 -18
- package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +41 -41
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +15 -15
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +14 -14
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +147 -147
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +170 -170
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +5 -5
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsIcons.js +24 -24
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +4 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +7 -7
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +48 -48
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +5 -5
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +29 -29
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +74 -74
- package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionsFileTemplate.js +5 -5
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionsUtils.js +3 -3
- package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/common/searchExtensionsTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/configuration.js +4 -4
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +3 -3
- package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +8 -8
- package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +18 -18
- package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +14 -14
- package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +39 -39
- package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +84 -84
- package/vscode/src/vs/workbench/contrib/files/browser/fileCommands._save.js +4 -4
- package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -6
- package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +27 -27
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +50 -50
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
- package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
- package/vscode/src/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +7 -7
- package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +17 -17
- package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +7 -7
- package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +4 -4
- package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +1 -1
- package/vscode/src/vs/workbench/contrib/files/common/files.js +16 -16
- package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +20 -20
- package/vscode/src/vs/workbench/contrib/format/browser/formatActionsNone.js +4 -4
- package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +4 -4
- package/vscode/src/vs/workbench/contrib/list/browser/listResizeColumnAction.js +2 -2
- package/vscode/src/vs/workbench/contrib/list/browser/tableColumnResizeQuickPick.js +5 -5
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.js +66 -66
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfiguration.js +31 -31
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.js +9 -9
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.js +4 -4
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +23 -23
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +8 -8
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/icons.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +8 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +29 -29
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellOutput.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookViewZones.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingWidgets.js +3 -3
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesIcons.js +13 -13
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +10 -10
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsLayout.js +50 -50
- package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +3 -3
- package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +21 -21
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +15 -15
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +17 -17
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +59 -59
- package/vscode/src/vs/workbench/contrib/scm/browser/scmHistory.js +11 -11
- package/vscode/src/vs/workbench/contrib/scm/browser/scmHistoryChatContext.js +6 -6
- package/vscode/src/vs/workbench/contrib/scm/common/quickDiff.js +14 -14
- package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +9 -9
- package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +1 -1
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +12 -12
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +9 -9
- package/vscode/src/vs/workbench/contrib/search/browser/searchChatContext.js +5 -5
- package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +20 -20
- package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +2 -2
- package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +14 -14
- package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +55 -55
- package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +2 -2
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +5 -5
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +3 -3
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +9 -9
- package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +29 -29
- package/vscode/src/vs/workbench/contrib/tasks/common/constants.js +1 -1
- package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +5 -5
- package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +6 -6
- package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcons.js +13 -13
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMenus.js +40 -40
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +15 -15
- package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +9 -9
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +23 -23
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +17 -17
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +26 -26
- package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/autoReplies/common/terminalAutoRepliesConfiguration.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.js +54 -54
- package/vscode/src/vs/workbench/contrib/terminalContrib/commandGuide/common/terminalCommandGuideConfiguration.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/history/common/terminal.history.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/common/terminalSuggestConfiguration.js +30 -30
- package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/common/terminalTypeAheadConfiguration.js +5 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/common/terminal.zoom.js +2 -2
- package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
- package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
- package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
- package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +6 -6
- package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +2 -2
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +11 -11
- package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +5 -5
- package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +14 -14
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -16
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -1
- package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
- package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +1 -1
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionsIcons.js +3 -3
- package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +6 -6
- package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
- package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +88 -88
- package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +5 -5
- package/vscode/src/vs/workbench/services/language/common/languageService.js +24 -24
- package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
- package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +2 -2
- package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +7 -7
- package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +4 -4
- package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
- package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
- package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -1
- package/vscode/src/vs/workbench/services/storage/browser/storageService.d.ts +5 -1
- package/vscode/src/vs/workbench/services/storage/browser/storageService.js +32 -16
- package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +9 -9
- package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +3 -3
- package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +18 -18
- package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +8 -8
- package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
- package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +24 -24
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +3 -3
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
- package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
- package/vscode/src/vs/workbench/services/views/browser/viewsService.js +9 -9
- package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +16 -16
- package/vscode/src/vs/workbench/services/workspaces/browser/workspaces.d.ts +2 -2
- package/vscode/src/vs/workbench/services/workspaces/browser/workspaces.js +4 -4
- package/vscode-dts/vscode.proposed.chatHooks.d.ts +126 -0
- package/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts +25 -1
- package/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts +35 -1
- package/vscode-dts/vscode.proposed.d.ts +1 -0
- package/workbench.js +2 -2
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.js
CHANGED
|
@@ -15,8 +15,9 @@ import { toPromptFileVariableEntry, PromptFileVariableKind, isPromptFileVariable
|
|
|
15
15
|
import { VSCodeToolReference } from '../tools/languageModelToolsService.js';
|
|
16
16
|
import { ILanguageModelToolsService } from '../tools/languageModelToolsService.service.js';
|
|
17
17
|
import { PromptsConfig } from './config/config.js';
|
|
18
|
-
import { isPromptOrInstructionsFile } from './config/promptFileLocations.js';
|
|
18
|
+
import { isInClaudeRulesFolder, isInClaudeAgentsFolder, isPromptOrInstructionsFile } from './config/promptFileLocations.js';
|
|
19
19
|
import { PromptsType } from './promptTypes.js';
|
|
20
|
+
import { AgentFileType } from './service/promptsService.js';
|
|
20
21
|
import { IPromptsService } from './service/promptsService.service.js';
|
|
21
22
|
import { OffsetRange } from '../../../../../editor/common/core/ranges/offsetRange.js';
|
|
22
23
|
import { ChatModeKind, ChatConfiguration } from '../constants.js';
|
|
@@ -27,7 +28,10 @@ function newInstructionsCollectionEvent() {
|
|
|
27
28
|
referencedInstructionsCount: 0,
|
|
28
29
|
agentInstructionsCount: 0,
|
|
29
30
|
listedInstructionsCount: 0,
|
|
30
|
-
totalInstructionsCount: 0
|
|
31
|
+
totalInstructionsCount: 0,
|
|
32
|
+
claudeRulesCount: 0,
|
|
33
|
+
claudeMdCount: 0,
|
|
34
|
+
claudeAgentsCount: 0
|
|
31
35
|
};
|
|
32
36
|
}
|
|
33
37
|
let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
@@ -83,7 +87,7 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
83
87
|
await this.addApplyingInstructions(instructionFiles, context, variables, telemetryEvent, token);
|
|
84
88
|
await this._addReferencedInstructions(variables, telemetryEvent, token);
|
|
85
89
|
await this._addAgentInstructions(variables, telemetryEvent, token);
|
|
86
|
-
const instructionsListVariable = await this._getInstructionsWithPatternsList(instructionFiles, variables, token);
|
|
90
|
+
const instructionsListVariable = await this._getInstructionsWithPatternsList(instructionFiles, variables, telemetryEvent, token);
|
|
87
91
|
if (instructionsListVariable) {
|
|
88
92
|
variables.add(instructionsListVariable);
|
|
89
93
|
telemetryEvent.listedInstructionsCount++;
|
|
@@ -111,7 +115,10 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
111
115
|
continue;
|
|
112
116
|
}
|
|
113
117
|
const applyTo = parsedFile.header?.applyTo;
|
|
114
|
-
|
|
118
|
+
const paths = parsedFile.header?.paths;
|
|
119
|
+
const isClaudeRules = isInClaudeRulesFolder(uri);
|
|
120
|
+
const pattern = isClaudeRules ? (paths?.join(", ") ?? "**") : applyTo;
|
|
121
|
+
if (!pattern) {
|
|
115
122
|
this._logService.trace(`[InstructionsContextComputer] No 'applyTo' found: ${uri}`);
|
|
116
123
|
continue;
|
|
117
124
|
}
|
|
@@ -121,15 +128,15 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
121
128
|
);
|
|
122
129
|
continue;
|
|
123
130
|
}
|
|
124
|
-
const match = this._matches(context.files,
|
|
131
|
+
const match = this._matches(context.files, pattern);
|
|
125
132
|
if (match) {
|
|
126
133
|
this._logService.trace(
|
|
127
134
|
`[InstructionsContextComputer] Match for ${uri} with ${match.pattern}${match.file ? ` for file ${match.file}` : ""}`
|
|
128
135
|
);
|
|
129
|
-
const reason = !match.file ? ( localize(
|
|
130
|
-
|
|
136
|
+
const reason = !match.file ? ( localize(6370, "Automatically attached as pattern is **")) : ( localize(
|
|
137
|
+
6371,
|
|
131
138
|
"Automatically attached as pattern {0} matches {1}",
|
|
132
|
-
|
|
139
|
+
pattern,
|
|
133
140
|
this._labelService.getUriLabel(match.file, {
|
|
134
141
|
relative: true
|
|
135
142
|
})
|
|
@@ -138,8 +145,11 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
138
145
|
toPromptFileVariableEntry(uri, PromptFileVariableKind.Instruction, reason, true)
|
|
139
146
|
);
|
|
140
147
|
telemetryEvent.applyingInstructionsCount++;
|
|
148
|
+
if (isClaudeRules) {
|
|
149
|
+
telemetryEvent.claudeRulesCount++;
|
|
150
|
+
}
|
|
141
151
|
} else {
|
|
142
|
-
this._logService.trace(`[InstructionsContextComputer] No match for ${uri} with ${
|
|
152
|
+
this._logService.trace(`[InstructionsContextComputer] No match for ${uri} with ${pattern}`);
|
|
143
153
|
}
|
|
144
154
|
}
|
|
145
155
|
}
|
|
@@ -162,50 +172,46 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
162
172
|
};
|
|
163
173
|
}
|
|
164
174
|
async _addAgentInstructions(variables, telemetryEvent, token) {
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
`[InstructionsContextComputer] No agent instructions files added (settings disabled).`
|
|
170
|
-
);
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
175
|
+
const logger = {
|
|
176
|
+
logInfo: message => this._logService.trace(`[InstructionsContextComputer] ${message}`)
|
|
177
|
+
};
|
|
178
|
+
const allCandidates = await this._promptsService.listAgentInstructions(token, logger);
|
|
173
179
|
const entries = ( new ChatRequestVariableSet());
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
);
|
|
184
|
-
telemetryEvent.agentInstructionsCount++;
|
|
185
|
-
this._logService.trace(
|
|
186
|
-
`[InstructionsContextComputer] copilot-instruction.md files added: ${( file.toString())}`
|
|
187
|
-
);
|
|
180
|
+
const copilotEntries = ( new ChatRequestVariableSet());
|
|
181
|
+
for (const {
|
|
182
|
+
uri,
|
|
183
|
+
type
|
|
184
|
+
} of allCandidates) {
|
|
185
|
+
const varEntry = toPromptFileVariableEntry(uri, PromptFileVariableKind.Instruction, undefined, true);
|
|
186
|
+
entries.add(varEntry);
|
|
187
|
+
if (type === AgentFileType.copilotInstructionsMd) {
|
|
188
|
+
copilotEntries.add(varEntry);
|
|
188
189
|
}
|
|
189
|
-
|
|
190
|
+
telemetryEvent.agentInstructionsCount++;
|
|
191
|
+
if (type === AgentFileType.claudeMd) {
|
|
192
|
+
telemetryEvent.claudeMdCount++;
|
|
193
|
+
}
|
|
194
|
+
logger.logInfo(`Agent instruction file added: ${( uri.toString())}`);
|
|
190
195
|
}
|
|
191
|
-
if (
|
|
192
|
-
|
|
193
|
-
for (const
|
|
194
|
-
|
|
195
|
-
toPromptFileVariableEntry(file, PromptFileVariableKind.Instruction, ( localize(
|
|
196
|
-
6274,
|
|
197
|
-
"Automatically attached as setting {0} is enabled",
|
|
198
|
-
PromptsConfig.USE_AGENT_MD
|
|
199
|
-
)), true)
|
|
200
|
-
);
|
|
201
|
-
telemetryEvent.agentInstructionsCount++;
|
|
202
|
-
this._logService.trace(`[InstructionsContextComputer] AGENTS.md files added: ${( file.toString())}`);
|
|
196
|
+
if (copilotEntries.length > 0) {
|
|
197
|
+
await this._addReferencedInstructions(copilotEntries, telemetryEvent, token);
|
|
198
|
+
for (const entry of copilotEntries.asArray()) {
|
|
199
|
+
variables.add(entry);
|
|
203
200
|
}
|
|
204
201
|
}
|
|
205
202
|
for (const entry of entries.asArray()) {
|
|
206
203
|
variables.add(entry);
|
|
207
204
|
}
|
|
208
205
|
}
|
|
206
|
+
_getApplyToPattern(applyTo, paths) {
|
|
207
|
+
if (applyTo) {
|
|
208
|
+
return applyTo;
|
|
209
|
+
}
|
|
210
|
+
if (paths && paths.length > 0) {
|
|
211
|
+
return paths.join(", ");
|
|
212
|
+
}
|
|
213
|
+
return undefined;
|
|
214
|
+
}
|
|
209
215
|
_matches(files, applyToPattern) {
|
|
210
216
|
const patterns = splitGlobAware(applyToPattern, ",");
|
|
211
217
|
const patterMatches = pattern => {
|
|
@@ -254,13 +260,13 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
254
260
|
}
|
|
255
261
|
return undefined;
|
|
256
262
|
}
|
|
257
|
-
async _getInstructionsWithPatternsList(instructionFiles, _existingVariables, token) {
|
|
263
|
+
async _getInstructionsWithPatternsList(instructionFiles, _existingVariables, telemetryEvent, token) {
|
|
258
264
|
const readTool = this._getTool("readFile");
|
|
259
265
|
const runSubagentTool = this._getTool(VSCodeToolReference.runSubagent);
|
|
260
266
|
const entries = [];
|
|
261
267
|
if (readTool) {
|
|
262
268
|
const searchNestedAgentMd = this._configurationService.getValue(PromptsConfig.USE_NESTED_AGENT_MD);
|
|
263
|
-
const agentsMdPromise = searchNestedAgentMd ? this._promptsService.
|
|
269
|
+
const agentsMdPromise = searchNestedAgentMd ? this._promptsService.listNestedAgentMDs(token) : Promise.resolve([]);
|
|
264
270
|
entries.push("<instructions>");
|
|
265
271
|
entries.push(
|
|
266
272
|
"Here is a list of instruction files that contain rules for working with this codebase."
|
|
@@ -285,14 +291,16 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
285
291
|
if (parsedFile.header) {
|
|
286
292
|
const {
|
|
287
293
|
description,
|
|
288
|
-
applyTo
|
|
294
|
+
applyTo,
|
|
295
|
+
paths
|
|
289
296
|
} = parsedFile.header;
|
|
290
297
|
if (description) {
|
|
291
298
|
entries.push(`<description>${description}</description>`);
|
|
292
299
|
}
|
|
293
300
|
entries.push(`<file>${getFilePath(uri)}</file>`);
|
|
294
|
-
|
|
295
|
-
|
|
301
|
+
const applyToPattern = this._getApplyToPattern(applyTo, paths);
|
|
302
|
+
if (applyToPattern) {
|
|
303
|
+
entries.push(`<applyTo>${applyToPattern}</applyTo>`);
|
|
296
304
|
}
|
|
297
305
|
} else {
|
|
298
306
|
entries.push(`<file>${getFilePath(uri)}</file>`);
|
|
@@ -302,11 +310,13 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
302
310
|
}
|
|
303
311
|
}
|
|
304
312
|
const agentsMdFiles = await agentsMdPromise;
|
|
305
|
-
for (const
|
|
313
|
+
for (const {
|
|
314
|
+
uri
|
|
315
|
+
} of agentsMdFiles) {
|
|
306
316
|
const folderName = this._labelService.getUriLabel(dirname(uri), {
|
|
307
317
|
relative: true
|
|
308
318
|
});
|
|
309
|
-
const description = folderName.trim().length === 0 ? ( localize(
|
|
319
|
+
const description = folderName.trim().length === 0 ? ( localize(6372, "Instructions for the workspace")) : ( localize(6373, "Instructions for folder '{0}'", folderName));
|
|
310
320
|
entries.push("<instruction>");
|
|
311
321
|
entries.push(`<description>${description}</description>`);
|
|
312
322
|
entries.push(`<file>${getFilePath(uri)}</file>`);
|
|
@@ -319,7 +329,8 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
319
329
|
entries.push("</instructions>", "", "");
|
|
320
330
|
}
|
|
321
331
|
const agentSkills = await this._promptsService.findAgentSkills(token);
|
|
322
|
-
|
|
332
|
+
const modelInvokableSkills = agentSkills?.filter(skill => !skill.disableModelInvocation);
|
|
333
|
+
if (modelInvokableSkills && modelInvokableSkills.length > 0) {
|
|
323
334
|
const useSkillAdherencePrompt = this._configurationService.getValue(PromptsConfig.USE_SKILL_ADHERENCE_PROMPT);
|
|
324
335
|
entries.push("<skills>");
|
|
325
336
|
if (useSkillAdherencePrompt) {
|
|
@@ -364,7 +375,7 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
364
375
|
`When a user asks you to perform a task that falls within the domain of a skill, use the ${readTool.variable} tool to acquire the full instructions from the file URI.`
|
|
365
376
|
);
|
|
366
377
|
}
|
|
367
|
-
for (const skill of
|
|
378
|
+
for (const skill of modelInvokableSkills) {
|
|
368
379
|
entries.push("<skill>");
|
|
369
380
|
entries.push(`<name>${skill.name}</name>`);
|
|
370
381
|
if (skill.description) {
|
|
@@ -406,6 +417,9 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
406
417
|
entries.push(`<argumentHint>${agent.argumentHint}</argumentHint>`);
|
|
407
418
|
}
|
|
408
419
|
entries.push("</agent>");
|
|
420
|
+
if (isInClaudeAgentsFolder(agent.uri)) {
|
|
421
|
+
telemetryEvent.claudeAgentsCount++;
|
|
422
|
+
}
|
|
409
423
|
}
|
|
410
424
|
}
|
|
411
425
|
entries.push("</agents>", "", "");
|
|
@@ -470,7 +484,7 @@ let ComputeAutomaticInstructions = class ComputeAutomaticInstructions {
|
|
|
470
484
|
if (isPromptOrInstructionsFile(uri)) {
|
|
471
485
|
todo.push(uri);
|
|
472
486
|
}
|
|
473
|
-
const reason = ( localize(
|
|
487
|
+
const reason = ( localize(6374, "Referenced by {0}", basename(next)));
|
|
474
488
|
attachedContext.add(
|
|
475
489
|
toPromptFileVariableEntry(uri, PromptFileVariableKind.InstructionReference, reason, true)
|
|
476
490
|
);
|
|
@@ -59,6 +59,10 @@ export declare namespace PromptsConfig {
|
|
|
59
59
|
* Configuration key for the locations of skill folders.
|
|
60
60
|
*/
|
|
61
61
|
const SKILLS_LOCATION_KEY = "chat.agentSkillsLocations";
|
|
62
|
+
/**
|
|
63
|
+
* Configuration key for the locations of hook files.
|
|
64
|
+
*/
|
|
65
|
+
const HOOKS_LOCATION_KEY = "chat.hookFilesLocations";
|
|
62
66
|
/**
|
|
63
67
|
* Configuration key for prompt file suggestions.
|
|
64
68
|
*/
|
|
@@ -75,10 +79,22 @@ export declare namespace PromptsConfig {
|
|
|
75
79
|
* Configuration key for nested AGENTS.md files.
|
|
76
80
|
*/
|
|
77
81
|
const USE_NESTED_AGENT_MD = "chat.useNestedAgentsMdFiles";
|
|
82
|
+
/**
|
|
83
|
+
* Configuration key for the CLAUDE.md.
|
|
84
|
+
*/
|
|
85
|
+
const USE_CLAUDE_MD = "chat.useClaudeMdFile";
|
|
78
86
|
/**
|
|
79
87
|
* Configuration key for agent skills usage.
|
|
80
88
|
*/
|
|
81
89
|
const USE_AGENT_SKILLS = "chat.useAgentSkills";
|
|
90
|
+
/**
|
|
91
|
+
* Configuration key for chat hooks usage.
|
|
92
|
+
*/
|
|
93
|
+
const USE_CHAT_HOOKS = "chat.useHooks";
|
|
94
|
+
/**
|
|
95
|
+
* Configuration key for enabling Claude hooks.
|
|
96
|
+
*/
|
|
97
|
+
const USE_CLAUDE_HOOKS = "chat.useClaudeHooks";
|
|
82
98
|
/**
|
|
83
99
|
* Configuration key for enabling stronger skill adherence prompt (experimental).
|
|
84
100
|
*/
|
|
@@ -10,11 +10,15 @@ var PromptsConfig;
|
|
|
10
10
|
PromptsConfig.MODE_LOCATION_KEY = "chat.modeFilesLocations";
|
|
11
11
|
PromptsConfig.AGENTS_LOCATION_KEY = "chat.agentFilesLocations";
|
|
12
12
|
PromptsConfig.SKILLS_LOCATION_KEY = "chat.agentSkillsLocations";
|
|
13
|
+
PromptsConfig.HOOKS_LOCATION_KEY = "chat.hookFilesLocations";
|
|
13
14
|
PromptsConfig.PROMPT_FILES_SUGGEST_KEY = "chat.promptFilesRecommendations";
|
|
14
15
|
PromptsConfig.USE_COPILOT_INSTRUCTION_FILES = "github.copilot.chat.codeGeneration.useInstructionFiles";
|
|
15
16
|
PromptsConfig.USE_AGENT_MD = "chat.useAgentsMdFile";
|
|
16
17
|
PromptsConfig.USE_NESTED_AGENT_MD = "chat.useNestedAgentsMdFiles";
|
|
18
|
+
PromptsConfig.USE_CLAUDE_MD = "chat.useClaudeMdFile";
|
|
17
19
|
PromptsConfig.USE_AGENT_SKILLS = "chat.useAgentSkills";
|
|
20
|
+
PromptsConfig.USE_CHAT_HOOKS = "chat.useHooks";
|
|
21
|
+
PromptsConfig.USE_CLAUDE_HOOKS = "chat.useClaudeHooks";
|
|
18
22
|
PromptsConfig.USE_SKILL_ADHERENCE_PROMPT = "chat.experimental.useSkillAdherencePrompt";
|
|
19
23
|
PromptsConfig.INCLUDE_APPLYING_INSTRUCTIONS = "chat.includeApplyingInstructions";
|
|
20
24
|
PromptsConfig.INCLUDE_REFERENCED_INSTRUCTIONS = "chat.includeReferencedInstructions";
|
|
@@ -108,6 +112,8 @@ function getPromptFileLocationsConfigKey(type) {
|
|
|
108
112
|
return PromptsConfig.AGENTS_LOCATION_KEY;
|
|
109
113
|
case PromptsType.skill:
|
|
110
114
|
return PromptsConfig.SKILLS_LOCATION_KEY;
|
|
115
|
+
case PromptsType.hook:
|
|
116
|
+
return PromptsConfig.HOOKS_LOCATION_KEY;
|
|
111
117
|
default:
|
|
112
118
|
throw ( new Error("Unknown prompt type"));
|
|
113
119
|
}
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.d.ts
CHANGED
|
@@ -21,6 +21,22 @@ export declare const AGENT_FILE_EXTENSION = ".agent.md";
|
|
|
21
21
|
* Skill file name (case insensitive).
|
|
22
22
|
*/
|
|
23
23
|
export declare const SKILL_FILENAME = "SKILL.md";
|
|
24
|
+
/**
|
|
25
|
+
* AGENT file name
|
|
26
|
+
*/
|
|
27
|
+
export declare const AGENT_MD_FILENAME = "AGENTS.md";
|
|
28
|
+
/**
|
|
29
|
+
* Claude file name.
|
|
30
|
+
*/
|
|
31
|
+
export declare const CLAUDE_MD_FILENAME = "CLAUDE.md";
|
|
32
|
+
/**
|
|
33
|
+
* Claude local file name.
|
|
34
|
+
*/
|
|
35
|
+
export declare const CLAUDE_LOCAL_MD_FILENAME = "CLAUDE.local.md";
|
|
36
|
+
/**
|
|
37
|
+
* Claude configuration folder name.
|
|
38
|
+
*/
|
|
39
|
+
export declare const CLAUDE_CONFIG_FOLDER = ".claude";
|
|
24
40
|
/**
|
|
25
41
|
* Copilot custom instructions file name.
|
|
26
42
|
*/
|
|
@@ -41,6 +57,18 @@ export declare const LEGACY_MODE_DEFAULT_SOURCE_FOLDER = ".github/chatmodes";
|
|
|
41
57
|
* Agents folder.
|
|
42
58
|
*/
|
|
43
59
|
export declare const AGENTS_SOURCE_FOLDER = ".github/agents";
|
|
60
|
+
/**
|
|
61
|
+
* Claude agents folder.
|
|
62
|
+
*/
|
|
63
|
+
export declare const CLAUDE_AGENTS_SOURCE_FOLDER = ".claude/agents";
|
|
64
|
+
/**
|
|
65
|
+
* Claude rules folder.
|
|
66
|
+
*/
|
|
67
|
+
export declare const CLAUDE_RULES_SOURCE_FOLDER = ".claude/rules";
|
|
68
|
+
/**
|
|
69
|
+
* Hooks folder.
|
|
70
|
+
*/
|
|
71
|
+
export declare const HOOKS_SOURCE_FOLDER = ".github/hooks";
|
|
44
72
|
/**
|
|
45
73
|
* Tracks where prompt files originate from.
|
|
46
74
|
*/
|
|
@@ -49,6 +77,7 @@ export declare enum PromptFileSource {
|
|
|
49
77
|
CopilotPersonal = "copilot-personal",
|
|
50
78
|
ClaudePersonal = "claude-personal",
|
|
51
79
|
ClaudeWorkspace = "claude-workspace",
|
|
80
|
+
ClaudeWorkspaceLocal = "claude-workspace-local",
|
|
52
81
|
AgentsWorkspace = "agents-workspace",
|
|
53
82
|
AgentsPersonal = "agents-personal",
|
|
54
83
|
ConfigWorkspace = "config-workspace",
|
|
@@ -105,8 +134,27 @@ export declare const DEFAULT_PROMPT_SOURCE_FOLDERS: readonly IPromptSourceFolder
|
|
|
105
134
|
* Default agent source folders.
|
|
106
135
|
*/
|
|
107
136
|
export declare const DEFAULT_AGENT_SOURCE_FOLDERS: readonly IPromptSourceFolder[];
|
|
137
|
+
/**
|
|
138
|
+
* Default hook file paths.
|
|
139
|
+
* Entries can be either a directory or a specific file path (.json)
|
|
140
|
+
*/
|
|
141
|
+
export declare const DEFAULT_HOOK_FILE_PATHS: readonly IPromptSourceFolder[];
|
|
142
|
+
/**
|
|
143
|
+
* Helper function to check if a file is directly in the .claude/agents/ folder.
|
|
144
|
+
*/
|
|
145
|
+
export declare function isInClaudeAgentsFolder(fileUri: URI): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Helper function to check if a file is inside the .claude/rules/ folder (including subfolders).
|
|
148
|
+
* Claude rules files (.md) in this folder are treated as instruction files.
|
|
149
|
+
*/
|
|
150
|
+
export declare function isInClaudeRulesFolder(fileUri: URI): boolean;
|
|
108
151
|
/**
|
|
109
152
|
* Gets the prompt file type from the provided path.
|
|
153
|
+
*
|
|
154
|
+
* Note: This function assumes the URI is already known to be a prompt file
|
|
155
|
+
* (e.g., from a configured prompt source folder). It does not validate that
|
|
156
|
+
* arbitrary URIs are prompt files - for example, any .json file will return
|
|
157
|
+
* PromptsType.hook regardless of its location.
|
|
110
158
|
*/
|
|
111
159
|
export declare function getPromptFileType(fileUri: URI): PromptsType | undefined;
|
|
112
160
|
/**
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.js
CHANGED
|
@@ -1,24 +1,35 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { posix } from '../../../../../../base/common/path.js';
|
|
3
3
|
import { PromptsType } from '../promptTypes.js';
|
|
4
4
|
import { PromptsStorage } from '../service/promptsService.js';
|
|
5
5
|
|
|
6
|
+
const {
|
|
7
|
+
basename,
|
|
8
|
+
dirname
|
|
9
|
+
} = posix;
|
|
6
10
|
const PROMPT_FILE_EXTENSION = ".prompt.md";
|
|
7
11
|
const INSTRUCTION_FILE_EXTENSION = ".instructions.md";
|
|
8
12
|
const LEGACY_MODE_FILE_EXTENSION = ".chatmode.md";
|
|
9
13
|
const AGENT_FILE_EXTENSION = ".agent.md";
|
|
10
14
|
const SKILL_FILENAME = "SKILL.md";
|
|
15
|
+
const AGENT_MD_FILENAME = "AGENTS.md";
|
|
16
|
+
const CLAUDE_MD_FILENAME = "CLAUDE.md";
|
|
17
|
+
const CLAUDE_LOCAL_MD_FILENAME = "CLAUDE.local.md";
|
|
18
|
+
const CLAUDE_CONFIG_FOLDER = ".claude";
|
|
11
19
|
const COPILOT_CUSTOM_INSTRUCTIONS_FILENAME = "copilot-instructions.md";
|
|
12
20
|
const PROMPT_DEFAULT_SOURCE_FOLDER = ".github/prompts";
|
|
13
21
|
const INSTRUCTIONS_DEFAULT_SOURCE_FOLDER = ".github/instructions";
|
|
14
22
|
const LEGACY_MODE_DEFAULT_SOURCE_FOLDER = ".github/chatmodes";
|
|
15
23
|
const AGENTS_SOURCE_FOLDER = ".github/agents";
|
|
24
|
+
const CLAUDE_AGENTS_SOURCE_FOLDER = ".claude/agents";
|
|
25
|
+
const CLAUDE_RULES_SOURCE_FOLDER = ".claude/rules";
|
|
16
26
|
var PromptFileSource;
|
|
17
27
|
(function(PromptFileSource) {
|
|
18
28
|
PromptFileSource["GitHubWorkspace"] = "github-workspace";
|
|
19
29
|
PromptFileSource["CopilotPersonal"] = "copilot-personal";
|
|
20
30
|
PromptFileSource["ClaudePersonal"] = "claude-personal";
|
|
21
31
|
PromptFileSource["ClaudeWorkspace"] = "claude-workspace";
|
|
32
|
+
PromptFileSource["ClaudeWorkspaceLocal"] = "claude-workspace-local";
|
|
22
33
|
PromptFileSource["AgentsWorkspace"] = "agents-workspace";
|
|
23
34
|
PromptFileSource["AgentsPersonal"] = "agents-personal";
|
|
24
35
|
PromptFileSource["ConfigWorkspace"] = "config-workspace";
|
|
@@ -55,6 +66,14 @@ const DEFAULT_INSTRUCTIONS_SOURCE_FOLDERS = [{
|
|
|
55
66
|
path: INSTRUCTIONS_DEFAULT_SOURCE_FOLDER,
|
|
56
67
|
source: PromptFileSource.GitHubWorkspace,
|
|
57
68
|
storage: PromptsStorage.local
|
|
69
|
+
}, {
|
|
70
|
+
path: CLAUDE_RULES_SOURCE_FOLDER,
|
|
71
|
+
source: PromptFileSource.ClaudeWorkspace,
|
|
72
|
+
storage: PromptsStorage.local
|
|
73
|
+
}, {
|
|
74
|
+
path: "~/" + CLAUDE_RULES_SOURCE_FOLDER,
|
|
75
|
+
source: PromptFileSource.ClaudePersonal,
|
|
76
|
+
storage: PromptsStorage.user
|
|
58
77
|
}];
|
|
59
78
|
const DEFAULT_PROMPT_SOURCE_FOLDERS = [{
|
|
60
79
|
path: PROMPT_DEFAULT_SOURCE_FOLDER,
|
|
@@ -65,10 +84,39 @@ const DEFAULT_AGENT_SOURCE_FOLDERS = [{
|
|
|
65
84
|
path: AGENTS_SOURCE_FOLDER,
|
|
66
85
|
source: PromptFileSource.GitHubWorkspace,
|
|
67
86
|
storage: PromptsStorage.local
|
|
87
|
+
}, {
|
|
88
|
+
path: CLAUDE_AGENTS_SOURCE_FOLDER,
|
|
89
|
+
source: PromptFileSource.ClaudeWorkspace,
|
|
90
|
+
storage: PromptsStorage.local
|
|
91
|
+
}];
|
|
92
|
+
const DEFAULT_HOOK_FILE_PATHS = [{
|
|
93
|
+
path: ".github/hooks",
|
|
94
|
+
source: PromptFileSource.GitHubWorkspace,
|
|
95
|
+
storage: PromptsStorage.local
|
|
96
|
+
}, {
|
|
97
|
+
path: ".claude/settings.local.json",
|
|
98
|
+
source: PromptFileSource.ClaudeWorkspaceLocal,
|
|
99
|
+
storage: PromptsStorage.local
|
|
100
|
+
}, {
|
|
101
|
+
path: ".claude/settings.json",
|
|
102
|
+
source: PromptFileSource.ClaudeWorkspace,
|
|
103
|
+
storage: PromptsStorage.local
|
|
104
|
+
}, {
|
|
105
|
+
path: "~/.claude/settings.json",
|
|
106
|
+
source: PromptFileSource.ClaudePersonal,
|
|
107
|
+
storage: PromptsStorage.user
|
|
68
108
|
}];
|
|
69
109
|
function isInAgentsFolder(fileUri) {
|
|
70
110
|
const dir = dirname(fileUri.path);
|
|
71
|
-
return dir.endsWith("/" + AGENTS_SOURCE_FOLDER) || dir
|
|
111
|
+
return dir.endsWith("/" + AGENTS_SOURCE_FOLDER) || dir.endsWith("/" + CLAUDE_AGENTS_SOURCE_FOLDER);
|
|
112
|
+
}
|
|
113
|
+
function isInClaudeAgentsFolder(fileUri) {
|
|
114
|
+
const dir = dirname(fileUri.path);
|
|
115
|
+
return dir.endsWith("/" + CLAUDE_AGENTS_SOURCE_FOLDER);
|
|
116
|
+
}
|
|
117
|
+
function isInClaudeRulesFolder(fileUri) {
|
|
118
|
+
const path = fileUri.path;
|
|
119
|
+
return path.includes("/" + CLAUDE_RULES_SOURCE_FOLDER + "/");
|
|
72
120
|
}
|
|
73
121
|
function getPromptFileType(fileUri) {
|
|
74
122
|
const filename = basename(fileUri.path);
|
|
@@ -87,6 +135,12 @@ function getPromptFileType(fileUri) {
|
|
|
87
135
|
if (filename.endsWith(".md") && filename !== "README.md" && isInAgentsFolder(fileUri)) {
|
|
88
136
|
return PromptsType.agent;
|
|
89
137
|
}
|
|
138
|
+
if (filename.endsWith(".md") && filename !== "README.md" && isInClaudeRulesFolder(fileUri)) {
|
|
139
|
+
return PromptsType.instructions;
|
|
140
|
+
}
|
|
141
|
+
if (filename.toLowerCase().endsWith(".json")) {
|
|
142
|
+
return PromptsType.hook;
|
|
143
|
+
}
|
|
90
144
|
return undefined;
|
|
91
145
|
}
|
|
92
146
|
function isPromptOrInstructionsFile(fileUri) {
|
|
@@ -102,6 +156,8 @@ function getPromptFileExtension(type) {
|
|
|
102
156
|
return AGENT_FILE_EXTENSION;
|
|
103
157
|
case PromptsType.skill:
|
|
104
158
|
return SKILL_FILENAME;
|
|
159
|
+
case PromptsType.hook:
|
|
160
|
+
return ".json";
|
|
105
161
|
default:
|
|
106
162
|
throw ( new Error("Unknown prompt type"));
|
|
107
163
|
}
|
|
@@ -116,6 +172,8 @@ function getPromptFileDefaultLocations(type) {
|
|
|
116
172
|
return DEFAULT_AGENT_SOURCE_FOLDERS;
|
|
117
173
|
case PromptsType.skill:
|
|
118
174
|
return DEFAULT_SKILL_SOURCE_FOLDERS;
|
|
175
|
+
case PromptsType.hook:
|
|
176
|
+
return DEFAULT_HOOK_FILE_PATHS;
|
|
119
177
|
default:
|
|
120
178
|
throw ( new Error("Unknown prompt type"));
|
|
121
179
|
}
|
|
@@ -142,7 +200,10 @@ function getCleanPromptName(fileUri) {
|
|
|
142
200
|
if (fileName.endsWith(".md") && fileName !== "README.md" && isInAgentsFolder(fileUri)) {
|
|
143
201
|
return basename(fileUri.path, ".md");
|
|
144
202
|
}
|
|
203
|
+
if (fileName.endsWith(".md") && fileName !== "README.md" && isInClaudeRulesFolder(fileUri)) {
|
|
204
|
+
return basename(fileUri.path, ".md");
|
|
205
|
+
}
|
|
145
206
|
return basename(fileUri.path);
|
|
146
207
|
}
|
|
147
208
|
|
|
148
|
-
export { AGENTS_SOURCE_FOLDER, AGENT_FILE_EXTENSION, COPILOT_CUSTOM_INSTRUCTIONS_FILENAME, DEFAULT_AGENT_SOURCE_FOLDERS, DEFAULT_INSTRUCTIONS_SOURCE_FOLDERS, DEFAULT_PROMPT_SOURCE_FOLDERS, DEFAULT_SKILL_SOURCE_FOLDERS, INSTRUCTIONS_DEFAULT_SOURCE_FOLDER, INSTRUCTION_FILE_EXTENSION, LEGACY_MODE_DEFAULT_SOURCE_FOLDER, LEGACY_MODE_FILE_EXTENSION, PROMPT_DEFAULT_SOURCE_FOLDER, PROMPT_FILE_EXTENSION, PromptFileSource, SKILL_FILENAME, getCleanPromptName, getPromptFileDefaultLocations, getPromptFileExtension, getPromptFileType, isPromptOrInstructionsFile };
|
|
209
|
+
export { AGENTS_SOURCE_FOLDER, AGENT_FILE_EXTENSION, AGENT_MD_FILENAME, CLAUDE_AGENTS_SOURCE_FOLDER, CLAUDE_CONFIG_FOLDER, CLAUDE_LOCAL_MD_FILENAME, CLAUDE_MD_FILENAME, CLAUDE_RULES_SOURCE_FOLDER, COPILOT_CUSTOM_INSTRUCTIONS_FILENAME, DEFAULT_AGENT_SOURCE_FOLDERS, DEFAULT_HOOK_FILE_PATHS, DEFAULT_INSTRUCTIONS_SOURCE_FOLDERS, DEFAULT_PROMPT_SOURCE_FOLDERS, DEFAULT_SKILL_SOURCE_FOLDERS, INSTRUCTIONS_DEFAULT_SOURCE_FOLDER, INSTRUCTION_FILE_EXTENSION, LEGACY_MODE_DEFAULT_SOURCE_FOLDER, LEGACY_MODE_FILE_EXTENSION, PROMPT_DEFAULT_SOURCE_FOLDER, PROMPT_FILE_EXTENSION, PromptFileSource, SKILL_FILENAME, getCleanPromptName, getPromptFileDefaultLocations, getPromptFileExtension, getPromptFileType, isInClaudeAgentsFolder, isInClaudeRulesFolder, isPromptOrInstructionsFile };
|