@lemoncat7/dsh-partner 2.8.4 → 2.8.7

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 (87) hide show
  1. package/README.md +1 -1
  2. package/docs/THIRD_PARTY_LICENSES.md +4 -0
  3. package/docs/director-skills.md +8 -3
  4. package/docs/dsh-021-compatibility.md +9 -0
  5. package/docs/package-distribution.md +11 -0
  6. package/docs/releases/2.8.5.md +23 -0
  7. package/docs/releases/2.8.6.md +22 -0
  8. package/lib/channels/direct/message-format.js +13 -8
  9. package/lib/channels/direct/message-format.js.map +3 -3
  10. package/lib/client.js +17 -12
  11. package/lib/client.js.map +3 -3
  12. package/lib/skills/ai-camera-language-builtin.d.ts +3 -0
  13. package/lib/skills/ai-camera-language-builtin.d.ts.map +1 -0
  14. package/lib/skills/ai-camera-language-builtin.js +89 -0
  15. package/lib/skills/ai-camera-language-builtin.js.map +1 -0
  16. package/lib/skills/builtin.d.ts.map +1 -1
  17. package/lib/skills/builtin.js +2 -0
  18. package/lib/skills/builtin.js.map +1 -1
  19. package/lib/skills/story-builtins.js +2 -2
  20. package/lib/skills/story-builtins.js.map +1 -1
  21. package/package.json +53 -47
  22. package/resources/skills/ai-camera-language/manifest.json +26 -0
  23. package/resources/skills/ai-camera-language/references/camera-dictionary.md +315 -0
  24. package/resources/skills/ai-camera-language/references/prompt-workflow.md +186 -0
  25. package/resources/skills/ai-camera-language/references/video-summary.md +123 -0
  26. package/resources/skills/novel-game-creation/manifest.json +2 -245
  27. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/BUILD_BRIEF.md +0 -219
  28. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/.vercelignore +0 -3
  29. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/RUN.md +0 -138
  30. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
  31. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
  32. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
  33. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
  34. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
  35. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
  36. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
  37. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
  38. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
  39. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
  40. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
  41. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
  42. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
  43. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
  44. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
  45. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
  46. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
  47. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
  48. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
  49. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
  50. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
  51. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
  52. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
  53. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
  54. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
  55. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
  56. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
  57. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
  58. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
  59. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
  60. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
  61. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
  62. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
  63. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
  64. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
  65. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
  66. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
  67. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
  68. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
  69. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
  70. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
  71. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/css/new-guofeng.css +0 -1494
  72. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/css/style.css +0 -2508
  73. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/index.html +0 -18
  74. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/assets.js +0 -147
  75. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/audio.js +0 -332
  76. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/data.js +0 -7470
  77. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/engine.js +0 -13066
  78. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/main.js +0 -3051
  79. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/text.js +0 -32
  80. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/package.json +0 -11
  81. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/vercel.json +0 -23
  82. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/art/generated-art.json +0 -161
  83. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/example.json +0 -12
  84. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/README.md +0 -26
  85. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/playable-model.json +0 -99
  86. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/verification.json +0 -41
  87. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/verify_playable_model.mjs +0 -152
package/README.md CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ## 安装
18
18
 
19
- 适配 DeepSeek Harness **0.2.0-rc.2**(宿主仍为 RC),需要 Node.js **^22.19.0 或 >=24.0.0**。其他宿主版本请先查阅[兼容说明](docs/dsh-020-compatibility.md)和对应版本的发布说明。
19
+ 适配 DeepSeek Harness **0.2.1-rc.2**(宿主仍为 RC),需要 Node.js **^22.19.0 或 >=24.0.0**。其他宿主版本请先查阅[兼容说明](docs/dsh-021-compatibility.md)和对应版本的发布说明。
20
20
 
21
21
  ```bash
22
22
  dsh plugin --profile web add @lemoncat7/dsh-partner@latest
@@ -1,5 +1,9 @@
1
1
  # Bundled third-party licenses
2
2
 
3
+ ## AI camera language — source attribution
4
+
5
+ `ai-camera-language` is a user-provided, independently summarized skill package, not an official distribution by the video's creators. Its three reference documents are preserved verbatim; `manifest.json` records their hashes and the supplied archive/entrypoint hashes. Source video: “AI运镜词典:32个镜头全演示+核心提示词”, Miorning喵咛, with credit to Rick, https://www.xinpianchang.com/a13724439. Original observations and supplementary advice are distinguished in `references/video-summary.md`. No original video, screenshots or character assets are distributed; the plugin's license does not grant rights to those original media.
6
+
3
7
  ## Drama Skills
4
8
 
5
9
  - **drama-skills** — https://github.com/zenstory-ai/drama-skills, commit `b71cb3ca9343eaf6c0375725ccc9261a4e79021e`, MIT, Copyright (c) 2026 drama-skills contributors.
@@ -1,21 +1,26 @@
1
1
  # 内置影视创作技能
2
2
 
3
- 内置市场提供两个独立入口,需手动安装并在伙伴能力中授权,不自动启用。
3
+ 内置市场提供下列独立入口,需手动安装并在伙伴能力中授权,不自动启用。
4
4
 
5
5
  | ID | 名称 | 用途 | 上游固定提交 |
6
6
  | --- | --- | --- | --- |
7
7
  | director-skills | 影视创作工作流 | 九模块的故事、剧本、分镜、视觉一致性、图像/视频提示词、模型适配与修订 | 0xhughs/director-skills @ 35ca0a2b4cd55b0668aa9ea0f40273324b774bb4 |
8
8
  | cinematic-director | 导演与分镜设计 | 导演调度、关键帧、声音、剪辑与质量诊断,二十种导演方法参考 | wuwangzhang1216/DirectorSKILL @ c65ae0d14457053efb1e354c7e7f7e120d97fad1 |
9
+ | ai-camera-language | AI 镜头语言与运镜 | 32 项镜头词典、故事分镜、双语提示词与失败修订 | 用户提供的技能包,来源哈希见 manifest.json |
9
10
 
10
11
  ## 加载与权限
11
12
 
12
- 中文 inline 入口保持精简,匹配任务后先读各自 `upstream/SKILL.md`,再按需读取所需参考和模板。不会将全部资料注入会话,也不会把九个子模块自动注册为工具或伙伴。两者同时启用时,前者负责阶段路由,后者仅细化相关导演环节。
13
+ 另提供用户整理的 `ai-camera-language`(AI 镜头语言与运镜),完整保留 32 项镜头词典、视频内容与时间索引、故事分镜及失败修订示例。原视频来源及作者见 `references/video-summary.md`;这是学习整理与扩展,不是原作者官方 Skill,不分发原视频和角色素材。
14
+
15
+ 该技能专注镜头选择、物理运动、提示词与连续性,不替代导演总流程,不要求先使用画布。正文为 inline,三份参考按需读取;安装离线校验 SHA-256,缺失/损坏资源随现有内置修复流程恢复且保留伙伴绑定。DSH 仅增加显示名、版本、上下文类型与安装路径说明,不加载 Codex 专属 `agents/openai.yaml`。资源清单记录输入压缩包和原入口哈希;三份参考保留原文。
16
+
17
+ 两个导演技能的中文 inline 入口保持精简,匹配任务后先读各自 `upstream/SKILL.md`,再按需读取所需参考和模板。不会将全部资料注入会话,也不会把九个子模块自动注册为工具或伙伴。两者同时启用时,前者负责阶段路由,后者仅细化相关导演环节。
13
18
 
14
19
  资料需要已授权的文件读取工具;生成图像、视频、剪辑或文件交付需要对应工具或 MCP。技能不授予工具权限,不承诺资料中的模型能力仍然有效。多伙伴制作沿用需求/任务看板,外部长任务沿用一次性续接,不绕过授权、审批或预算。
15
20
 
16
21
  ## 分发与兼容
17
22
 
18
- `resources/skills/<id>/upstream` 包含上游 Markdown 资料和 MIT LICENSE;仅统一为 LF 换行及末尾换行,不改写原文。CI 配置、运行脚本和非文档评测数据不随插件分发。
23
+ 两个导演技能的 `resources/skills/<id>/upstream` 包含上游 Markdown 资料和 MIT LICENSE;仅统一为 LF 换行及末尾换行,不改写原文。CI 配置、运行脚本和非文档评测数据不随插件分发。
19
24
 
20
25
  每个包的 `manifest.json` 保存来源、提交和逐文件 SHA-256;安装时校验并使用现有原子包安装器。安装无需 GitHub 连接;升级只跟随已审查的插件版本,不实时追踪上游。初始化检查已安装内置包的资源,缺失或过期时重装并保留伙伴绑定,不自动安装未选中的技能。
21
26
 
@@ -0,0 +1,9 @@
1
+ # DSH 0.2.1-rc.2 兼容适配
2
+
3
+ 本版本:2.8.5。宿主目标:DSH 0.2.1-rc.2;旧版 DSH 请继续使用原插件版本。
4
+
5
+ 保留关注、看板、渠道与能力授权流程;按新版声明重新构建,回归会话恢复及能力刷新。
6
+
7
+ 所有 DSH 构建依赖固定为 0.2.1-rc.2,运行时 peerDependencies 与 engines.dsh 明确包含该预发布版本。不能仅根据声明判定兼容;升级前需在无生产凭据、无真实渠道的隔离容器验证。
8
+
9
+ 本次不修改 DSH 核心源码,不迁移或清理生产会话与插件数据。
@@ -0,0 +1,11 @@
1
+ # 安装包资源范围
2
+
3
+ 小说改编互动游戏的内置发行包保留全部七个技能模块、参考资料、入口、MIT 许可证和固定版本来源;不分发上游 `examples/` 中已完成的示例游戏、图片、剧情数据及示例项目的运行/验收脚本。
4
+
5
+ 这些示例仍可保留在源码仓库中供维护者查阅。该资源目录的 `.npmignore` 阻止它们进入 npm 安装包;顶层 `manifest.json` 仅列出实际安装的资源,安装和导出均使用此清单。`upstream/manifest.json` 是未改写的原始快照来源记录,不是当前发行包的文件清单。
6
+
7
+ 上游 README 保留原文,其示例链接应到固定提交的上游仓库查看,不承诺示例文件存在于安装目录。技能入口也明确说明该区别。其他技能的脚本、参考资料、卡牌渲染代码及调试映射均不在本轮精简范围。
8
+
9
+ 后续离线导入使用 `scripts/bundle-story-skills.mjs`,它仍核对源快照哈希,但按 `scripts/story-resource-policy.mjs` 的规则过滤可选示例并生成发行清单及 npm 排除规则。
10
+
11
+ 发布前先构建和打包,再执行 `npm run pack:verify -- /absolute/path/to/package.tgz`。检查实际压缩包不含可选示例、体积不超过 10 MB,并从解包目录加载所有内置技能,核验文件完整性和哈希。不要仅凭源码测试判断发行包可用。
@@ -0,0 +1,23 @@
1
+ # 伙伴 2.8.5
2
+
3
+ ## 宿主兼容
4
+
5
+ 本版本明确支持 **DeepSeek Harness 0.2.1-rc.2**。包的 `engines.dsh` 与相关运行时 peerDependencies 已更新为 `^0.2.1-rc.2`,构建依赖固定为本次验证版本。其他宿主版本未由本次验证覆盖。
6
+
7
+ 仍在 DSH 0.2.0-rc.2 的用户请继续使用 **2.8.4**,不要在旧宿主上强制安装本版。
8
+
9
+ ## 更新
10
+
11
+ - 更新 DSH 依赖、锁文件和安装兼容声明,明确支持 0.2.1-rc.2。
12
+ - 保留持续关注、任务看板、渠道、MCP/技能及伙伴授权功能。
13
+
14
+ ## 验证与升级
15
+
16
+ 已在隔离宿主验证伙伴授权变更后下一轮工具刷新,并检查正式环境伙伴列表、工作区和既有会话。未发送真实渠道测试消息。
17
+
18
+ 安装:`dsh plugin --profile web add @lemoncat7/dsh-partner@2.8.5`。
19
+
20
+ 请先备份配置与插件数据,升级到上述宿主后再安装本版,并重启实际使用的 Profile(桌面端按其 Profile 操作)。本次不修改 DSH 核心源码,不清理或迁移生产会话数据。
21
+
22
+ 详见 [DSH 0.2.1-rc.2 兼容说明](../dsh-021-compatibility.md)。
23
+
@@ -0,0 +1,22 @@
1
+ # 伙伴 2.8.6
2
+
3
+ ## 宿主兼容
4
+
5
+ 本版本支持 **DeepSeek Harness 0.2.1-rc.2**,包含 2.8.5 的宿主适配。仍在 DSH 0.2.0-rc.2 的用户请使用 2.8.4,不要强制安装本版本。2.8.5 的 Git 标签保留,但 npm 发布未完成,本版本为后续完整发布。
6
+
7
+ ## 更新
8
+
9
+ - 新增可选内置 Skill「AI 镜头语言与运镜」:完整保留 32 项词典、视频总结与时间索引、故事转分镜、双语提示词及失败修订示例。参考资料按需读取,无需联网下载资源;安装后在伙伴能力中授权使用,不自动给全部伙伴启用。
10
+ - 精简安装包:不再分发小说改编游戏 Skill 的上游示例游戏成品和大图片。全部七个技能模块、参考资料、来源和许可证保留;卡牌渲染和伙伴业务功能不删减。压缩包从约 19.2 MB 降至约 7.5 MB。
11
+ - 同步调整离线导入过滤规则与安装资源清单,避免资源缺失校验失败或下次导入再次膨胀。已安装内置游戏技能升级时清理其旧示例资源,保留伙伴授权;不清理用户项目产物。
12
+ - 新增实际发布包检查:核对内置目录与目录注册、逐文件哈希、必需运行文件及包体积。
13
+
14
+ ## 验证与安装
15
+
16
+ 已完成构建、747 项自动测试和实际 tarball 解包资源校验,覆盖新 Skill 安装/授权/取消授权、损坏修复、卸载以及旧游戏技能升级。不代表已对真实视频模型完成效果评测;未发送真实渠道测试消息或执行收费生成。
17
+
18
+ 安装:`dsh plugin --profile web add @lemoncat7/dsh-partner@2.8.6`。
19
+
20
+ 安装前备份配置与插件数据;安装后重启实际使用的 Profile。桌面端使用对应 Profile。没有修改 DSH 核心或主题,不迁移、清理生产会话数据。
21
+
22
+ 参见 [宿主兼容说明](../dsh-021-compatibility.md)、[内置影视技能](../director-skills.md) 与 [安装包资源范围](../package-distribution.md)。
@@ -7319,15 +7319,12 @@ function findAndReplace(tree, list4, options) {
7319
7319
  find.lastIndex = position2 + 1;
7320
7320
  } else {
7321
7321
  if (start !== position2) {
7322
- nodes.push({
7323
- type: "text",
7324
- value: node2.value.slice(start, position2)
7325
- });
7322
+ add({ type: "text", value: node2.value.slice(start, position2) });
7326
7323
  }
7327
7324
  if (Array.isArray(value)) {
7328
- nodes.push(...value);
7325
+ for (const child of value) add(child);
7329
7326
  } else if (value) {
7330
- nodes.push(value);
7327
+ add(value);
7331
7328
  }
7332
7329
  start = position2 + match[0].length;
7333
7330
  change = true;
@@ -7339,20 +7336,28 @@ function findAndReplace(tree, list4, options) {
7339
7336
  }
7340
7337
  if (change) {
7341
7338
  if (start < node2.value.length) {
7342
- nodes.push({ type: "text", value: node2.value.slice(start) });
7339
+ add({ type: "text", value: node2.value.slice(start) });
7343
7340
  }
7344
7341
  parent.children.splice(index2, 1, ...nodes);
7345
7342
  } else {
7346
7343
  nodes = [node2];
7347
7344
  }
7348
7345
  return index2 + nodes.length;
7346
+ function add(child) {
7347
+ const previous3 = nodes[nodes.length - 1];
7348
+ if (previous3 && previous3.type === "text" && child.type === "text") {
7349
+ previous3.value += child.value;
7350
+ } else {
7351
+ nodes.push(child);
7352
+ }
7353
+ }
7349
7354
  }
7350
7355
  }
7351
7356
  function toPairs(tupleOrList) {
7352
- const result = [];
7353
7357
  if (!Array.isArray(tupleOrList)) {
7354
7358
  throw new TypeError("Expected find and replace tuple or list of tuples");
7355
7359
  }
7360
+ const result = [];
7356
7361
  const list4 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];
7357
7362
  let index2 = -1;
7358
7363
  while (++index2 < list4.length) {