diff --git a/tests/website/test_extract_skills.py b/tests/website/test_extract_skills.py index cbe13cc16b..0cb2c20281 100644 --- a/tests/website/test_extract_skills.py +++ b/tests/website/test_extract_skills.py @@ -34,21 +34,6 @@ def mod(): return module -@pytest.mark.parametrize("directory,source,prefix", [ - ("skills", "built-in", "NousResearch/hermes-agent/skills"), - ("optional-skills", "optional", "official"), -]) -def test_local_skills_publish_exact_install_target(mod, tmp_path, monkeypatch, directory, source, prefix): - skill = tmp_path / directory / "creative" / "nested" / "example" - skill.mkdir(parents=True) - (skill / "SKILL.md").write_text("---\nname: Different Display Name\n---\nExample.") - monkeypatch.setattr(mod, "REPO_ROOT", str(tmp_path)) - [entry] = mod.extract_local_skills() - expected = f"{prefix}/creative/nested/example" - assert entry["installIdentifier"] == expected - assert entry["installCmd"] == f"hermes skills install {expected}" - - # -------------------------------------------------------------------------- # _source_url # -------------------------------------------------------------------------- diff --git a/website/scripts/extract-skills.py b/website/scripts/extract-skills.py index bd554f3798..a463d1e258 100644 --- a/website/scripts/extract-skills.py +++ b/website/scripts/extract-skills.py @@ -311,11 +311,6 @@ def extract_local_skills(): elif isinstance(cmds, str) and cmds.strip(): commands = [cmds.strip()] - rel_id = rel.replace(os.sep, "/") - install_identifier = ( - f"official/{rel_id}" if source_label == "optional" - else f"NousResearch/hermes-agent/skills/{rel_id}" - ) skills.append({ "name": fm.get("name", os.path.basename(root)), "description": fm.get("description", ""), @@ -331,8 +326,6 @@ def extract_local_skills(): "envVars": env_vars, "commands": commands, "docsPath": _docs_page_path(rel, source_label), - "installIdentifier": install_identifier, - "installCmd": f"hermes skills install {install_identifier}", }) return skills @@ -443,7 +436,6 @@ def extract_unified_index_skills(): "docsPath": "", "identifier": identifier, "installCmd": install_cmd, - "installIdentifier": install_cmd.removeprefix("hermes skills install "), "sourceUrl": source_url, }) diff --git a/website/src/pages/plugins/index.tsx b/website/src/pages/plugins/index.tsx index d55bedcf87..16d0cdc16f 100644 --- a/website/src/pages/plugins/index.tsx +++ b/website/src/pages/plugins/index.tsx @@ -2,7 +2,6 @@ import React, { useState, useMemo, useCallback, useRef, useEffect } from "react" import Layout from "@theme/Layout"; import Link from "@docusaurus/Link"; import styles from "./styles.module.css"; -import { pluginCatalogInstallUrl } from "../../../../apps/shared/src/catalog-install"; interface PluginCapabilities { providesTools?: string[]; @@ -191,7 +190,6 @@ function PluginCard({ const hookCount = caps.providesHooks?.length || 0; const middlewareCount = caps.providesMiddleware?.length || 0; const pinUrl = `${plugin.repo.replace(/\.git$/, "").replace(/\/$/, "")}/tree/${plugin.sha}`; - const installUrl = pluginCatalogInstallUrl(plugin); return (
- {onPick ? ( + {onPick && ( - ) : ( - e.stopPropagation()} - > - Install in Hermes - )} {expanded && ( @@ -584,7 +574,7 @@ export default function PluginCatalogPage() {

- Reviewed, SHA-pinned plugins. Open in Hermes Desktop to review and install, or copy the CLI command. + Reviewed, SHA-pinned plugins you can install with one command. {loadError && ( · failed to load catalog ({loadError}) diff --git a/website/src/pages/plugins/styles.module.css b/website/src/pages/plugins/styles.module.css index 25df654837..f2d7b39e34 100644 --- a/website/src/pages/plugins/styles.module.css +++ b/website/src/pages/plugins/styles.module.css @@ -905,19 +905,11 @@ color: var(--ifm-color-primary); font-size: 0.85rem; font-weight: 600; - text-align: center; - text-decoration: none; cursor: pointer; transition: background 0.15s ease, color 0.15s ease; } .pickBtn:hover { background: var(--ifm-color-primary); - color: var(--ifm-color-emphasis-0); - text-decoration: none; -} - -.pickBtn:focus-visible { - outline: 2px solid var(--ifm-color-primary); - outline-offset: 2px; + color: #fff; } diff --git a/website/src/pages/skills/index.tsx b/website/src/pages/skills/index.tsx index b143beec77..8bc022524d 100644 --- a/website/src/pages/skills/index.tsx +++ b/website/src/pages/skills/index.tsx @@ -2,7 +2,6 @@ import React, { useState, useMemo, useCallback, useRef, useEffect } from "react" import Layout from "@theme/Layout"; import Link from "@docusaurus/Link"; import styles from "./styles.module.css"; -import { skillCatalogInstallIdentifier, skillCatalogInstallUrl } from "../../../../apps/shared/src/catalog-install"; interface Skill { name: string; @@ -20,7 +19,6 @@ interface Skill { commands?: string[]; docsPath?: string; identifier?: string; - installIdentifier?: string; installCmd?: string; /** Clickable URL to the skill's origin (repo / detail page). Synthesized * in extract-skills.py for community skills that have no generated docs @@ -302,7 +300,6 @@ function SkillCard({ }) { const src = SOURCE_CONFIG[skill.source] || SOURCE_CONFIG["optional"]; const icon = CATEGORY_ICONS[skill.category] || "\u{1F4E6}"; - const installUrl = skillCatalogInstallUrl(skill); return (

- {!onPick && installUrl && ( - e.stopPropagation()} - > - Install in Hermes - - )} - {expanded && (
{skill.overview && ( @@ -432,9 +419,9 @@ function SkillCard({
)}
- {skill.installCmd || `hermes skills install ${skillCatalogInstallIdentifier(skill) || skill.name}`} + {skill.installCmd || `hermes skills install ${skill.name}`}
{onPick ? ( @@ -534,8 +521,8 @@ export default function SkillsDashboard() { { type: "hermes-skill-pick", name: skill.name, - identifier: skillCatalogInstallIdentifier(skill) || skill.name, - installCmd: skill.installCmd || `hermes skills install ${skillCatalogInstallIdentifier(skill) || skill.name}`, + identifier: skill.identifier || skill.name, + installCmd: skill.installCmd || `hermes skills install ${skill.name}`, source: skill.source, }, "*" @@ -713,7 +700,7 @@ export default function SkillsDashboard() { {data ? allSkillsLocal.length.toLocaleString() : "…"} {" "} - skills across {sources.length - 1} registries. Open in Hermes Desktop to review and install, or copy the CLI command. + skills across {sources.length - 1} registries {loadError && ( · failed to load catalog ({loadError}) diff --git a/website/src/pages/skills/styles.module.css b/website/src/pages/skills/styles.module.css index e0ada5625c..559089dc27 100644 --- a/website/src/pages/skills/styles.module.css +++ b/website/src/pages/skills/styles.module.css @@ -1030,8 +1030,6 @@ color: var(--ifm-color-primary); font-size: 0.85rem; font-weight: 600; - text-align: center; - text-decoration: none; cursor: pointer; transition: background 0.15s ease, color 0.15s ease; } @@ -1040,10 +1038,4 @@ background: var(--ifm-color-primary); /* --ifm-background-color is transparent in light mode (#91491). */ color: var(--ifm-color-emphasis-0, #f7f8fa); - text-decoration: none; -} - -.pickBtn:focus-visible { - outline: 2px solid var(--ifm-color-primary); - outline-offset: 2px; }