@sparkelf/dsh-client-ui-skill-center 0.2.1-alpha.9 → 0.2.1-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/plus/ui-skill-center/README.md
5
- README.md: 0402b32b8f3fd4b1e290a3036d335ba119db970c
6
- README.zh.md: 4a1ea41110d11bf7d3de4b91878c27b1d61fa8dc
5
+ README.md: ffac1f7d3aeb0e73c23f99b728b65f5a3e776884
6
+ README.zh.md: 70e530cb1f95d6b365358f8fb96a514ab5379770
package/README.md CHANGED
@@ -14,7 +14,8 @@ A skill center for the dsh Web sidebar: browses loaded skills grouped by source,
14
14
  ## What it does
15
15
 
16
16
  - **Sidebar entry** "Skill Center" opens a panel, registered through the official `sidebar.panellist` slot and the keyed `main` page slot — the same slots the Plugins panel uses, so the shell owns the row, label, and selected state.
17
- - **Skills list**: skills grouped by discovery source (bundled / runtime / `~/.agents/skills` / `~/.dsh/skills` / project `.agents/skills` / project `.dsh/skills` / custom roots), with a search box that filters by name, description, or when-to-use.
17
+ - **Skills list**: skills grouped by discovery source (bundled / runtime / `~/.agents/skills` / `~/.dsh/skills` / project `.agents/skills` / project `.dsh/skills` / custom roots). A card carries the skill's summary — its translated one when a translation sits beside the skill, otherwise the registry description — and a search box filters by name, description, summary, or when-to-use.
18
+ - **Details**: a card opens the skill's own `SKILL.md` body in a scrolling block, under the metadata row. The body is read when the dialog opens, so a long skill costs nothing until it is asked for.
18
19
  - **Enable / disable**: rewrites `disable-model-invocation` in the skill's YAML frontmatter. The field is edited in place rather than re-serialized, so comments, key order, and the body survive.
19
20
  - **Create**: writes a standard `SKILL.md` under the user or project root.
20
21
  - **Delete**: moves the skill into a `.trash` sibling directory, where it can be restored.
@@ -33,7 +34,7 @@ A skill center for the dsh Web sidebar: browses loaded skills grouped by source,
33
34
 
34
35
  Reading goes through the official `ctx.skills` registry, so the catalog and its hot reload are the harness's rather than a second scanner's. The registry's summaries deliberately omit file paths — they are invocation-neutral metadata — so a write resolves the path through `ctx.skills.get()` when an action actually needs to touch a file. `collect()` caches the catalog those calls share, so the resolve is not a second scan.
35
36
 
36
- The three writes have no official equivalent; the registry is read-only.
37
+ The three writes have no official equivalent; the registry is read-only. The content route resolves the file the panel listed first, then through `ctx.skills.get()`, then through the configured `translationRoot`: a bundled skill serves its body from inside an installed package, where the registry reports a path or a provider raises, so one source is never the only answer.
37
38
 
38
39
  Every colour, border, and label weight comes from the shared alias tokens (`--dsw-alias-*`), and the sidebar glyph is `IconSkillOutline16` from `@deepseek-ai/dsh-client-ui-primitives`, so the panel and its row match the official panels beside them.
39
40
 
@@ -54,7 +55,7 @@ None; no string this package owns reaches a model request, so a request's cachea
54
55
  No runtime invariant companion is published. The package owns no durable package-local state: the route handlers read the skill registry and write skill files, and every observable outcome is covered by the route tests.
55
56
 
56
57
  - **Deletion refuses a symlinked skill**: a skill discovered through a symlink has no single owning directory to move, so the delete action is withheld for it.
57
- - **The list omits file paths**: whether a skill can be deleted is therefore not known until the delete is attempted, which then reports it.
58
+ - **The list omits file paths**: a registry-served row has no path, so the panel can neither offer its deletion nor read its body by path; whether either applies is known only when the action is attempted.
58
59
  - **Grouping follows the discovery source label, not the file path**: a provider that reports an unrecognized source lands in the custom group.
59
60
 
60
61
  <a id="dev-note"></a>
package/README.zh.md CHANGED
@@ -16,7 +16,8 @@ dsh Web 侧边栏的技能中心:按来源分组浏览已加载的技能、启
16
16
  ## 功能
17
17
 
18
18
  - **侧边栏入口**「技能中心」打开一个面板,它通过官方 `sidebar.panellist` 槽位与键控的 `main` 页面槽位注册 —— 与「插件」面板用的是同一批槽位,因此行、标签与选中态由外壳负责。
19
- - **技能列表**:按发现来源分组(系统内置 / 运行时 / `~/.agents/skills` / `~/.dsh/skills` / 项目 `.agents/skills` / 项目 `.dsh/skills` / 自定义目录),并有一个搜索框按名称、描述或何时使用过滤。
19
+ - **技能列表**:按发现来源分组(系统内置 / 运行时 / `~/.agents/skills` / `~/.dsh/skills` / 项目 `.agents/skills` / 项目 `.dsh/skills` / 自定义目录)。卡片只带一句简介 —— 技能旁有翻译时用译文,否则用注册表的描述 —— 搜索框按名称、描述、简介或何时使用过滤。
20
+ - **详情**:卡片打开后,在元数据行下方以滚动区块展示该技能自己的 `SKILL.md` 正文。正文在弹窗打开时才读取,因此长技能在没人点开前不产生任何开销。
20
21
  - **启用 / 停用**:改写技能 YAML 前置块里的 `disable-model-invocation`。该字段是就地编辑而非重新序列化,因此注释、键顺序与正文都原样保留。
21
22
  - **新建**:在用户级或项目级根目录下写入一个标准的 `SKILL.md`。
22
23
  - **删除**:把技能移入同级的 `.trash` 目录,可从中恢复。
@@ -37,7 +38,7 @@ dsh Web 侧边栏的技能中心:按来源分组浏览已加载的技能、启
37
38
 
38
39
  读取走官方的 `ctx.skills` 注册表,因此目录与其热更新属于 harness 本身,而不是第二套扫描器。注册表的摘要有意省略文件路径 —— 它们是调用无关元数据 —— 所以写操作在真正需要触碰文件时通过 `ctx.skills.get()` 解析路径。这些调用共享的目录由 `collect()` 缓存,因此该解析不是第二次全量扫描。
39
40
 
40
- 三个写操作在官方没有等价物;注册表是只读的。
41
+ 三个写操作在官方没有等价物;注册表是只读的。正文路由先解析面板列出的文件,再走 `ctx.skills.get()`,最后走配置的 `translationRoot`:内置技能的正文安装在已安装的包内,注册表要么报告路径、要么提供者抛错,因此任何单一来源都不能是唯一答案。
41
42
 
42
43
  每一个颜色、边框与标签字重都来自共享别名 token(`--dsw-alias-*`),侧边栏图标是 `@deepseek-ai/dsh-client-ui-primitives` 的 `IconSkillOutline16`,因此面板与其行与旁边的官方面板一致。
43
44
 
@@ -61,7 +62,7 @@ host 半边挂载 `/api/dsh-skill-center` 路由族;client 半边注册侧边
61
62
  No runtime invariant companion is published. 本包不拥有任何持久化的包内状态:路由处理器读取技能注册表并写入技能文件,每一个可观察结果都由路由测试覆盖。
62
63
 
63
64
  - **删除会拒绝符号链接的技能**:通过符号链接发现的技能没有唯一归属目录可移动,因此对它不提供删除操作。
64
- - **列表省略文件路径**:因此某个技能能否删除,要等到删除被尝试时才知道,那时才会报告。
65
+ - **列表省略文件路径**:注册表提供的行没有路径,因此面板既无法为它提供删除,也无法按路径读取它的正文;这两者是否适用,只有真正执行该操作时才知道。
65
66
  - **分组跟随发现来源标签,而不是文件路径**:报告了无法识别的来源的提供者会落到自定义分组。
66
67
 
67
68
  <a id="dev-note"></a>