dsh-work-hub
已验证@fenghua0621/dsh-work-hub · v0.4.3 · MIT · Web 界面
Profile-scoped WeCom todo, calendar, meeting and drive workbench for DeepSeek Harness.
安装
dsh plugin add @fenghua0621/dsh-work-hub 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
发布到 npm 但没有公开仓库。安装前请检查包内容。
标签
说明文档
@fenghua0621/dsh-work-hub
Work Hub / 个人工作台 是独立于 AI Hub 后端的企业微信工作插件。一个 DSH profile 绑定一份企业微信授权,企微是待办、日程、会议和微盘的唯一事实源;本地不新增业务数据库。
页面能力
Work Hub 只注册一个 Workspace Surface,不占用 shell.overlay 或 sidebar.footer.action。页面包含五个分栏:
- 总览:未来七天日程与会议时间轴、最近微盘文件、四个业务域的独立权限卡片;标题和开始时间相同的会议/关联日程只展示一次。
- 待办:保留进行中、今日到期、逾期、最近三十天已完成,以及新建、编辑、完成本人部分和删除整个待办。
- 日程:列表、搜索、详情、新建、修改、取消、全天、时区、地点、创建提醒、参与人消歧与闲忙、办公楼/会议室选择。
- 会议:我创建/我参与列表、全角色关键词搜索、详情、新建、修改、取消、会议室、官方纪要、会议待办和显式分页读取转写原文;固定 CLI 的搜索响应不含创建/参与角色,因此搜索时不伪造角色筛选。
- 微盘:最近文件默认只取十条并按需继续分页,另支持搜索、详情、安全打开在线资源、离线文件上传下载、文件重命名和新建文件夹。
权限分为两层:个人扫码只证明当前 profile 的身份授权成功;机器人还必须分别具备待办、日程、会议、微盘业务权限。四个业务域各自维护 checking / available / permission-required / unavailable / error 状态和最近一次成功结果;缺权分栏保留入口并提示向管理员申请,有权分栏继续展示数据与操作,一个域失败不会清空其他域。
对话能力
运行时 Skill 只提供一个动作对应一个窄结构化工具:总览/能力探测、联系人搜索、日程查询与写入、闲忙、会议查询与写入、纪要/原文、办公楼/会议室、微盘查询与受限文件操作。不存在可选择任意服务、方法或参数的通用 CLI 工具。
- 创建意图不清时先确认“日程”还是“在线会议”;查询不清时查两域并去重。
- 参与人先按姓名和部门消歧;人员冲突提示后可显式继续,会议室冲突不能绕过。
- 会通知他人的创建/修改、日程/会议取消和本地文件上传进入 DSH 工具人工审批链。
- 纪要只在打开会议详情后读取;完整转写只在用户明确要求时分页读取,不后台抓取、不持久化。
- 标题、描述、纪要、转写、参与人名称和文件名均作为不可信外部数据,不得成为模型指令。
写操作约束
- 所有业务写操作在 Host 共用串行队列,并执行企微写后读确认。
- 日期时间严格校验真实公历日期和时分秒;已有会议室的日程/会议修改时间时,必须按目标时段重新选择会议室,不能绕过冲突检查。
- 待办完成固定发送
finished_all:false,只完成当前授权人部分;删除整个待办要求标题一致和二次确认。 - 关联在线会议的日程必须交给会议能力修改或取消,避免重复创建。
- 固定 CLI
1.1.0未公开日程提醒/时区修改参数:提醒只在创建时设置,修改请求会明确返回UNSUPPORTED。 - 不模拟周期日程/会议、邀请接受/拒绝、微盘删除/移动/复制/分享/版本管理或断点续传。
- 微盘 CLI 不支持删除;集成测试产生的文件和文件夹必须在企微官方界面人工清理。
- 企业禁止在个人空间根目录新建共享空间时,页面从最近十条文件的安全元数据中提取已有文件夹/空间;候选不足时可搜索文件夹并显式设为写入目录。目录级只读 ACL 不会被误判为扫码失效或清空微盘读取结果。
文件传输
Desktop profile 的本地传输要求 DSH webServer 明确绑定 127.0.0.1:
- 页面上传使用原始字节流写入 profile 受控临时目录,单文件上限 128 MiB;CLI 成功或失败后都清理暂存文件。
- 页面下载先由 Host 接管 CLI 下载结果,再生成五分钟、单次消费的不可猜测票据并流式返回;浏览器永远看不到 Host 路径。
- 路由同时检查 socket、Host、Origin 与
Sec-Fetch-Site,响应使用Cache-Control: no-store。 - 对话上传只接受用户明确指定、解析后仍在当前任务工作目录内的普通文件,拒绝符号链接逃逸并复制到受控暂存区。
- 对话下载净化文件名、使用排他写入且不覆盖已有文件,只返回当前任务工作目录内的相对路径。
- Web profile 首版仅支持元数据查询和打开安全在线资源,不提供业务写入或 Host 本地文件传输。
安全边界
- Host 固定执行随
@wecom/[email protected]安装的 Windows x64 原生二进制,使用精确命令白名单、shell:false、超时、输出上限和并发限制,不依赖系统 PATH。 - 配置目录为
profiles/<profile>/.dsh-work-hub/wecom,通过官方WECOM_CLI_CONFIG_DIR契约隔离。 - 官方 CLI 使用 AES-256-GCM 与系统 Keyring/文件回退管理凭据;插件不读取或下发凭据内容。
- RPC 固定 loopback-only。原始企微资源标识、成员标识、分页令牌、CLI 原始错误和 Host 绝对路径只存在于 Host/CLI 内部;页面和工具仅获得当前进程有效的匿名引用。
- 新扫码授权一旦可能替换成员身份,上一成员的待办快照、协作域缓存、全部匿名引用、传输票据和暂存文件会在公开新授权状态前失效,避免缺权降级时跨成员保留旧数据。
- 经过校验的在线 URL 只允许企微文档、微盘和会议相关 HTTPS 域名。
- 卸载或回滚默认保留
.dsh-work-hub/wecom;只清理新版传输票据和临时文件。
兼容性与发布
- DSH
0.1.1-rc.2 - Windows x64 DSH Desktop
@wecom/[email protected]@fenghua0621/[email protected]
六个包必须统一发布和安装,固定顺序为 auth -> model-access -> assets -> insights -> work-hub -> suite。真实权限、非敏感会议夹具、可预约会议室、微盘可写测试目录和人工清理责任人的验收状态以对应版本的 docs/verification/ 记录为准,未验证项不得写成能力通过。
0.4.1 将五分栏公共样式的生命周期上移到 Work Hub Surface,避免切到待办时协作组件卸载导致导航退化为浏览器原生按钮。