源码运行 dsh web 时,plugin-package-inventory-deepseek 会让 DeepSeek 官方路由全部请求失败(cannot resolve active package) #5172
Puwenhui-Me
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
环境
0.1.2-alpha.2),pnpm dsh web启动(tsx + tsconfig paths)@deepseek-ai/dsh-base+@deepseek-ai/dsh-web-app现象
DeepSeek 官方模型每一轮请求都在准备阶段失败:
自定义 OpenAI 兼容 provider(
llm-pi-ai配的百炼/智谱)完全正常——失败只发生在官方路由,因为只有它执行dsh_plugin_packages请求扩展(插件盘点字段)。根因
PackageIdentityResolver.resolve(packages/llm/plugin-package-inventory-deepseek/src/index.ts)用createRequire(anchor).resolve.paths()解析每个活跃条目的包 manifest,anchors 是条目树 base(profile 目录)加上插件自身模块 URL 向上的搜索链。发布版安装时,所有
@deepseek-ai/*包都能从 profile 的 node_modules 解析到,一切正常。但源码运行时:packages/**源码加载——掩盖了 node_modules 布局的差异;@deepseek-ai/dsh-storage-json只在packages/bundle/base/node_modules下有链接);于是凡是「没有同时出现在根
devDependencies/ profile 依赖 / inventory 自身 peer 链」里的 bundle 依赖,都会抛cannot resolve active package "..."——实测先炸@deepseek-ai/dsh-storage-json,把它加进根 devDependencies 绕过后,又轮到@deepseek-ai/dsh-api-session-controller。这是打地鼠:一个遥测字段不应该有能力放倒整条官方路由。建议修复
把「解析不到」降级为「跳过 + 每个包每进程警告一次」,而不是抛错。本地已验证,打上之后官方路由立即恢复:
(
cache的存在让警告每个包每进程只触发一次。)也可以考虑把 bundle 包目录纳入 anchors,但上面的优雅降级才是关键修复。目前遇到此问题的临时绕过
任选其一:
package.json的devDependencies(workspace:^)后pnpm install;All reactions