@oh-story/dsh 0.1.3 → 0.1.4
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.
- package/README.md +5 -3
- package/lib/client.js +20 -11
- package/lib/client.js.map +2 -2
- package/lib/drama/manifest.json +141 -136
- package/lib/drama/skills/short-drama/SKILL.md +55 -122
- package/lib/drama/skills/short-drama/references/audience-reveal.md +14 -67
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +24 -78
- package/lib/drama/skills/short-drama/references/creator-documents.md +79 -0
- package/lib/drama/skills/short-drama/references/creator-workflow.md +51 -77
- package/lib/drama/skills/short-drama/references/knowhow-index.md +2 -0
- package/lib/drama/skills/short-drama/references/look-development.md +2 -3
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +14 -48
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +1 -1
- package/lib/drama/skills/short-drama/references/reference-roles.md +29 -135
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +13 -19
- package/lib/drama/skills/short-drama-assets/SKILL.md +40 -161
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +18 -25
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +13 -15
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +11 -14
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -12
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -11
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +2 -2
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +10 -105
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +12 -32
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +41 -155
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +12 -13
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +10 -12
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +39 -51
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +3 -4
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +15 -14
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +11 -15
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +4 -7
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +23 -23
- package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +6 -65
- package/lib/drama/skills/short-drama-produce/SKILL.md +26 -10
- package/lib/drama/skills/short-drama-review/SKILL.md +61 -123
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -15
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +15 -16
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +7 -9
- package/lib/drama/skills/short-drama-review/references/review-method.md +8 -9
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +9 -13
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +104 -4
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +15 -19
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +4 -63
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +49 -240
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +9 -34
- package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +5 -10
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +8 -7
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +24 -62
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +16 -25
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +5 -23
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -10
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +9 -13
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +11 -71
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +44 -219
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +10 -8
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +3 -5
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +2 -2
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +13 -23
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -11
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +2 -3
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +34 -63
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +13 -72
- package/lib/drama/skills/short-drama-write/SKILL.md +73 -268
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +7 -0
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +17 -43
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +15 -15
- package/lib/drama/skills/short-drama-write/references/script-craft.md +208 -21
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +11 -70
- package/lib/index.js +107 -14
- package/lib/index.js.map +4 -4
- package/lib/oh-story/manifest.json +26 -26
- package/lib/oh-story/roles/character-designer.md +4 -4
- package/lib/oh-story/roles/narrative-writer.md +11 -11
- package/lib/oh-story/roles/story-architect.md +20 -14
- package/lib/oh-story/roles/story-explorer.md +8 -5
- package/lib/oh-story/skills/story-import/SKILL.md +5 -1
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +1 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +11 -5
- package/lib/oh-story/skills/story-setup/SKILL.md +12 -9
- package/lib/types/client/file-activity.d.ts +5 -0
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/index.d.ts +2 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/reference-tool.d.ts +6 -0
- package/lib/types/reference-tool.d.ts.map +1 -0
- package/lib/types/role-provider.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts +3 -1
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/package.json +3 -2
- package/lib/drama/skills/short-drama/references/lifecycle-commands.md +0 -130
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
`oh-story-dsh` 是基于 DeepSeek Harness(DSH)构建的社区小说与短剧创作插件,提供:
|
|
8
8
|
|
|
9
9
|
- 13 个 Oh Story 小说 Skills 与 7 个专业 Roles;
|
|
10
|
-
- 10 个 Drama Skills
|
|
10
|
+
- 10 个 Drama Skills 0.6.0 短剧流程,每集按请求维护最多五份 creator-first Markdown;
|
|
11
11
|
- 小说协议 hooks 与安全的 Session workspace 文件路由;
|
|
12
12
|
- 文件树、创作文档编辑器和 DSH Chat 组成的三栏工作台;
|
|
13
13
|
- Markdown 与 JSONL 结构化预览;
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
## 安装
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.1 plugin --profile web add @oh-story/dsh@0.1.
|
|
21
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.1 plugin --profile web add @oh-story/dsh@0.1.4
|
|
22
22
|
npx -y @deepseek-ai/dsh@0.1.1-rc.1 web
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
也可以直接安装 GitHub Release 中的预构建包:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
npx -y @deepseek-ai/dsh@0.1.1-rc.1 plugin --profile web add https://github.com/worldwonderer/oh-story-dsh/releases/download/v0.1.
|
|
28
|
+
npx -y @deepseek-ai/dsh@0.1.1-rc.1 plugin --profile web add https://github.com/worldwonderer/oh-story-dsh/releases/download/v0.1.4/oh-story-dsh-0.1.4.tgz
|
|
29
29
|
npx -y @deepseek-ai/dsh@0.1.1-rc.1 web
|
|
30
30
|
```
|
|
31
31
|
|
|
@@ -33,6 +33,8 @@ npx -y @deepseek-ai/dsh@0.1.1-rc.1 web
|
|
|
33
33
|
|
|
34
34
|
将作品目录添加为 DSH workspace,然后在普通 Agent 会话中使用 `/story` 或 `/short-drama`。模型、凭据、Preset、权限、会话记录、停止/继续、Todo、审批和 Composer 均使用当前 DeepSeek Harness 配置与界面。
|
|
35
35
|
|
|
36
|
+
Drama Skills 0.6.0 不支持把 v0.5 结构化项目原地升级为 creator-first 项目。旧项目应继续锁定 v0.5 并只读保留;迁移时请新建项目根,逐集人工确认当前工作实际需要的 `剧本.md`、`视觉设定.md`、`分镜.md`、`图片提示词.md` 或 `视频提示词.md`,不要预建空文档。
|
|
37
|
+
|
|
36
38
|
## License
|
|
37
39
|
|
|
38
40
|
[Changelog](https://github.com/worldwonderer/oh-story-dsh/blob/main/CHANGELOG.md) · [MIT](LICENSE)
|
package/lib/client.js
CHANGED
|
@@ -230,6 +230,23 @@ function workbenchModeForPath(path) {
|
|
|
230
230
|
if (directory2 !== void 0 && STORY_DIRECTORIES.has(directory2)) return "story";
|
|
231
231
|
if (directory2 !== void 0 && DRAMA_DIRECTORIES.has(directory2)) return "drama";
|
|
232
232
|
}
|
|
233
|
+
function preferredWorkbenchFile(files, mode) {
|
|
234
|
+
let matching = files.filter((file) => workbenchModeForPath(file.path) === mode), preferences = mode === "story" ? [/^正文\/.*\.md$/u, /^大纲\/.*\.md$/u, /\.md$/u] : [
|
|
235
|
+
/^剧集\/EP0*1\/剧本\.md$/u,
|
|
236
|
+
/^剧集\/.*\/剧本\.md$/u,
|
|
237
|
+
/^剧集\/EP0*1\/screenplay\.md$/iu,
|
|
238
|
+
/^剧集\/.*\/screenplay\.md$/iu,
|
|
239
|
+
/^项目开发\/creative-brief\.md$/u,
|
|
240
|
+
/^输入\/.*\.md$/u,
|
|
241
|
+
/\.md$/u,
|
|
242
|
+
/^short-drama\.json$/u
|
|
243
|
+
];
|
|
244
|
+
for (let pattern of preferences) {
|
|
245
|
+
let match = matching.find((file) => pattern.test(file.path));
|
|
246
|
+
if (match !== void 0) return match.path;
|
|
247
|
+
}
|
|
248
|
+
return matching[0]?.path;
|
|
249
|
+
}
|
|
233
250
|
function previewMutation(activity, base) {
|
|
234
251
|
if (activity.operation === "replace-file") return activity.newText;
|
|
235
252
|
if (activity.operation === "replace-text") {
|
|
@@ -977,14 +994,6 @@ function handleTabKey(event, values, current, select) {
|
|
|
977
994
|
function groupForPath(path) {
|
|
978
995
|
return path === "short-drama.json" ? "\u9879\u76EE" : path.split("/", 1)[0] ?? "\u5176\u4ED6";
|
|
979
996
|
}
|
|
980
|
-
function preferredFile(files, mode) {
|
|
981
|
-
let matching = files.filter((file) => workbenchModeForPath(file.path) === mode), preferences = mode === "story" ? [/^正文\/.*\.md$/u, /^大纲\/.*\.md$/u, /\.md$/u] : [/^剧集\/EP0*1\/screenplay\.md$/iu, /^剧集\/.*\/screenplay\.md$/iu, /^项目开发\/creative-brief\.md$/u, /^输入\/.*\.md$/u, /\.md$/u, /^short-drama\.json$/u];
|
|
982
|
-
for (let pattern of preferences) {
|
|
983
|
-
let match = matching.find((file) => pattern.test(file.path));
|
|
984
|
-
if (match !== void 0) return match.path;
|
|
985
|
-
}
|
|
986
|
-
return matching[0]?.path;
|
|
987
|
-
}
|
|
988
997
|
function endpoint(path, sessionId, file) {
|
|
989
998
|
let url = new URL(`/oh-story/${path}`, globalThis.location.origin);
|
|
990
999
|
return url.searchParams.set("sessionId", sessionId), file !== void 0 && url.searchParams.set("path", file), url.toString();
|
|
@@ -1128,7 +1137,7 @@ function CreativeWorkbench({
|
|
|
1128
1137
|
}, [activityPath, selected]), (0, import_react.useEffect)(() => {
|
|
1129
1138
|
modeSelection.current !== selected && (modeSelection.current = selected, setEditorMode(activityPath === selected ? "source" : previewable ? "preview" : "source"));
|
|
1130
1139
|
}, [activityPath, previewable, selected]), (0, import_react.useEffect)(() => {
|
|
1131
|
-
workspaceLoading || activityPath === void 0 && (selected !== void 0 && ((workspace?.files.some((file) => file.path === selected) ?? !1) || buffers[selected] !== void 0) && workbenchModeForPath(selected) === workbench || setSelected(workspace === void 0 ? void 0 :
|
|
1140
|
+
workspaceLoading || activityPath === void 0 && (selected !== void 0 && ((workspace?.files.some((file) => file.path === selected) ?? !1) || buffers[selected] !== void 0) && workbenchModeForPath(selected) === workbench || setSelected(workspace === void 0 ? void 0 : preferredWorkbenchFile(workspace.files, workbench)));
|
|
1132
1141
|
}, [activityPath, buffers, selected, workbench, workspace, workspaceLoading]), (0, import_react.useEffect)(() => {
|
|
1133
1142
|
if (workspace === void 0 || workspaceLoading) return;
|
|
1134
1143
|
let paths = new Set(workspace.files.map((file) => file.path));
|
|
@@ -1342,7 +1351,7 @@ function CreativeWorkbench({
|
|
|
1342
1351
|
});
|
|
1343
1352
|
}, [activityPath, workbench, workspace]), selectWorkbench = (next) => {
|
|
1344
1353
|
setWorkbench(next);
|
|
1345
|
-
let target = workspace === void 0 ? void 0 :
|
|
1354
|
+
let target = workspace === void 0 ? void 0 : preferredWorkbenchFile(workspace.files, next);
|
|
1346
1355
|
target === void 0 ? setSelected(void 0) : revealPath(target);
|
|
1347
1356
|
}, selectEditorMode = (next) => {
|
|
1348
1357
|
next === "preview" && rememberEditorPosition(), setEditorMode(next);
|
|
@@ -1478,7 +1487,7 @@ function CreativeWorkbench({
|
|
|
1478
1487
|
setBuffers((current) => {
|
|
1479
1488
|
let next = { ...current };
|
|
1480
1489
|
return delete next[selected], next;
|
|
1481
|
-
}), setSelected(workspace === void 0 ? void 0 :
|
|
1490
|
+
}), setSelected(workspace === void 0 ? void 0 : preferredWorkbenchFile(workspace.files, workbench));
|
|
1482
1491
|
}, children: "\u653E\u5F03\u672C\u5730\u8349\u7A3F" })
|
|
1483
1492
|
] }) : previewable && editorMode === "preview" ? markdown ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(MarkdownPreview, { content: buffer.content, label: selected }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(JsonlPreview, { content: buffer.content, label: selected }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1484
1493
|
"textarea",
|