dsh-llm-verifier 0.9.2 → 0.9.4
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/CHANGELOG.md +22 -0
- package/lib/client.js +73 -18
- package/lib/client.js.map +1 -1
- package/lib/types/client.d.ts +20 -3
- package/lib/types/client.d.ts.map +1 -1
- package/lib/types/client.js +31 -6
- package/lib/types/client.js.map +1 -1
- package/package.json +10 -6
- package/src/cache.test.ts +13 -1
- package/src/client.test.ts +21 -3
- package/src/client.tsx +45 -7
- package/src/topic-storage.test.ts +18 -8
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
## 0.9.4 - 2026-10-10
|
|
6
|
+
|
|
7
|
+
- **[构建 / 发布] `lib/` 转为构建产物,不再入库**
|
|
8
|
+
- `lib/` 加入 `.gitignore` 并解除跟踪;发布时由 `prepublishOnly`(`verify:release`)重建,再经 `files` 字段打进 tarball
|
|
9
|
+
- `files` 新增 `CHANGELOG.md`,并固定 `publishConfig.access` 为 `public`
|
|
10
|
+
- **[自动化] 接入 GitHub Actions 自动发版工作流与发版技能**
|
|
11
|
+
- `v*` tag 触发:typecheck → build → test → 从 CHANGELOG 提取 release notes → `pnpm pack` 打包 → 发布 npm 与 GitHub Release
|
|
12
|
+
- 附带 CI 工作流,在 Ubuntu 与 Windows 双平台验证
|
|
13
|
+
- **[修复] 发版工作流的三处失败点**
|
|
14
|
+
- 锁定 pnpm 11:pnpm 9 无法解析 `pnpm-workspace.yaml` 的 `minimumReleaseAgeExclude`,会把每条命令都误报成 `packages field missing or empty`
|
|
15
|
+
- 移除会在任何测试运行前就失败的 pnpm 缓存步骤
|
|
16
|
+
- `pnpm pack` 的完整清单曾被整体写入 `$GITHUB_OUTPUT`,导致 Release 收到多行 blob;现只取 `.tgz` 那一行,并在 `NPM_TOKEN` 缺失时直接给出补救提示,而非只抛裸 `ENEEDAUTH`
|
|
17
|
+
- **[测试] 两处断言改为平台无关表达**:缓存路径断言与 topic-storage fixture 改用平台辅助函数构造,不再依赖 POSIX 形式路径
|
|
18
|
+
- **[杂项] 清理失效的 `.claude/skills` 指针与临时截图**,`AGENTS.md` 硬性规矩 1 同步更正为「`lib/` 不入库」
|
|
19
|
+
|
|
20
|
+
## 0.9.3 - 2026-10-05
|
|
21
|
+
|
|
22
|
+
- **[UI / Client] 新增 LLM Verifier Web 界面组件与源码映射**
|
package/lib/client.js
CHANGED
|
@@ -3421,7 +3421,8 @@ window.__ModuleLoader__.load({
|
|
|
3421
3421
|
//#endregion
|
|
3422
3422
|
//#region src/client.tsx
|
|
3423
3423
|
/**
|
|
3424
|
-
*
|
|
3424
|
+
* The one glyph still borrowed from the host, resolved by name across the two vocabularies this
|
|
3425
|
+
* plugin spans.
|
|
3425
3426
|
*
|
|
3426
3427
|
* DSH 0.1.7 renamed the whole host icon set from a size suffix to a stroke suffix
|
|
3427
3428
|
* (`IconDataOutline16` → `IconDataOutlineRegular`). The icon module is external to this bundle, so
|
|
@@ -3429,9 +3430,11 @@ window.__ModuleLoader__.load({
|
|
|
3429
3430
|
* React throws on an undefined element type, which would take the entire settings page down
|
|
3430
3431
|
* instead of dropping one glyph. Probing the namespace at runtime keeps one bundle working on
|
|
3431
3432
|
* either line; a name that neither line defines renders nothing.
|
|
3433
|
+
*
|
|
3434
|
+
* The statistics mark is deliberately NOT in this list: every host glyph paints on `currentColor`,
|
|
3435
|
+
* so as a guide entry it rendered grey-on-navy. `VerifierSidebarIcon` paints its own brand ramp.
|
|
3432
3436
|
*/
|
|
3433
3437
|
const hostIcons = _deepseek_ai_dsh_client_ui_primitives;
|
|
3434
|
-
const IconData = hostIcons.IconDataOutlineRegular ?? hostIcons.IconDataOutline16 ?? (() => null);
|
|
3435
3438
|
const IconRefresh = hostIcons.IconRefreshOutlineRegular ?? hostIcons.IconRefreshOutline16 ?? (() => null);
|
|
3436
3439
|
const NS = "llm-verifier";
|
|
3437
3440
|
const shell = {
|
|
@@ -5014,12 +5017,9 @@ window.__ModuleLoader__.load({
|
|
|
5014
5017
|
display: "grid",
|
|
5015
5018
|
placeItems: "center",
|
|
5016
5019
|
width: 34,
|
|
5017
|
-
height: 34
|
|
5018
|
-
borderRadius: 10,
|
|
5019
|
-
background: "color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent)",
|
|
5020
|
-
color: "var(--dsw-alias-state-business-primary)"
|
|
5020
|
+
height: 34
|
|
5021
5021
|
},
|
|
5022
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5022
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VerifierSidebarIcon, { size: 26 })
|
|
5023
5023
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
|
|
5024
5024
|
style: {
|
|
5025
5025
|
margin: 0,
|
|
@@ -6039,17 +6039,72 @@ window.__ModuleLoader__.load({
|
|
|
6039
6039
|
})
|
|
6040
6040
|
});
|
|
6041
6041
|
}
|
|
6042
|
-
|
|
6043
|
-
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
|
|
6051
|
-
|
|
6052
|
-
|
|
6042
|
+
/**
|
|
6043
|
+
* The statistics mark: a brand-gradient tile carrying the verifier's shield-and-check.
|
|
6044
|
+
*
|
|
6045
|
+
* The host's glyph vocabulary is monochrome by contract (every icon draws on
|
|
6046
|
+
* `currentColor`, and the guide capsule pins that ink to a grey label alias), so a
|
|
6047
|
+
* host icon registered as a guide entry always reads as grey-on-navy — dim next
|
|
6048
|
+
* to a plugin whose glyph is coloured. This mark therefore ships its own paint:
|
|
6049
|
+
* the same violet→blue→teal ramp the dashboard header already wears, a white
|
|
6050
|
+
* shield, and a check cut back out of the ramp in the badge's own coordinates.
|
|
6051
|
+
*
|
|
6052
|
+
* Props follow the host's `IconProps` shape (`size` is the square edge in px,
|
|
6053
|
+
* `className` is for placement), so the same component serves the guide capsule
|
|
6054
|
+
* (26px) and the dashboard header (26px in a 34px well).
|
|
6055
|
+
*
|
|
6056
|
+
* @param props - rendered size and placement class.
|
|
6057
|
+
* @returns the statistics badge.
|
|
6058
|
+
*/
|
|
6059
|
+
function VerifierSidebarIcon({ size = 26, className }) {
|
|
6060
|
+
const gradientId = `llm-verifier-badge-${(0, react.useId)().replace(/[^a-zA-Z0-9-]/g, "")}`;
|
|
6061
|
+
const paint = `url(#${gradientId})`;
|
|
6062
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
6063
|
+
width: size,
|
|
6064
|
+
height: size,
|
|
6065
|
+
viewBox: "0 0 24 24",
|
|
6066
|
+
fill: "none",
|
|
6067
|
+
"aria-hidden": "true",
|
|
6068
|
+
className,
|
|
6069
|
+
children: [
|
|
6070
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("defs", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("linearGradient", {
|
|
6071
|
+
id: gradientId,
|
|
6072
|
+
x1: "1.5",
|
|
6073
|
+
y1: "1",
|
|
6074
|
+
x2: "22.5",
|
|
6075
|
+
y2: "23",
|
|
6076
|
+
gradientUnits: "userSpaceOnUse",
|
|
6077
|
+
children: [
|
|
6078
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("stop", { stopColor: "#8A63FF" }),
|
|
6079
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("stop", {
|
|
6080
|
+
offset: "0.5",
|
|
6081
|
+
stopColor: "#4F7BFF"
|
|
6082
|
+
}),
|
|
6083
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("stop", {
|
|
6084
|
+
offset: "1",
|
|
6085
|
+
stopColor: "#2FC5C9"
|
|
6086
|
+
})
|
|
6087
|
+
]
|
|
6088
|
+
}) }),
|
|
6089
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
|
|
6090
|
+
width: "24",
|
|
6091
|
+
height: "24",
|
|
6092
|
+
rx: "7.5",
|
|
6093
|
+
fill: paint
|
|
6094
|
+
}),
|
|
6095
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
6096
|
+
d: "M12 4.4 18.4 6.9v5.2c0 3.6-2.7 6.4-6.4 7.6-3.7-1.2-6.4-4-6.4-7.6V6.9L12 4.4Z",
|
|
6097
|
+
fill: "#FFFFFF",
|
|
6098
|
+
fillOpacity: "0.94"
|
|
6099
|
+
}),
|
|
6100
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
6101
|
+
d: "M8.8 12.3 11 14.5 15.3 9.7",
|
|
6102
|
+
stroke: paint,
|
|
6103
|
+
strokeWidth: "2.1",
|
|
6104
|
+
strokeLinecap: "round",
|
|
6105
|
+
strokeLinejoin: "round"
|
|
6106
|
+
})
|
|
6107
|
+
]
|
|
6053
6108
|
});
|
|
6054
6109
|
}
|
|
6055
6110
|
function GlobalVerifierDashboard({ rpc }) {
|