Add enhanced search and filtering (M2 feature)
- Add /api/v1/tags endpoint for listing available tags - Enhance search API with tag filtering (AND logic), multi-category filtering (OR logic), owner filter, download range, and date range - Add faceted response support (category/tag/owner counts) - Update registry client with new search parameters and get_tags method - Add CLI search options: -t/--tag, -o/--owner, --min-downloads, --popular, --new, --since, --before, --json, --show-facets - Add new 'registry tags' CLI subcommand - Add web UI filter sidebar with checkboxes, dropdowns, and active filter chips with URL-based state management - Display clickable tags on tool cards Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
@@ -135,9 +135,27 @@ def main():
|
||||
p_reg_search = registry_sub.add_parser("search", help="Search for tools")
|
||||
p_reg_search.add_argument("query", help="Search query")
|
||||
p_reg_search.add_argument("-c", "--category", help="Filter by category")
|
||||
p_reg_search.add_argument("-t", "--tag", action="append", dest="tags", help="Filter by tag (repeatable, AND logic)")
|
||||
p_reg_search.add_argument("-o", "--owner", help="Filter by publisher/owner")
|
||||
p_reg_search.add_argument("--min-downloads", type=int, help="Minimum downloads")
|
||||
p_reg_search.add_argument("--popular", action="store_true", help="Shortcut for --min-downloads 100")
|
||||
p_reg_search.add_argument("--new", action="store_true", help="Shortcut for --max-downloads 10")
|
||||
p_reg_search.add_argument("--since", help="Published after date (YYYY-MM-DD)")
|
||||
p_reg_search.add_argument("--before", help="Published before date (YYYY-MM-DD)")
|
||||
p_reg_search.add_argument("-s", "--sort", choices=["relevance", "downloads", "published_at", "name"], default="relevance", help="Sort by field")
|
||||
p_reg_search.add_argument("-l", "--limit", type=int, help="Max results (default: 20)")
|
||||
p_reg_search.add_argument("--json", action="store_true", help="Output as JSON")
|
||||
p_reg_search.add_argument("--show-facets", action="store_true", help="Show category/tag counts")
|
||||
p_reg_search.add_argument("--deprecated", action="store_true", help="Include deprecated tools")
|
||||
p_reg_search.set_defaults(func=cmd_registry)
|
||||
|
||||
# registry tags
|
||||
p_reg_tags = registry_sub.add_parser("tags", help="List available tags")
|
||||
p_reg_tags.add_argument("-c", "--category", help="Filter tags by category")
|
||||
p_reg_tags.add_argument("-l", "--limit", type=int, default=50, help="Max tags to show (default: 50)")
|
||||
p_reg_tags.add_argument("--json", action="store_true", help="Output as JSON")
|
||||
p_reg_tags.set_defaults(func=cmd_registry)
|
||||
|
||||
# registry install
|
||||
p_reg_install = registry_sub.add_parser("install", help="Install a tool from registry")
|
||||
p_reg_install.add_argument("tool", help="Tool to install (owner/name or name)")
|
||||
|
||||
Reference in New Issue
Block a user