feat: integrate skills.sh search for discovering skills from public registry

Add skills.sh API integration allowing users to search and install from
a catalog of 91K+ agent skills directly within CC Switch. The search
results are converted to DiscoverableSkill objects and reuse the existing
install pipeline. Includes fallback directory search for repos where
skills are nested in subdirectories, and filters out non-GitHub sources.
This commit is contained in:
Jason
2026-04-05 22:16:10 +08:00
parent 33f5d56afd
commit d51e774b20
11 changed files with 583 additions and 57 deletions
+13
View File
@@ -1650,6 +1650,19 @@
},
"search": "Search Skills",
"searchPlaceholder": "Search skill name or repo...",
"searchSource": {
"repos": "Repos",
"skillssh": "skills.sh"
},
"skillssh": {
"searchPlaceholder": "Search skills.sh (min 2 chars)...",
"installs": "{{count}} installs",
"loadMore": "Load More",
"loading": "Searching skills.sh...",
"noResults": "No skills found for \"{{query}}\"",
"error": "Failed to search skills.sh",
"poweredBy": "Powered by skills.sh"
},
"filter": {
"placeholder": "Filter by status",
"all": "All",
+13
View File
@@ -1650,6 +1650,19 @@
},
"search": "スキルを検索",
"searchPlaceholder": "スキル名またはリポジトリで検索...",
"searchSource": {
"repos": "リポジトリ",
"skillssh": "skills.sh"
},
"skillssh": {
"searchPlaceholder": "skills.sh を検索(2文字以上)...",
"installs": "{{count}} インストール",
"loadMore": "さらに読み込む",
"loading": "skills.sh を検索中...",
"noResults": "\"{{query}}\" に該当するスキルがありません",
"error": "skills.sh の検索に失敗しました",
"poweredBy": "Powered by skills.sh"
},
"filter": {
"placeholder": "状態で絞り込み",
"all": "すべて",
+13
View File
@@ -1650,6 +1650,19 @@
},
"search": "搜索技能",
"searchPlaceholder": "搜索技能名称或仓库名称...",
"searchSource": {
"repos": "仓库",
"skillssh": "skills.sh"
},
"skillssh": {
"searchPlaceholder": "搜索 skills.sh(至少 2 个字符)...",
"installs": "{{count}} 次安装",
"loadMore": "加载更多",
"loading": "正在搜索 skills.sh...",
"noResults": "未找到 \"{{query}}\" 相关技能",
"error": "搜索 skills.sh 失败",
"poweredBy": "由 skills.sh 提供"
},
"filter": {
"placeholder": "状态筛选",
"all": "全部",