hiwork-auth
Verifiedhiwork-auth · v0.1.16 · UNLICENSED · Web UI
HiWork 企业统一登录与模型自动供给插件(ai-router 网关登录,Web 表单,无 CLI 认证)
Install
dsh plugin add hiwork-auth Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Creators
Readme
hiwork-auth
HiWork 的企业统一登录与模型自动供给插件,基于 DeepSeek Harness(DSH)插件机制实现,随 HiWork 桌面端打包分发。
员工在登录页用企业 LDAP 账号登录企业 AI 网关(ai-router),插件自动拉取该账号绑定的虚拟 Key 与预算内模型,写入凭据库与 llm-pi-ai 配置 —— Models 页即刻出现该员工可用的模型,请求经网关统一计费。全程零手动模型配置,登录面为 Web 表单(无 CLI 认证)。
- 完整设计:docs/superpowers/specs/2026-08-19-dsh-higent-design.md
- 对齐的 DSH 版本与升级核对表:docs/DSH-VERSION.md
- 目标网关:自托管 ai-router,
/api/me自助组 +/v1OpenAI 兼容代理
架构一瞥
login gate / settings card(client)──credentials.set / settings.mutate──▶ Host onChange(server)
▶ POST /api/admin/auth/login → GET /api/me/keys + GET /api/me/key?key_id=
▶ 写 AI_ROUTER_API_KEY + session 凭据,写 llm-pi-ai.providers.<协议路由>
▶ pi-ai 热重载 → Models 页出现模型 → 请求走网关
复用 @deepseek-ai/dsh-llm-pi-ai 的手工路由,不新写 LLM 适配器。
多协议路由(协议随模型走)
网关按「入站协议 + 模型」匹配模型映射(GET /api/me/key 的 model_mapping),而 pi-ai 的 api 是路由级的 —— 因此插件把预算内模型按映射拆到多条协议路由,每路由一个协议、baseURL 按协议取对:
| 路由 | 协议 | baseURL 后缀 | 说明 |
|---|---|---|---|
providers.ai-router |
openai-completions |
…/v1 |
主路由(兼容 agent-default-model: provider: ai-router) |
providers.ai-router-anthropic |
anthropic-messages |
裸 base | Anthropic SDK 自带 v1/ 前缀 |
providers.ai-router-responses |
openai-responses |
…/v1 |
仅当有模型只走 responses 映射时产出 |
- 归属规则:精确 EqualFold 优先、
*/?通配(裸*兜底不参与归属);多协议可用时按 chat > anthropic > responses 优先级归属;无映射命中的模型落 chat 路由。 - 好处:DSH 里切换模型自动落到讲对应协议的路由;anthropic 系(如 k3/k3-256k/kimi-for-coding)不再 404(
/v1/v1/messages)也不用手动整路切协议。
登录门禁
- 打开即检测登录(硬门禁):页面加载后检测登录状态,未登录时全屏登录窗覆盖整个应用(不可交互、不可聚焦,防隐私泄漏),登录成功才放行;不可跳过。
- 登录页为 HiWork 品牌视觉:左侧品牌标语「智联万物,从智联工作开始。」,右侧企业账号登录卡。
- 网关地址固定为
https://aigateway.hivery.cn(无需、也不提供用户填写)。 - 设置页「AI Router 网关」为一级 tab,可刷新模型 / 退出登录。
- 多虚拟 KEY 支持:一个账号绑定多把虚拟 Key 时,已登录页显示 KEY 选择器(掩码明文 + 团队名),切换后自动按新 Key 重拉额度与模型。
分发与开发
本插件为 HiWork 内部项目,随桌面端离线打包,版本在 hiwork/src/bundled-plugins.ts 的 BUNDLED_PLUGINS 中锁定;scripts/publish-to-desktop.mjs 负责把构建产物同步进桌面端离线仓库。
要求 Node.js 22+ 与 pnpm:
pnpm install
pnpm build # host(tsc + host-build)+ client(tsc + esbuild 单文件 bundle)
pnpm test # vitest
客户端 bundle 由 scripts/client-build.mjs 用 esbuild 打成单文件:@deepseek-ai/* 与 react 走宿主模块表 external,品牌图片内联为 data URL。
目录结构
- src/index.ts:宿主入口,登录编排、凭据写入与依赖接口。
- src/orchestration.ts:登录后模型供给编排(拉 Key、写路由、热重载)。
- src/client/login-gate.tsx:全屏登录门禁页。
- src/client/section.tsx:设置页「AI Router 网关」卡片。
- src/client/user-badge.tsx:已登录身份与 KEY 选择器。