@morehao/dsh-skills-console 0.3.4 → 0.3.6
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.md +1 -0
- package/client.js +22 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -37,6 +37,7 @@ DSH(DeepSeek Harness)的**技能控制台**:装、更新、删除、接入
|
|
|
37
37
|
- **两个入口**:默认在「设置 → 技能控制台」;页头 ⚙ 里可切到左侧栏独立面板,切换立即生效。
|
|
38
38
|
- **一页两 tab**:已安装 / 订阅。页头右侧是「自动接入」(多选 Agent)与「添加技能 / 添加订阅」。
|
|
39
39
|
- **每行五个动作**:开关(启停)、查看、更新、接入设置、删除;窄面板下隐藏「查看」,技能名本身仍是入口。状态标签覆盖最新 / 可更新 / 本地已改 / 上游已移除 / 软链断裂 / 无上游等。
|
|
40
|
+
- **窄面板不跳版**:页头按内容自然换行——放得下时动作组在标题行右侧,放不下(约 630px 以下,如设置页)就整组换到下一行并靠右,插件名始终完整;列表按面板自身宽度在 860px 处切两列;页面预留滚动条槽位,滚动条出现/消失、切 tab、窗口微调都不会让整页翻面。
|
|
40
41
|
- **Agent 多了不挤**:每行最多展示 3 个,其余折成 `+n`,悬浮或聚焦即可看全。
|
|
41
42
|
- **找得到**:支持按名称 / 来源 / Agent 搜索,按「可更新 / 待检查 / 已停用」筛选,平铺或按 Agent 分组。
|
|
42
43
|
- **待检查 vs 无上游**:「待检查」只表示*这次*没拿到上游结论(限流、网络、仓库 404 等);再次点「检查更新」时,如果上次没有结论、上游又只回了 304,会无视 ETag 完整重读一次树,不会把「待检查」永久粘住。没有可用订阅来源的技能标「无上游」——它们无法参与更新检查,不计入待检查。
|
package/client.js
CHANGED
|
@@ -815,23 +815,34 @@ var import_react5 = __toESM(require("react"), 1);
|
|
|
815
815
|
|
|
816
816
|
// client/styles.js
|
|
817
817
|
var CSS = `
|
|
818
|
-
/* 主面板形态:与 DSH
|
|
818
|
+
/* 主面板形态:与 DSH 自带管理页同一边距/滚动方式。
|
|
819
|
+
scrollbar-gutter: stable 让滚动条出现/消失都不改变内容宽度——否则列表一长出来,
|
|
820
|
+
内容就窄 5~15px,贴着断点的布局会整页跳一次。 */
|
|
819
821
|
.dshsc-page { box-sizing: border-box; width: 100%; height: 100%; overflow: auto;
|
|
822
|
+
scrollbar-gutter: stable;
|
|
820
823
|
padding: calc(28px + var(--dsh-frame-top-clearance, 0px)) clamp(24px, 4vw, 48px) 48px; }
|
|
821
824
|
.dshsc-page .dshsc-root { max-width: 980px; margin: 0 auto; }
|
|
822
825
|
.dshsc-page .dshsc-title { font-size: 20px; font-weight: 500; line-height: 28px; }
|
|
823
826
|
.dshsc-page .dshsc-sub { font-size: 13px; line-height: 20px; }
|
|
824
827
|
.dshsc-root { display: flex; flex-direction: column; gap: 14px; color: var(--dsw-alias-label-primary);
|
|
825
828
|
container-type: inline-size; container-name: dshsc; }
|
|
829
|
+
/* 页头:左标题块、右业务动作。动作组不靠固定断点换行——标题块的 flex-basis 用内容宽度
|
|
830
|
+
(auto),放得下就同排、放不下(约 630px 以下)动作组自然换到第二行并靠右。
|
|
831
|
+
这样窄面板(设置页 ~565px)会回到「动作在下、标识在上」,身份胶囊永远是完整的,
|
|
832
|
+
也不会像 900px 断点那样被滚动条/几像素窗口变化推过临界点。 */
|
|
826
833
|
.dshsc-head { display: flex; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
|
|
827
|
-
.dshsc-heading { display: flex; align-items: flex-start; gap: 10px; min-width: 0; flex: 1; }
|
|
834
|
+
.dshsc-heading { display: flex; align-items: flex-start; gap: 10px; min-width: 0; flex: 1 1 auto; }
|
|
828
835
|
.dshsc-heading-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
|
|
829
836
|
.dshsc-logo { flex: none; display: block; border-radius: 8px; }
|
|
830
|
-
|
|
837
|
+
/* 标题不参与收窄:窄面板里让身份胶囊先省略,标题本身不折行 */
|
|
838
|
+
.dshsc-title { font-size: 17px; font-weight: 600; letter-spacing: -.01em; margin: 0; flex: none; white-space: nowrap; }
|
|
831
839
|
.dshsc-sub { font-size: 12px; line-height: 1.55; color: var(--dsw-alias-label-secondary); margin: 0; max-width: 64ch; }
|
|
832
840
|
.dshsc-spacer { flex: 1; }
|
|
833
|
-
.dshsc-head-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-left: auto; }
|
|
834
|
-
|
|
841
|
+
.dshsc-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; margin-left: auto; }
|
|
842
|
+
/* 标题行恒为一行:身份胶囊只在面板极窄(连标题行都放不下)时才省略,工具组不被挤走。
|
|
843
|
+
不用 wrap 是因为一 wrap 就会按「身份胶囊整段」的宽度断行,窄面板里会折成 2~3 行、
|
|
844
|
+
把页头撑高;行内换行交给外层页头(动作组下移),标识本身保持完整。 */
|
|
845
|
+
.dshsc-title-row { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; min-width: 0; }
|
|
835
846
|
|
|
836
847
|
/* 身份:按「安装时输入的包名」显示(@scope/name@version),等宽只读、不描边 */
|
|
837
848
|
.dshsc-id { display: inline-flex; align-items: center; box-sizing: border-box; min-width: 0;
|
|
@@ -1060,9 +1071,10 @@ var CSS = `
|
|
|
1060
1071
|
.dshsc-sub-entry .dshsc-actions { margin-left: auto; display: flex; justify-content: flex-end; }
|
|
1061
1072
|
.dshsc-sub-entry .dshsc-btn { height: 24px; padding: 0 9px; font-size: 11.5px; }
|
|
1062
1073
|
/* 设置页的真实宽度常常远小于窗口(侧栏 + 页面缩放),视口 media query 不可靠;
|
|
1063
|
-
以 .dshsc-root 自身宽度为准,窄面板时切两列,避免固定列把 Agent 标签挤成竖排。
|
|
1064
|
-
|
|
1065
|
-
|
|
1074
|
+
以 .dshsc-root 自身宽度为准,窄面板时切两列,避免固定列把 Agent 标签挤成竖排。
|
|
1075
|
+
断点取 860 而不是贴着面板常见的 ~900:三列网格需要 300 + 268 + 2×14 gap + 中间列,
|
|
1076
|
+
860 已经够用;留出 ~40px 余量后,滚动条(5~15px)、窗口微调、页面缩放都不会把整页翻面。 */
|
|
1077
|
+
@container dshsc (max-width: 860px) {
|
|
1066
1078
|
.dshsc-search input { width: 180px; }
|
|
1067
1079
|
.dshsc-row { grid-template-columns: minmax(0, 1fr) 196px; row-gap: 3px; padding: 9px 12px; }
|
|
1068
1080
|
.dshsc-cell { grid-column: 1; }
|
|
@@ -1070,10 +1082,6 @@ var CSS = `
|
|
|
1070
1082
|
.dshsc-row .dshsc-actions { grid-column: 2; grid-row: 1 / span 2; }
|
|
1071
1083
|
.dshsc-row .dshsc-btn { padding: 0 5px; }
|
|
1072
1084
|
}
|
|
1073
|
-
/* 窄面板里工具组会换到下一行,行首的分割线就没有意义了 */
|
|
1074
|
-
@container dshsc (max-width: 520px) {
|
|
1075
|
-
.dshsc-tools { border-left: 0; padding-left: 0; margin-left: 0; }
|
|
1076
|
-
}
|
|
1077
1085
|
.dshsc-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
|
|
1078
1086
|
|
|
1079
1087
|
/* 与 DSH 自带开关同尺寸/同 token:关是 border-l3 轨道,开是 brand-primary 轨道 */
|
|
@@ -1347,7 +1355,8 @@ var CSS = `
|
|
|
1347
1355
|
.dshsc-reader-page .dshsc-md { max-width: 720px; }
|
|
1348
1356
|
.dshsc-reader-page .dshsc-reader-actions { border-radius: 0 0 12px 12px; }
|
|
1349
1357
|
|
|
1350
|
-
|
|
1358
|
+
/* 与列表同一个页面断点(860):窄面板里行内「查看」让位、整页目录收起 */
|
|
1359
|
+
@container dshsc (max-width: 860px) {
|
|
1351
1360
|
/* 行内「查看」先让位:技能名本身仍是入口 */
|
|
1352
1361
|
.dshsc-row .dshsc-view { display: none; }
|
|
1353
1362
|
.dshsc-reader-layout { grid-template-columns: minmax(0, 1fr); }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morehao/dsh-skills-console",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
4
4
|
"description": "统一管理本地技能的安装、更新、删除与接入,让同一份技能在多个 Agent 间复用。A skill manager for DeepSeek Harness: install, update, remove, link and toggle agent skills.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "morehao <morehao@qq.com>",
|