Skip to content

hiwork-auth

Verified

hiwork-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 认证)。

架构一瞥

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。

目录结构