feat(kb-dsh): 接入仓库工程约定并改名为公开包 bailian-kb-dsh

包名 @ali/bailian-kb-dsh → bailian-kb-dsh(公开 npm):package.json name +
cordis.patch.yml insert.name + tsdown PLUGIN_ID 三处同步(漏一处即 dsh 运行时崩)。

产物 lib/ → dist/(本仓 .gitignore 忽略 dist 不忽略 lib),连带 main/types/
exports/files/tsdown outDir 同步;.gitignore 补 *.tsbuildinfo。

依赖接 catalog(yaml/typescript/@types/node/vite-plus);测试导入 vitest →
vite-plus/test(全仓统一约定,消掉唯一的 vitest 依赖漂移)。

tsconfig 拆三件套:tsconfig.json 纯类型检查覆盖 src+tests(供 oxlint 自动发现,
含 jsx/DOM),tsconfig.build.json 产出 node 半,tsconfig.web.json 隔离检查 web 半。
补齐 tests 从未被类型检查暴露的一处 partial 输入类型错误。

根 vite.config.ts 新增两条 override:web 半 no-restricted-imports 把 tsdown 构建期
的 bundle purity gate 提前到 lint 期;全包放开 _ 前缀的 no-unused-vars。

文档:新增 docs/agents/dsh-plugin.md,AGENTS.md 项目地图/版本锁步例外/分层边界/
场景索引同步,packages.mjs 注释说明故意不进发布白名单。

格式化(单引号无分号 → 双引号加分号)由 pre-commit 的 vp check --fix 自动完成,
无法单独成 commit,一并纳入。

全仓 vp check 0 error;插件 13 文件 85 测试全绿;build + typecheck 通过。
This commit is contained in:
zeyu.fz
2026-08-24 11:02:44 +08:00
parent 9112a88c60
commit d24104f7dc
88 changed files with 9058 additions and 8629 deletions
+25
View File
@@ -87,6 +87,31 @@ export default defineConfig({
"no-restricted-properties": restrictCommandCapabilities("exportApiCredential"),
},
},
{
// dsh 插件(下游宿主适配层)的 `_` 前缀是“有意不用”的声明:被忽略的 catch
// 绑定用 `_原因` 命名解释为何可以忽略,测试 mock 的 `_path` 类参数则是为了
// 钉住被 mock 函数的签名(删了就不再约束调用形状)。
files: ["packages/bailian-kb-dsh/**/*.{ts,tsx}"],
rules: {
"no-unused-vars": ["error", { caughtErrorsIgnorePattern: "^_", argsIgnorePattern: "^_" }],
},
},
{
// web 半会被 tsdown 打成浏览器 bundle,由 host 的 frozen module table 解析 require:
// node 内置模块和本仓 CLI 包在那里根本不存在,import 到就是运行时必崩。
// @deepseek-ai/* 的 platform module 白名单仍由 tsdown 的 dsh-client-bundle-purity
// 插件在构建期把关(名单即 CLIENT_EXTERNALS,见 tsdown.config.ts)。
files: ["packages/bailian-kb-dsh/src/web/**/*.{ts,tsx}"],
rules: {
"no-restricted-imports": [
"error",
{
paths: ["bailian-cli-core", "bailian-cli-runtime", "bailian-cli-commands"],
patterns: ["node:*"],
},
],
},
},
],
},
run: {