@oh-story/dsh 0.1.16 → 0.1.18
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 +13 -13
- package/lib/client.js +173 -111
- package/lib/client.js.map +3 -3
- package/lib/drama/package.json +4 -0
- package/lib/index.js +58 -28
- 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/game-preview-state.d.ts +34 -0
- package/lib/types/client/game-preview-state.d.ts.map +1 -0
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/video-studio.d.ts +24 -0
- package/lib/types/client/video-studio.d.ts.map +1 -1
- package/lib/types/host-python.d.ts +10 -3
- package/lib/types/host-python.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 +6 -0
- 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
|
@@ -81,7 +81,7 @@ function verify(projectDir) {
|
|
|
81
81
|
'设定.md',
|
|
82
82
|
settingsRead.ok ? '文件存在且非空' : (settingsRead.error || '文件为空'),
|
|
83
83
|
'项目目录下存在非空的 设定.md',
|
|
84
|
-
['references/
|
|
84
|
+
['references/workflow-design.md'],
|
|
85
85
|
'只补建或补全 设定.md,不改动已通过的 小节大纲.md。'
|
|
86
86
|
))
|
|
87
87
|
checks.push(makeCheck(
|
|
@@ -90,7 +90,7 @@ function verify(projectDir) {
|
|
|
90
90
|
'小节大纲.md',
|
|
91
91
|
outlineRead.ok ? '文件存在且非空' : (outlineRead.error || '文件为空'),
|
|
92
92
|
'项目目录下存在非空的 小节大纲.md',
|
|
93
|
-
['references/
|
|
93
|
+
['references/workflow-design.md'],
|
|
94
94
|
'只补建或补全 小节大纲.md,不改动已通过的 设定.md。'
|
|
95
95
|
))
|
|
96
96
|
|
|
@@ -99,13 +99,13 @@ function verify(projectDir) {
|
|
|
99
99
|
const settings = settingsRead.text
|
|
100
100
|
const outline = outlineRead.text
|
|
101
101
|
|
|
102
|
-
const platformMatch = settings.match(/目标平台\s*[::]\s*(知乎(
|
|
102
|
+
const platformMatch = settings.match(/目标平台\s*[::]\s*(知乎(?:盐言|盐选)?|盐[言选]|七猫(?:短篇)?|黑岩|红果|小程序|点众|番茄(?:短篇)?|未定)/)
|
|
103
103
|
checks.push(makeCheck(
|
|
104
104
|
'phase2.platform-declared',
|
|
105
105
|
Boolean(platformMatch),
|
|
106
106
|
'设定.md',
|
|
107
107
|
platformMatch ? `目标平台:${platformMatch[1]}` : '未找到可识别的目标平台字段',
|
|
108
|
-
'
|
|
108
|
+
'写明“目标平台:知乎盐言 / 番茄 / 七猫 / 黑岩 / 红果 / 小程序”之一;作者没定平台写“未定”',
|
|
109
109
|
['references/submission-craft.md'],
|
|
110
110
|
'只在 设定.md 的基本信息或 Phase 2 设计校验区补目标平台。'
|
|
111
111
|
))
|
|
@@ -125,7 +125,7 @@ function verify(projectDir) {
|
|
|
125
125
|
'设定.md',
|
|
126
126
|
genreEvidence,
|
|
127
127
|
'写明一个真实存在的 references/genre-styles/{题材}.md;冷门题材写 references/genre-writing-formulas.md',
|
|
128
|
-
['references/
|
|
128
|
+
['references/workflow-design.md', 'references/short-craft.md'],
|
|
129
129
|
'只补题材参考路径与从该参考选出的 2-3 个核心招式,不重写故事框架。'
|
|
130
130
|
))
|
|
131
131
|
|
|
@@ -139,7 +139,7 @@ function verify(projectDir) {
|
|
|
139
139
|
'设定.md',
|
|
140
140
|
moves.length ? `识别到 ${moves.length} 个核心招式` : '未找到核心招式字段',
|
|
141
141
|
'“核心招式:招式一;招式二[;招式三]”,共 2-3 个',
|
|
142
|
-
['references/
|
|
142
|
+
['references/workflow-design.md'],
|
|
143
143
|
'只补或收敛核心招式字段到 2-3 个,并保持已选题材参考不变。'
|
|
144
144
|
))
|
|
145
145
|
|
|
@@ -168,7 +168,7 @@ function verify(projectDir) {
|
|
|
168
168
|
'设定.md',
|
|
169
169
|
placeholderLines.length ? `仍是模板占位符的行:${placeholderLines.map((entry) => entry.line).join('、')}` : '契约字段没有未填写的 {} 占位符',
|
|
170
170
|
'Phase 2 契约字段写实际设计内容,不保留 {} 模板占位符',
|
|
171
|
-
['references/
|
|
171
|
+
['references/workflow-design.md'],
|
|
172
172
|
'只把报告行的占位符替换成本篇的实际设计,不重写其他字段。'
|
|
173
173
|
))
|
|
174
174
|
|
|
@@ -196,7 +196,7 @@ function verify(projectDir) {
|
|
|
196
196
|
? `表头 ${headerCells.length} 列:${headerCells.join(' | ')}${legacyHeader ? '(兼容旧项目;新建项目使用现行列名)' : ''}`
|
|
197
197
|
: '未找到以“结构段/五段功能”开头的 Markdown 表格',
|
|
198
198
|
`使用固定 12 列表头:${OUTLINE_HEADERS.join(' | ')}`,
|
|
199
|
-
['references/
|
|
199
|
+
['references/workflow-design.md'],
|
|
200
200
|
'只修表头和错位单元格,不改动各节已经成立的剧情内容。'
|
|
201
201
|
))
|
|
202
202
|
|
|
@@ -219,7 +219,7 @@ function verify(projectDir) {
|
|
|
219
219
|
'小节大纲.md',
|
|
220
220
|
rows.length === 0 ? '固定表头下没有数据行' : (rowShapeFailures.length ? `列数错误行:${rowShapeFailures.map((row) => row.line).join('、')}` : `识别到 ${rows.length} 节,均为 12 列`),
|
|
221
221
|
'固定表头下至少一行数据,且每节恰好 12 列',
|
|
222
|
-
['references/
|
|
222
|
+
['references/workflow-design.md'],
|
|
223
223
|
'只补缺失节或修复报告行的列错位。'
|
|
224
224
|
))
|
|
225
225
|
|
|
@@ -241,12 +241,17 @@ function verify(projectDir) {
|
|
|
241
241
|
? `所有 ${rows.length} 节均有至少一个带功能标签的真实推进`
|
|
242
242
|
: `已检查 ${progressionRows.length}/${rows.length} 行;其余行由 phase2.outline-data-rows 报告列错位`),
|
|
243
243
|
'每节至少一个真实推进;有先后关系时以 -> 连接,每个含 {对话/冲突/伏笔/回忆/发现/递进} 标签之一,不设固定数量',
|
|
244
|
-
['references/
|
|
244
|
+
['references/workflow-design.md', 'references/short-craft.md'],
|
|
245
245
|
'只修报告行的“情节推进”单元格,不重写其他列或其他节;不要为数量补事件。'
|
|
246
246
|
))
|
|
247
247
|
|
|
248
|
-
|
|
249
|
-
|
|
248
|
+
// 「约 1-1.3 万」「1.1万字」这类写法先换成整数再解析。
|
|
249
|
+
const targetLine = (settings.match(/目标字数\s*[::][^\n]*/) || [''])[0]
|
|
250
|
+
.replace(/(\d+(?:\.\d+)?)\s*((?:[-–—~~]|到|至)\s*)(\d+(?:\.\d+)?)\s*万/g,
|
|
251
|
+
(_, a, sep, b) => `${Math.round(Number(a) * 10000)}${sep}${Math.round(Number(b) * 10000)}`)
|
|
252
|
+
.replace(/(\d+(?:\.\d+)?)\s*万/g, (_, a) => String(Math.round(Number(a) * 10000)))
|
|
253
|
+
const targetMatch = targetLine.match(/目标字数\s*[::]\s*(?:约\s*)?([\d,,]+)\s*(?:字)?\s*(?:[-–—~~]|到|至)\s*([\d,,]+)\s*字?/) ||
|
|
254
|
+
targetLine.match(/目标字数\s*[::]\s*(?:约\s*)?([\d,,]+)\s*字?/)
|
|
250
255
|
const toNumber = (value) => Number(String(value).replace(/[,,]/g, ''))
|
|
251
256
|
const targetLow = targetMatch ? toNumber(targetMatch[1]) : null
|
|
252
257
|
const targetHigh = targetMatch && targetMatch[2] !== undefined ? toNumber(targetMatch[2]) : targetLow
|
|
@@ -269,8 +274,8 @@ function verify(projectDir) {
|
|
|
269
274
|
targetOk,
|
|
270
275
|
'设定.md、小节大纲.md',
|
|
271
276
|
`设定目标:${statedTarget === null ? '未识别' : (isRange ? `${targetLow}-${targetHigh}` : statedTarget)};大纲合计:${targetSum === null ? '有非数字目标字数' : targetSum}`,
|
|
272
|
-
'设定.md 的目标字数为 1000-200000
|
|
273
|
-
['references/
|
|
277
|
+
'设定.md 的目标字数为 1000-200000 的正整数或区间(用户明确范围优先,未指定时用所选平台的投稿区间,未定平台用 8000-12000);大纲每行目标字数可解析,写区间时合计落在区间内,写单值时误差不超过 5%',
|
|
278
|
+
['references/workflow-design.md', 'references/submission-craft.md'],
|
|
274
279
|
'只修目标字数字段或各节“目标字数”单元格,使合计匹配;不要用增删剧情绕过数字错误。'
|
|
275
280
|
))
|
|
276
281
|
|
|
@@ -297,7 +302,7 @@ function verify(projectDir) {
|
|
|
297
302
|
'设定.md',
|
|
298
303
|
reversalEvidence,
|
|
299
304
|
'有反转时写明揭穿节号、全文总节数和计算百分比;总节数须与大纲一致,计算误差不超过 0.6%。无反转时写明“反转类型:无反转”和带原因的“反转位置:不适用(…)”',
|
|
300
|
-
['references/
|
|
305
|
+
['references/workflow-design.md', 'references/short-reversal.md'],
|
|
301
306
|
'只修正反转位置计算或对应节次;位置质量按 short-reversal.md 的误判决策与揭示后果功能链判断,不为跨过固定百分比而搬节。'
|
|
302
307
|
))
|
|
303
308
|
|
|
@@ -320,7 +325,7 @@ function verify(projectDir) {
|
|
|
320
325
|
'设定.md、小节大纲.md',
|
|
321
326
|
paywallEvidence,
|
|
322
327
|
'设定.md 写“付费点:第 X 节末”,且小节大纲.md 第 X 行数据的“结尾承接/钩子”单元格只标一次“付费点”',
|
|
323
|
-
['references/submission-craft.md', 'references/
|
|
328
|
+
['references/submission-craft.md', 'references/workflow-design.md'],
|
|
324
329
|
'只在缺失的文件补同一个付费断点,并确保它位于对应节末的钩子单元格。'
|
|
325
330
|
))
|
|
326
331
|
|
|
@@ -21,6 +21,8 @@ export declare function workbenchLabel(mode: WorkbenchMode): string;
|
|
|
21
21
|
export interface WorkspaceFilePath {
|
|
22
22
|
readonly path: string;
|
|
23
23
|
}
|
|
24
|
+
/** Oh Story short fiction: one book as three files at the workspace root. */
|
|
25
|
+
export declare const SHORT_STORY_FILES: ReadonlySet<string>;
|
|
24
26
|
/** Read the latest running Assistant step, including tool-only steps hidden from the Chat list. */
|
|
25
27
|
export declare function streamingAssistant(timeline: ConversationTimelineSnapshot): PartialAssistant | null;
|
|
26
28
|
/** Read a JSON string even while the model is still streaming its closing quote. */
|
|
@@ -52,6 +54,14 @@ export declare function openTurn(chat: ChatSnapshot): number | undefined;
|
|
|
52
54
|
/** Convert a DSH tool path to the creative-relative path accepted by the narrow route. */
|
|
53
55
|
export declare function creativeRelativePath(path: string | undefined, cwd: string | undefined): string | undefined;
|
|
54
56
|
export declare function workbenchModeForPath(path: string | undefined): WorkbenchMode | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* The workbench to show when a Session first opens a workspace: the current one when it has
|
|
59
|
+
* work, otherwise the first of 小说, 短剧, 游戏, 视频 that does. The bundled game example is
|
|
60
|
+
* not the creator's work, so it never selects the game workbench.
|
|
61
|
+
*/
|
|
62
|
+
export declare function initialWorkbenchMode(current: WorkbenchMode, files: readonly WorkspaceFilePath[], games: readonly {
|
|
63
|
+
readonly source: "workspace" | "example";
|
|
64
|
+
}[], videos: readonly unknown[]): WorkbenchMode;
|
|
55
65
|
/** Choose the first useful document when a creative workbench opens. */
|
|
56
66
|
export declare function preferredWorkbenchFile(files: readonly WorkspaceFilePath[], mode: WorkbenchMode): string | undefined;
|
|
57
67
|
/** Project one streamed mutation over its immediate predecessor. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-activity.d.ts","sourceRoot":"","sources":["../../../src/client/file-activity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,KAAK,EACV,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EAEhB,MAAM,gDAAgD,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,oBAAoB,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AASjE,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE1D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"file-activity.d.ts","sourceRoot":"","sources":["../../../src/client/file-activity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** What the out-of-band probe learned about the build the frame is showing. */
|
|
2
|
+
export type PreviewProbeResult = "pending" | "ok" | "failed";
|
|
3
|
+
export interface GamePreviewObservation {
|
|
4
|
+
/** The iframe fired `load`. It also fires for an HTTP error page, so it never proves the build works. */
|
|
5
|
+
readonly frameLoaded: boolean;
|
|
6
|
+
readonly frameError: boolean;
|
|
7
|
+
readonly probe: PreviewProbeResult;
|
|
8
|
+
/** The Agent is writing into this project's files right now. */
|
|
9
|
+
readonly building: boolean;
|
|
10
|
+
/** A newer build exists than the one the creator accepted. */
|
|
11
|
+
readonly pending: boolean;
|
|
12
|
+
readonly isolated: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface GamePreviewStatus {
|
|
15
|
+
readonly tone: "error" | "building" | "ready" | "loading";
|
|
16
|
+
readonly label: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The status line describes the build on screen. A probe that failed while the Agent rewrote
|
|
20
|
+
* the files, or for a build that a newer one has already replaced, says nothing about what to
|
|
21
|
+
* do next, so building and a waiting new version take precedence over a failure.
|
|
22
|
+
*/
|
|
23
|
+
export declare function gamePreviewStatus(state: GamePreviewObservation): GamePreviewStatus;
|
|
24
|
+
/**
|
|
25
|
+
* The preview runs on the other loopback alias (127.0.0.1 ↔ localhost) so its storage is
|
|
26
|
+
* isolated from DSH. A `fetch` there is cross-site, and the route rightly refuses cross-site
|
|
27
|
+
* reads, so the probe asks the same route on the page's own origin, which serves the same bytes.
|
|
28
|
+
*/
|
|
29
|
+
export declare function previewUrls(path: string, version: string, revision: number, origin: string): {
|
|
30
|
+
readonly href: string;
|
|
31
|
+
readonly probeHref: string;
|
|
32
|
+
readonly isolated: boolean;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=game-preview-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-preview-state.d.ts","sourceRoot":"","sources":["../../../src/client/game-preview-state.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,IAAI,GAAG,QAAQ,CAAC;AAE7D,MAAM,WAAW,sBAAsB;IACrC,yGAAyG;IACzG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,iBAAiB,CASlF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAC5F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAQA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAoEpE,eAAO,MAAM,IAAI,aAAa,CAAC;AAC/B,eAAO,MAAM,MAAM,UAAwC,CAAC;AAE5D,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,OAAO;QACf,oBAAoB,EAAE;YAAE,IAAI,EAAE,QAAQ,CAAC;YAAC,KAAK,EAAE,SAAS,CAAA;SAAE,CAAC;KAC5D;CACF;AA+2DD,iFAAiF;AACjF,wBAAgB,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAsClD;;;;;;AAED,wBAAuC"}
|
|
@@ -24,6 +24,30 @@ export interface VideoProject {
|
|
|
24
24
|
readonly previews: readonly VideoPreviewAsset[];
|
|
25
25
|
readonly artifacts: readonly VideoArtifactSummary[];
|
|
26
26
|
}
|
|
27
|
+
export interface VideoPreflight {
|
|
28
|
+
readonly python: {
|
|
29
|
+
readonly ok: boolean;
|
|
30
|
+
readonly version?: string;
|
|
31
|
+
readonly minimum: string;
|
|
32
|
+
};
|
|
33
|
+
readonly ffmpeg: {
|
|
34
|
+
readonly ok: boolean;
|
|
35
|
+
readonly subtitles: boolean;
|
|
36
|
+
};
|
|
37
|
+
readonly ffprobe: {
|
|
38
|
+
readonly ok: boolean;
|
|
39
|
+
};
|
|
40
|
+
readonly credentials: {
|
|
41
|
+
readonly mimo: boolean;
|
|
42
|
+
readonly fish: boolean;
|
|
43
|
+
readonly indexTts: boolean;
|
|
44
|
+
readonly ttsProvider: string;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** The host-process readiness rows; values never leave the process, only whether each is set. */
|
|
48
|
+
export declare function VideoEnvironmentReport({ preflight }: {
|
|
49
|
+
readonly preflight: VideoPreflight;
|
|
50
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
27
51
|
export declare function VideoStudio({ sessionId, projects, running, projectId, tab, hidden, workbenches, paneId, labelledBy, onProject, onTab, onWorkbench, onCollapse }: {
|
|
28
52
|
readonly sessionId: string;
|
|
29
53
|
readonly projects: readonly VideoProject[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-studio.d.ts","sourceRoot":"","sources":["../../../src/client/video-studio.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;CACxE;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACrD;
|
|
1
|
+
{"version":3,"file":"video-studio.d.ts","sourceRoot":"","sources":["../../../src/client/video-studio.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
export interface PythonProbe {
|
|
2
2
|
readonly ok: boolean;
|
|
3
3
|
readonly version?: string | undefined;
|
|
4
|
+
readonly minimum: string;
|
|
4
5
|
}
|
|
6
|
+
/** A Python version floor as `[major, minor]`. */
|
|
7
|
+
export type PythonFloor = readonly [major: number, minor: number];
|
|
8
|
+
/** Every bundled Drama script declares `MINIMUM_PYTHON = (3, 9)`. */
|
|
9
|
+
export declare const DRAMA_PYTHON: PythonFloor;
|
|
10
|
+
/** video-recap-skills documents Python 3.10 or newer. */
|
|
11
|
+
export declare const VIDEO_PYTHON: PythonFloor;
|
|
5
12
|
export declare function commandOutput(command: string, args: readonly string[]): Promise<string | undefined>;
|
|
6
|
-
/**
|
|
7
|
-
export declare function pythonVersion(value: string | undefined): PythonProbe;
|
|
13
|
+
/** Each upstream Skill set has its own floor, so the caller names the one it runs. */
|
|
14
|
+
export declare function pythonVersion(value: string | undefined, floor: PythonFloor): PythonProbe;
|
|
8
15
|
/**
|
|
9
16
|
* The interpreter the host will run upstream scripts with. The first command
|
|
10
17
|
* that meets the version floor wins; an interpreter that answers but is too old
|
|
@@ -12,7 +19,7 @@ export declare function pythonVersion(value: string | undefined): PythonProbe;
|
|
|
12
19
|
* `python` at 3.12. The command is written into the adapter config's argv, so
|
|
13
20
|
* this is the same choice everywhere the plugin starts Python.
|
|
14
21
|
*/
|
|
15
|
-
export declare function hostPython(probe?: (command: string, args: readonly string[]) => Promise<string | undefined>): Promise<{
|
|
22
|
+
export declare function hostPython(floor: PythonFloor, probe?: (command: string, args: readonly string[]) => Promise<string | undefined>): Promise<{
|
|
16
23
|
readonly command: string;
|
|
17
24
|
readonly probe: PythonProbe;
|
|
18
25
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-python.d.ts","sourceRoot":"","sources":["../../src/host-python.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAAG,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;
|
|
1
|
+
{"version":3,"file":"host-python.d.ts","sourceRoot":"","sources":["../../src/host-python.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAAG,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAEtH,kDAAkD;AAClD,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAClE,qEAAqE;AACrE,eAAO,MAAM,YAAY,EAAE,WAAoB,CAAC;AAChD,yDAAyD;AACzD,eAAO,MAAM,YAAY,EAAE,WAAqB,CAAC;AAEjD,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKzG;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAOxF;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,KAAK,GAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAiB,GAC/F,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC,CAQpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-hooks.d.ts","sourceRoot":"","sources":["../../src/native-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElG,OAAO,KAAK,EAAoB,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG/F,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,gBAAgB;QACxB,kFAAkF;QAClF,qBAAqB,EAAE;YAAE,IAAI,EAAE,qBAAqB,CAAA;SAAE,GAAG,aAAa,CAAC;KACxE;CACF;AAID,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAgBnH;AAED,KAAK,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AA8D9H;;;;;GAKG;AACH,eAAO,MAAM,aAAa,sCAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"native-hooks.d.ts","sourceRoot":"","sources":["../../src/native-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElG,OAAO,KAAK,EAAoB,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG/F,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,gBAAgB;QACxB,kFAAkF;QAClF,qBAAqB,EAAE;YAAE,IAAI,EAAE,qBAAqB,CAAA;SAAE,GAAG,aAAa,CAAC;KACxE;CACF;AAID,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAgBnH;AAED,KAAK,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AA8D9H;;;;;GAKG;AACH,eAAO,MAAM,aAAa,sCAAuB,CAAC;AAsBlD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,eAAe,EACnB,QAAQ,EAAE,aAAa,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB7B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,GACnC,OAAO,CAAC,eAAe,CAAC,CAQ1B;AAuBD;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,eAAe,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyB7B;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,GACnC,OAAO,CAAC,eAAe,CAAC,CAU1B;AAED,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,wBAA6B,GAAG,MAAM,CAclG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6B3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../../src/skill-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../../src/skill-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AA2OhC,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAuBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAa7D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAKhD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAK9C;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAKpD;AAuDD,wBAAgB,0BAA0B,CAAC,SAAS,SAA4B,GAAG,aAAa,CAE/F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,SAA0B,GAAG,MAAM,CAM/G;AAED,wBAAgB,wBAAwB,CAAC,SAAS,SAA0B,GAAG,aAAa,CAE3F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,SAAgC,GAAG,aAAa,CAEvG;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAKnD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,SAA+B,GAAG,aAAa,CAErG"}
|
|
@@ -15,6 +15,12 @@ export declare function parseByteRange(value: string | undefined, size: number):
|
|
|
15
15
|
export declare function assertCreativePath(path: string, kind: "text" | "media"): void;
|
|
16
16
|
export declare function mediaMimeTypeForPath(path: string): string | undefined;
|
|
17
17
|
export declare function gameRoot(path: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* The game's name from its brief's first heading, e.g. `# PRODUCT_BRIEF — 《雪夜渡》` → `雪夜渡`.
|
|
20
|
+
* The Studio adds its own 书名号 and separators, so neither the file label nor the work's
|
|
21
|
+
* 书名号 belong in the name.
|
|
22
|
+
*/
|
|
23
|
+
export declare function gameProjectTitle(content: string | undefined, fallback: string): string;
|
|
18
24
|
/**
|
|
19
25
|
* Emitted for EVERY preview response, not just HTML. previewContentType serves .svg as
|
|
20
26
|
* image/svg+xml — an active document type — so a game that self-navigates its frame to a scripted
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-route.d.ts","sourceRoot":"","sources":["../../src/workspace-route.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-route.d.ts","sourceRoot":"","sources":["../../src/workspace-route.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAuCnD,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AA8HD,MAAM,WAAW,SAAS;IAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAE3E;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAcpG;AAwGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAW7E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErE;AAoHD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ9C;AAsED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAStF;AA0HD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBnE;AA2JD,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAM7F"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-story/dsh",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"description": "A DSH plugin for fiction, short-drama, interactive-game, and video-recap production",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
@@ -97,28 +97,28 @@
|
|
|
97
97
|
"zod": "^4.4.3"
|
|
98
98
|
},
|
|
99
99
|
"devDependencies": {
|
|
100
|
-
"@deepseek-ai/cordis": "4.0.5
|
|
101
|
-
"@deepseek-ai/dsh-agent": "0.2.1-
|
|
102
|
-
"@deepseek-ai/dsh-api-session-controller": "0.2.1-
|
|
103
|
-
"@deepseek-ai/dsh-client-store": "0.2.1-
|
|
104
|
-
"@deepseek-ai/dsh-client-ui-chat": "0.2.1-
|
|
105
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.2.1-
|
|
106
|
-
"@deepseek-ai/dsh-client-ui-layout": "0.2.1-
|
|
107
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.2.1-
|
|
108
|
-
"@deepseek-ai/dsh-client-ui-session": "0.2.1-
|
|
109
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.2.1-
|
|
110
|
-
"@deepseek-ai/dsh-client-ui-tool": "0.2.1-
|
|
111
|
-
"@deepseek-ai/dsh-fs": "0.2.1-
|
|
112
|
-
"@deepseek-ai/dsh-host-webserver": "0.2.1-
|
|
113
|
-
"@deepseek-ai/dsh-llm": "0.2.1-
|
|
114
|
-
"@deepseek-ai/dsh-session": "0.2.1-
|
|
115
|
-
"@deepseek-ai/dsh-sandbox-policy": "0.2.1-
|
|
116
|
-
"@deepseek-ai/dsh-skill": "0.2.1-
|
|
117
|
-
"@deepseek-ai/dsh-subagent": "0.2.1-
|
|
118
|
-
"@deepseek-ai/dsh-tools": "0.2.1-
|
|
119
|
-
"@deepseek-ai/dsh-typert-registry": "0.2.1-
|
|
120
|
-
"@deepseek-ai/dsh-util-values": "0.2.1-
|
|
121
|
-
"@deepseek-ai/schemastery": "3.18.5
|
|
100
|
+
"@deepseek-ai/cordis": "4.0.5",
|
|
101
|
+
"@deepseek-ai/dsh-agent": "0.2.1-rc.2",
|
|
102
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.1-rc.2",
|
|
103
|
+
"@deepseek-ai/dsh-client-store": "0.2.1-rc.2",
|
|
104
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.2.1-rc.2",
|
|
105
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.1-rc.2",
|
|
106
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.2.1-rc.2",
|
|
107
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.1-rc.2",
|
|
108
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.1-rc.2",
|
|
109
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.1-rc.2",
|
|
110
|
+
"@deepseek-ai/dsh-client-ui-tool": "0.2.1-rc.2",
|
|
111
|
+
"@deepseek-ai/dsh-fs": "0.2.1-rc.2",
|
|
112
|
+
"@deepseek-ai/dsh-host-webserver": "0.2.1-rc.2",
|
|
113
|
+
"@deepseek-ai/dsh-llm": "0.2.1-rc.2",
|
|
114
|
+
"@deepseek-ai/dsh-session": "0.2.1-rc.2",
|
|
115
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.1-rc.2",
|
|
116
|
+
"@deepseek-ai/dsh-skill": "0.2.1-rc.2",
|
|
117
|
+
"@deepseek-ai/dsh-subagent": "0.2.1-rc.2",
|
|
118
|
+
"@deepseek-ai/dsh-tools": "0.2.1-rc.2",
|
|
119
|
+
"@deepseek-ai/dsh-typert-registry": "0.2.1-rc.2",
|
|
120
|
+
"@deepseek-ai/dsh-util-values": "0.2.1-rc.2",
|
|
121
|
+
"@deepseek-ai/schemastery": "3.18.5",
|
|
122
122
|
"@types/react": "18.3.28",
|
|
123
123
|
"@types/react-dom": "18.3.7",
|
|
124
124
|
"react": "18.3.1",
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
# 正文格式与小节结构
|
|
2
|
-
|
|
3
|
-
> 本文件规定默认正文交付格式;用户或目标平台的明确要求优先。
|
|
4
|
-
>
|
|
5
|
-
> **适用范围**:段落格式(戏剧单元/镜头优先,短段为底色,长段用于完整推理、氛围和情绪链)和对话格式适用于所有体裁。小节(beat)结构仅适用于短篇;小节不设统一最低字数。长篇按 `visible_chars_v1` 测量同口径细纲 `字数目标`:内部带 ±12%,用户带 ±15%。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 章节标记
|
|
10
|
-
|
|
11
|
-
按目标平台选择,未指定时用短篇默认格式:
|
|
12
|
-
|
|
13
|
-
| 格式 | 平台适用 | 示例 |
|
|
14
|
-
|------|----------|------|
|
|
15
|
-
| `###1.` | 短篇默认 | `###1.` `###2.` `###3.` |
|
|
16
|
-
| `###第一章` | 部分平台 | `###第一章` `###第二章` |
|
|
17
|
-
| `1.`(纯数字) | 知乎 | `1.` `2.` `3.`(无 ### 前缀) |
|
|
18
|
-
|
|
19
|
-
**规则**:全文统一一种格式,不要混用。短篇推荐 `###1.` 或纯数字,简洁高效。
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 段落格式
|
|
24
|
-
|
|
25
|
-
### 核心规则:戏剧单元优先
|
|
26
|
-
|
|
27
|
-
默认交付排版是**按戏剧单元/镜头自然断段,段落紧密排列**。不要把固定字数当成强制切刀;先判断“一件事/一个推理链/一个情绪变化”是否完成。
|
|
28
|
-
|
|
29
|
-
- 一段承载一个戏剧单元:一个动作链、一个线索发现、一次视线切换、一轮心理判断,或一条连续的氛围/推理/情绪链。
|
|
30
|
-
- 场景结束、一件事结束、新动作、新物件、新信息、新对话另起一段;同一瞬间的发生、感知、反应应织在一起,不拆成动作层/感知层/反应层。
|
|
31
|
-
- 正文相邻段落之间**只允许一个换行符 `\n`**;不得出现空行或连续换行 `\n\n`(紧密排列)。
|
|
32
|
-
- 无缩进(平台渲染器自行处理,不需要 ` ` 或空格)。
|
|
33
|
-
- 长度只作诊断:读起来拥挤、混入多个拍点、或手机屏上难以跟读时才拆;完整推理、氛围铺陈、情绪递进未结束时,允许稍长段保留连贯性。
|
|
34
|
-
|
|
35
|
-
### 段落节奏(长短交错 + 疏密有别)
|
|
36
|
-
|
|
37
|
-
短段快读,是网文手机阅读的底色;长段负责承载完整推理、氛围和情绪沉淀。**忌通篇同长度**,也忌把每段按同一字数阈值切开:
|
|
38
|
-
|
|
39
|
-
- **长短交错**:高潮、打脸和反转的关键落点可单句成段;推理、环境压迫、情绪沉淀与收束可保留较长段,让读者读完完整变化。
|
|
40
|
-
- **疏密有别(详略)**:爽点、转折 beat(节拍)按需要展开感知、动作与细节,过场简写;详略取决于叙事职责,不把每个 beat 写成同样长度。
|
|
41
|
-
- **不过度碎片化**:连续多个极短段若仍属于同一镜头/同一件事,应合并成自然段,避免像提纲或诗行。
|
|
42
|
-
|
|
43
|
-
### 主语与角色名节奏
|
|
44
|
-
|
|
45
|
-
角色名不宜一味省略,也别每句都点名。按“主语重置”使用:
|
|
46
|
-
|
|
47
|
-
- 段首、场景切换、多人同场、或主语可能混淆时,用主角名/角色名建立视角。
|
|
48
|
-
- 同一段或同一动作链内,优先混用代词、动作承接和合理省略,避免每句都以同一角色名开头。
|
|
49
|
-
- 关键转折、情绪爆点、身份反差或读者需要重新盯住主角时,可以再次点名强化。
|
|
50
|
-
- 审查主语节奏看“读起来是否打磕巴”,不按全章出现次数一刀切;只有连续句/连续段无主语重置却反复点名,才算主语过密。
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## 对话格式
|
|
55
|
-
|
|
56
|
-
### 对话标记
|
|
57
|
-
|
|
58
|
-
按目标平台/用户要求选择;未指定时使用默认格式:
|
|
59
|
-
|
|
60
|
-
| 优先级 | 格式 | 适用平台 |
|
|
61
|
-
|--------|------|----------|
|
|
62
|
-
| 首选 | `"说话内容"` | 短篇默认、番茄 |
|
|
63
|
-
| 平台/项目指定 | `「说话内容」` | 知乎盐言短篇、部分古言、日式或用户指定 |
|
|
64
|
-
|
|
65
|
-
**默认用 `""`**;用户或平台指定盐言风格时改为 `「」`,不要把 `「」` 视为错误。
|
|
66
|
-
|
|
67
|
-
### 对话规则
|
|
68
|
-
|
|
69
|
-
1. 对话**独立成行**,不嵌在叙述段落中
|
|
70
|
-
2. 对话标签按辨识需要使用:高频或公式化的「他说」「她道」「他笑了笑说」可用动作或上下文替代,普通「说」可保留
|
|
71
|
-
3. 两人连续对话且说话人清楚时,可省略标签;可能混淆时补明说话人
|
|
72
|
-
|
|
73
|
-
**正确示例**:
|
|
74
|
-
```
|
|
75
|
-
她把杯子放下。
|
|
76
|
-
"你走吧。"
|
|
77
|
-
他没有动。
|
|
78
|
-
"我说,你走吧。"
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**也合法(普通「说」低频使用)**:
|
|
82
|
-
```
|
|
83
|
-
她把杯子放下。
|
|
84
|
-
"你走吧。"她说。
|
|
85
|
-
他没有动。
|
|
86
|
-
"我说,你走吧。"
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
**错误示例**:
|
|
90
|
-
```
|
|
91
|
-
她把杯子放下,说道:"你走吧。"他没有动,她又说:"我说,你走吧。"
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## 语气标点谱系
|
|
97
|
-
|
|
98
|
-
标点服务语气、人物声线和情绪节奏,不能通篇句号化,也不能为了“丰富”随机堆砌符号。先判断当前句子的功能,再选择标点:
|
|
99
|
-
|
|
100
|
-
| 语气 / 功能 | 标点策略 | 防线 |
|
|
101
|
-
|---|---|---|
|
|
102
|
-
| 压迫 / 冷静 / 克制 | 短句、逗号、句号,必要时用冒号压出判断落点 | 不人工加感叹号;克制不是每句都平铺句号 |
|
|
103
|
-
| 质问 / 试探 / 反问 | 问号 + 短促追问片段,配合动作停顿 | 避免每句话都以 `?` 结尾 |
|
|
104
|
-
| 惊讶 / 爆发 / 打脸 | 真正爆点可用 1 个感叹号,连续爆发最多 1-2 处 | 禁止 `!!!`、整段喊叫式感叹 |
|
|
105
|
-
| 犹豫 / 吞咽 / 未说完 | 默认用逗号、句号、句长变化或动作 beat | 省略号的功能性用法按本书文风约定 |
|
|
106
|
-
| 被打断 / 拖长音 | 默认用动作打断、换行、短句或未完成动作 | 破折号的功能性用法按本书文风约定 |
|
|
107
|
-
| 信息揭示 / 判断落点 | 冒号、分号或单句成段制造落点 | 保持手机阅读友好,不写论文式分号串 |
|
|
108
|
-
|
|
109
|
-
执行规则:
|
|
110
|
-
- 写对话时先看角色关系和权力位置:强势角色常短句收束,试探角色多问号和半句,崩溃角色才允许少量感叹/省略。
|
|
111
|
-
- 写叙述时用句长、逗号停顿和单句成段制造节奏;默认不用破折号硬造节奏;本书文风明确授权的功能性用法保留。
|
|
112
|
-
- 精修时检查两类问题:**通篇句号化**(语气全被压平)与**随机标点堆砌**(问号/感叹号不承载情绪功能,或用省略号/破折号硬造停顿)。
|
|
113
|
-
- 引号风格按项目/平台约定;知乎盐言的 `「」` 是合法对话格式,`quote-mode keep` 时不得擅自改掉。
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## 小节(beat)结构
|
|
118
|
-
|
|
119
|
-
### 基本规则
|
|
120
|
-
|
|
121
|
-
- 用数字编号(`1` `2` `3`)分割小节,每个小节是一个完整的叙事 beat
|
|
122
|
-
- 小节长度服从其叙事职责,不设统一最低字数;整篇按锁定的交付范围控制,长篇章节按细纲「字数目标」处理
|
|
123
|
-
- 小节数由情节阶段和转场需要决定;不为平均分配字数拆分完整动作链,也不把承担不同职责的小节硬合并
|
|
124
|
-
- 每小节推进一个明确的情节点
|
|
125
|
-
|
|
126
|
-
### 小节内部结构
|
|
127
|
-
|
|
128
|
-
每个小节至少完成第 1 项,其余按本节职责选用:
|
|
129
|
-
|
|
130
|
-
1. **一个主事件** + **一个或多个真实推进**(风险、信息、关系、资源、决定、行动或读者理解至少改变一项;相关情节点可由同一动作链或对话同时兑现,不为数量新增阻碍、对话或冲突)
|
|
131
|
-
2. **情绪或压力落点**(确有变化时写清读者感受如何变化;任务、推理、手艺或等待链不强配情绪转折)
|
|
132
|
-
3. **读者模型或下一步变化**(新信息、旧信息改义、决定、行动或后果均可,不强配新事实)
|
|
133
|
-
4. **对白按功能使用**(需要时改变信息、策略、权力、关系或下一步行动;独自发现、核验证据、等待、手艺等场景可以无对白)
|
|
134
|
-
5. **推进单元按需揉进信息维度**:发生是主干,感知和反应只在提供新信息时织入同一镜头(参考 writing-craft.md 场景写法)
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
### 小节之间的衔接
|
|
138
|
-
|
|
139
|
-
- 小节结尾留一个钩子(悬念/未解决的情绪/新问题)
|
|
140
|
-
- 下一节开头快速接续,不要重新铺垫
|
|
141
|
-
- 情绪跨节衔接:升温、缓冲与回落均须承接前一节的行动和后果,不要求强度逐节上升
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## 平台对话格式覆盖表
|
|
146
|
-
|
|
147
|
-
| 平台 | 章节标记 | 对话格式 | 特殊要求 |
|
|
148
|
-
|------|----------|----------|----------|
|
|
149
|
-
| 知乎盐言 | `1.` | `「」` | 导语即正文开头几段,不另标 |
|
|
150
|
-
| 番茄 | `###第一章` | `""` | 首段需有吸引力 |
|
|
151
|
-
| 红果 | `###1.` | `""` | 无 |
|
|
152
|
-
|
|
153
|
-
**通用原则**:用户未指定平台时,默认使用短篇通用格式(`###1.` + `""`);用户或平台指定盐言风格时,`「」` 是允许的。
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## 8 条格式规则
|
|
158
|
-
|
|
159
|
-
以下规则按文件开头的优先级执行;其中标点默认可由本书明确的文风约定覆盖:
|
|
160
|
-
|
|
161
|
-
1. **禁止机械按字数分段**:不要因为超过某个字数就强拆;先判断段落是否仍是一个完整戏剧单元。若混入多个动作/信息/视线切换才拆,完整推理、氛围、情绪链可保留稍长段
|
|
162
|
-
2. **禁止段间空行**:正文相邻段落之间只允许一个换行符 `\n`,不得出现空行或连续换行 `\n\n`
|
|
163
|
-
3. **避免对话标签机械化**:高频或公式化的「他说」「她道」「他笑了笑说」用动作/上下文替代;普通“说”可保留
|
|
164
|
-
4. **禁止缩进**:不使用 ` `(全角空格)或半角空格缩进
|
|
165
|
-
5. **禁止正文段落 Markdown 渲染**:除统一的小节/章节标记(如 `###1.`)外,正文段落中不使用加粗 `**`、斜体 `*`、标题 `#`、分隔线 `---` 等 Markdown 语法
|
|
166
|
-
6. **默认停顿写法**:正文默认用句号、逗号、换行、动作 beat 或短句承担停顿;本书明确选择的功能性破折号/省略号按调用方文风裁决与书级白名单保留。标点偏好不属于不可覆盖的文件结构协议。
|
|
167
|
-
7. **禁止通篇句号化或随机标点堆砌**:标点必须跟语气/人物声线/情绪功能匹配;该质问时用问号,该爆发时少量感叹;犹豫、吞咽、未说完用动作或句长变化表达,不用 `……` / `——` 硬造停顿,也不得无功能地乱撒 `?`/`!`
|
|
168
|
-
8. **禁止正文混入章节元信息**:章节号只允许出现在标题/小节标记/文件名/追踪记录中。正文叙述、对话、心理描写里不得出现 `第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者` 这类写作工程词;要改成角色能感知的事件锚点或相对时间,例如把“比第一章那三秒开火更疼”改成“比那三秒开火更疼”。例外:角色在故事世界内真实阅读/讨论“第X章”文本,或真实身为作者/读者并谈论读者身份时,可保留相应词。
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# 角色状态记录格式
|
|
2
|
-
|
|
3
|
-
> `追踪/角色状态/{角色名}.md` 是工具生成的视图;导入时按 character-state-reverse.md 填事务,不直接写此文件。
|
|
4
|
-
|
|
5
|
-
动态状态按核心角色分文件,由 `tracking_commit.py` 根据事务整份覆盖;静态人设留在 `设定/角色/{角色名}.md`。只为后续会复用的主角、反派、核心配角建快照。
|
|
6
|
-
|
|
7
|
-
## 格式
|
|
8
|
-
|
|
9
|
-
下例展示语义内容;实际文件还由工具写入「状态修订」,用于与当前追踪状态核对。
|
|
10
|
-
|
|
11
|
-
```markdown
|
|
12
|
-
# 江晨|当前状态
|
|
13
|
-
|
|
14
|
-
- 截至章节:第10章
|
|
15
|
-
- 身份:火箭军文工团宣传兵;军宣爆款创作者
|
|
16
|
-
- 位置:火箭军文工团高层看片会
|
|
17
|
-
- 当前目标:完成五天百万粉任务,持续做出真正能打的军宣内容
|
|
18
|
-
- 身心状态:专业团队反向验证原版价值,军内认可继续抬升
|
|
19
|
-
|
|
20
|
-
## 能力与资源
|
|
21
|
-
- 前世 MCN 爆款运营经验
|
|
22
|
-
- 《中国军魂》伴奏
|
|
23
|
-
- 大师级导演能力
|
|
24
|
-
|
|
25
|
-
## 关键关系
|
|
26
|
-
- 钟嘉嘉持续提供军报资源
|
|
27
|
-
- 周薄森和张耀祖已明确认可其创作能力
|
|
28
|
-
|
|
29
|
-
## 已知信息
|
|
30
|
-
- 《军报》采访稿已经过审
|
|
31
|
-
- 原版视频将继续作为正式军宣内容
|
|
32
|
-
|
|
33
|
-
## 未结事项
|
|
34
|
-
- 五天百万粉任务尚未结算
|
|
35
|
-
- 钟嘉嘉所谓“只猜对一半”仍未解释
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## 更新规则
|
|
39
|
-
|
|
40
|
-
1. 下列规则用于导入后的续写。每章增量只记录身份、位置、目标、身心状态、能力资源、关系、已知信息、未结事项中实际发生的变化。
|
|
41
|
-
2. 核心复用角色发生变化时,在同一事务的 `character_changes` 写变化,并在 `character_snapshots` 提交其**截至当前已写最后一章**的完整快照;工具以快照是否存在判断核心/临时角色,整份覆盖核心角色小文件,不追加历史。
|
|
42
|
-
3. 修订旧章时,从修订章检查到最后已写章,按各维度和各关系对象重算当前状态,再提交完整快照;不得把最后一条单维度变化当成角色全状态。
|
|
43
|
-
4. 无变化可不提交快照;核心角色重新进入当前场景时直接读取其已有小文件,并由事务工具把必要信息带入续写状态卡。
|
|
44
|
-
5. 角色变化历史属于 `逐章记录/第NNN章.md`,当前快照不重复保存逐章履历。
|
|
45
|
-
6. 完整 JSON 字段、4096 字节目标与 8192 字节硬上限见 [tracking-transaction.md](tracking-transaction.md)。
|