Include plugin keywords in agent plugin search filter - #335307
Open
Santhanakrishnan S (Santhanakrishnan-Shanmugam) wants to merge 2 commits into
Open
Conversation
Author
|
@microsoft-github-policy-service agree |
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The change is small, well-scoped, and consistently threads the new optional keywords metadata through parsing and search filtering with low behavioral risk.
Pull request overview
This PR improves the Agent Plugins view’s @agentPlugins text search by including plugin manifest keywords (from marketplace.json / plugin.json) in the searchable fields, aligning keyword search behavior with existing category filtering support.
Changes:
- Parse and surface
keywordsonIMarketplacePluginwhen readingmarketplace.jsonand single-pluginplugin.jsonmanifests. - Thread
keywordsthrough marketplace + installed plugin list items. - Include
keywordsin both installed and marketplace filtering logic inAgentPluginsListView.show().
File summaries
| File | Description |
|---|---|
| src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.ts | Adds parsing of keywords from marketplace index and single-plugin manifests into IMarketplacePlugin. |
| src/vs/workbench/contrib/chat/browser/agentPluginsView.ts | Threads keywords into list items and extends installed/marketplace search filters to match against keywords. |
| src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.ts | Extends item interfaces to carry optional keywords for downstream filtering/display. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| } else { | ||
| const lowerText = text.toLowerCase(); | ||
| filteredMp = filteredMp.filter(p => p.name.toLowerCase().includes(lowerText) || p.description.toLowerCase().includes(lowerText) || p.marketplace.toLowerCase().includes(lowerText)); | ||
| filteredMp = filteredMp.filter(p => p.name.toLowerCase().includes(lowerText) || p.description.toLowerCase().includes(lowerText) || p.marketplace.toLowerCase().includes(lowerText) || (p.keywords ?? []).some(k => k.toLowerCase().includes(lowerText))); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #335306
Problem
@agentPluginssearch in the Agent Plugins view only matched a plugin'sname,description, andmarketplacefields. Thekeywordsfielddeclared in a plugin's manifest (
marketplace.json/plugin.json) wasparsed nowhere and never used for search, even though
@category:filteringalready worked for
categories.Fix
pluginMarketplaceService.ts: parsekeywordsfrom marketplace.json intoIMarketplacePlugin.agentPluginItems.ts/agentPluginsView.ts: threadkeywordsthroughIMarketplacePluginItem/IInstalledPluginItem, and include it in bothsearch filters in
AgentPluginsListView.show().Testing
Manually verified with a test marketplace containing a plugin whose
name/descriptiondo not contain a given term, but whosekeywordsarray does — confirmed the plugin now appears in
@agentPlugins <keyword>search results, both as an installed plugin and as an unfetched
marketplace entry. Before the fix, it did not appear.