@lingjingai/scriptctl 0.35.0 → 0.36.0
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 +21 -5
- package/changes/0.36.0.md +22 -0
- package/dist/bin.js +0 -0
- package/dist/cli.d.ts +2 -1
- package/dist/cli.js +52 -128
- package/dist/cli.js.map +1 -1
- package/dist/common.d.ts +0 -16
- package/dist/common.js +2 -342
- package/dist/common.js.map +1 -1
- package/dist/domain/ingest/apply-plan.d.ts +23 -0
- package/dist/domain/ingest/apply-plan.js +210 -0
- package/dist/domain/ingest/apply-plan.js.map +1 -0
- package/dist/domain/ingest/assembler.d.ts +57 -0
- package/dist/domain/ingest/assembler.js +181 -0
- package/dist/domain/ingest/assembler.js.map +1 -0
- package/dist/domain/ingest/chunker.d.ts +9 -0
- package/dist/domain/ingest/chunker.js +38 -0
- package/dist/domain/ingest/chunker.js.map +1 -0
- package/dist/domain/ingest/evidence.d.ts +5 -0
- package/dist/domain/ingest/evidence.js +66 -0
- package/dist/domain/ingest/evidence.js.map +1 -0
- package/dist/domain/ingest/govern.d.ts +3 -0
- package/dist/domain/ingest/govern.js +127 -0
- package/dist/domain/ingest/govern.js.map +1 -0
- package/dist/domain/ingest/jsonl-parser.d.ts +6 -0
- package/dist/domain/ingest/jsonl-parser.js +187 -0
- package/dist/domain/ingest/jsonl-parser.js.map +1 -0
- package/dist/domain/ingest/markdown-parser.d.ts +6 -0
- package/dist/domain/ingest/markdown-parser.js +186 -0
- package/dist/domain/ingest/markdown-parser.js.map +1 -0
- package/dist/domain/ingest/records.d.ts +71 -0
- package/dist/domain/ingest/records.js +9 -0
- package/dist/domain/ingest/records.js.map +1 -0
- package/dist/domain/ingest/renumber.d.ts +14 -0
- package/dist/domain/ingest/renumber.js +130 -0
- package/dist/domain/ingest/renumber.js.map +1 -0
- package/dist/domain/ingest/script-v3.d.ts +94 -0
- package/dist/domain/ingest/script-v3.js +7 -0
- package/dist/domain/ingest/script-v3.js.map +1 -0
- package/dist/domain/ingest/state-reconcile.d.ts +11 -0
- package/dist/domain/ingest/state-reconcile.js +90 -0
- package/dist/domain/ingest/state-reconcile.js.map +1 -0
- package/dist/domain/ingest/validation.d.ts +11 -0
- package/dist/domain/ingest/validation.js +168 -0
- package/dist/domain/ingest/validation.js.map +1 -0
- package/dist/domain/ingest/video-aggregate.d.ts +23 -0
- package/dist/domain/ingest/video-aggregate.js +89 -0
- package/dist/domain/ingest/video-aggregate.js.map +1 -0
- package/dist/domain/ingest/video-apply.d.ts +37 -0
- package/dist/domain/ingest/video-apply.js +236 -0
- package/dist/domain/ingest/video-apply.js.map +1 -0
- package/dist/domain/ingest/video-md-parser.d.ts +2 -0
- package/dist/domain/ingest/video-md-parser.js +233 -0
- package/dist/domain/ingest/video-md-parser.js.map +1 -0
- package/dist/domain/ingest/video-records.d.ts +56 -0
- package/dist/domain/ingest/video-records.js +9 -0
- package/dist/domain/ingest/video-records.js.map +1 -0
- package/dist/domain/loom/index.d.ts +2 -1
- package/dist/domain/loom/index.js +12 -10
- package/dist/domain/loom/index.js.map +1 -1
- package/dist/domain/loom/types.d.ts +3 -2
- package/dist/domain/script/lookups.d.ts +3 -2
- package/dist/domain/script/lookups.js +25 -8
- package/dist/domain/script/lookups.js.map +1 -1
- package/dist/domain/script/patch/apply.js +2 -2
- package/dist/domain/script/patch/apply.js.map +1 -1
- package/dist/domain/script/patch/helpers.d.ts +3 -7
- package/dist/domain/script/patch/helpers.js +23 -96
- package/dist/domain/script/patch/helpers.js.map +1 -1
- package/dist/domain/script/patch/ops-action.d.ts +0 -2
- package/dist/domain/script/patch/ops-action.js +34 -100
- package/dist/domain/script/patch/ops-action.js.map +1 -1
- package/dist/domain/script/patch/ops-asset.d.ts +1 -0
- package/dist/domain/script/patch/ops-asset.js +102 -155
- package/dist/domain/script/patch/ops-asset.js.map +1 -1
- package/dist/domain/script/patch/ops-dialogue.d.ts +1 -4
- package/dist/domain/script/patch/ops-dialogue.js +43 -220
- package/dist/domain/script/patch/ops-dialogue.js.map +1 -1
- package/dist/domain/script/patch/ops-extend.js +8 -2
- package/dist/domain/script/patch/ops-extend.js.map +1 -1
- package/dist/domain/script/patch/ops-meta.js.map +1 -1
- package/dist/domain/script/patch/ops-scene.js +26 -39
- package/dist/domain/script/patch/ops-scene.js.map +1 -1
- package/dist/domain/script/patch/ops-state.d.ts +3 -3
- package/dist/domain/script/patch/ops-state.js +33 -49
- package/dist/domain/script/patch/ops-state.js.map +1 -1
- package/dist/domain/script/patch/registry.js +9 -13
- package/dist/domain/script/patch/registry.js.map +1 -1
- package/dist/domain/script/refs.js +23 -111
- package/dist/domain/script/refs.js.map +1 -1
- package/dist/domain/script/scene-refs.d.ts +3 -0
- package/dist/domain/script/scene-refs.js +35 -0
- package/dist/domain/script/scene-refs.js.map +1 -0
- package/dist/domain/script/schema.js +17 -21
- package/dist/domain/script/schema.js.map +1 -1
- package/dist/domain/script/text-util.d.ts +7 -0
- package/dist/domain/script/text-util.js +91 -0
- package/dist/domain/script/text-util.js.map +1 -0
- package/dist/help-text.js +117 -410
- package/dist/help-text.js.map +1 -1
- package/dist/infra/converters.js +1 -1
- package/dist/infra/converters.js.map +1 -1
- package/dist/infra/episode-title.d.ts +4 -0
- package/dist/infra/episode-title.js +129 -0
- package/dist/infra/episode-title.js.map +1 -0
- package/dist/infra/ingest/review-renderer.d.ts +1 -0
- package/dist/infra/ingest/review-renderer.js +431 -0
- package/dist/infra/ingest/review-renderer.js.map +1 -0
- package/dist/infra/ingest/source-resolver.d.ts +21 -0
- package/dist/infra/ingest/source-resolver.js +51 -0
- package/dist/infra/ingest/source-resolver.js.map +1 -0
- package/dist/infra/ingest/text-reader.d.ts +3 -0
- package/dist/infra/ingest/text-reader.js +27 -0
- package/dist/infra/ingest/text-reader.js.map +1 -0
- package/dist/infra/ingest/video-discovery.d.ts +8 -0
- package/dist/infra/ingest/video-discovery.js +60 -0
- package/dist/infra/ingest/video-discovery.js.map +1 -0
- package/dist/infra/ingest/workspace-store.d.ts +18 -0
- package/dist/infra/ingest/workspace-store.js +70 -0
- package/dist/infra/ingest/workspace-store.js.map +1 -0
- package/dist/infra/llm/anthropic-model.d.ts +11 -0
- package/dist/infra/llm/anthropic-model.js +109 -0
- package/dist/infra/llm/anthropic-model.js.map +1 -0
- package/dist/infra/llm/gemini-upload.d.ts +9 -0
- package/dist/infra/llm/gemini-upload.js +94 -0
- package/dist/infra/llm/gemini-upload.js.map +1 -0
- package/dist/infra/llm/gemini-video-model.d.ts +47 -0
- package/dist/infra/llm/gemini-video-model.js +167 -0
- package/dist/infra/llm/gemini-video-model.js.map +1 -0
- package/dist/infra/llm/openai-compatible-model.d.ts +13 -0
- package/dist/infra/llm/openai-compatible-model.js +143 -0
- package/dist/infra/llm/openai-compatible-model.js.map +1 -0
- package/dist/infra/llm/proxy.d.ts +1 -0
- package/dist/infra/llm/proxy.js +30 -0
- package/dist/infra/llm/proxy.js.map +1 -0
- package/dist/infra/llm/retry.d.ts +5 -0
- package/dist/infra/llm/retry.js +20 -0
- package/dist/infra/llm/retry.js.map +1 -0
- package/dist/llm/composition.d.ts +5 -0
- package/dist/llm/composition.js +5 -0
- package/dist/llm/composition.js.map +1 -0
- package/dist/llm/config.d.ts +26 -0
- package/dist/llm/config.js +201 -0
- package/dist/llm/config.js.map +1 -0
- package/dist/llm/registry.d.ts +44 -0
- package/dist/llm/registry.js +48 -0
- package/dist/llm/registry.js.map +1 -0
- package/dist/llm/router.d.ts +23 -0
- package/dist/llm/router.js +0 -0
- package/dist/llm/router.js.map +1 -0
- package/dist/llm/tasks/ingest/asset-curate.d.ts +13 -0
- package/dist/llm/tasks/ingest/asset-curate.js +45 -0
- package/dist/llm/tasks/ingest/asset-curate.js.map +1 -0
- package/dist/llm/tasks/ingest/asset-extract.d.ts +12 -0
- package/dist/llm/tasks/ingest/asset-extract.js +51 -0
- package/dist/llm/tasks/ingest/asset-extract.js.map +1 -0
- package/dist/llm/tasks/ingest/asset-govern.d.ts +22 -0
- package/dist/llm/tasks/ingest/asset-govern.js +143 -0
- package/dist/llm/tasks/ingest/asset-govern.js.map +1 -0
- package/dist/llm/tasks/ingest/mention-resolve.d.ts +9 -0
- package/dist/llm/tasks/ingest/mention-resolve.js +39 -0
- package/dist/llm/tasks/ingest/mention-resolve.js.map +1 -0
- package/dist/llm/tasks/ingest/plot-speaker.d.ts +11 -0
- package/dist/llm/tasks/ingest/plot-speaker.js +72 -0
- package/dist/llm/tasks/ingest/plot-speaker.js.map +1 -0
- package/dist/llm/tasks/ingest/roster-merge.d.ts +46 -0
- package/dist/llm/tasks/ingest/roster-merge.js +235 -0
- package/dist/llm/tasks/ingest/roster-merge.js.map +1 -0
- package/dist/llm/tasks/ingest/state-merge.d.ts +10 -0
- package/dist/llm/tasks/ingest/state-merge.js +84 -0
- package/dist/llm/tasks/ingest/state-merge.js.map +1 -0
- package/dist/llm/tasks/ingest/state-reconcile.d.ts +8 -0
- package/dist/llm/tasks/ingest/state-reconcile.js +44 -0
- package/dist/llm/tasks/ingest/state-reconcile.js.map +1 -0
- package/dist/llm/tasks/ingest/text-normalize.d.ts +10 -0
- package/dist/llm/tasks/ingest/text-normalize.js +89 -0
- package/dist/llm/tasks/ingest/text-normalize.js.map +1 -0
- package/dist/llm/tasks/ingest/video-correct.d.ts +30 -0
- package/dist/llm/tasks/ingest/video-correct.js +144 -0
- package/dist/llm/tasks/ingest/video-correct.js.map +1 -0
- package/dist/llm/tasks/ingest/video-transcribe.d.ts +4 -0
- package/dist/llm/tasks/ingest/video-transcribe.js +105 -0
- package/dist/llm/tasks/ingest/video-transcribe.js.map +1 -0
- package/dist/llm/tasks/schemas.d.ts +5 -0
- package/dist/llm/tasks/schemas.js +107 -0
- package/dist/llm/tasks/schemas.js.map +1 -0
- package/dist/llm/types.d.ts +97 -0
- package/dist/llm/types.js +13 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/usecases/doctor.d.ts +1 -1
- package/dist/usecases/doctor.js +36 -9
- package/dist/usecases/doctor.js.map +1 -1
- package/dist/usecases/ingest/command.d.ts +5 -0
- package/dist/usecases/ingest/command.js +57 -0
- package/dist/usecases/ingest/command.js.map +1 -0
- package/dist/usecases/ingest/fanout.d.ts +10 -0
- package/dist/usecases/ingest/fanout.js +23 -0
- package/dist/usecases/ingest/fanout.js.map +1 -0
- package/dist/usecases/ingest/pass4-mention-resolve.d.ts +11 -0
- package/dist/usecases/ingest/pass4-mention-resolve.js +52 -0
- package/dist/usecases/ingest/pass4-mention-resolve.js.map +1 -0
- package/dist/usecases/ingest/pass5-extract.d.ts +7 -0
- package/dist/usecases/ingest/pass5-extract.js +50 -0
- package/dist/usecases/ingest/pass5-extract.js.map +1 -0
- package/dist/usecases/ingest/pass5-govern.d.ts +13 -0
- package/dist/usecases/ingest/pass5-govern.js +155 -0
- package/dist/usecases/ingest/pass5-govern.js.map +1 -0
- package/dist/usecases/ingest/pipeline.d.ts +28 -0
- package/dist/usecases/ingest/pipeline.js +144 -0
- package/dist/usecases/ingest/pipeline.js.map +1 -0
- package/dist/usecases/ingest/publish-command.d.ts +4 -0
- package/dist/usecases/ingest/publish-command.js +77 -0
- package/dist/usecases/ingest/publish-command.js.map +1 -0
- package/dist/usecases/ingest/status.d.ts +39 -0
- package/dist/usecases/ingest/status.js +155 -0
- package/dist/usecases/ingest/status.js.map +1 -0
- package/dist/usecases/ingest/video-pass3.d.ts +26 -0
- package/dist/usecases/ingest/video-pass3.js +0 -0
- package/dist/usecases/ingest/video-pass3.js.map +1 -0
- package/dist/usecases/ingest/video-pipeline.d.ts +32 -0
- package/dist/usecases/ingest/video-pipeline.js +202 -0
- package/dist/usecases/ingest/video-pipeline.js.map +1 -0
- package/dist/usecases/ingest/view-command.d.ts +4 -0
- package/dist/usecases/ingest/view-command.js +51 -0
- package/dist/usecases/ingest/view-command.js.map +1 -0
- package/dist/usecases/script/actions.js +2 -2
- package/dist/usecases/script/actions.js.map +1 -1
- package/dist/usecases/script/actor.js.map +1 -1
- package/dist/usecases/script/actors.js.map +1 -1
- package/dist/usecases/script/add-actor.js.map +1 -1
- package/dist/usecases/script/add-episode.js.map +1 -1
- package/dist/usecases/script/add-location.js.map +1 -1
- package/dist/usecases/script/add-prop.js.map +1 -1
- package/dist/usecases/script/alias.js.map +1 -1
- package/dist/usecases/script/assets.js.map +1 -1
- package/dist/usecases/script/context.js.map +1 -1
- package/dist/usecases/script/create.js +3 -6
- package/dist/usecases/script/create.js.map +1 -1
- package/dist/usecases/script/delete.js.map +1 -1
- package/dist/usecases/script/describe.js.map +1 -1
- package/dist/usecases/script/dialogue.js +6 -13
- package/dist/usecases/script/dialogue.js.map +1 -1
- package/dist/usecases/script/do.js +1 -1
- package/dist/usecases/script/do.js.map +1 -1
- package/dist/usecases/script/episodes.js.map +1 -1
- package/dist/usecases/script/{add-speaker.d.ts → importance.d.ts} +1 -1
- package/dist/usecases/script/importance.js +17 -0
- package/dist/usecases/script/importance.js.map +1 -0
- package/dist/usecases/script/insert.js.map +1 -1
- package/dist/usecases/script/issues.js.map +1 -1
- package/dist/usecases/script/lib.d.ts +8 -6
- package/dist/usecases/script/lib.js +81 -97
- package/dist/usecases/script/lib.js.map +1 -1
- package/dist/usecases/script/locations.js.map +1 -1
- package/dist/usecases/script/merge.js.map +1 -1
- package/dist/usecases/script/move.js.map +1 -1
- package/dist/usecases/script/props.js.map +1 -1
- package/dist/usecases/script/refs.js.map +1 -1
- package/dist/usecases/script/rename.js.map +1 -1
- package/dist/usecases/script/replace.js.map +1 -1
- package/dist/usecases/script/role.js.map +1 -1
- package/dist/usecases/script/scenes.js +8 -15
- package/dist/usecases/script/scenes.js.map +1 -1
- package/dist/usecases/script/script-patch.js +1 -1
- package/dist/usecases/script/script-patch.js.map +1 -1
- package/dist/usecases/script/script-validate.js +1 -1
- package/dist/usecases/script/script-validate.js.map +1 -1
- package/dist/usecases/script/session.d.ts +4 -4
- package/dist/usecases/script/session.js +57 -78
- package/dist/usecases/script/session.js.map +1 -1
- package/dist/usecases/script/split.js.map +1 -1
- package/dist/usecases/script/state-add.js.map +1 -1
- package/dist/usecases/script/state-delete.js.map +1 -1
- package/dist/usecases/script/state-rename.js.map +1 -1
- package/dist/usecases/script/summary.js.map +1 -1
- package/dist/usecases/script/synopsis-generate.d.ts +4 -5
- package/dist/usecases/script/synopsis-generate.js +30 -46
- package/dist/usecases/script/synopsis-generate.js.map +1 -1
- package/dist/usecases/script/transition.js.map +1 -1
- package/dist/usecases/script/type.js.map +1 -1
- package/dist/usecases/script/worldview.js.map +1 -1
- package/package.json +22 -17
- package/skills/scriptctl/SKILL.md +140 -120
- package/skills/scriptctl/references/atomic-write-workflow.md +12 -9
- package/skills/scriptctl/references/ingest-workflow.md +85 -0
- package/skills/scriptctl/references/state-reference-repair.md +26 -39
- package/dist/domain/direct/runner.d.ts +0 -25
- package/dist/domain/direct/runner.js +0 -88
- package/dist/domain/direct/runner.js.map +0 -1
- package/dist/domain/direct/stage.d.ts +0 -108
- package/dist/domain/direct/stage.js +0 -134
- package/dist/domain/direct/stage.js.map +0 -1
- package/dist/domain/direct/stages/asset-curation.d.ts +0 -2
- package/dist/domain/direct/stages/asset-curation.js +0 -10
- package/dist/domain/direct/stages/asset-curation.js.map +0 -1
- package/dist/domain/direct/stages/batch-extract.d.ts +0 -2
- package/dist/domain/direct/stages/batch-extract.js +0 -12
- package/dist/domain/direct/stages/batch-extract.js.map +0 -1
- package/dist/domain/direct/stages/batch-plan.d.ts +0 -2
- package/dist/domain/direct/stages/batch-plan.js +0 -9
- package/dist/domain/direct/stages/batch-plan.js.map +0 -1
- package/dist/domain/direct/stages/episode-merge.d.ts +0 -2
- package/dist/domain/direct/stages/episode-merge.js +0 -11
- package/dist/domain/direct/stages/episode-merge.js.map +0 -1
- package/dist/domain/direct/stages/episode-plan.d.ts +0 -2
- package/dist/domain/direct/stages/episode-plan.js +0 -9
- package/dist/domain/direct/stages/episode-plan.js.map +0 -1
- package/dist/domain/direct/stages/episode-synopsis.d.ts +0 -2
- package/dist/domain/direct/stages/episode-synopsis.js +0 -12
- package/dist/domain/direct/stages/episode-synopsis.js.map +0 -1
- package/dist/domain/direct/stages/episode-titles.d.ts +0 -2
- package/dist/domain/direct/stages/episode-titles.js +0 -12
- package/dist/domain/direct/stages/episode-titles.js.map +0 -1
- package/dist/domain/direct/stages/index.d.ts +0 -19
- package/dist/domain/direct/stages/index.js +0 -41
- package/dist/domain/direct/stages/index.js.map +0 -1
- package/dist/domain/direct/stages/metadata.d.ts +0 -2
- package/dist/domain/direct/stages/metadata.js +0 -11
- package/dist/domain/direct/stages/metadata.js.map +0 -1
- package/dist/domain/direct/stages/script-merge.d.ts +0 -2
- package/dist/domain/direct/stages/script-merge.js +0 -15
- package/dist/domain/direct/stages/script-merge.js.map +0 -1
- package/dist/domain/direct/stages/script-synopsis.d.ts +0 -2
- package/dist/domain/direct/stages/script-synopsis.js +0 -12
- package/dist/domain/direct/stages/script-synopsis.js.map +0 -1
- package/dist/domain/direct/stages/source-prepare.d.ts +0 -2
- package/dist/domain/direct/stages/source-prepare.js +0 -9
- package/dist/domain/direct/stages/source-prepare.js.map +0 -1
- package/dist/domain/direct/stages/state-binding.d.ts +0 -2
- package/dist/domain/direct/stages/state-binding.js +0 -9
- package/dist/domain/direct/stages/state-binding.js.map +0 -1
- package/dist/domain/direct/stages/state-curation.d.ts +0 -2
- package/dist/domain/direct/stages/state-curation.js +0 -10
- package/dist/domain/direct/stages/state-curation.js.map +0 -1
- package/dist/domain/direct/stages/validate.d.ts +0 -2
- package/dist/domain/direct/stages/validate.js +0 -10
- package/dist/domain/direct/stages/validate.js.map +0 -1
- package/dist/domain/direct-core.d.ts +0 -313
- package/dist/domain/direct-core.js +0 -8514
- package/dist/domain/direct-core.js.map +0 -1
- package/dist/domain/script/validate.d.ts +0 -22
- package/dist/domain/script/validate.js +0 -997
- package/dist/domain/script/validate.js.map +0 -1
- package/dist/infra/providers.d.ts +0 -97
- package/dist/infra/providers.js +0 -1396
- package/dist/infra/providers.js.map +0 -1
- package/dist/usecases/direct.d.ts +0 -27
- package/dist/usecases/direct.js +0 -4172
- package/dist/usecases/direct.js.map +0 -1
- package/dist/usecases/parse.d.ts +0 -15
- package/dist/usecases/parse.js +0 -429
- package/dist/usecases/parse.js.map +0 -1
- package/dist/usecases/script/add-speaker.js +0 -22
- package/dist/usecases/script/add-speaker.js.map +0 -1
- package/dist/usecases/script/export.d.ts +0 -3
- package/dist/usecases/script/export.js +0 -111
- package/dist/usecases/script/export.js.map +0 -1
- package/dist/usecases/script/overlap.d.ts +0 -3
- package/dist/usecases/script/overlap.js +0 -21
- package/dist/usecases/script/overlap.js.map +0 -1
- package/dist/usecases/script/speakers.d.ts +0 -3
- package/dist/usecases/script/speakers.js +0 -28
- package/dist/usecases/script/speakers.js.map +0 -1
- package/dist/usecases/script/state-change.d.ts +0 -3
- package/dist/usecases/script/state-change.js +0 -24
- package/dist/usecases/script/state-change.js.map +0 -1
- package/skills/scriptctl/references/direct-workflow.md +0 -72
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { sourcePrepareStage } from "./source-prepare.js";
|
|
2
|
-
import { episodePlanStage } from "./episode-plan.js";
|
|
3
|
-
import { episodeTitlesStage } from "./episode-titles.js";
|
|
4
|
-
import { batchPlanStage } from "./batch-plan.js";
|
|
5
|
-
import { batchExtractStage } from "./batch-extract.js";
|
|
6
|
-
import { episodeMergeStage } from "./episode-merge.js";
|
|
7
|
-
import { episodeSynopsisStage } from "./episode-synopsis.js";
|
|
8
|
-
import { scriptMergeStage } from "./script-merge.js";
|
|
9
|
-
import { assetCurationStage } from "./asset-curation.js";
|
|
10
|
-
import { stateCurationStage } from "./state-curation.js";
|
|
11
|
-
import { stateBindingStage } from "./state-binding.js";
|
|
12
|
-
import { metadataStage } from "./metadata.js";
|
|
13
|
-
import { scriptSynopsisStage } from "./script-synopsis.js";
|
|
14
|
-
import { validateStage } from "./validate.js";
|
|
15
|
-
// The full direct pipeline, in execution order. This is the single source of
|
|
16
|
-
// truth for stage ordering — runStages walks it, runOne indexes into it, and
|
|
17
|
-
// `direct run <stage>` validates against it.
|
|
18
|
-
export const STAGES = [
|
|
19
|
-
sourcePrepareStage,
|
|
20
|
-
episodePlanStage,
|
|
21
|
-
episodeTitlesStage,
|
|
22
|
-
batchPlanStage,
|
|
23
|
-
batchExtractStage,
|
|
24
|
-
episodeMergeStage,
|
|
25
|
-
episodeSynopsisStage,
|
|
26
|
-
scriptMergeStage,
|
|
27
|
-
assetCurationStage,
|
|
28
|
-
stateCurationStage,
|
|
29
|
-
stateBindingStage,
|
|
30
|
-
metadataStage,
|
|
31
|
-
scriptSynopsisStage,
|
|
32
|
-
validateStage,
|
|
33
|
-
];
|
|
34
|
-
export function stageByName(name) {
|
|
35
|
-
return STAGES.find((s) => s.name === name);
|
|
36
|
-
}
|
|
37
|
-
export function stageNames() {
|
|
38
|
-
return STAGES.map((s) => s.name);
|
|
39
|
-
}
|
|
40
|
-
export { sourcePrepareStage, episodePlanStage, episodeTitlesStage, batchPlanStage, batchExtractStage, episodeMergeStage, episodeSynopsisStage, scriptMergeStage, assetCurationStage, stateCurationStage, stateBindingStage, metadataStage, scriptSynopsisStage, validateStage, };
|
|
41
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,6EAA6E;AAC7E,6EAA6E;AAC7E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAqB;IACtC,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;IACb,mBAAmB;IACnB,aAAa;CACd,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { stageMetadata } from "../../../usecases/direct.js";
|
|
2
|
-
// LLM metadata extraction (worldview / role_type / asset descriptions), applied
|
|
3
|
-
// onto the script. Honors --skip-metadata. Reads: source.txt + ctx.state.script.
|
|
4
|
-
// Writes: asset_metadata.json (+ mutates the in-memory script). `output: null` —
|
|
5
|
-
// --skip-metadata deletes the artifact, so file presence isn't a skip signal.
|
|
6
|
-
export const metadataStage = {
|
|
7
|
-
name: "metadata",
|
|
8
|
-
output: null,
|
|
9
|
-
run: (ctx) => stageMetadata(ctx),
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=metadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;CACjC,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { stageScriptMerge } from "../../../usecases/direct.js";
|
|
2
|
-
// Merge all episode results into one script + asset normalization report
|
|
3
|
-
// (deterministic). Reads: episode_results/. Writes: ctx.state.script (persisted
|
|
4
|
-
// later by script-synopsis) + asset_normalization.json. `output: null` — the
|
|
5
|
-
// script must be re-derived from episode_results on EVERY run (a reused or
|
|
6
|
-
// edited batch changes its episode result, which has to flow back into the
|
|
7
|
-
// script), so this stage is never skipped on artifact presence. Presence of
|
|
8
|
-
// asset_normalization.json is therefore NOT a completion signal; script.initial
|
|
9
|
-
// .json is written later by script-synopsis, matching the god-command order.
|
|
10
|
-
export const scriptMergeStage = {
|
|
11
|
-
name: "script-merge",
|
|
12
|
-
output: null,
|
|
13
|
-
run: (ctx) => stageScriptMerge(ctx),
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=script-merge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"script-merge.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/script-merge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,yEAAyE;AACzE,gFAAgF;AAChF,6EAA6E;AAC7E,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAU;IACrC,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC;CACpC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { stageScriptSynopsis } from "../../../usecases/direct.js";
|
|
2
|
-
// Whole-script overview (reduce-2): synopsis/theme/logline/style/main_characters,
|
|
3
|
-
// soft-degrading on provider failure. Persists script.initial.json (the write
|
|
4
|
-
// point inherited from the god-command). Reads: ctx.state.script. Writes:
|
|
5
|
-
// synopsis.json + script.initial.json. `output: null` — degraded/skip outcomes
|
|
6
|
-
// mean presence of script.initial.json isn't a clean skip signal.
|
|
7
|
-
export const scriptSynopsisStage = {
|
|
8
|
-
name: "script-synopsis",
|
|
9
|
-
output: null,
|
|
10
|
-
run: (ctx) => stageScriptSynopsis(ctx),
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=script-synopsis.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"script-synopsis.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/script-synopsis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,kFAAkF;AAClF,8EAA8E;AAC9E,0EAA0E;AAC1E,+EAA+E;AAC/E,kEAAkE;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAU;IACxC,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC;CACvC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { stageSourcePrepare } from "../../../usecases/direct.js";
|
|
2
|
-
// Convert the raw source file into source.txt (+ source_manifest.json). Reads:
|
|
3
|
-
// the --source-path file. Writes: workspace/source.txt, source_manifest.json.
|
|
4
|
-
export const sourcePrepareStage = {
|
|
5
|
-
name: "source-prepare",
|
|
6
|
-
output: "source_manifest.json",
|
|
7
|
-
run: (ctx) => stageSourcePrepare(ctx),
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=source-prepare.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"source-prepare.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/source-prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAU;IACvC,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,sBAAsB;IAC9B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC;CACtC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { stageStateBinding } from "../../../usecases/direct.js";
|
|
2
|
-
// LLM-assisted scene-level state binding. Reads: ctx.state.script after asset
|
|
3
|
-
// curation. Writes: state_binding.json (+ mutates the in-memory script).
|
|
4
|
-
export const stateBindingStage = {
|
|
5
|
-
name: "state-binding",
|
|
6
|
-
output: "state_binding.json",
|
|
7
|
-
run: (ctx) => stageStateBinding(ctx),
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=state-binding.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state-binding.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/state-binding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,8EAA8E;AAC9E,yEAAyE;AACzE,MAAM,CAAC,MAAM,iBAAiB,GAAU;IACtC,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,oBAAoB;IAC5B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;CACrC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { stageStateCuration } from "../../../usecases/direct.js";
|
|
2
|
-
// LLM-assisted state catalog compression. Reads ctx.state.script after asset
|
|
3
|
-
// curation, writes state_curation.json, and rewrites scene refs/state_changes
|
|
4
|
-
// before state-binding chooses per-scene states.
|
|
5
|
-
export const stateCurationStage = {
|
|
6
|
-
name: "state-curation",
|
|
7
|
-
output: "state_curation.json",
|
|
8
|
-
run: (ctx) => stageStateCuration(ctx),
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=state-curation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state-curation.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/state-curation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,6EAA6E;AAC7E,8EAA8E;AAC9E,iDAAiD;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAU;IACvC,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,qBAAqB;IAC7B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC;CACtC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { stageValidate } from "../../../usecases/direct.js";
|
|
2
|
-
// Validate the assembled script.initial.json. Reads: script.initial.json.
|
|
3
|
-
// Writes: validation.json. `output: null` — validation is cheap and always
|
|
4
|
-
// re-run so status reflects the latest script.
|
|
5
|
-
export const validateStage = {
|
|
6
|
-
name: "validate",
|
|
7
|
-
output: null,
|
|
8
|
-
run: (ctx) => stageValidate(ctx),
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,0EAA0E;AAC1E,2EAA2E;AAC3E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;CACjC,CAAC"}
|
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
import { CliError } from "../common.js";
|
|
2
|
-
type Dict = Record<string, unknown>;
|
|
3
|
-
export declare const _ZH_DIGITS: Record<string, number>;
|
|
4
|
-
export declare const _EP_HEADER_RE: RegExp;
|
|
5
|
-
export declare const _EP_TITLE_PREFIX_RE: RegExp;
|
|
6
|
-
export declare const _TECHNICAL_EP_TITLE_RE: RegExp;
|
|
7
|
-
export declare const BRACKET_ACTION_LABELS: Set<string>;
|
|
8
|
-
export declare function sceneContext(scene: Dict): Dict;
|
|
9
|
-
export declare function setSceneContext(scene: Dict, context: Dict): void;
|
|
10
|
-
export declare function normalizeDigits(value: string): string;
|
|
11
|
-
export declare function parseEpNumber(raw: string): number | null;
|
|
12
|
-
export declare function episodeNumberFromValue(value: unknown, defaultVal?: number | null): number | null;
|
|
13
|
-
export declare function cleanEpisodeShortTitle(rawTitle: unknown): string;
|
|
14
|
-
export declare function isTechnicalEpisodeTitle(rawTitle: unknown): boolean;
|
|
15
|
-
export declare function formatEpisodeTitle(episodeNum: number, rawTitle: unknown): string | null;
|
|
16
|
-
export declare function extractEpisodeTitleCandidate(header: string): string;
|
|
17
|
-
export declare function buildEpisodePlan(sourceText: string): Dict;
|
|
18
|
-
export declare function cleanName(name: unknown): string;
|
|
19
|
-
export declare function splitEntityState(raw: unknown): [string, string | null];
|
|
20
|
-
export declare function splitLocationState(raw: unknown): [string, string | null];
|
|
21
|
-
export declare function stateLabelError(stateName: unknown): string | null;
|
|
22
|
-
export declare function isStateLabelValid(stateName: unknown): boolean;
|
|
23
|
-
export declare function stateRejectionReason(targetKind: string, stateName: unknown): string | null;
|
|
24
|
-
export declare function isReusableState(targetKind: string, stateName: unknown): boolean;
|
|
25
|
-
export declare function splitNames(raw: string): Array<[string, string | null]>;
|
|
26
|
-
export declare function stripLocationState(location: string): [string, string | null];
|
|
27
|
-
export declare function parseSceneHeader(line: string): Dict | null;
|
|
28
|
-
export declare function lineItemsWithSpans(text: string, base: number): Array<[string, number, number]>;
|
|
29
|
-
export declare function contentSpan(line: string, lineStart: number, content: string): {
|
|
30
|
-
start: number;
|
|
31
|
-
end: number;
|
|
32
|
-
};
|
|
33
|
-
export declare function deterministicExtractEpisode(sourceText: string, episodePlan: Dict): Dict;
|
|
34
|
-
export declare function normalizeInt(value: unknown, defaultVal: number): number;
|
|
35
|
-
export declare function validateResultActionTypes(planItem: Dict, result: Dict): void;
|
|
36
|
-
export declare function validateEpisodeExtractionQuality(_sourceText: string, episodePlan: Dict, result: Dict): void;
|
|
37
|
-
export declare function isMetadataLine(line: string): boolean;
|
|
38
|
-
export declare function isSceneLine(line: string): boolean;
|
|
39
|
-
export declare function extractSourceLineAction(line: string, start: number): Dict | null;
|
|
40
|
-
export declare function sourceContentLineRecords(sourceText: string, planItem: Dict): Dict[];
|
|
41
|
-
export declare function episodesNeedingGeneratedTitles(episodePlan: Dict): Dict[];
|
|
42
|
-
export declare function deterministicEpisodeShortTitle(sourceText: string, episode: Dict): string;
|
|
43
|
-
export declare function buildEpisodeTitleContext(sourceText: string, episodePlan: Dict): Dict[];
|
|
44
|
-
export declare function episodeTitleResponseMap(payload: unknown): Map<number, string>;
|
|
45
|
-
export interface ProviderLike {
|
|
46
|
-
name?: string;
|
|
47
|
-
completeText?(request: {
|
|
48
|
-
system: string;
|
|
49
|
-
user: string;
|
|
50
|
-
signal?: AbortSignal;
|
|
51
|
-
}): Promise<{
|
|
52
|
-
text: string;
|
|
53
|
-
raw?: unknown;
|
|
54
|
-
}> | {
|
|
55
|
-
text: string;
|
|
56
|
-
raw?: unknown;
|
|
57
|
-
};
|
|
58
|
-
extractEpisode?(sourceText: string, plan: Dict): Promise<Dict> | Dict;
|
|
59
|
-
extractBatch?(sourceText: string, plan: Dict): Promise<Dict> | Dict;
|
|
60
|
-
extractMetadata?(sourceText: string, script: Dict): Promise<Dict> | Dict;
|
|
61
|
-
groupAssets?(script: Dict, contextText: string): Promise<string> | string;
|
|
62
|
-
curateAssets?(script: Dict, contextText: string): Promise<string> | string;
|
|
63
|
-
curateStates?(script: Dict, contextText: string): Promise<string> | string;
|
|
64
|
-
bindStates?(script: Dict, context: Dict): Promise<Dict> | Dict;
|
|
65
|
-
extractEpisodeTitles?(sourceText: string, plan: Dict): Promise<Dict> | Dict;
|
|
66
|
-
extractEpisodeSynopsis?(synopses: string[], ctx: Dict): Promise<Dict> | Dict;
|
|
67
|
-
extractScriptSynopsis?(synopses: string[], ctx: Dict): Promise<Dict> | Dict;
|
|
68
|
-
}
|
|
69
|
-
export declare const DEFAULT_TITLE_CHUNK_SIZE = 10;
|
|
70
|
-
export declare function chunkEpisodesNeedingTitles(episodePlan: Dict, chunkSize: number): Dict[][];
|
|
71
|
-
export declare function applyEpisodeTitlesToPlan(sourceText: string, episodePlan: Dict, generated: Map<number, string>): number[];
|
|
72
|
-
export declare function formatBatchSource(sourceText: string, batchPlan: Dict): string;
|
|
73
|
-
export declare function lineNumberAt(sourceText: string, offset: number): number;
|
|
74
|
-
export declare function batchContextFor(sourceText: string, episode: Dict, start: number): Dict;
|
|
75
|
-
export declare function makeBatch(sourceText: string, episode: Dict, batchIndex: number, part: number, lines: Array<[string, number, number]>): Dict;
|
|
76
|
-
export interface BuildBatchPlanOptions {
|
|
77
|
-
targetLines?: number;
|
|
78
|
-
maxChars?: number;
|
|
79
|
-
minLines?: number;
|
|
80
|
-
mode?: string;
|
|
81
|
-
}
|
|
82
|
-
export declare function buildBatchPlan(sourceText: string, episodePlan: Dict, opts?: BuildBatchPlanOptions): Dict;
|
|
83
|
-
export declare function validateBatchExtractionQuality(_sourceText: string, batchPlan: Dict, result: Dict): void;
|
|
84
|
-
export declare function recoverBatchFromSource(sourceText: string, batchPlan: Dict): Dict;
|
|
85
|
-
export declare function isRecoverableBatchCliError(exc: CliError): boolean;
|
|
86
|
-
export declare function isRetryableProviderError(exc: unknown): boolean;
|
|
87
|
-
export declare function providerAttempts(): number;
|
|
88
|
-
export declare function providerExtractBatch(provider: ProviderLike, sourceText: string, batch: Dict): Promise<Dict>;
|
|
89
|
-
export declare function extractBatchWithRecovery(provider: ProviderLike, sourceText: string, batch: Dict): Promise<Dict>;
|
|
90
|
-
export declare function _md_push_asset(items: Dict[], rawName: string, description: string | null): void;
|
|
91
|
-
export declare function parseSpeakerRef(raw: unknown): [string, string];
|
|
92
|
-
export declare function parseSpeakerAsset(raw: unknown): [string, string];
|
|
93
|
-
export declare function inferNonActorSpeakerKind(name: string, scene?: Dict | null): string;
|
|
94
|
-
export declare function normalizeDeliveryToken(value: unknown): string;
|
|
95
|
-
export declare function contentHasSpeakerPrefix(content: string, speakerNames: Set<string>): boolean;
|
|
96
|
-
export declare function splitSpeakerRefs(raw: unknown): string[];
|
|
97
|
-
export declare function speakerRefEntry(scene: Dict, rawSpeaker: unknown, defaultKind?: string): {
|
|
98
|
-
speaker: string;
|
|
99
|
-
speaker_kind: string;
|
|
100
|
-
} | null;
|
|
101
|
-
export declare function applyDialogueSpeaker(action: Dict, scene: Dict, rawSpeaker: unknown, defaultKind?: string): void;
|
|
102
|
-
export declare function parseOverlapMarkdownLines(content: string, scene: Dict): Array<{
|
|
103
|
-
speaker: string;
|
|
104
|
-
speaker_kind: string;
|
|
105
|
-
content: string;
|
|
106
|
-
}>;
|
|
107
|
-
export interface ParseMarkdownBatchOptions {
|
|
108
|
-
/**
|
|
109
|
-
* When true, the parser treats input as a single-episode fragment:
|
|
110
|
-
* - batchPlan fields beyond `episode` may be omitted (sensible defaults applied)
|
|
111
|
-
* - the `# 资产` section is optional (already accepted by the strict parser, but explicitly tolerated here)
|
|
112
|
-
* - scene numbers need not start from 1 or be consecutive
|
|
113
|
-
* - error messages use "fragment" terminology
|
|
114
|
-
*
|
|
115
|
-
* Default false preserves existing direct init behavior (zero regression).
|
|
116
|
-
*/
|
|
117
|
-
fragmentMode?: boolean;
|
|
118
|
-
}
|
|
119
|
-
export declare function parseMarkdownBatch(text: string, batchPlan: Dict, opts?: ParseMarkdownBatchOptions): Dict;
|
|
120
|
-
/**
|
|
121
|
-
* Parse one single-kind asset document for `scriptctl parse`.
|
|
122
|
-
*
|
|
123
|
-
* The parse workflow is deliberately NOT the write/direct layout: the 正文 md
|
|
124
|
-
* carries only the screenplay (no asset registration at all), and each asset
|
|
125
|
-
* KIND lives in ONE shared file that every subagent appends to —
|
|
126
|
-
* 人物.md / 场景.md / 道具.md / 发声源.md.
|
|
127
|
-
*
|
|
128
|
-
* Primary format = a bullet per asset, with its 外观造型档位(状态)as INDENTED
|
|
129
|
-
* sub-bullets:
|
|
130
|
-
* - 陈墨: 归国的复仇者 ← 顶级 bullet = 一个资产(: 后是身份/描述)
|
|
131
|
-
* - 默认: 深色风衣 ← 缩进 sub-bullet = 该资产的一个状态
|
|
132
|
-
* - 西装: 一身定制西装
|
|
133
|
-
* A flat `- 陈墨|西装: 描述` line is also accepted (self-contained state), so
|
|
134
|
-
* workers can append either way; duplicates are tolerated and collapsed later.
|
|
135
|
-
* 发声源 uses `- name(kind): description` and has no states. Any markdown header
|
|
136
|
-
* (`# 人物` / `## …`) is ignored.
|
|
137
|
-
*/
|
|
138
|
-
export declare function parseAssetDoc(text: string, kind: "actors" | "locations" | "props" | "speakers"): Dict;
|
|
139
|
-
export declare function serializeAssetDoc(script: Dict, kind: "actors" | "locations" | "props" | "speakers"): string;
|
|
140
|
-
export declare function serializeMetaDoc(script: Dict): string;
|
|
141
|
-
export declare function expandCompactEpisodeResult(result: Dict, episodePlan: Dict): Dict;
|
|
142
|
-
export declare function compactEpisodeResult(result: Dict): Dict;
|
|
143
|
-
export declare function compactBatchResult(result: Dict): Dict;
|
|
144
|
-
export interface SynopsisReductionPlan {
|
|
145
|
-
fitsInOnePass: boolean;
|
|
146
|
-
groups: number[][];
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Plan ONE level of the whole-script synopsis reduce.
|
|
150
|
-
*
|
|
151
|
-
* We can only char-group the items we actually have (their lengths are known);
|
|
152
|
-
* a merged group's output length isn't known until the LLM produces it. So this
|
|
153
|
-
* stays single-level and the orchestrator loops — call it on the episode
|
|
154
|
-
* synopses, merge each group, then call it again on the merged outputs until it
|
|
155
|
-
* returns fitsInOnePass, then run the final extractScriptSynopsis on whatever
|
|
156
|
-
* survives. Pure: it never calls the provider.
|
|
157
|
-
*
|
|
158
|
-
* Boundaries: total ≤ threshold (or ≤1 item) → one pass; total ≫ threshold →
|
|
159
|
-
* multiple bounded groups; every item alone already over threshold → no
|
|
160
|
-
* grouping can make progress, so degrade to one pass rather than loop forever.
|
|
161
|
-
*/
|
|
162
|
-
export declare function planSynopsisReduction(synopses: string[], thresholdChars: number, groupSize: number): SynopsisReductionPlan;
|
|
163
|
-
export declare function cleanSynopsisList(items: unknown): string[];
|
|
164
|
-
export declare function readCarriedSynopsis(d: Dict): string;
|
|
165
|
-
export declare function sortDeep(value: unknown): unknown;
|
|
166
|
-
export declare function normalizeEpisodeResult(result: Dict, episodePlan: Dict): Dict;
|
|
167
|
-
export declare function _normalize_speaker_list(items: unknown): Dict[];
|
|
168
|
-
export declare function uniqueAdd(order: string[], value: string): void;
|
|
169
|
-
export declare function clipText(text: unknown, limit?: number): string;
|
|
170
|
-
export declare function sceneExample(scene: Dict, limit?: number): string;
|
|
171
|
-
export declare function buildMetadataContext(script: Dict): Dict;
|
|
172
|
-
export declare function deterministicExtractMetadata(script: Dict): Dict;
|
|
173
|
-
export interface MetadataMdSections {
|
|
174
|
-
worldviewRaw: string;
|
|
175
|
-
actors: Map<string, {
|
|
176
|
-
role: string;
|
|
177
|
-
description: string;
|
|
178
|
-
}>;
|
|
179
|
-
locations: Map<string, string>;
|
|
180
|
-
props: Map<string, string>;
|
|
181
|
-
}
|
|
182
|
-
export declare function overlayMetadataSections(parsed: MetadataMdSections, script: Dict): Dict;
|
|
183
|
-
export declare function parseGlobalMetadataMd(raw: string): {
|
|
184
|
-
worldviewRaw: string;
|
|
185
|
-
protagonistIds: string[];
|
|
186
|
-
};
|
|
187
|
-
export declare function parseAssetDescriptionsMd(raw: string): Map<string, string>;
|
|
188
|
-
export declare function assembleMetadataFromParts(script: Dict, worldviewRaw: string, protagonistIds: string[], descriptionsById: Map<string, string>): Dict;
|
|
189
|
-
export declare function applyMetadataToScript(script: Dict, metadata: Dict): void;
|
|
190
|
-
interface AssetUsage {
|
|
191
|
-
episodes: Set<string>;
|
|
192
|
-
scenes: Set<string>;
|
|
193
|
-
}
|
|
194
|
-
export declare function sceneAssetUsage(script: Dict, refKey: string, idKey: string): Map<string, AssetUsage>;
|
|
195
|
-
export type AssetCurationSelection = Partial<Record<AssetKind, readonly string[]>>;
|
|
196
|
-
export declare const ASSET_GROUP_MAX_ITEMS = 8;
|
|
197
|
-
export declare const ASSET_GROUP_MAX_CONTEXT_CHARS = 22000;
|
|
198
|
-
export declare function buildAssetCurationContext(script: Dict, kinds?: readonly AssetKind[], selection?: AssetCurationSelection): Dict;
|
|
199
|
-
export declare function formatAssetCurationContextText(context: Dict): string;
|
|
200
|
-
export declare function buildAssetCurationContextText(script: Dict, kinds?: readonly AssetKind[], selection?: AssetCurationSelection): string;
|
|
201
|
-
export declare function buildAssetGroupingContextText(script: Dict, kind: AssetKind): string;
|
|
202
|
-
export interface AssetCurationChunkOptions {
|
|
203
|
-
maxItems: number;
|
|
204
|
-
maxContextChars: number;
|
|
205
|
-
}
|
|
206
|
-
export declare function buildPrimaryAssetCurationChunks(script: Dict, kind: AssetKind, options?: AssetCurationChunkOptions): string[][];
|
|
207
|
-
export declare function extractAssetGroupingExpressions(rawText: string): string[];
|
|
208
|
-
export declare function parseAssetGroupingExpressions(rawText: string): Dict;
|
|
209
|
-
export declare function validateAssetGroupingPlan(script: Dict, kind: AssetKind, rawPlan: Dict): Dict;
|
|
210
|
-
export declare function groupedAssetCurationChunks(script: Dict, kind: AssetKind, groups: readonly Dict[], options?: AssetCurationChunkOptions): string[][];
|
|
211
|
-
export declare function buildAssetCurationRepairContextText(opts: {
|
|
212
|
-
baseContextText: string;
|
|
213
|
-
repairSourceKeys: readonly string[];
|
|
214
|
-
rejectedExpressions: readonly Dict[];
|
|
215
|
-
acceptedDecisions: readonly Dict[];
|
|
216
|
-
}): string;
|
|
217
|
-
export declare function missingAssetCurationRequiredSourceKeys(script: Dict, rawPlan: unknown): string[];
|
|
218
|
-
export declare function assetCurationAuditCandidateSourceKeys(script: Dict, rawPlan: unknown): string[];
|
|
219
|
-
export declare function assetCurationAuditSourceKeys(script: Dict, rawPlan: unknown): string[];
|
|
220
|
-
export declare function buildAssetCurationAuditContextText(script: Dict, primaryPlan: unknown, selectedSourceKeys?: readonly string[]): string;
|
|
221
|
-
export declare function locationCanonicalizationCandidateSourceKeys(script: Dict, rawPlan: unknown): string[];
|
|
222
|
-
export declare function buildLocationCanonicalizationAuditContextText(script: Dict, rawPlan: unknown, selectedSourceKeys?: readonly string[]): string;
|
|
223
|
-
export declare function assertLocationCanonicalizationPlan(rawPlan: unknown): void;
|
|
224
|
-
export declare function combineLocationCanonicalizationPlan(script: Dict, basePlan: Dict, locationPlan: Dict, allowedNewLocationSources?: string[]): Dict;
|
|
225
|
-
export declare function applyLocationMerges(script: Dict, replacements: Map<string, string>): void;
|
|
226
|
-
export declare function actorCurationDecisions(script: Dict): Dict[];
|
|
227
|
-
export declare function propCurationDecisions(script: Dict): Dict[];
|
|
228
|
-
export declare function extractAssetCurationExpressions(rawText: string): string[];
|
|
229
|
-
export interface RejectedAssetCurationExpression {
|
|
230
|
-
index: number;
|
|
231
|
-
raw: string;
|
|
232
|
-
error: string;
|
|
233
|
-
source_key: string | null;
|
|
234
|
-
}
|
|
235
|
-
export declare function guessAssetCurationExpressionSourceKey(rawExpression: string): string | null;
|
|
236
|
-
export declare function parseAssetCurationExpressionsTolerant(rawText: string): Dict;
|
|
237
|
-
export declare function parseAssetCurationExpressions(rawText: string): Dict;
|
|
238
|
-
export declare function formatAssetCurationDecisionExpressions(plan: Dict): string;
|
|
239
|
-
export declare function combineAssetCurationExpressionPlans(plans: readonly Dict[]): Dict;
|
|
240
|
-
export declare function combinePrimaryAssetCurationPlans(plans: readonly Dict[]): Dict;
|
|
241
|
-
interface CombineAssetCurationPlanOptions {
|
|
242
|
-
salvageInvalidAuditSources?: boolean;
|
|
243
|
-
}
|
|
244
|
-
export declare function combineAssetCurationPlans(primaryPlan: Dict, auditPlan: Dict, allowedNewAuditSources?: string[], options?: CombineAssetCurationPlanOptions): Dict;
|
|
245
|
-
export declare function applyAssetCurationPlan(script: Dict, rawPlan: unknown): Dict;
|
|
246
|
-
export declare function applyAssetGroupingDuplicateMerges(script: Dict, rawPlan: unknown): Dict;
|
|
247
|
-
export declare function normalizeAssetCuration(script: Dict, rawCuration: unknown): Dict;
|
|
248
|
-
export declare function curateScriptAssets(script: Dict, rawCuration?: unknown): Dict;
|
|
249
|
-
export declare const STATE_CURATION_MAX_ASSETS = 4;
|
|
250
|
-
export declare const STATE_CURATION_MAX_CONTEXT_CHARS = 28000;
|
|
251
|
-
export interface StateCurationAssetRef {
|
|
252
|
-
kind: AssetKind;
|
|
253
|
-
asset_id: string;
|
|
254
|
-
}
|
|
255
|
-
export declare function buildStateCurationContextText(script: Dict, refs?: readonly StateCurationAssetRef[]): string;
|
|
256
|
-
export declare function buildStateCurationChunks(script: Dict, options?: {
|
|
257
|
-
maxAssets?: number;
|
|
258
|
-
maxContextChars?: number;
|
|
259
|
-
}): Array<{
|
|
260
|
-
part_id: string;
|
|
261
|
-
refs: StateCurationAssetRef[];
|
|
262
|
-
}>;
|
|
263
|
-
export declare function parseStateCurationExpressions(rawText: string): Dict;
|
|
264
|
-
export declare function formatStateCurationDecisionExpressions(plan: Dict): string;
|
|
265
|
-
export declare function stateCurationSourceKeysForRefs(script: Dict, refs: readonly StateCurationAssetRef[]): string[];
|
|
266
|
-
export declare function missingStateCurationRequiredSourceKeys(script: Dict, plan: Dict, requiredKeys?: readonly string[]): string[];
|
|
267
|
-
export declare function assertStateCurationPlan(script: Dict, plan: Dict, requiredKeys?: readonly string[]): Dict;
|
|
268
|
-
export declare function applyStateCurationPlan(script: Dict, rawPlan: Dict): Dict;
|
|
269
|
-
export declare function normalizeStateBindingPlanShape(rawPlan: unknown): Dict | null;
|
|
270
|
-
export declare function ensureDefaultStates(script: Dict): Dict;
|
|
271
|
-
export declare function bindDefaultStateRefsInScript(script: Dict): Dict;
|
|
272
|
-
export declare function buildStateBindingContexts(script: Dict, chunkSize?: number): Dict[];
|
|
273
|
-
interface StateBindingApplyOptions {
|
|
274
|
-
invalidStateMode?: "reject" | "skip";
|
|
275
|
-
}
|
|
276
|
-
export declare function applyStateBindingPlan(script: Dict, rawPlan: unknown, options?: StateBindingApplyOptions): Dict;
|
|
277
|
-
export type AssetKind = "actor" | "location" | "prop";
|
|
278
|
-
export type CanonicalAssetKey = string;
|
|
279
|
-
export type AssetNormalizationAction = "canonical_merge" | "location_state_from_name" | "location_state_from_time" | "review";
|
|
280
|
-
export interface AssetNormalizationDecision {
|
|
281
|
-
action: AssetNormalizationAction;
|
|
282
|
-
kind: AssetKind;
|
|
283
|
-
from?: string;
|
|
284
|
-
into?: string;
|
|
285
|
-
state?: string;
|
|
286
|
-
episode?: number;
|
|
287
|
-
scene_num?: number;
|
|
288
|
-
reason: string;
|
|
289
|
-
}
|
|
290
|
-
export interface AssetNormalizationReport {
|
|
291
|
-
version: 1;
|
|
292
|
-
mode: "conservative";
|
|
293
|
-
summary: {
|
|
294
|
-
asset_merges: number;
|
|
295
|
-
location_states_from_names: number;
|
|
296
|
-
location_states_from_time: number;
|
|
297
|
-
review_items: number;
|
|
298
|
-
};
|
|
299
|
-
decisions: AssetNormalizationDecision[];
|
|
300
|
-
}
|
|
301
|
-
interface MergeEpisodeResultsOptions {
|
|
302
|
-
bindDefaultStateRefs?: boolean;
|
|
303
|
-
trackUnresolvedStateRefs?: boolean;
|
|
304
|
-
assetNormalization?: "conservative" | "off";
|
|
305
|
-
}
|
|
306
|
-
export interface MergeEpisodeResultsWithReportResult {
|
|
307
|
-
script: Dict;
|
|
308
|
-
assetNormalization: AssetNormalizationReport;
|
|
309
|
-
}
|
|
310
|
-
export declare function canonicalAssetNameKey(kind: AssetKind, rawName: unknown): CanonicalAssetKey;
|
|
311
|
-
export declare function mergeEpisodeResultsWithReport(results: Dict[], title: string, opts?: MergeEpisodeResultsOptions): MergeEpisodeResultsWithReportResult;
|
|
312
|
-
export declare function mergeEpisodeResults(results: Dict[], title: string, opts?: MergeEpisodeResultsOptions): Dict;
|
|
313
|
-
export {};
|