@oh-story/dsh 0.1.16 → 0.1.17
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 +11 -11
- package/lib/client.js +26 -15
- package/lib/client.js.map +2 -2
- package/lib/drama/package.json +4 -0
- package/lib/index.js +42 -16
- package/lib/index.js.map +2 -2
- package/lib/novel-to-game/README.md +3 -3
- package/lib/novel-to-game/README_ZH.md +4 -4
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/manifest.json +25 -20
- package/lib/novel-to-game/package.json +4 -0
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +4 -0
- package/lib/novel-to-game/skills/game-build/SKILL.md +7 -1
- package/lib/novel-to-game/skills/game-build/references/baked-sprite-workflow.md +19 -0
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +4 -1
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +6 -3
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +1 -0
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +13 -2
- package/lib/oh-story/manifest.json +417 -592
- package/lib/oh-story/package.json +4 -0
- package/lib/oh-story/roles/chapter-extractor.md +4 -3
- package/lib/oh-story/roles/character-designer.md +20 -85
- package/lib/oh-story/roles/consistency-checker.md +5 -5
- package/lib/oh-story/roles/narrative-writer.md +9 -9
- package/lib/oh-story/roles/story-architect.md +19 -26
- package/lib/oh-story/roles/story-explorer.md +4 -5
- package/lib/oh-story/roles/story-researcher.md +6 -7
- package/lib/oh-story/skills/browser-cdp/SKILL.md +26 -15
- package/lib/oh-story/skills/story/SKILL.md +94 -54
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story-cover/SKILL.md +41 -220
- package/lib/oh-story/skills/story-cover/references/api-fallback.md +128 -0
- package/lib/oh-story/skills/story-cover/references/cover-styles.md +61 -95
- package/lib/oh-story/skills/story-deslop/SKILL.md +32 -27
- package/lib/oh-story/skills/story-deslop/references/agent-calls.md +4 -4
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +7 -9
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +12 -12
- package/lib/oh-story/skills/story-deslop/references/expression.md +10 -3
- package/lib/oh-story/skills/story-deslop/references/story-logic.md +1 -1
- package/lib/oh-story/skills/story-deslop/references/style-resolution.md +1 -1
- package/lib/oh-story/skills/story-import/SKILL.md +12 -11
- package/lib/oh-story/skills/story-import/references/benchmark-sync.md +50 -0
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +3 -4
- package/lib/oh-story/skills/story-import/references/deep-analysis.md +2 -3
- package/lib/oh-story/skills/story-import/references/import-report.md +5 -4
- package/lib/oh-story/skills/story-import/references/import-special-cases.md +6 -16
- package/lib/oh-story/skills/story-import/references/import-tracking.md +2 -2
- package/lib/oh-story/skills/story-import/references/length-routing.md +1 -43
- package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +8 -8
- package/lib/oh-story/skills/story-import/references/outline-reverse.md +2 -2
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +113 -125
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +77 -88
- package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +36 -59
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +5 -1
- package/lib/oh-story/skills/story-import/scripts/outline_view.py +286 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +38 -75
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +21 -23
- package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +8 -17
- package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +18 -5
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +8 -14
- package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +26 -27
- package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +74 -162
- package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +124 -309
- package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +49 -166
- package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +12 -15
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +110 -34
- package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +12 -2
- package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +3 -1
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +5 -1
- package/lib/oh-story/skills/story-long-scan/SKILL.md +49 -72
- package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +47 -167
- package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +23 -8
- package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +24 -22
- package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +25 -13
- package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +41 -27
- package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +24 -16
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +31 -33
- package/lib/oh-story/skills/story-long-write/SKILL.md +5 -5
- package/lib/oh-story/skills/story-long-write/references/agent-calls.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +51 -24
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +7 -9
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/character-basics.md +57 -95
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +119 -269
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +8 -8
- package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +7 -7
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +38 -298
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +12 -53
- package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +39 -85
- package/lib/oh-story/skills/story-long-write/references/genre-readers.md +97 -163
- package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +39 -119
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +39 -91
- package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +81 -310
- package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +115 -326
- package/lib/oh-story/skills/story-long-write/references/long-reversal.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-suspense.md +8 -8
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +38 -334
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +128 -281
- package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +58 -499
- package/lib/oh-story/skills/story-long-write/references/project-files.md +10 -14
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +29 -82
- package/lib/oh-story/skills/story-long-write/references/revision-diagnosis.md +31 -0
- package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +12 -19
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +3 -171
- package/lib/oh-story/skills/story-long-write/references/style-resolution.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +8 -6
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +47 -47
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +7 -7
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +4 -9
- package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +72 -98
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +59 -115
- package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +38 -18
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +23 -11
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +5 -1
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +1 -1
- package/lib/oh-story/skills/story-review/SKILL.md +26 -24
- package/lib/oh-story/skills/story-review/references/agent-prompts.md +13 -9
- package/lib/oh-story/skills/story-review/references/banned-words.md +7 -9
- package/lib/oh-story/skills/story-review/references/expression.md +10 -3
- package/lib/oh-story/skills/story-review/references/quality-rubric.md +7 -7
- package/lib/oh-story/skills/story-review/references/review-tracking.md +2 -1
- package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +8 -9
- package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +9 -11
- package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +9 -8
- package/lib/oh-story/skills/story-review/references/solo.md +6 -5
- package/lib/oh-story/skills/story-review/references/story-logic.md +1 -1
- package/lib/oh-story/skills/story-review/references/style-resolution.md +1 -1
- package/lib/oh-story/skills/story-setup/SKILL.md +24 -31
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +12 -13
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +7 -9
- package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +57 -95
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +119 -269
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +12 -12
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +8 -8
- package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +7 -7
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +38 -298
- package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +10 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/female-audience-writing.md +141 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +96 -161
- package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +39 -119
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +13 -54
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +81 -310
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +115 -326
- package/lib/oh-story/skills/story-setup/references/agent-references/long-reversal.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +8 -8
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +38 -334
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +128 -281
- package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +58 -499
- package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +63 -171
- package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +11 -63
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +40 -50
- package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +14 -39
- package/lib/oh-story/skills/story-setup/references/agent-references/story-logic.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +12 -19
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +3 -171
- package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +59 -115
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +41 -90
- package/lib/oh-story/skills/story-short-analyze/references/analysis-characters.md +66 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +21 -20
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +4 -3
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +5 -5
- package/lib/oh-story/skills/story-short-analyze/references/analysis-submission.md +52 -0
- package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +23 -73
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +25 -26
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +20 -38
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +9 -158
- package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +39 -26
- package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +42 -71
- package/lib/oh-story/skills/story-short-scan/SKILL.md +52 -62
- package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +16 -12
- package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +10 -4
- package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +15 -6
- package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +34 -72
- package/lib/oh-story/skills/story-short-scan/references/topic-match.md +33 -13
- package/lib/oh-story/skills/story-short-write/SKILL.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/agent-calls.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +7 -9
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +17 -22
- package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +22 -37
- package/lib/oh-story/skills/story-short-write/references/deslop-gates.md +12 -12
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +8 -8
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +11 -63
- package/lib/oh-story/skills/story-short-write/references/expression.md +10 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +6 -6
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +8 -8
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +9 -9
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +10 -10
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +7 -7
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +6 -6
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +6 -6
- package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +12 -12
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +40 -50
- package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +63 -171
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +13 -14
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +10 -29
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/short-format.md +12 -32
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +14 -39
- package/lib/oh-story/skills/story-short-write/references/story-logic.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/style-resolution.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +29 -19
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +14 -19
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +67 -26
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +10 -11
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +50 -69
- package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +21 -16
- package/lib/types/client/file-activity.d.ts +10 -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/native-hooks.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/package.json +4 -0
- package/package.json +23 -23
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +0 -168
- package/lib/oh-story/skills/story-import/references/state-tracking.md +0 -45
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +0 -146
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +0 -270
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +0 -84
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +0 -133
- package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +0 -101
- package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +0 -92
- package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +0 -428
- package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +0 -503
- package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +0 -34
- package/lib/oh-story/skills/story-long-write/references/expression.md +0 -76
- package/lib/oh-story/skills/story-long-write/references/narrative-focus.md +0 -63
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +0 -457
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +0 -389
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +0 -272
- package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +0 -354
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +0 -710
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +0 -624
- package/lib/oh-story/skills/story-long-write/references/story-logic.md +0 -65
- package/lib/oh-story/skills/story-long-write/references/style-craft.md +0 -306
- package/lib/oh-story/skills/story-review/references/character-relations.md +0 -433
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +0 -285
- package/lib/oh-story/skills/story-review/references/plot-core-methods.md +0 -522
- package/lib/oh-story/skills/story-review/references/review-quality.md +0 -243
- package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +0 -428
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +0 -457
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +0 -389
- package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +0 -145
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +0 -433
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +0 -426
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +0 -384
- package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +0 -144
- package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +0 -238
- package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +0 -464
- package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +0 -79
- package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +0 -89
- package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +0 -54
- package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +0 -145
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +0 -116
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +0 -207
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +0 -50
package/README.md
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
`oh-story-dsh` 是基于 DeepSeek Harness(DSH)构建的社区小说、短剧、互动游戏与视频解说创作插件。以下清单对应当前源码;已发布包按各自的 manifest 固定上游提交。
|
|
8
8
|
|
|
9
|
-
- 13 个 Oh Story 0.
|
|
9
|
+
- 13 个 Oh Story 0.9.0 小说 Skills 与 7 个专业 Roles;
|
|
10
10
|
- 11 个 Drama Skills 0.9.0 短剧流程,每集按请求维护最多五份创作 Markdown(剧本、视觉设定、分镜、图片提示词、视频提示词),成片装配另写《剪辑单.md》;
|
|
11
|
-
- 7 个 NovelToGame 0.
|
|
11
|
+
- 7 个 NovelToGame 0.6.0 Skills、`game-adaptations/<project>` 产物协议与《金瓶梅 · 风月总账》ADV 可玩构建;
|
|
12
12
|
- 7 个 video-recap-skills 0.6.2 Skills(3 个用户入口)、`video-recaps/<project>` 项目约定与轻量视频预览工作台;
|
|
13
13
|
- 小说协议 hooks 与安全的 Session workspace 文件路由;
|
|
14
14
|
- 小说/短剧的文件树、编辑器、Chat 三栏工作台,以及游戏/视频的“左侧工作台 + 右侧 Chat”制作面板;
|
|
@@ -23,20 +23,20 @@
|
|
|
23
23
|
安装命令会临时提供 pnpm;只安装 Node.js 的机器也能执行。DSH 的 `plugin add` 内部需要 pnpm,单独运行 `npx @deepseek-ai/dsh ... plugin add` 不会自动补上它。
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.
|
|
27
|
-
npx -y @deepseek-ai/dsh@0.2.
|
|
26
|
+
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.1-rc.2 dsh plugin --profile web add @oh-story/dsh@0.1.17 &&
|
|
27
|
+
npx -y @deepseek-ai/dsh@0.2.1-rc.2 web
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
也可以直接安装 GitHub Release 中的预构建包:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.
|
|
34
|
-
npx -y @deepseek-ai/dsh@0.2.
|
|
33
|
+
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.1-rc.2 dsh plugin --profile web add https://github.com/zenstory-ai/oh-story-dsh/releases/download/v0.1.17/oh-story-dsh-0.1.17.tgz &&
|
|
34
|
+
npx -y @deepseek-ai/dsh@0.2.1-rc.2 web
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
保持终端运行。若浏览器未自动打开,访问终端打印的完整 `http://127.0.0.1:3080/?token=...` 链接完成首次认证。
|
|
38
38
|
|
|
39
|
-
本页默认命令固定使用 `0.2.
|
|
39
|
+
本页默认命令固定使用 npm `latest` 的 `0.2.1-rc.2`。仍在用 `0.2.0-rc.2` 时把安装、启动两条命令中的版本同时改回它;插件接受 `>=0.2.0-rc.2 <0.2.1-0` 或 `>=0.2.1-alpha.1 <0.2.2-0`,不要混装宿主版本。
|
|
40
40
|
|
|
41
41
|
需要 Node.js 24+。开始 AI 创作前需要在 DSH 的「设置 → 模型」中添加 Provider 并填入 API Key,或在启动前设置环境变量 `DEEPSEEK_API_KEY`。
|
|
42
42
|
|
|
@@ -76,7 +76,7 @@ Drama Skills 0.6.0 不支持把 v0.5 结构化项目原地升级为 creator-firs
|
|
|
76
76
|
|
|
77
77
|
0.8.1 的角色参考音频必须绑定具体角色,并通过严格的 `reference_roles`、身份与禁控校验;音频不会出现在图片参考选择器里。NovelToGame 0.5.0 的 ADV 示例不迁移旧存档,升级后清除旧站点存储并重新开始。video-recap 0.6.1 改用 QC schema 2,删除旧 QC 标志/路径;升级既有 `work/` 时可能重新生成 ASR、剪辑、TTS 与索引,不得沿用或伪造旧 PASS。0.6.2 起 dub(英译中原声复刻)必须带 `--confirm-voice-rights`,包括旧 `work/` 打印的续跑命令;没有 `MIMO_API_KEY` 时旁白评审直接退出,不再外发稿件。
|
|
78
78
|
|
|
79
|
-
Oh Story 0.
|
|
79
|
+
Oh Story 0.9.0 按写书步骤重整参考资料,书稿、设定、追踪和作者记忆不用迁移;之前导入的长篇续写前,先让 `/story-long-write` 把旧剧情单元改写成单元卡。作者习惯仍由长篇、短篇写作入口管理,独立审稿与去味只消费本次提供的偏好,检测或标注不会改正文。Drama 0.9 继续按当前需要维护 Markdown 创作文档,旧模板不再补建。
|
|
80
80
|
|
|
81
81
|
## 没看到界面时
|
|
82
82
|
|
|
@@ -90,7 +90,7 @@ Oh Story 0.8.6 的作者习惯由长篇、短篇写作入口管理,沿用已
|
|
|
90
90
|
插件装进哪个 profile,那个 profile 的每个 Session 都能发现创作 Skills,具体指令在使用时读取;工作台只在有创作项目时显示。想让原版 `web` 保持干净、只在创作时打开工作台,就装进独立 profile:
|
|
91
91
|
|
|
92
92
|
```bash
|
|
93
|
-
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.
|
|
93
|
+
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.1-rc.2 dsh plugin --profile story add @oh-story/dsh@0.1.17
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
新 profile 默认没有界面。编辑 `~/.dsh/profiles/story/package.json`,把 `dsh.profile.bundles` 改成 `["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "@oh-story/dsh"]`。
|
|
@@ -98,8 +98,8 @@ npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.0-rc.2 dsh plugin --
|
|
|
98
98
|
`@deepseek-ai/dsh-web-app` 是 DSH 自带的 Web 界面包,需要在创作插件之前加载。
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
npx -y @deepseek-ai/dsh@0.2.
|
|
102
|
-
npx -y @deepseek-ai/dsh@0.2.
|
|
101
|
+
npx -y @deepseek-ai/dsh@0.2.1-rc.2 web # 原版 DSH
|
|
102
|
+
npx -y @deepseek-ai/dsh@0.2.1-rc.2 --profile story --port 3081 # 创作工作台
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
模型、凭据、workspace 与历史会话由 DSH 统一保存,切换 profile 不会丢。安装与启动请使用同一个 dsh 版本。
|
package/lib/client.js
CHANGED
|
@@ -36,7 +36,7 @@ var WORKBENCH_LABELS = {
|
|
|
36
36
|
function workbenchLabel(mode) {
|
|
37
37
|
return WORKBENCH_LABELS[mode];
|
|
38
38
|
}
|
|
39
|
-
var STORY_DIRECTORIES = /* @__PURE__ */ new Set(["\u6B63\u6587", "\u5927\u7EB2", "\u8BBE\u5B9A", "\u8FFD\u8E2A", "\u5BF9\u6807", "\u53C2\u8003\u8D44\u6599"]), DRAMA_DIRECTORIES = /* @__PURE__ */ new Set(["\u8F93\u5165", "\u9879\u76EE\u5F00\u53D1", "\u8BBE\u5B9A\u96C6", "\u5267\u96C6", "\u4EA4\u4ED8", "\u521B\u4F5C\u8005\u51B3\u7B56", "\u5BA1\u67E5"]), GAME_DIRECTORY = "game-adaptations", VIDEO_DIRECTORY = "video-recaps", EDITABLE_EXTENSION = /\.(?:md|txt|json|jsonl|html|css|[cm]?js|tsx?|jsx)$/iu, MUTATING_CALLS = /* @__PURE__ */ new Set(["write", "edit", "str_replace_editor", "bash", "run_code", "oh_story_role"]);
|
|
39
|
+
var STORY_DIRECTORIES = /* @__PURE__ */ new Set(["\u6B63\u6587", "\u5927\u7EB2", "\u8BBE\u5B9A", "\u8FFD\u8E2A", "\u5BF9\u6807", "\u53C2\u8003\u8D44\u6599"]), DRAMA_DIRECTORIES = /* @__PURE__ */ new Set(["\u8F93\u5165", "\u9879\u76EE\u5F00\u53D1", "\u8BBE\u5B9A\u96C6", "\u5267\u96C6", "\u4EA4\u4ED8", "\u521B\u4F5C\u8005\u51B3\u7B56", "\u5BA1\u67E5"]), SHORT_STORY_FILES = /* @__PURE__ */ new Set(["\u6B63\u6587.md", "\u8BBE\u5B9A.md", "\u5C0F\u8282\u5927\u7EB2.md"]), GAME_DIRECTORY = "game-adaptations", VIDEO_DIRECTORY = "video-recaps", EDITABLE_EXTENSION = /\.(?:md|txt|json|jsonl|html|css|[cm]?js|tsx?|jsx)$/iu, MUTATING_CALLS = /* @__PURE__ */ new Set(["write", "edit", "str_replace_editor", "bash", "run_code", "oh_story_role"]);
|
|
40
40
|
function streamingAssistant(timeline) {
|
|
41
41
|
for (let turnNumber of timeline.turnOrder.toReversed()) {
|
|
42
42
|
let turn = timeline.turns.get(turnNumber);
|
|
@@ -264,19 +264,24 @@ function creativeRelativePath(path, cwd) {
|
|
|
264
264
|
let normalized = path.replaceAll("\\", "/"), root = cwd?.replaceAll("\\", "/").replace(/\/$/u, ""), insideRoot = root !== void 0 && normalized.startsWith(`${root}/`);
|
|
265
265
|
if ((normalized.startsWith("/") || /^[a-z]:\//iu.test(normalized) || normalized.startsWith("file:")) && !insideRoot) return;
|
|
266
266
|
let relative = insideRoot ? normalized.slice(root.length + 1) : normalized.replace(/^\.\//u, ""), [directory2] = relative.split("/", 1);
|
|
267
|
-
if (!(!(directory2 !== void 0 && (STORY_DIRECTORIES.has(directory2) || DRAMA_DIRECTORIES.has(directory2) || directory2 === GAME_DIRECTORY || directory2 === VIDEO_DIRECTORY)) && relative !== "short-drama.json" || !EDITABLE_EXTENSION.test(relative)) && !relative.split("/").some((part) => part === ".." || part === "." || part === ""))
|
|
267
|
+
if (!(!(directory2 !== void 0 && (STORY_DIRECTORIES.has(directory2) || DRAMA_DIRECTORIES.has(directory2) || directory2 === GAME_DIRECTORY || directory2 === VIDEO_DIRECTORY)) && relative !== "short-drama.json" && !SHORT_STORY_FILES.has(relative) || !EDITABLE_EXTENSION.test(relative)) && !relative.split("/").some((part) => part === ".." || part === "." || part === ""))
|
|
268
268
|
return relative;
|
|
269
269
|
}
|
|
270
270
|
function workbenchModeForPath(path) {
|
|
271
271
|
if (path === "short-drama.json") return "drama";
|
|
272
|
+
if (path !== void 0 && SHORT_STORY_FILES.has(path)) return "story";
|
|
272
273
|
let directory2 = path?.split("/", 1)[0];
|
|
273
274
|
if (directory2 !== void 0 && STORY_DIRECTORIES.has(directory2)) return "story";
|
|
274
275
|
if (directory2 !== void 0 && DRAMA_DIRECTORIES.has(directory2)) return "drama";
|
|
275
276
|
if (directory2 === GAME_DIRECTORY) return "game";
|
|
276
277
|
if (directory2 === VIDEO_DIRECTORY) return "video";
|
|
277
278
|
}
|
|
279
|
+
function initialWorkbenchMode(current, files, games, videos) {
|
|
280
|
+
let hasWork = (mode) => mode === "game" ? games.some((game) => game.source === "workspace") : mode === "video" ? videos.length > 0 : files.some((file) => workbenchModeForPath(file.path) === mode);
|
|
281
|
+
return hasWork(current) ? current : ["story", "drama", "game", "video"].find(hasWork) ?? current;
|
|
282
|
+
}
|
|
278
283
|
function preferredWorkbenchFile(files, mode) {
|
|
279
|
-
let matching = files.filter((file) => workbenchModeForPath(file.path) === mode), preferences = mode === "story" ? [/^正文\/.*\.md$/u, /^大纲\/.*\.md$/u, /\.md$/u] : mode === "drama" ? [
|
|
284
|
+
let matching = files.filter((file) => workbenchModeForPath(file.path) === mode), preferences = mode === "story" ? [/^正文\/.*\.md$/u, /^正文\.md$/u, /^小节大纲\.md$/u, /^大纲\/.*\.md$/u, /\.md$/u] : mode === "drama" ? [
|
|
280
285
|
/^剧集\/EP0*1\/剧本\.md$/u,
|
|
281
286
|
/^剧集\/.*\/剧本\.md$/u,
|
|
282
287
|
/^剧集\/EP0*1\/screenplay\.md$/iu,
|
|
@@ -3532,13 +3537,13 @@ var WorkspaceRequestError = class extends Error {
|
|
|
3532
3537
|
}
|
|
3533
3538
|
status;
|
|
3534
3539
|
}, GROUP_ORDER = {
|
|
3535
|
-
story: ["\u6B63\u6587", "\u5927\u7EB2", "\u8BBE\u5B9A", "\u8FFD\u8E2A", "\u5BF9\u6807", "\u53C2\u8003\u8D44\u6599"],
|
|
3540
|
+
story: ["\u77ED\u7BC7", "\u6B63\u6587", "\u5927\u7EB2", "\u8BBE\u5B9A", "\u8FFD\u8E2A", "\u5BF9\u6807", "\u53C2\u8003\u8D44\u6599"],
|
|
3536
3541
|
drama: ["\u9879\u76EE", "\u8F93\u5165", "\u9879\u76EE\u5F00\u53D1", "\u8BBE\u5B9A\u96C6", "\u5267\u96C6", "\u5BA1\u67E5", "\u521B\u4F5C\u8005\u51B3\u7B56", "\u4EA4\u4ED8"],
|
|
3537
3542
|
game: ["game-adaptations"],
|
|
3538
3543
|
video: ["video-recaps"]
|
|
3539
3544
|
}, WORKBENCH_MODES = ["story", "drama", "game", "video"], EDITOR_MODES = ["preview", "source", "production"];
|
|
3540
3545
|
function groupForPath(path) {
|
|
3541
|
-
return path === "short-drama.json" ? "\u9879\u76EE" : path.split("/", 1)[0] ?? "\u5176\u4ED6";
|
|
3546
|
+
return path === "short-drama.json" ? "\u9879\u76EE" : SHORT_STORY_FILES.has(path) ? "\u77ED\u7BC7" : path.split("/", 1)[0] ?? "\u5176\u4ED6";
|
|
3542
3547
|
}
|
|
3543
3548
|
async function json(response) {
|
|
3544
3549
|
let value = await response.json();
|
|
@@ -3926,7 +3931,14 @@ function CreativeWorkbench({
|
|
|
3926
3931
|
episodeDirectory !== void 0 && actions.setProductionCanvas((current) => ({ ...current, [episodeDirectory]: canvas }));
|
|
3927
3932
|
}, [actions, episodeDirectory]), setProductionViewport = (0, import_react4.useCallback)((viewport) => {
|
|
3928
3933
|
episodeDirectory !== void 0 && actions.setProductionViewport((current) => ({ ...current, [episodeDirectory]: viewport }));
|
|
3929
|
-
}, [actions, episodeDirectory]), editorMode = useStore((memory) => memory.editorMode), setEditorMode = actions.setEditorMode, modeSelection = (0, import_react4.useRef)(selected), textareaRef = (0, import_react4.useRef)(null), editorPositions = (0, import_react4.useRef)(/* @__PURE__ */ new Map()), editorReady = buffer !== void 0 && buffer.missing !== !0, workspaceKind = workbench === "game" || workbench === "video" ? void 0 : workbench,
|
|
3934
|
+
}, [actions, episodeDirectory]), editorMode = useStore((memory) => memory.editorMode), setEditorMode = actions.setEditorMode, modeSelection = (0, import_react4.useRef)(selected), textareaRef = (0, import_react4.useRef)(null), editorPositions = (0, import_react4.useRef)(/* @__PURE__ */ new Map()), editorReady = buffer !== void 0 && buffer.missing !== !0, workspaceKind = workbench === "game" || workbench === "video" ? void 0 : workbench, initialWorkbenchFor = (0, import_react4.useRef)(void 0);
|
|
3935
|
+
(0, import_react4.useEffect)(() => {
|
|
3936
|
+
if (workspace === void 0 || initialWorkbenchFor.current === workspace.cwd) return;
|
|
3937
|
+
initialWorkbenchFor.current = workspace.cwd;
|
|
3938
|
+
let next = initialWorkbenchMode(workbench, workspace.files, workspace.games, workspace.videos);
|
|
3939
|
+
next !== workbench && setWorkbench(next);
|
|
3940
|
+
}, [setWorkbench, workbench, workspace]);
|
|
3941
|
+
let gameBuilding = normalizedActivities.some(({ path }) => path.startsWith("game-adaptations/")), videoBuilding = normalizedActivities.some(({ path }) => path.startsWith("video-recaps/"));
|
|
3930
3942
|
(0, import_react4.useEffect)(() => {
|
|
3931
3943
|
buffersRef.current = buffers;
|
|
3932
3944
|
}, [buffers]);
|
|
@@ -4705,22 +4717,21 @@ function WelcomeGuide() {
|
|
|
4705
4717
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("section", { className: "oh-story-welcome", "aria-label": "Oh Story \u4F7F\u7528\u5F15\u5BFC", children: [
|
|
4706
4718
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("style", { children: plugin_default }),
|
|
4707
4719
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h2", { children: "Oh Story \u5DF2\u52A0\u8F7D" }),
|
|
4708
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { children: "\u4F5C\u54C1\u76EE\u5F55\u4E2D\u6709\u521B\u4F5C\u6587\u4EF6\u65F6\uFF0C\u5C0F\u8BF4\u3001\u77ED\u5267\u3001\u6E38\u620F\u3001\u89C6\u9891\u5DE5\u4F5C\u53F0\u4F1A\u81EA\u52A8\u663E\u793A\u3002" }),
|
|
4709
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("ol", { children: [
|
|
4710
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("li", { children: "\u70B9\u51FB\u5DE6\u4FA7\u300C\u5DE5\u4F5C\u533A / Workspaces\u300D\u65C1\u7684\u300C\u6DFB\u52A0\u5DE5\u4F5C\u533A / Add workspace\u300D\uFF0C\u9009\u62E9\u5B58\u653E\u4F5C\u54C1\u7684\u6587\u4EF6\u5939\u3002" }),
|
|
4711
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("li", { children: "\u5728\u4E0B\u65B9\u300C\u9009\u62E9\u5DE5\u4F5C\u533A / Choose workspace\u300D\u4E2D\u9009\u4E2D\u8BE5\u76EE\u5F55\uFF0C\u6216\u6253\u5F00\u5DF2\u6709\u4F1A\u8BDD\u3002" }),
|
|
4712
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("li", { children: "\u7A7A\u76EE\u5F55\uFF08\u5305\u62EC DSH \u81EA\u52A8\u5EFA\u7ACB\u7684\u300C\u9ED8\u8BA4\u5DE5\u4F5C\u533A / Default workspace\u300D\uFF09\u5148\u5728 Chat \u4E2D\u5F00\u59CB\u521B\u4F5C\uFF0C\u751F\u6210\u7B2C\u4E00\u4E2A\u521B\u4F5C\u6587\u4EF6\u540E\uFF0C\u5DE5\u4F5C\u53F0\u4F1A\u81EA\u52A8\u51FA\u73B0\u3002" })
|
|
4713
|
-
] }),
|
|
4714
4720
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("p", { children: [
|
|
4715
|
-
"\
|
|
4721
|
+
"\u76F4\u63A5\u5728\u4E0B\u65B9\u8F93\u5165\u6846\u8BF4\u4F60\u60F3\u5199\u4EC0\u4E48\uFF0C\u6BD4\u5982\u300C\u5199\u4E00\u7BC7 8000 \u5B57\u7684\u91CD\u751F\u590D\u4EC7\u77ED\u7BC7\u300D\uFF0C\u6216\u8F93\u5165 ",
|
|
4716
4722
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("code", { children: "/story" }),
|
|
4717
4723
|
"\u3001",
|
|
4718
4724
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("code", { children: "/short-drama" }),
|
|
4719
4725
|
"\u3001",
|
|
4720
4726
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("code", { children: "/novel-to-game quick" }),
|
|
4721
|
-
"
|
|
4727
|
+
"\u3001",
|
|
4722
4728
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("code", { children: "/video-recap" }),
|
|
4723
|
-
"\u3002"
|
|
4729
|
+
"\u3002\u5199\u51FA\u7B2C\u4E00\u4E2A\u521B\u4F5C\u6587\u4EF6\u540E\uFF0C\u5C0F\u8BF4\u3001\u77ED\u5267\u3001\u6E38\u620F\u3001\u89C6\u9891\u5DE5\u4F5C\u53F0\u4F1A\u81EA\u52A8\u51FA\u73B0\u3002"
|
|
4730
|
+
] }),
|
|
4731
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("ol", { children: [
|
|
4732
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("li", { children: "\u4E0D\u9009\u6587\u4EF6\u5939\u4E5F\u80FD\u5F00\u59CB\uFF1A\u4F5C\u54C1\u4F1A\u5199\u8FDB DSH \u81EA\u52A8\u5EFA\u7ACB\u7684\u300C\u9ED8\u8BA4\u5DE5\u4F5C\u533A / Default workspace\u300D\u3002" }),
|
|
4733
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("li", { children: "\u60F3\u653E\u8FDB\u81EA\u5DF1\u7684\u4F5C\u54C1\u6587\u4EF6\u5939\uFF1A\u70B9\u51FB\u5DE6\u4FA7\u300C\u5DE5\u4F5C\u533A / Workspaces\u300D\u65C1\u7684\u300C\u6DFB\u52A0\u5DE5\u4F5C\u533A / Add workspace\u300D\uFF0C\u5728\u7CFB\u7EDF\u5F39\u51FA\u7684\u6587\u4EF6\u5939\u7A97\u53E3\u91CC\u9009\u62E9\uFF0C\u518D\u5728\u4E0B\u65B9\u300C\u9009\u62E9\u5DE5\u4F5C\u533A / Choose workspace\u300D\u4E2D\u9009\u4E2D\u5B83\u3002" }),
|
|
4734
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("li", { children: "\u8F93\u5165\u6846\u53F3\u4E0B\u89D2\u663E\u793A\u6A21\u578B\u540D\u5C31\u8BF4\u660E\u5DF2\u914D\u7F6E\u597D\uFF1B\u6CA1\u6709\u6A21\u578B\u65F6\uFF0C\u5728\u300C\u8BBE\u7F6E \u2192 \u6A21\u578B\u300D\u586B\u5165 API Key\u3002\u53EA\u67E5\u770B\u5DF2\u6709\u4F5C\u54C1\u65E0\u9700 API Key\u3002" })
|
|
4724
4735
|
] })
|
|
4725
4736
|
] });
|
|
4726
4737
|
}
|