* feat(skills): remove ClawHub catalog integration Drop the ClawHub registry as a skills catalog source across web server, shared UI, VS Code, docs, and locales. The catalog now serves git-based sources only: the curated Anthropic repo and user-defined repositories. Also removes the now-unused adm-zip dependency. * feat(skills): redesign catalog around curated GitHub repositories Replace the single-source dropdown with a card grid of curated GitHub repositories (Anthropic, OpenAI, Cursor pstack/skills, Matt Pocock) plus user-defined sources. Source cards show skill counts, GitHub stars, and last-updated time; a global search covers all loaded sources. Server: curated sources gain GitHub repo metadata (stars, pushed_at) fetched best-effort with a 3-hour in-memory and on-disk cache; scans run through a concurrency-limited, deduplicated cache with 3-hour TTL persisted across restarts. Refresh still bypasses the cache. Shared UI: source cards, global search with clear button, per-skill GitHub links, install/installed states. VS Code curated list updated to match. All new copy translated across 12 locales. * fix(skills): address catalog review findings - GitHub metadata fetch timeout drops to 1.5s (under the catalog client's 3s deadline) and failed lookups cache briefly (5 min) so repeated catalog loads do not re-hit a failing API. - Disk cache files are written with owner-only permissions (0o600); rename preserves the mode. - loadSource deduplicates concurrent in-flight requests per source and the shared isLoadingSource flag now clears only when the last active source load finishes.
38 lines
860 B
JavaScript
38 lines
860 B
JavaScript
const CURATED_SKILLS_SOURCES = [
|
|
{
|
|
id: 'anthropic',
|
|
label: 'Anthropic',
|
|
description: "Anthropic's public skills repository",
|
|
source: 'anthropics/skills',
|
|
defaultSubpath: 'skills',
|
|
sourceType: 'github',
|
|
},
|
|
{
|
|
id: 'openai',
|
|
label: 'OpenAI',
|
|
description: "OpenAI's curated skills",
|
|
source: 'openai/skills',
|
|
defaultSubpath: 'skills/.curated',
|
|
sourceType: 'github',
|
|
},
|
|
{
|
|
id: 'cursor',
|
|
label: 'Cursor',
|
|
description: "Cursor's plugin skills",
|
|
source: 'cursor/plugins',
|
|
defaultSubpath: 'pstack/skills',
|
|
sourceType: 'github',
|
|
},
|
|
{
|
|
id: 'mattpocock',
|
|
label: 'Matt Pocock',
|
|
description: 'Matt Pocock skills collection',
|
|
source: 'mattpocock/skills',
|
|
sourceType: 'github',
|
|
},
|
|
];
|
|
|
|
export function getCuratedSkillsSources() {
|
|
return CURATED_SKILLS_SOURCES.slice();
|
|
}
|