dsh-deepmoyu 0.0.0-stage → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/AGENTS.md +91 -0
  2. package/CHANGELOG.md +27 -0
  3. package/CONTRIBUTING.md +51 -0
  4. package/CONTRIBUTORS.md +14 -0
  5. package/LICENSE +21 -0
  6. package/NOTICE.md +18 -0
  7. package/README.md +188 -2
  8. package/SECURITY.md +21 -0
  9. package/assets/avatar/bust.png +0 -0
  10. package/assets/avatar/face.png +0 -0
  11. package/assets/avatar/fish.png +0 -0
  12. package/assets/avatar/wide.png +0 -0
  13. package/assets/pet/pet.png +0 -0
  14. package/assets/screenshots/memory.png +0 -0
  15. package/assets/screenshots/menu.png +0 -0
  16. package/assets/screenshots/workspace.png +0 -0
  17. package/client.js +4464 -0
  18. package/cordis.patch.yml +20 -0
  19. package/docs/ASSETS.md +25 -0
  20. package/docs/DEPLOYMENT.md +102 -0
  21. package/docs/PRIVACY.md +32 -0
  22. package/docs/RELEASE_AUDIT.md +70 -0
  23. package/docs/RELEASING.md +94 -0
  24. package/docs/TEST_MATRIX.md +77 -0
  25. package/docs/assets-permissions.json +20 -0
  26. package/docs/tool-evidence.json +196 -0
  27. package/index.js +7474 -0
  28. package/lib/asr.py +147 -0
  29. package/lib/automation.mjs +70 -0
  30. package/lib/background-mcp.mjs +32 -0
  31. package/lib/background-output.mjs +96 -0
  32. package/lib/background-tools.mjs +41 -0
  33. package/lib/comment.mjs +429 -0
  34. package/lib/companion.mjs +43 -0
  35. package/lib/config-policy.mjs +20 -0
  36. package/lib/dm.mjs +172 -0
  37. package/lib/dup.mjs +227 -0
  38. package/lib/favops.py +94 -0
  39. package/lib/hostdeps.mjs +141 -0
  40. package/lib/ids.mjs +76 -0
  41. package/lib/learn-review-mcp.mjs +56 -0
  42. package/lib/learn-review.mjs +69 -0
  43. package/lib/learn-store.mjs +19 -0
  44. package/lib/learn.mjs +384 -0
  45. package/lib/ledger.mjs +190 -0
  46. package/lib/login-session.mjs +34 -0
  47. package/lib/login.mjs +116 -0
  48. package/lib/mcp.mjs +144 -0
  49. package/lib/memory-center.mjs +74 -0
  50. package/lib/mirror.mjs +120 -0
  51. package/lib/mode.mjs +69 -0
  52. package/lib/model-relay-adapter.mjs +75 -0
  53. package/lib/model-relay.mjs +155 -0
  54. package/lib/open-directory.mjs +93 -0
  55. package/lib/pace.mjs +557 -0
  56. package/lib/persona.mjs +340 -0
  57. package/lib/pet-session.mjs +108 -0
  58. package/lib/product-status.mjs +123 -0
  59. package/lib/prompts.mjs +84 -0
  60. package/lib/pv-production.mjs +280 -0
  61. package/lib/pv-session.mjs +316 -0
  62. package/lib/pv.mjs +548 -0
  63. package/lib/pv.py +2571 -0
  64. package/lib/pv_cover.py +444 -0
  65. package/lib/pv_editorial.py +336 -0
  66. package/lib/pv_gsv.py +235 -0
  67. package/lib/pv_plan.py +435 -0
  68. package/lib/pv_verify.py +267 -0
  69. package/lib/python-env.mjs +61 -0
  70. package/lib/record-privacy.mjs +49 -0
  71. package/lib/record-storage.mjs +125 -0
  72. package/lib/records.mjs +325 -0
  73. package/lib/reply.mjs +113 -0
  74. package/lib/run-settings.mjs +116 -0
  75. package/lib/state.mjs +183 -0
  76. package/lib/sticker-automation.mjs +167 -0
  77. package/lib/sticker-download.mjs +159 -0
  78. package/lib/sticker-image.mjs +245 -0
  79. package/lib/sticker.mjs +342 -0
  80. package/lib/taste.mjs +624 -0
  81. package/lib/tokens.mjs +211 -0
  82. package/lib/tool-scope.mjs +65 -0
  83. package/lib/uvfetch.mjs +191 -0
  84. package/lib/verify.mjs +168 -0
  85. package/marketplace/pyyxzi__dsh-deepmoyu.yml +7 -0
  86. package/package.json +92 -4
  87. package/presets/deepmoyu.patch.yml +129 -0
  88. package/prompts/duty.md +136 -0
  89. package/screenshots.json +5 -0
  90. package/selfcheck.mjs +172 -0
  91. package/vendor/bilibili-mcp/LICENSE +21 -0
  92. package/vendor/bilibili-mcp/README.md +176 -0
  93. package/vendor/bilibili-mcp/mcp_server.py +2708 -0
  94. package/vendor/bilibili-mcp/requirements.in +9 -0
  95. package/vendor/bilibili-mcp/requirements.txt +1936 -0
  96. package/vendor/bilibili-mcp/runtime_guard.py +701 -0
package/AGENTS.md ADDED
@@ -0,0 +1,91 @@
1
+ # DeepMoYu 开发约定
2
+
3
+ 本仓库为标准 DSH 插件 `dsh-deepmoyu`,基于 `dsh-bili-scroll` 0.1.19(MIT)。当前包版本以 `package.json` 为准。不要将外层工作区中的个人记录、运行目录或旧发布包复制进仓库。
4
+
5
+ ## 维护本机链接安装
6
+
7
+ 本机运行中的安装可能通过 `file:` / `link:` 或 junction 指向本仓库,并包含未提交改动。**不要对当前本地分叉执行 `dsh plugin add` 或用 registry 更新覆盖源码。** 普通外部用户按 README 正常安装不受此约束。本项目不提供自动更新入口;不要恢复 `/upgrade`、`/update` 或自动重装逻辑。
8
+
9
+ 不要擅自重启用户正在使用的 DSH、修改真实 profile / 模型凭证 / 全局权限,或向平台发送真实评论、私信或动态。隔离测试使用独立临时目录、受控服务与合成数据。修改 JS 后需要完全重启 DSH 才能生效,页面刷新与 patch 热重载不会清除模块缓存。
10
+
11
+ ## 仓库与发布
12
+
13
+ - `index.js` 为宿主入口;`client.js` 为浏览器自注册脚本。
14
+ - `presets/deepmoyu.patch.yml` 为模式声明,和 `cordis.patch.yml` 一并由 `dsh.bundle.patch` 加载。
15
+ - `lib/` 为运行模块;`vendor/bilibili-mcp/` 保留上游许可证和发送守卫。
16
+ - `scripts/qa/` 为可移植验收,不依赖上级工作区、其他项目的 node_modules 或个人路径。
17
+ - `scripts/release/` 检查清单、构建归档并验证清洁安装;发布文档在 `docs/`。
18
+ - 更新版本时同步锁文件与 CHANGELOG。npm 版本、GitHub Release 与市场收录分别验证,不能相互替代。
19
+ - 运行数据不得进入源码包;npm 包只带运行文件与用户文档,源码 ZIP 带锁文件、测试、CI 和发布资料。
20
+ - 保留根 MIT 与 vendored MIT 署名。素材权限独立记录在 `docs/assets-permissions.json`,不能用代码许可证推断第三方权利。
21
+
22
+ ## 模式隔离
23
+
24
+ - 角色工具仅注册到已选择鲸鱼摸鱼模式的 `agent.ctx.tools`,禁止根层注册及全局 fallback。
25
+ - 普通、无预设、未知、畸形或已切出模式的会话不获得角色 schema、人格、soul 或已批准学习。
26
+ - 模式判断以宿主选择/会话事件为准;残留鱼 goal 不构成人格授权。
27
+ - 旧工具句柄在执行前重新检查;异步读取返回后、发送或自动动作提交前再次复核。
28
+ - 宿主 goal driver 独立注入 objective;切出模式时和每次执行前阻止本插件拥有的残留鱼目标。不得暂停其他目标、改其他会话模型或权限。
29
+ - 缺少可靠作用域时禁用会话工具,并在 `toolScope` 中报告能力;后台受控桥与 HTTP 工作台可保持独立。
30
+
31
+ ## 会话、后台与用量
32
+
33
+ - 新建会话仅使用真实宿主 API,并校验来源会话、工作区归属与有效权限。
34
+ - 来源的 `sandboxPolicy` / `approval` / `permissionPresets` 按宿主机制继承;不接受前端伪造权限,不改 profile/defaults。继承失败不得继续开刷。
35
+ - 配置中的参考工作区路径不等于执行 cwd;多工作区且来源不明时不猜测。
36
+ - 会话/后台分别保存参数;保存草稿不改变运行中的任务。
37
+ - 后台时长为工作量目标,干净提前结束且剩余时间足够时才接力;手动停止、错误、审核任务、时限到达不接力。保留接力保险丝。
38
+ - 连续时段支持跨午夜。手动停止的暂停状态持续到时段结束,重启调度不得绕过;配置不混入启动请求体。
39
+ - 后台模型桥复用原线路,不复制密钥、不自动换模型;停止先撤销能力并中止流,再等待 close 收尾。
40
+ - 后台 token 预算为软预算,墙钟截止独立计时。usage 只累加每请求最后一个可信快照;缺失不估算、不当 0,混合返回标为部分计量。
41
+ - 累计值以持久状态为准,不能将裁剪后的最近明细相加冒充累计。暂停、恢复与重置基线保持幂等。
42
+ - 孤儿进程按信标与所有权核对,不对仅凭历史 PID 的进程执行 kill。
43
+
44
+ ## 配置、存储与隐私
45
+
46
+ - 所有运行数据写 `<DSH_HOME>/bili-duty/`,不写插件安装目录。
47
+ - 配置与记录使用事务锁和原子写入;文件损坏不等于不存在,不可用空数据覆盖损坏历史。
48
+ - 仅修改本次明确更新的字段,避免锁外旧快照覆盖其他进程的新配置。
49
+ - 布尔权限不得把字符串 `"false"` 转成 true;未知或畸形输入明确拒绝。
50
+ - 登录轮询绑定本次二维码;旧轮询不能覆盖更新的账号或二维码。下载与网络操作有明确超时。
51
+ - 诊断不读凭证文件。隐私参考必须区分本机保存、对 B站的认证请求、模型上下文与在线语音数据流。
52
+ - 记录镜像是用户要求的本地副本,保留工作区根目录语义,不为整齐而静默迁移或删除。
53
+
54
+ ## 发送、审核与表情
55
+
56
+ - 评论、楼层回复、动态回复、私信、动态、成果投递分别授权;不能借通道或后台桥绕过开关。
57
+ - 发送审核批准后仍经过原授权、质量、永久判重、节奏、冷却和额度门禁。结果未知不自动重发。
58
+ - 12014 按已核实的平台评论通道处理,不能误停其他独立通道;不要将平台拒绝毒化为永久已发送。
59
+ - pace 系数只影响下一次成功发送后保存的间隔,不追溯缩短或放大已经锁定的等待。
60
+ - 外部学习先待审;普通角色工具不得自行 approve/reject。撤销批准从后续提示词移除,保留来源与审计。
61
+ - 表情审核开关仅由人工设置入口改变;关闭不放行旧待审。发送绑定已批准的图片字节快照,防删除/重传同名项替换。
62
+ - 上传接收浏览器提供的字节,不读取任意用户给定本地路径;下载逐跳校验公网地址、固定 DNS、限制大小/跳转/格式。
63
+ - 自动收集按会话范围捕获来源,停止时取消对应队列与下载并在提交前复核;不能永久禁用后续新任务或影响其他会话。
64
+ - 内置图库只读;显式空图保持纯文字,楼层回复、私信和动态不自动配图。
65
+
66
+ ## 工作台与性能
67
+
68
+ - 主导航六组:`run/speech/learning/video/logs/basic`,默认 `run`。子页 `stickers→learning`、`ledger/review→logs`、`other→basic`。不要恢复历史九个主入口。
69
+ - 会话和后台启动位于首屏;状态、参数、权限与错误说明使用客观文案,角色实际对话可保留个性。
70
+ - 只构建当前子页,不预求值全部组件;切页重置正文滚动并清理该页轮询。
71
+ - PetRoot 共享 status tuple,弹窗不得重复起 `/status` 请求。status、活动和登录轮询均 single-flight;晚到响应不能回退已保存状态、清屏结果或新的登录。
72
+ - 视频/图库/记忆按页读取,离页清理;404 明确提示重启并暂停自动重试,保留手动重试。
73
+ - 不往 `settings.section` 注入插件设置;浏览器模块返回的 `inject` 为空,apply 仅挂样式与桌宠。
74
+ - 卡片、菜单、预览与 toast 位于 `[data-bd-pet]` 内,以鱼盒定位;cursor/touch-action/user-select/缩放规则只作用鱼本体,不能被面板继承。
75
+ - 不透明面板不加 backdrop blur;保持减少动效与键盘焦点;窄屏及矮窗口菜单在视口内滚动。
76
+ - 所有 hooks 均位于 `if (!pos) return null` 等早退之前。
77
+
78
+ ## 视频
79
+
80
+ - 可见会话制作不替换为无回执的后台假完成。保留来源会话、所选模型、冻结素材和目标终态。
81
+ - 渲染接受后等待实际完成/失败/取消,再将终态回传原会话一次;不取消其他制作任务或会话。
82
+ - 逐句旁白、字幕、口型与时间线一致。成片列表仅加入通过实际音视频校验的产物,失败保留独立日志和计划。
83
+ - 本地 Python 脚本与角色素材通过初始化同步到运行目录,新增辅助脚本要验证运行目录可找到它。
84
+ - 用户章程按摘要保护,不能在升级时覆盖已修改内容。
85
+ - 不打包用户参考音频或 GPT-SoVITS 模型,不将在线语音描述为完全离线。
86
+
87
+ ## 验证
88
+
89
+ 运行 `npm test`、`npm run test:python`、`npm run test:ui`、`npm run test:browser`,以及相应宿主隔离门禁。改变菜单结构必须测真实浏览器定位;改变轮询必须测延迟响应与卸载;改变配置必须测跨实例事务及畸形输入。
90
+
91
+ 发布前运行 `npm run release:check`、`npm run release:build` 和 `npm run release:smoke`,核对当前归档而非旧包。无宿主时明确 skip,显式坏宿主路径失败;不将合成浏览器/模拟平台数据写成真实账号已发送。审查记录列出覆盖范围、命令、实际结果和外部限制。
package/CHANGELOG.md ADDED
@@ -0,0 +1,27 @@
1
+ # 更新记录
2
+
3
+ ## 2.4.1(待发布)
4
+
5
+ 本节对应当前源码,不能据此推断 npm 或插件市场已更新。
6
+
7
+ - 工作台合并为六组导航,默认进入运行方式;会话与后台启动位于首屏。
8
+ - 桌宠菜单、工作台及表单统一为天蓝配色,优化窄屏布局与客观状态描述。
9
+ - 角色工具使用会话作用域注册,切出模式撤销工具并暂停本插件拥有的残留摸鱼目标。
10
+ - 新增发送前审核、集中记忆管理、表情人工审核、陪伴偏好、七天回顾与恢复入口。
11
+ - 视频制作使用可见会话编排、本地编辑型渲染和音视频终态校验,保留逐句口型动画。
12
+ - 状态、活动及扫码登录轮询避免并发重入与旧响应覆盖。
13
+ - 修复跨实例配置更新丢字段、畸形布尔配置误开启及旧二维码登录覆盖新状态。
14
+ - 模型配置工具不再修改发送权限、收件人或审核门禁;`force` 参数不构成授权。
15
+ - uv 下载按 CPU 与系统选择归档,使用官方摘要、流式大小限制、超时和独立暂存目录。
16
+ - 视频回执引用持久成片路径,清理编码器管道资源;目标时长不足时要求重新编排内容。
17
+ - 长 UID、评论和消息标识在表单、配置及原始 MCP JSON 中保持精度,不从已舍入数字猜测目标。
18
+ - 可选转写仅清理本次下载,保留本地输入及并发任务;ASR 部分安装、失败、中断和外部链接环境不再误报可用。
19
+ - Windows 目录打开使用隐藏的 ShellExecute 助手,超时不会终止用户的 Explorer 窗口。
20
+ - 主环境要求升级为 Python 3.11–3.13、Pillow 13;显式升级先保留旧环境备份。
21
+ - 增加可移植测试、清洁包安装验证、源码与 npm 归档检查,以及部署和发布文档。
22
+
23
+ ## 2.3.0
24
+
25
+ - 从 `dsh-bili-scroll` 0.1.19 分叉并以 `dsh-deepmoyu` 发布。
26
+ - 增加桌宠、后台时段任务、用量账本、学习与记忆、表情图库和本地日报视频。
27
+ - 移除自动更新入口,保留原项目及 vendored 代码的许可证与署名。
@@ -0,0 +1,51 @@
1
+ # 开发与贡献
2
+
3
+ ## 环境
4
+
5
+ - Node.js 22+、npm、Git。
6
+ - Python 3.11–3.13。可用 `PYTHON` 指定执行文件;建议独立虚拟环境。
7
+ - Chrome 或 Chromium,用于真实 React/浏览器验收;可用 `CHROME_PATH` 指定路径。
8
+
9
+ ```sh
10
+ npm ci
11
+ python -m venv .venv-test
12
+ ```
13
+
14
+ 激活该虚拟环境后安装 `vendor/bilibili-mcp/requirements.txt`。依赖安装需要网络;媒体测试不会使用真实 B站账号。GPT-SoVITS 及其模型不在测试基础依赖中。
15
+
16
+ `requirements.in` 固定已验证的直接依赖,`requirements.txt` 记录 universal 哈希锁。更新依赖时使用其文件头记录的 uv 命令重新生成,并重新执行依赖审计与媒体测试;不要为保留旧 Python 环境降级到已知存在漏洞的 Pillow。
17
+
18
+ ## 测试命令
19
+
20
+ | 命令 | 范围 |
21
+ | --- | --- |
22
+ | `npm test` | host/client 自检与全部 Node 单元/集成回归 |
23
+ | `npm run test:python` | Python 发送守卫、图片发送及视频测试 |
24
+ | `npm run test:mcp` | 真实 Python/FastMCP 握手与本地 SQLite 守卫调用;不读取凭证、不访问平台 |
25
+ | `npm run test:ui` | 完整工作台场景、交互断言、变异测试及源码契约 |
26
+ | `npm run test:browser` | 真实 React 的全部页面、菜单几何、记忆操作与请求竞态 |
27
+ | `npm run test:isolation` | 人格与真实宿主目标驱动隔离;按实际宿主能力执行 |
28
+ | `npm run release:check` | bundle、锁文件、市场资料、截图、授权记录与 npm 文件清单 |
29
+ | `npm run release:build` | 构建并回读校验 npm tarball 和源码 ZIP |
30
+ | `npm run release:smoke` | 临时目录中清洁安装实际 tarball 并运行自检 |
31
+
32
+ Windows 示例:`$env:PYTHON = 'C:\path\python.exe'`;Linux/macOS:`export PYTHON=/path/to/python`。浏览器产物目录可通过 `QA_OUTPUT_DIR` 指定,默认使用系统临时目录。
33
+
34
+ 真实宿主 headless 门禁可用 `node scripts/qa/headless-relay.mjs` 执行,只访问回环模拟服务;会临时解包宿主依赖,空间不足时设置 `DSH_QA_TMPDIR`。不会重装本机插件或修改实际 profile。
35
+
36
+ 不带宿主的 CI 不可假称真实宿主测试通过;提供 `DSH_HOST_ASAR` 时必须指向真实可读取的桌面宿主。显式配置的路径错误应失败。外部 API 使用 fakes 时,报告应明确说明。
37
+
38
+ ## 修改约束
39
+
40
+ - 配置、凭证、状态与媒体产物写入运行目录,不写源码目录。
41
+ - 角色工具只注册到已选中角色的会话作用域;不要增加全局 fallback。
42
+ - 普通会话不获得角色提示词或记忆;停止和清理只操作本插件拥有的任务。
43
+ - 发送授权、审核、判重、节奏和冷却是不同门禁,不能互相代替。
44
+ - 保留源项目及第三方署名;素材与音色的公开分发权限另行确认。
45
+ - 修改 JS 后需完全重启 DSH。本机链接开发安装不应通过 registry 重装覆盖。
46
+
47
+ 详细行为约定见 [AGENTS.md](AGENTS.md)。提交 PR 时说明行为变化、修复前的复现、验证命令和实际限制;不要只报告测试总数。
48
+
49
+ ## 发布
50
+
51
+ 发布需要额外的清单、归档和部署验收,见 [发布指南](docs/RELEASING.md)。CI 不自动向 npm 发布,也不修改 DSH profile 或市场仓库。
@@ -0,0 +1,14 @@
1
+ # 外部贡献与致谢
2
+
3
+ 以下保留源项目的社区贡献记录,感谢最初提供判断或实现的贡献者。本表为项目署名记录,不代表当前分叉的 GitHub 自动贡献者统计。
4
+
5
+ | 人 | 采纳了什么 |
6
+ |---|---|
7
+ | [@wotorrrrr](https://github.com/wotorrrrr) | `uv venv` 钉 Python 3.10–3.13(3.14+ 没有 `av` / `ctranslate2` 的 wheel);私信模式必须把 `bili_send_message` 放进 MCP 白名单;数组类设置不能用 `!==` 比默认值 |
8
+ | [@Rookiexg](https://github.com/Rookiexg) | headless overlay 要补 `agent-default-model`,否则账号登录的机器会 `MISSING_CREDENTIAL`(PR #50) |
9
+ | [@383891598](https://github.com/383891598) | yt-dlp 的进度条会污染 stdout,导致"输出非空 = 成功"恒真(PR #23,部分采纳) |
10
+
11
+ 如需补充或纠正署名,请在仓库 Issues 中附上对应来源。新增贡献应在变更记录或提交中说明来源,不应删除已有许可证与署名。
12
+
13
+ ---
14
+ *本文件只做署名,不构成任何额外许可条款。*
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 c1overzz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE.md ADDED
@@ -0,0 +1,18 @@
1
+ # 第三方代码与署名说明
2
+
3
+ 本插件(`dsh-deepmoyu` / 鲸鱼摸鱼)的代码部分以 **MIT** 协议发布,正文见仓库根目录的 `LICENSE`。角色素材的来源与公开分发声明见 [素材说明](docs/ASSETS.md)。
4
+
5
+ ## 内含第三方代码
6
+
7
+ - 目录:`vendor/bilibili-mcp/`
8
+ - 项目:**bilibili-mcp**
9
+ - 许可证:**MIT**,Copyright (c) 2026 AGI_Ananas
10
+ - 完整许可见该目录下的 `LICENSE`
11
+
12
+ ## 关于版权署名
13
+
14
+ `LICENSE` 第一行写的是 `Copyright (c) 2026 c1overzz`。
15
+ 二次分发 MIT 代码时应保留这一行及 MIT 正文。图片、参考音频、音色模型和第三方平台内容的权利范围应另外核对,不能由代码许可证推断。
16
+
17
+ ---
18
+ *本文件只是说明,不构成额外限制。*
package/README.md CHANGED
@@ -1,3 +1,189 @@
1
- # Temporary Holding Version
1
+ # 🐋 DeepMoYu · 鲸鱼摸鱼
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ DeepMoYu 是一个 DSH(DeepSeek Harness)插件:**让一只鲸鱼娘自己逛 B站**。她不是替你打开网页的工具——她会自己搜片、读字幕原文、判断值不值得看,在拿到你的授权后**自己发评论、发动态、回私信**,把看过的东西写进日报,需要时还能做成视频。角色提示词、记忆和对话内工具仅在「🐟 鲸鱼摸鱼模式」生效。
4
+
5
+ 一句话概括:**把 DeepSeek 这类模型接进 B站当一个真正的up主级用户**——自主浏览、自主互动、有自己的口味和记性,而不是一个只会念摘要的机器人。
6
+
7
+ 本项目基于 `dsh-bili-scroll` 0.1.19(MIT)开发,保留原作者和 vendored 代码署名,不包含自动更新入口。当前源码版本为 **2.4.1**;源码版本、npm 发布和市场收录分别管理,详见 [更新记录](CHANGELOG.md) 与 [发布说明](docs/RELEASING.md)。
8
+
9
+ ## 她会自己做什么
10
+
11
+ | 自主行为 | 说明 |
12
+ | --- | --- |
13
+ | 自己找片 | 按关注、分区排行、全站热门、关键词自己搜,不靠你一条条点 |
14
+ | 自己看片 | 读 AI 字幕原文再判断,不拿标题、简介、弹幕当看过;没字幕就说没看到 |
15
+ | 自己发评论 | 挑中视频后写评论,可配表情包;获批后带 `@` 找你 |
16
+ | 自己发动态 | 把今日所得发成动态,有每日上限 |
17
+ | 自己回私信 | 按收件人与消息资格回复,不越界 |
18
+ | 自己写日报 | 每天一份选片笔记:为什么挑、看到了什么;可做成视频 |
19
+ | 自己记事 | 学习要人工批准才生效,`soul.md` 记心情与自我认识,越刷越像她 |
20
+
21
+ 所有发送行为**默认关闭**,由你逐项授权;授权后仍受发送前审核、永久判重、节奏冷却和平台额度约束。她可以多看、少说、甚至这一轮不发言。
22
+
23
+ ## 功能
24
+
25
+ - **运行方式**:当前会话自主浏览、新开会话浏览、后台任务、每日定时及跨午夜连续时段。会话和后台分别保存模型、时长与预算。
26
+ - **互动与投递**:视频评论、楼层回复、动态、私信和成果投递分别授权;发送前审核、永久判重、节奏、冷却与额度状态共同约束发送。
27
+ - **记忆与素材**:学习队列、角色记忆、语气与口味记录,以及内置和收集表情。待审素材在批准前不进入发送或学习参考。
28
+ - **视频工作室**:可见会话编排分镜与旁白,本地生成视频、双比例封面、时间线和校验回执;保留角色逐句口型。只生成本地文件,不自动投稿。
29
+ - **记录与用量**:活动、事件、真实 token 账本、七天回顾与恢复入口。未知用量显示为未计量,不估算为零。
30
+ - **偏好与设置**:桌宠显示、陪伴频率、安静时段、专注模式、减少动效、账号及运行环境。
31
+
32
+ 工作台默认打开「运行方式」,首屏显示 **新开会话刷** 和 **后台刷**。单击或右键桌宠打开菜单,双击新开浏览会话;隐藏后可通过右下角圆点恢复。
33
+
34
+ ![工作台界面演示](assets/screenshots/workspace.png)
35
+
36
+ 截图使用合成演示数据,不代表真实账号、用量或平台发送结果。
37
+
38
+ ## 环境要求
39
+
40
+ | 项目 | 要求 |
41
+ | --- | --- |
42
+ | DSH | 包声明范围为 `>=0.1.7-rc.1`;完整功能还需下述宿主能力 |
43
+ | Node.js | 22 或更高;桌面版一般使用自带运行时 |
44
+ | Python | 支持 3.11–3.13,或可用的 `uv`;主依赖安装由工作台触发 |
45
+ | 视频依赖 | 主依赖中的 Pillow、`edge-tts`、`imageio-ffmpeg`;中文画面还需可用的中文字体 |
46
+ | 模型 | 用户已在 DSH 配置且有权使用的模型;插件不提供模型账号或额度 |
47
+
48
+ 对话内工具要求可靠的 `agent.ctx.tools` 会话作用域。视频制作还需要模型选择、目标续轮和终态回传能力。缺少能力时界面会显示原因并禁用对应入口,不将工具注册到普通会话,也不自动更换模型。不同宿主版本的验证范围见 [审查记录](docs/RELEASE_AUDIT.md)。
49
+
50
+ 应安装到已经正常工作的 Desktop/Web profile,并由宿主提供 `webServer` 与 `agentPresets`。纯 base/headless profile 不直接承载该桌宠工作台;后台浏览由插件另行创建受控 headless 任务。
51
+
52
+ 默认配音使用在线语音服务;GPT-SoVITS 为用户自行配置的可选本地环境。插件不附带音色模型或参考音频。依赖下载、平台访问、模型和在线配音都需要相应网络连接。
53
+
54
+ ## 安装
55
+
56
+ ### 从 npm 安装正式版
57
+
58
+ ```sh
59
+ npm view dsh-deepmoyu version
60
+ dsh plugin --profile web add dsh-deepmoyu
61
+ ```
62
+
63
+ 第一条查询实际已发布版本,第二条安装该版本;本地打包不会更新 npm。将 `web` 替换为实际使用的 profile。安装后完全退出并重新打开 DSH。
64
+
65
+ ### 从源码安装
66
+
67
+ ```sh
68
+ git clone https://github.com/pyyxzi/dsh-deepmoyu.git
69
+ cd dsh-deepmoyu
70
+ npm ci --omit=dev
71
+ ```
72
+
73
+ 然后将源码目录的**绝对路径**传给 DSH,例如:
74
+
75
+ ```sh
76
+ dsh plugin --profile web add "link:<插件目录绝对路径>"
77
+ ```
78
+
79
+ DSH 会管理 profile 的依赖和 bundle 列表,不需要手动创建 junction 或修改其他插件。Windows 路径中有空格或中文时保留引号。详细步骤、离线包安装、迁移与卸载见 [部署指南](docs/DEPLOYMENT.md)。
80
+
81
+ > 正在维护的本地链接安装应直接更新源码;不要用 registry 安装覆盖本地分叉。修改 JS 后必须重启 DSH,刷新页面不会清除宿主模块缓存。
82
+
83
+ ## 首次配置
84
+
85
+ 点桌宠 → **工作台 → 偏好与设置 → 账号与环境**:
86
+
87
+ 1. 安装主依赖:创建插件独立 Python 环境;本地字幕转写为可选依赖。
88
+ 2. 扫码登录:使用 B站客户端完成登录。
89
+ 3. 检查连接:验证登录状态与搜索读取。
90
+
91
+ 主依赖和自动下载仅在明确操作后执行,没有 npm 安装期脚本。系统没有 Python/uv 时会尝试下载并验证 uv;失败原因显示在安装日志中。
92
+
93
+ **评论、回复、私信和动态发送默认关闭。** 阅读不需要开启发送;想让**她自己发言**,到「互动与投递」逐项打开:`autoComment`(发评论,可 @ 你)、`autoMoment`(发动态,受每日上限约束)、`replyToComments`(回楼层)、`autoReplyDm`(回私信)。自动收集和自动配图也有各自的开关,不能代替发送授权。
94
+
95
+ ## 使用
96
+
97
+ | 任务 | 入口与行为 |
98
+ | --- | --- |
99
+ | 让她自己刷(当前会话) | 切到鲸鱼摸鱼模式,明确要求开始;选择模式本身不启动循环。之后她会自己找片、自己判断、自己决定说不说话 |
100
+ | 让她自己刷(新会话) | 菜单或运行页「新开会话刷」;继承来源工作区及实际权限 |
101
+ | 后台与定时 | 运行页设置独立参数;连续时段可跨午夜,手动停止后暂停至本时段结束;重启 DSH 仍会按时段自动接上 |
102
+ | 停止与恢复 | 运行状态或运行页控制;只影响选中的插件任务 |
103
+ | 让她发言 | 「互动与投递」逐项开授权;获批后仍经过发送前审核、判重、节奏和平台额度 |
104
+ | 发送审核 | 「互动与投递」逐条批准/拒绝;批准后仍经过权限、判重、节奏和平台限制 |
105
+ | 学习与记忆 | 「记忆与素材 → 学习与记忆」筛选、审核、撤销或按版本移除记忆 |
106
+ | 表情管理 | 「记忆与素材 → 表情收藏」上传、链接收集与人工审核;内置图库只读 |
107
+ | 日志与账本 | 「记录与用量」查看活动、原始事件、账本及数据回顾 |
108
+ | 制作视频 | 「视频工作室」选择日期、形式、时长与模型,点击「新开会话制作」 |
109
+
110
+ ### 用量与调度
111
+
112
+ 后台预算是提示词软预算,不是逐 token 的硬上限;实际 usage 用于记账,墙钟截止时间由独立定时器控制。缺失或部分 usage 如实显示。模型与时长的草稿保存用于下一次启动,不修改已经运行的任务。
113
+
114
+ 后台连续时段的配置会持久保存。重启后调度器重新检查时段与暂停状态;失败、风控、缺少模型或环境仍可能阻止启动。不要把自动恢复理解为外部服务始终可用。
115
+
116
+ ### 视频制作
117
+
118
+ 制作会话先获取冻结的公开素材快照,再编排开场、旁白、观点对照、步骤卡与结尾。预览检查后提交完整渲染;字幕来源、日期和逐字引语与素材快照核对。渲染接受后会话等待终态,完成或失败回传原制作会话。停止只取消对应制作任务。
119
+
120
+ 成片必须通过实际帧数、帧率、音轨解码、非静音、逐句时间线和时长检查后,才进入成片列表。失败保留计划与日志;重做使用独立目录。宿主退出中断的任务会显示恢复状态,不伪装为成功。
121
+
122
+ ### 模式与记忆隔离
123
+
124
+ 发送开关、收件人、审核门禁与运行预算通过工作台人工配置;模型的配置工具只能调整安全偏好,`force` 参数不构成授权。关闭发送权限后,批准审核也不能绕过该权限。
125
+
126
+ 切出鲸鱼摸鱼模式后撤销角色工具,旧工具句柄也重新检查作用域;本插件拥有的残留摸鱼目标会暂停。普通会话、其他模型设置及其他目标不被修改。已经写入聊天历史的内容不会自动删除。
127
+
128
+ 学习与记忆是参考数据,不授予发送权限;撤销批准从后续提示词中移除相应参考。外部字幕、评论和私信不能覆盖工具权限。发送结果未知时先核对,不自动重复发送。
129
+
130
+ ## 数据与隐私
131
+
132
+ 运行数据保存在 `<DSH_HOME>/bili-duty/`,与源码目录分开;已配置的记录镜像另存在工作区根目录。备份可能含有效凭证,不应公开上传。
133
+
134
+ 凭证在本机保存,但账号请求仍会向 B站携带授权信息;模型会处理获准读取的任务上下文,默认在线配音也会发送旁白。插件没有独立遥测上传服务。完整数据流与删除方式见 [数据与隐私](docs/PRIVACY.md),问题报告方式见 [SECURITY.md](SECURITY.md)。
135
+
136
+ ## 开发与验证
137
+
138
+ 源码开发安装完整依赖:
139
+
140
+ ```sh
141
+ npm ci
142
+ npm test
143
+ npm run test:python
144
+ npm run test:ui
145
+ npm run test:browser
146
+ npm run release:check
147
+ ```
148
+
149
+ Python 媒体测试需要 Python 3.11–3.13 与已锁定的依赖;图像库使用修复已知漏洞的 Pillow 13。浏览器测试需要 Chrome/Chromium。可用 `PYTHON` 和 `CHROME_PATH` 指定可执行文件。npm 运行包仅提供 `npm run check`,其余开发命令从完整源码运行。测试范围见 [功能矩阵](docs/TEST_MATRIX.md),环境与未覆盖的外部条件见 [审查记录](docs/RELEASE_AUDIT.md);完整贡献步骤见 [CONTRIBUTING.md](CONTRIBUTING.md)。
150
+
151
+ ## 发布
152
+
153
+ ```sh
154
+ npm run release:build
155
+ npm run release:smoke
156
+ ```
157
+
158
+ 构建生成 `release/dsh-deepmoyu-2.4.1.tgz`、源码 ZIP、归档验证报告与 `SHA256SUMS`。构建会验证实际文件内容,不包含运行凭证、日志、缓存或 node_modules;源码包包含测试与发布文档。发布前先完成全部验收,见 [发布指南](docs/RELEASING.md)。
159
+
160
+ 插件市场需要单独提交目录条目,npm 发布不会自动收录。可提交文件为 [marketplace/pyyxzi__dsh-deepmoyu.yml](marketplace/pyyxzi__dsh-deepmoyu.yml),截图由仓库根的 `screenshots.json` 声明。外部仓库主题、条目审核、账号权限和 npm 认证需在发布时核对。
161
+
162
+ ## 常见问题
163
+
164
+ - **界面或图库返回 404**:完全退出并重开 DSH,确认当前 profile 加载了正确源码版本;然后手动刷新对应面板。
165
+ - **没有角色工具或不能新开会话**:检查诊断中的 `toolScope` 和宿主能力提示,不要通过全局注册绕过隔离。
166
+ - **评论报 12014**:平台拒绝该评论通道发送;插件保留退避,其他通道仍按各自权限与限制执行。
167
+ - **二维码过期或登录失败**:重新生成二维码并检查网络与设备时间;不要把二维码或凭证发到公开 Issue。
168
+ - **视频无声或失败**:查看该制作任务日志、音视频校验和依赖状态;在线配音失败不能算制作完成。
169
+ - **安装下载失败**:查看安装日志;可自行安装 Python/uv,或使用部署指南中的手动路径配置。不要关闭完整性验证。
170
+
171
+ ## 目录
172
+
173
+ ```text
174
+ index.js / client.js 宿主入口与桌宠工作台
175
+ cordis.patch.yml 插件 bundle 声明
176
+ presets/ 隔离角色模式
177
+ lib/ 调度、发送、记忆、计量与视频模块
178
+ vendor/bilibili-mcp/ 内置 Python MCP 与共享发送守卫
179
+ assets/ 角色图片与界面演示截图
180
+ scripts/ 可移植测试与发布工具
181
+ selfcheck.mjs / tests/ 自检与回归测试
182
+ docs/ / marketplace/ 部署、隐私、发布记录及市场条目
183
+ ```
184
+
185
+ ## 许可证与致谢
186
+
187
+ 代码使用 MIT,保留 [c1overzz/dsh-bili-scroll](https://github.com/c1overzz/dsh-bili-scroll) 和 [AGI_Ananas / bilibili-mcp](https://github.com/adoresever/bilibili-mcp) 的许可证与署名。见 [LICENSE](LICENSE)、[NOTICE.md](NOTICE.md) 与 [CONTRIBUTORS.md](CONTRIBUTORS.md)。
188
+
189
+ 图片、参考音频和模型文件的授权与代码许可分别处理,见 [素材说明](docs/ASSETS.md)。项目不附带 B站或模型服务账号;发布内容和素材应满足对应平台规则及授权范围。
package/SECURITY.md ADDED
@@ -0,0 +1,21 @@
1
+ # 安全问题与隐私
2
+
3
+ 本项目为 DSH 插件,与宿主进程共享运行权限。仅安装来自可信来源、经过审阅的版本。
4
+
5
+ ## 报告安全问题
6
+
7
+ 涉及凭证泄漏、权限绕过、跨会话提示词或工具注入、任意文件读写及重复发送的问题,应优先通过 GitHub 仓库的 **Security → Report a vulnerability** 私密报告。如果仓库尚未启用该入口,先在 Issues 中提交不含漏洞细节、账号信息和复现凭证的联系请求,请维护者提供私密沟通方式。
8
+
9
+ 报告中可说明受影响版本、宿主版本、操作系统、复现步骤及预期行为。不要公开登录二维码、Cookie、`bili_credential.json`、模型密钥、完整私信或未脱敏的运行目录。
10
+
11
+ ## 默认边界
12
+
13
+ - 角色提示词、记忆和对话内工具仅挂载到鲸鱼摸鱼模式;缺少可靠会话作用域时禁用对应能力,不回退为全局工具。
14
+ - 评论、回复、私信、动态和自动表情功能使用独立配置。默认关闭发送,界面开启权限不等于绕过审核、节奏、判重及平台风控。
15
+ - 发送结果未知时保留待核对状态,不将异常推断为成功,也不自动重发。
16
+ - 状态与凭证存放在用户运行目录,禁止纳入源码或发布包。公开分发前应运行发布清单与归档检查。
17
+ - 本项目没有安装时执行脚本,不自动修改其他插件、模型凭证或宿主全局权限。
18
+
19
+ ## 数据流与测试范围
20
+
21
+ 详见 [数据与隐私](docs/PRIVACY.md) 和 [发布审查记录](docs/RELEASE_AUDIT.md)。本地隔离测试不会向真实 B站 账号发送内容。第三方平台、模型和语音服务的可用性、处理方式及限制由各服务决定。
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file