Bundle
chicheng-vault
DSH 便捷输入保险箱插件:在发送按钮左侧提供灰色快捷按钮,展开密码保护的资料面板(密钥/服务器/地址/手机号/网址),自动识别会话中的敏感信息并提醒收录,支持分类/标签/私密记录/WebDAV 备份,点击即填入输入框,Ctrl+点击直接发送。
- Source
- 534119219
- stars
- 3 stars
- License
- MIT
- Updated
- Updated 3 days ago
Readme
# chicheng-vault — DSH 便捷输入保险箱 在 DeepSeek Harness Web 界面的输入栏「**用量**」与「**发送**」按钮之间添加一个灰色圆形快捷按钮(与发送按钮同尺寸同圆角),点击展开「保险箱」面板: - 收录**密钥、服务器、地址、手机号、网址**等常用信息,点击单条记录直接**填入输入框**,`Ctrl`(或 `⌘`)+ 点击**直接发送**; - **自动识别**:会话中出现敏感信息时(密钥/JWT/PEM、URL、SSH 服务器、**中国大陆手机号**、IP、中文地址),按钮上出现**红点脉冲提示**(不自动弹出面板),点击按钮后可在面板顶部逐条收录;手机号仅识别中国手机号(11 位、`1[3-9]` 开头,可带 `+86/86` 前缀),不识别外国号码与座机; - **打开面板免密码**:面板直接展示所有**非私密**记录;点击**私密记录**(或编辑私密记录 / 使用加密的 WebDAV 配置)时才验证主密码;**验证一次持续有效**,无操作超过设定时长(默认 10 分钟,可配置,0 = 关闭)后私密内容**自动重新锁定**,也可在面板头部手动锁定; - 首次使用设置主密码与安全词;忘记密码可用**安全词重置**; - 每条记录支持**名称、分类、标签、是否私密**,并记录**创建时间**;支持编辑/删除、全局模糊搜索(名称/标签/分类); - **WebDAV 备份/恢复**(经宿主端代理转发,规避 CORS)。 ## 数据安全(v2) - 保险箱 store 分为两层:**非私密记录为明文**(仅含常用信息,方便免密查看),**私密记录内容**与 **WebDAV 配置**在浏览器内以 **WebCrypto(PBKDF2-SHA256 15 万轮 + AES-256-GCM)** 加密; - 随机保险箱密钥 K 分别被**主密码派生密钥**与**安全词派生密钥**包裹后持久化;密文由宿主端存于 `$DSH_HOME/vault/store.json`,**私密明文只存在于解锁后的浏览器内存**,锁定即清空; - 自动识别只保存**内容哈希**用于去重,不落明文; - 忘记主密码时,只有安全词能解出 K 并重置密码;若两者皆失,数据不可恢复(加密设计使然)。 ## 功能对照 | 需求 | 实现 | |---|---| | 用量与发送之间灰色按钮 | `conversation.input.right` slot 取 props,按钮本体通过 DOM 锚点插入输入栏「用量」与「发送」之间;34×34 圆钮,灰底 | | 点击展开 + 过渡动画 | 浮动面板(fixed 定位,fade + slide 动画,Esc/外部点击关闭) | | 打开面板免密码 | 面板直接加载 store,非私密记录可见;仅私密内容触发密码验证 | | 验证一次持续有效 | 解锁后 K 保留在内存;无操作超过 autoLockMinutes 自动重新锁定(`pointerdown`/`keydown` 刷新活跃时间,15 秒轮询) | | 私密记录二次验证 | 点击/编辑私密记录 → 密码弹窗 → 全局解锁(不再逐条验证) | | 安全词重置密码 | 设置内「忘记密码」→ 安全词验证 → 设置新密码(可换安全词) | | 自动记录会话中的密钥/服务器/地址/手机号/网址 | 宿主端监听 `session/event`,模式识别后按钮红点提示;手机号仅识别中国大陆手机号并归一化为 11 位 | | 每条记录名称/分类/标签/私密 | 新增/编辑表单完整支持;私密记录加密存储 | | 记录创建时间 | 每条记录保存 `createdAt`,列表展示 | | WebDAV 备份 | 设置分区内配置地址/账号/密码(配置加密存储)→ 立即备份/从备份恢复 | | 左侧分类栏 | 密钥/服务器/地址/手机号/网址/其他 + 动态新增分类 | | 点击填入、Ctrl+点击发送 | `inputActions.setDraft` / `setDraft + submit` | | 全局搜索,搜索时分类不选中 | 名称/标签/分类模糊匹配,搜索中侧栏无选中态 | | 每条记录编辑/删除按钮 | 行内图标按钮 + 删除确认 | | 右上角「新增」按钮 | 面板头部右侧,打开新增表单 | | 设置界面分区 + 圆角卡片 | 自动识别 / 自动锁定 / WebDAV / 修改密码 四个圆角边框分区,顶部对齐、可关闭 | | 旧版本数据迁移 | 检测到 v1 store 时展示迁移页,输入原密码升级为 v2(私密内容改加密、非私密改明文);兼容历史 KDF 参数(PBKDF2 迭代数/哈希),vault 密文缺失时按空库迁移;忘记密码可用安全词重置并完成迁移 | ## 安装(以 web profile 为例) 从 GitHub 安装: ```bash dsh plugin --profile web add 534119219/chicheng-quickinput ``` 本地开发安装(编辑源码即时生效): ```bash cd /d/Harness/chicheng-vault dsh plugin --profile web add file:D:/Harness/chicheng-vault # 若 pnpm 生成了快照副本,执行 relink 指向源码目录: powershell -File D:/Harness/relink-plugins.ps1 -Name chicheng-vault ``` > 修改插件源码后**无需重新安装**,但宿主端改动需要**手动重启 dsh web**,客户端改动刷新页面即可(`Ctrl+F5` 硬刷新)。 ## 测试 ```bash node test/matcher.test.mjs # 模式识别纯函数 node test/host.smoke.mjs # 宿主端 API + 监听 + WebDAV 代理(临时 DSH_HOME) node test/crypto.test.mjs # 加密方案全链路(v2:setup/unlock/lock/reset/change/迁移) node test/client.load.mjs # 客户端 bundle 结构 ``` ## 数据位置 - `$DSH_HOME/vault/store.json` — v2 store(密钥包装 + 私密记录密文 + WebDAV 配置密文 + 非私密明文 + 开关) - `$DSH_HOME/vault/suggestions.json` — 待收录建议与去重哈希 - 备份文件由 WebDAV 目标地址决定(默认 `chicheng-vault-backup.json`) ## License MIT
Install
dsh plugin --profile web add github:534119219/chicheng-quickinput
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install chicheng-vault from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.