@lingjingai/scriptctl 0.49.16 → 0.51.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 +8 -2
- package/changes/0.50.0.md +63 -0
- package/changes/0.51.0.md +24 -0
- package/dist/cli/register-batch.d.ts +3 -0
- package/dist/cli/register-batch.js +28 -0
- package/dist/cli/register-batch.js.map +1 -0
- package/dist/cli/register-edits.d.ts +4 -0
- package/dist/cli/register-edits.js +226 -0
- package/dist/cli/register-edits.js.map +1 -0
- package/dist/cli/register-query.d.ts +4 -0
- package/dist/cli/register-query.js +93 -0
- package/dist/cli/register-query.js.map +1 -0
- package/dist/cli/register-tools.d.ts +3 -0
- package/dist/cli/register-tools.js +23 -0
- package/dist/cli/register-tools.js.map +1 -0
- package/dist/cli/register-workflows.d.ts +4 -0
- package/dist/cli/register-workflows.js +71 -0
- package/dist/cli/register-workflows.js.map +1 -0
- package/dist/cli/registry.d.ts +14 -0
- package/dist/cli/registry.js +65 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +146 -575
- package/dist/cli.js.map +1 -1
- package/dist/common.d.ts +12 -38
- package/dist/common.js +5 -11
- package/dist/common.js.map +1 -1
- package/dist/domain/authoring/apply.d.ts +1 -33
- package/dist/domain/authoring/apply.js +1 -783
- package/dist/domain/authoring/apply.js.map +1 -1
- package/dist/domain/authoring/export.d.ts +1 -7
- package/dist/domain/authoring/export.js +1 -84
- package/dist/domain/authoring/export.js.map +1 -1
- package/dist/domain/authoring/parser.d.ts +2 -3
- package/dist/domain/authoring/parser.js +2 -914
- package/dist/domain/authoring/parser.js.map +1 -1
- package/dist/domain/authoring/serializer.d.ts +1 -2
- package/dist/domain/authoring/serializer.js +1 -243
- package/dist/domain/authoring/serializer.js.map +1 -1
- package/dist/domain/authoring/shared/bracket.d.ts +4 -0
- package/dist/domain/authoring/shared/bracket.js +95 -0
- package/dist/domain/authoring/shared/bracket.js.map +1 -0
- package/dist/domain/authoring/shared/types.d.ts +12 -0
- package/dist/domain/authoring/shared/types.js +2 -0
- package/dist/domain/authoring/shared/types.js.map +1 -0
- package/dist/domain/authoring/types.d.ts +2 -87
- package/dist/domain/authoring/types.js +2 -1
- package/dist/domain/authoring/types.js.map +1 -1
- package/dist/domain/authoring/v3/apply.d.ts +33 -0
- package/dist/domain/authoring/v3/apply.js +784 -0
- package/dist/domain/authoring/v3/apply.js.map +1 -0
- package/dist/domain/authoring/v3/export.d.ts +7 -0
- package/dist/domain/authoring/v3/export.js +85 -0
- package/dist/domain/authoring/v3/export.js.map +1 -0
- package/dist/domain/authoring/v3/parser.d.ts +3 -0
- package/dist/domain/authoring/v3/parser.js +823 -0
- package/dist/domain/authoring/v3/parser.js.map +1 -0
- package/dist/domain/authoring/v3/serializer.d.ts +2 -0
- package/dist/domain/authoring/v3/serializer.js +244 -0
- package/dist/domain/authoring/v3/serializer.js.map +1 -0
- package/dist/domain/authoring/v3/types.d.ts +76 -0
- package/dist/domain/authoring/v3/types.js +2 -0
- package/dist/domain/authoring/v3/types.js.map +1 -0
- package/dist/domain/authoring/v4/apply.d.ts +40 -0
- package/dist/domain/authoring/v4/apply.js +451 -0
- package/dist/domain/authoring/v4/apply.js.map +1 -0
- package/dist/domain/authoring/v4/parser.d.ts +2 -0
- package/dist/domain/authoring/v4/parser.js +729 -0
- package/dist/domain/authoring/v4/parser.js.map +1 -0
- package/dist/domain/authoring/v4/serializer.d.ts +6 -0
- package/dist/domain/authoring/v4/serializer.js +280 -0
- package/dist/domain/authoring/v4/serializer.js.map +1 -0
- package/dist/domain/authoring/v4/types.d.ts +50 -0
- package/dist/domain/authoring/v4/types.js +2 -0
- package/dist/domain/authoring/v4/types.js.map +1 -0
- package/dist/domain/ingest/apply-plan.d.ts +1 -1
- package/dist/domain/ingest/assembler.d.ts +9 -0
- package/dist/domain/ingest/assembler.js +98 -36
- package/dist/domain/ingest/assembler.js.map +1 -1
- package/dist/domain/ingest/asset-audit.d.ts +50 -0
- package/dist/domain/ingest/asset-audit.js +196 -0
- package/dist/domain/ingest/asset-audit.js.map +1 -0
- package/dist/domain/ingest/production-validation.d.ts +5 -4
- package/dist/domain/ingest/production-validation.js +10 -25
- package/dist/domain/ingest/production-validation.js.map +1 -1
- package/dist/domain/ingest/records.d.ts +1 -1
- package/dist/domain/ingest/records.js +1 -1
- package/dist/domain/ingest/records.js.map +1 -1
- package/dist/domain/ingest/serial-context.d.ts +1 -1
- package/dist/domain/ingest/validation.d.ts +1 -11
- package/dist/domain/ingest/validation.js +1 -199
- package/dist/domain/ingest/validation.js.map +1 -1
- package/dist/domain/ingest/video-apply.js +68 -45
- package/dist/domain/ingest/video-apply.js.map +1 -1
- package/dist/domain/script/address.d.ts +1 -32
- package/dist/domain/script/address.js +1 -144
- package/dist/domain/script/address.js.map +1 -1
- package/dist/domain/script/dispatch.d.ts +14 -0
- package/dist/domain/script/dispatch.js +45 -0
- package/dist/domain/script/dispatch.js.map +1 -0
- package/dist/domain/script/lookups.d.ts +1 -33
- package/dist/domain/script/lookups.js +1 -316
- package/dist/domain/script/lookups.js.map +1 -1
- package/dist/domain/script/parse.d.ts +1 -3
- package/dist/domain/script/parse.js +1 -164
- package/dist/domain/script/parse.js.map +1 -1
- package/dist/domain/script/patch/apply.d.ts +1 -2
- package/dist/domain/script/patch/apply.js +1 -30
- package/dist/domain/script/patch/apply.js.map +1 -1
- package/dist/domain/script/patch/helpers.d.ts +1 -17
- package/dist/domain/script/patch/helpers.js +1 -210
- package/dist/domain/script/patch/helpers.js.map +1 -1
- package/dist/domain/script/patch/inline-speaker.d.ts +1 -2
- package/dist/domain/script/patch/inline-speaker.js +1 -49
- package/dist/domain/script/patch/inline-speaker.js.map +1 -1
- package/dist/domain/script/patch/ops-action.d.ts +1 -12
- package/dist/domain/script/patch/ops-action.js +1 -366
- package/dist/domain/script/patch/ops-action.js.map +1 -1
- package/dist/domain/script/patch/ops-asset.d.ts +1 -14
- package/dist/domain/script/patch/ops-asset.js +1 -364
- package/dist/domain/script/patch/ops-asset.js.map +1 -1
- package/dist/domain/script/patch/ops-dialogue.d.ts +1 -2
- package/dist/domain/script/patch/ops-dialogue.js +1 -25
- package/dist/domain/script/patch/ops-dialogue.js.map +1 -1
- package/dist/domain/script/patch/ops-extend.d.ts +1 -8
- package/dist/domain/script/patch/ops-extend.js +1 -110
- package/dist/domain/script/patch/ops-extend.js.map +1 -1
- package/dist/domain/script/patch/ops-meta.d.ts +1 -5
- package/dist/domain/script/patch/ops-meta.js +1 -81
- package/dist/domain/script/patch/ops-meta.js.map +1 -1
- package/dist/domain/script/patch/ops-scene.d.ts +1 -6
- package/dist/domain/script/patch/ops-scene.js +1 -350
- package/dist/domain/script/patch/ops-scene.js.map +1 -1
- package/dist/domain/script/patch/ops-state.d.ts +1 -8
- package/dist/domain/script/patch/ops-state.js +1 -164
- package/dist/domain/script/patch/ops-state.js.map +1 -1
- package/dist/domain/script/patch/registry.d.ts +1 -2
- package/dist/domain/script/patch/registry.js +1 -52
- package/dist/domain/script/patch/registry.js.map +1 -1
- package/dist/domain/script/patch/types.d.ts +1 -10
- package/dist/domain/script/patch/types.js +1 -1
- package/dist/domain/script/patch/types.js.map +1 -1
- package/dist/domain/script/refs.d.ts +1 -4
- package/dist/domain/script/refs.js +1 -63
- package/dist/domain/script/refs.js.map +1 -1
- package/dist/domain/script/scene-refs.d.ts +1 -3
- package/dist/domain/script/scene-refs.js +1 -34
- package/dist/domain/script/scene-refs.js.map +1 -1
- package/dist/domain/script/schema.d.ts +1 -6
- package/dist/domain/script/schema.js +1 -55
- package/dist/domain/script/schema.js.map +1 -1
- package/dist/domain/script/selector.d.ts +1 -45
- package/dist/domain/script/selector.js +1 -184
- package/dist/domain/script/selector.js.map +1 -1
- package/dist/domain/script/shared/regex.d.ts +2 -0
- package/dist/domain/script/shared/regex.js +7 -0
- package/dist/domain/script/shared/regex.js.map +1 -0
- package/dist/domain/script/shared/types.d.ts +18 -0
- package/dist/domain/script/shared/types.js +9 -0
- package/dist/domain/script/shared/types.js.map +1 -0
- package/dist/domain/script/shared/validation.d.ts +10 -0
- package/dist/domain/script/shared/validation.js +2 -0
- package/dist/domain/script/shared/validation.js.map +1 -0
- package/dist/domain/script/shared.js +4 -6
- package/dist/domain/script/shared.js.map +1 -1
- package/dist/domain/script/types.d.ts +1 -123
- package/dist/domain/script/types.js +1 -8
- package/dist/domain/script/types.js.map +1 -1
- package/dist/domain/script/v3/address.d.ts +32 -0
- package/dist/domain/script/v3/address.js +136 -0
- package/dist/domain/script/v3/address.js.map +1 -0
- package/dist/domain/script/v3/lookups.d.ts +33 -0
- package/dist/domain/script/v3/lookups.js +316 -0
- package/dist/domain/script/v3/lookups.js.map +1 -0
- package/dist/domain/script/v3/ordinal.d.ts +8 -0
- package/dist/domain/script/v3/ordinal.js +91 -0
- package/dist/domain/script/v3/ordinal.js.map +1 -0
- package/dist/domain/script/v3/parse.d.ts +3 -0
- package/dist/domain/script/v3/parse.js +164 -0
- package/dist/domain/script/v3/parse.js.map +1 -0
- package/dist/domain/script/v3/patch/apply.d.ts +2 -0
- package/dist/domain/script/v3/patch/apply.js +31 -0
- package/dist/domain/script/v3/patch/apply.js.map +1 -0
- package/dist/domain/script/v3/patch/helpers.d.ts +17 -0
- package/dist/domain/script/v3/patch/helpers.js +209 -0
- package/dist/domain/script/v3/patch/helpers.js.map +1 -0
- package/dist/domain/script/v3/patch/inline-speaker.d.ts +2 -0
- package/dist/domain/script/v3/patch/inline-speaker.js +50 -0
- package/dist/domain/script/v3/patch/inline-speaker.js.map +1 -0
- package/dist/domain/script/v3/patch/ops-action.d.ts +12 -0
- package/dist/domain/script/v3/patch/ops-action.js +367 -0
- package/dist/domain/script/v3/patch/ops-action.js.map +1 -0
- package/dist/domain/script/v3/patch/ops-asset.d.ts +14 -0
- package/dist/domain/script/v3/patch/ops-asset.js +365 -0
- package/dist/domain/script/v3/patch/ops-asset.js.map +1 -0
- package/dist/domain/script/v3/patch/ops-dialogue.d.ts +2 -0
- package/dist/domain/script/v3/patch/ops-dialogue.js +26 -0
- package/dist/domain/script/v3/patch/ops-dialogue.js.map +1 -0
- package/dist/domain/script/v3/patch/ops-extend.d.ts +8 -0
- package/dist/domain/script/v3/patch/ops-extend.js +111 -0
- package/dist/domain/script/v3/patch/ops-extend.js.map +1 -0
- package/dist/domain/script/v3/patch/ops-meta.d.ts +5 -0
- package/dist/domain/script/v3/patch/ops-meta.js +82 -0
- package/dist/domain/script/v3/patch/ops-meta.js.map +1 -0
- package/dist/domain/script/v3/patch/ops-scene.d.ts +6 -0
- package/dist/domain/script/v3/patch/ops-scene.js +351 -0
- package/dist/domain/script/v3/patch/ops-scene.js.map +1 -0
- package/dist/domain/script/v3/patch/ops-state.d.ts +8 -0
- package/dist/domain/script/v3/patch/ops-state.js +165 -0
- package/dist/domain/script/v3/patch/ops-state.js.map +1 -0
- package/dist/domain/script/v3/patch/registry.d.ts +2 -0
- package/dist/domain/script/v3/patch/registry.js +53 -0
- package/dist/domain/script/v3/patch/registry.js.map +1 -0
- package/dist/domain/script/v3/patch/types.d.ts +10 -0
- package/dist/domain/script/v3/patch/types.js +2 -0
- package/dist/domain/script/v3/patch/types.js.map +1 -0
- package/dist/domain/script/v3/refs.d.ts +4 -0
- package/dist/domain/script/v3/refs.js +64 -0
- package/dist/domain/script/v3/refs.js.map +1 -0
- package/dist/domain/script/v3/scene-refs.d.ts +3 -0
- package/dist/domain/script/v3/scene-refs.js +35 -0
- package/dist/domain/script/v3/scene-refs.js.map +1 -0
- package/dist/domain/script/v3/schema.d.ts +6 -0
- package/dist/domain/script/v3/schema.js +56 -0
- package/dist/domain/script/v3/schema.js.map +1 -0
- package/dist/domain/script/v3/selector.d.ts +44 -0
- package/dist/domain/script/v3/selector.js +178 -0
- package/dist/domain/script/v3/selector.js.map +1 -0
- package/dist/domain/script/v3/types.d.ts +106 -0
- package/dist/domain/script/v3/types.js +2 -0
- package/dist/domain/script/v3/types.js.map +1 -0
- package/dist/domain/script/v3/validation.d.ts +3 -0
- package/dist/domain/script/v3/validation.js +200 -0
- package/dist/domain/script/v3/validation.js.map +1 -0
- package/dist/domain/script/v4/address.d.ts +61 -0
- package/dist/domain/script/v4/address.js +99 -0
- package/dist/domain/script/v4/address.js.map +1 -0
- package/dist/domain/script/v4/factory.d.ts +2 -0
- package/dist/domain/script/v4/factory.js +13 -0
- package/dist/domain/script/v4/factory.js.map +1 -0
- package/dist/domain/script/v4/from-v3.d.ts +29 -0
- package/dist/domain/script/v4/from-v3.js +307 -0
- package/dist/domain/script/v4/from-v3.js.map +1 -0
- package/dist/domain/script/v4/ids.d.ts +27 -0
- package/dist/domain/script/v4/ids.js +62 -0
- package/dist/domain/script/v4/ids.js.map +1 -0
- package/dist/domain/script/v4/ordinal.d.ts +3 -0
- package/dist/domain/script/v4/ordinal.js +66 -0
- package/dist/domain/script/v4/ordinal.js.map +1 -0
- package/dist/domain/script/v4/parse.d.ts +3 -0
- package/dist/domain/script/v4/parse.js +17 -0
- package/dist/domain/script/v4/parse.js.map +1 -0
- package/dist/domain/script/v4/patch/apply.d.ts +3 -0
- package/dist/domain/script/v4/patch/apply.js +24 -0
- package/dist/domain/script/v4/patch/apply.js.map +1 -0
- package/dist/domain/script/v4/patch/helpers.d.ts +32 -0
- package/dist/domain/script/v4/patch/helpers.js +138 -0
- package/dist/domain/script/v4/patch/helpers.js.map +1 -0
- package/dist/domain/script/v4/patch/ops-action.d.ts +13 -0
- package/dist/domain/script/v4/patch/ops-action.js +376 -0
- package/dist/domain/script/v4/patch/ops-action.js.map +1 -0
- package/dist/domain/script/v4/patch/ops-asset.d.ts +17 -0
- package/dist/domain/script/v4/patch/ops-asset.js +617 -0
- package/dist/domain/script/v4/patch/ops-asset.js.map +1 -0
- package/dist/domain/script/v4/patch/ops-extend.d.ts +11 -0
- package/dist/domain/script/v4/patch/ops-extend.js +86 -0
- package/dist/domain/script/v4/patch/ops-extend.js.map +1 -0
- package/dist/domain/script/v4/patch/ops-meta.d.ts +5 -0
- package/dist/domain/script/v4/patch/ops-meta.js +49 -0
- package/dist/domain/script/v4/patch/ops-meta.js.map +1 -0
- package/dist/domain/script/v4/patch/ops-scene-ref.d.ts +3 -0
- package/dist/domain/script/v4/patch/ops-scene-ref.js +98 -0
- package/dist/domain/script/v4/patch/ops-scene-ref.js.map +1 -0
- package/dist/domain/script/v4/patch/ops-structure.d.ts +6 -0
- package/dist/domain/script/v4/patch/ops-structure.js +236 -0
- package/dist/domain/script/v4/patch/ops-structure.js.map +1 -0
- package/dist/domain/script/v4/patch/registry.d.ts +2 -0
- package/dist/domain/script/v4/patch/registry.js +50 -0
- package/dist/domain/script/v4/patch/registry.js.map +1 -0
- package/dist/domain/script/v4/patch/schema.d.ts +7 -0
- package/dist/domain/script/v4/patch/schema.js +75 -0
- package/dist/domain/script/v4/patch/schema.js.map +1 -0
- package/dist/domain/script/v4/patch/types.d.ts +10 -0
- package/dist/domain/script/v4/patch/types.js +2 -0
- package/dist/domain/script/v4/patch/types.js.map +1 -0
- package/dist/domain/script/v4/selector.d.ts +11 -0
- package/dist/domain/script/v4/selector.js +124 -0
- package/dist/domain/script/v4/selector.js.map +1 -0
- package/dist/domain/script/v4/types.d.ts +120 -0
- package/dist/domain/script/v4/types.js +2 -0
- package/dist/domain/script/v4/types.js.map +1 -0
- package/dist/domain/script/v4/validation.d.ts +2 -0
- package/dist/domain/script/v4/validation.js +378 -0
- package/dist/domain/script/v4/validation.js.map +1 -0
- package/dist/infra/ingest/video-discovery.js +7 -4
- package/dist/infra/ingest/video-discovery.js.map +1 -1
- package/dist/infra/script-output-store.js +6 -11
- package/dist/infra/script-output-store.js.map +1 -1
- package/dist/infra/script-working-copy.js +15 -16
- package/dist/infra/script-working-copy.js.map +1 -1
- package/dist/llm/config.js +5 -4
- package/dist/llm/config.js.map +1 -1
- package/dist/llm/registry.d.ts +1 -0
- package/dist/llm/registry.js +3 -0
- package/dist/llm/registry.js.map +1 -1
- package/dist/llm/router.js +6 -8
- package/dist/llm/router.js.map +1 -1
- package/dist/llm/tasks/ingest/asset-audit.d.ts +6 -0
- package/dist/llm/tasks/ingest/asset-audit.js +164 -0
- package/dist/llm/tasks/ingest/asset-audit.js.map +1 -0
- package/dist/llm/tasks/ingest/asset-curate.d.ts +1 -1
- package/dist/llm/tasks/ingest/text-normalize.js +3 -3
- package/dist/llm/tasks/ingest/text-normalize.js.map +1 -1
- package/dist/llm/tasks/ingest/video-serial.js +3 -3
- package/dist/llm/tasks/ingest/video-serial.js.map +1 -1
- package/dist/llm/types.d.ts +1 -1
- package/dist/llm/types.js.map +1 -1
- package/dist/output.d.ts +2 -3
- package/dist/output.js +72 -109
- package/dist/output.js.map +1 -1
- package/dist/usecases/changelog.d.ts +2 -2
- package/dist/usecases/changelog.js +28 -36
- package/dist/usecases/changelog.js.map +1 -1
- package/dist/usecases/doctor.d.ts +2 -2
- package/dist/usecases/doctor.js +3 -5
- package/dist/usecases/doctor.js.map +1 -1
- package/dist/usecases/ingest/command.d.ts +2 -2
- package/dist/usecases/ingest/command.js +23 -6
- package/dist/usecases/ingest/command.js.map +1 -1
- package/dist/usecases/ingest/final-asset-audit.d.ts +39 -0
- package/dist/usecases/ingest/final-asset-audit.js +88 -0
- package/dist/usecases/ingest/final-asset-audit.js.map +1 -0
- package/dist/usecases/ingest/pass5-extract.js +5 -4
- package/dist/usecases/ingest/pass5-extract.js.map +1 -1
- package/dist/usecases/ingest/pass5-govern.js +13 -11
- package/dist/usecases/ingest/pass5-govern.js.map +1 -1
- package/dist/usecases/ingest/pipeline.js +77 -23
- package/dist/usecases/ingest/pipeline.js.map +1 -1
- package/dist/usecases/ingest/serial-govern.d.ts +2 -1
- package/dist/usecases/ingest/serial-govern.js +16 -8
- package/dist/usecases/ingest/serial-govern.js.map +1 -1
- package/dist/usecases/ingest/status.d.ts +2 -2
- package/dist/usecases/ingest/status.js +1 -1
- package/dist/usecases/ingest/status.js.map +1 -1
- package/dist/usecases/ingest/video-pipeline.js +121 -29
- package/dist/usecases/ingest/video-pipeline.js.map +1 -1
- package/dist/usecases/ingest/view-command.d.ts +2 -2
- package/dist/usecases/ingest/view-command.js +7 -6
- package/dist/usecases/ingest/view-command.js.map +1 -1
- package/dist/usecases/ingest/view-server.d.ts +2 -2
- package/dist/usecases/ingest/view-server.js +9 -7
- package/dist/usecases/ingest/view-server.js.map +1 -1
- package/dist/usecases/script/actions.d.ts +2 -2
- package/dist/usecases/script/actions.js +106 -11
- package/dist/usecases/script/actions.js.map +1 -1
- package/dist/usecases/script/actor.d.ts +2 -2
- package/dist/usecases/script/actor.js +3 -4
- package/dist/usecases/script/actor.js.map +1 -1
- package/dist/usecases/script/actors.d.ts +2 -2
- package/dist/usecases/script/actors.js +18 -9
- package/dist/usecases/script/actors.js.map +1 -1
- package/dist/usecases/script/add-actor.d.ts +2 -2
- package/dist/usecases/script/add-episode.d.ts +2 -2
- package/dist/usecases/script/add-location.d.ts +2 -2
- package/dist/usecases/script/add-prop.d.ts +2 -2
- package/dist/usecases/script/alias.d.ts +2 -2
- package/dist/usecases/script/alias.js +13 -14
- package/dist/usecases/script/alias.js.map +1 -1
- package/dist/usecases/script/assets.d.ts +2 -2
- package/dist/usecases/script/assets.js +29 -5
- package/dist/usecases/script/assets.js.map +1 -1
- package/dist/usecases/script/audit-assets.d.ts +4 -0
- package/dist/usecases/script/audit-assets.js +37 -0
- package/dist/usecases/script/audit-assets.js.map +1 -0
- package/dist/usecases/script/command-constraints.d.ts +36 -0
- package/dist/usecases/script/command-constraints.js +114 -0
- package/dist/usecases/script/command-constraints.js.map +1 -0
- package/dist/usecases/script/context.d.ts +2 -2
- package/dist/usecases/script/context.js +34 -8
- package/dist/usecases/script/context.js.map +1 -1
- package/dist/usecases/script/create.d.ts +2 -2
- package/dist/usecases/script/create.js +5 -6
- package/dist/usecases/script/create.js.map +1 -1
- package/dist/usecases/script/delete.d.ts +2 -2
- package/dist/usecases/script/delete.js +15 -15
- package/dist/usecases/script/delete.js.map +1 -1
- package/dist/usecases/script/describe.d.ts +2 -2
- package/dist/usecases/script/describe.js +13 -12
- package/dist/usecases/script/describe.js.map +1 -1
- package/dist/usecases/script/dialogue.d.ts +2 -2
- package/dist/usecases/script/dialogue.js +18 -9
- package/dist/usecases/script/dialogue.js.map +1 -1
- package/dist/usecases/script/dispatch.d.ts +3 -0
- package/dist/usecases/script/dispatch.js +10 -0
- package/dist/usecases/script/dispatch.js.map +1 -0
- package/dist/usecases/script/do.d.ts +2 -2
- package/dist/usecases/script/do.js +105 -45
- package/dist/usecases/script/do.js.map +1 -1
- package/dist/usecases/script/emotion.d.ts +2 -2
- package/dist/usecases/script/emotion.js +14 -3
- package/dist/usecases/script/emotion.js.map +1 -1
- package/dist/usecases/script/episodes.d.ts +2 -2
- package/dist/usecases/script/episodes.js +19 -8
- package/dist/usecases/script/episodes.js.map +1 -1
- package/dist/usecases/script/export-authoring.d.ts +2 -2
- package/dist/usecases/script/export-authoring.js +47 -26
- package/dist/usecases/script/export-authoring.js.map +1 -1
- package/dist/usecases/script/extend.d.ts +2 -2
- package/dist/usecases/script/extend.js +43 -31
- package/dist/usecases/script/extend.js.map +1 -1
- package/dist/usecases/script/ids.d.ts +2 -2
- package/dist/usecases/script/ids.js +68 -21
- package/dist/usecases/script/ids.js.map +1 -1
- package/dist/usecases/script/importance.d.ts +2 -2
- package/dist/usecases/script/importance.js +3 -4
- package/dist/usecases/script/importance.js.map +1 -1
- package/dist/usecases/script/insert.d.ts +2 -2
- package/dist/usecases/script/insert.js +80 -46
- package/dist/usecases/script/insert.js.map +1 -1
- package/dist/usecases/script/issues.d.ts +2 -2
- package/dist/usecases/script/issues.js +10 -2
- package/dist/usecases/script/issues.js.map +1 -1
- package/dist/usecases/script/lib.d.ts +62 -7
- package/dist/usecases/script/lib.js +782 -184
- package/dist/usecases/script/lib.js.map +1 -1
- package/dist/usecases/script/locations.d.ts +2 -2
- package/dist/usecases/script/locations.js +18 -9
- package/dist/usecases/script/locations.js.map +1 -1
- package/dist/usecases/script/merge.d.ts +2 -2
- package/dist/usecases/script/merge.js +17 -17
- package/dist/usecases/script/merge.js.map +1 -1
- package/dist/usecases/script/move.d.ts +2 -2
- package/dist/usecases/script/move.js +30 -13
- package/dist/usecases/script/move.js.map +1 -1
- package/dist/usecases/script/parenthetical.d.ts +3 -0
- package/dist/usecases/script/parenthetical.js +52 -0
- package/dist/usecases/script/parenthetical.js.map +1 -0
- package/dist/usecases/script/props.d.ts +2 -2
- package/dist/usecases/script/props.js +18 -9
- package/dist/usecases/script/props.js.map +1 -1
- package/dist/usecases/script/refs.d.ts +2 -2
- package/dist/usecases/script/refs.js +61 -11
- package/dist/usecases/script/refs.js.map +1 -1
- package/dist/usecases/script/rename.d.ts +2 -2
- package/dist/usecases/script/rename.js +13 -12
- package/dist/usecases/script/rename.js.map +1 -1
- package/dist/usecases/script/replace.d.ts +2 -2
- package/dist/usecases/script/replace.js +6 -8
- package/dist/usecases/script/replace.js.map +1 -1
- package/dist/usecases/script/role.d.ts +2 -2
- package/dist/usecases/script/role.js +3 -4
- package/dist/usecases/script/role.js.map +1 -1
- package/dist/usecases/script/scenes.d.ts +2 -2
- package/dist/usecases/script/scenes.js +35 -7
- package/dist/usecases/script/scenes.js.map +1 -1
- package/dist/usecases/script/script-patch.d.ts +2 -2
- package/dist/usecases/script/script-patch.js +219 -72
- package/dist/usecases/script/script-patch.js.map +1 -1
- package/dist/usecases/script/script-validate.d.ts +2 -2
- package/dist/usecases/script/script-validate.js +11 -7
- package/dist/usecases/script/script-validate.js.map +1 -1
- package/dist/usecases/script/session.d.ts +3 -0
- package/dist/usecases/script/session.js +74 -65
- package/dist/usecases/script/session.js.map +1 -1
- package/dist/usecases/script/split.d.ts +2 -2
- package/dist/usecases/script/split.js +18 -14
- package/dist/usecases/script/split.js.map +1 -1
- package/dist/usecases/script/state-add.d.ts +2 -2
- package/dist/usecases/script/state-add.js +3 -4
- package/dist/usecases/script/state-add.js.map +1 -1
- package/dist/usecases/script/state-delete.d.ts +2 -2
- package/dist/usecases/script/state-delete.js +3 -4
- package/dist/usecases/script/state-delete.js.map +1 -1
- package/dist/usecases/script/state-rename.d.ts +2 -2
- package/dist/usecases/script/state-rename.js +3 -4
- package/dist/usecases/script/state-rename.js.map +1 -1
- package/dist/usecases/script/states.d.ts +2 -2
- package/dist/usecases/script/states.js +91 -20
- package/dist/usecases/script/states.js.map +1 -1
- package/dist/usecases/script/summary.d.ts +2 -2
- package/dist/usecases/script/summary.js +21 -2
- package/dist/usecases/script/summary.js.map +1 -1
- package/dist/usecases/script/synopsis-generate.d.ts +2 -2
- package/dist/usecases/script/synopsis-generate.js +38 -39
- package/dist/usecases/script/synopsis-generate.js.map +1 -1
- package/dist/usecases/script/synopsis.d.ts +2 -2
- package/dist/usecases/script/synopsis.js +20 -16
- package/dist/usecases/script/synopsis.js.map +1 -1
- package/dist/usecases/script/transition.d.ts +2 -2
- package/dist/usecases/script/transition.js +3 -4
- package/dist/usecases/script/transition.js.map +1 -1
- package/dist/usecases/script/type.d.ts +2 -2
- package/dist/usecases/script/type.js +3 -4
- package/dist/usecases/script/type.js.map +1 -1
- package/dist/usecases/script/v3/mutations.d.ts +2 -0
- package/dist/usecases/script/v3/mutations.js +5 -0
- package/dist/usecases/script/v3/mutations.js.map +1 -0
- package/dist/usecases/script/v4/mutations.d.ts +2 -0
- package/dist/usecases/script/v4/mutations.js +6 -0
- package/dist/usecases/script/v4/mutations.js.map +1 -0
- package/dist/usecases/script/v4/queries.d.ts +15 -0
- package/dist/usecases/script/v4/queries.js +191 -0
- package/dist/usecases/script/v4/queries.js.map +1 -0
- package/dist/usecases/script/working-copy.d.ts +4 -4
- package/dist/usecases/script/working-copy.js +98 -94
- package/dist/usecases/script/working-copy.js.map +1 -1
- package/dist/usecases/script/worldview.d.ts +2 -2
- package/dist/usecases/script/worldview.js +3 -4
- package/dist/usecases/script/worldview.js.map +1 -1
- package/dist/usecases/script/write-authoring.d.ts +2 -2
- package/dist/usecases/script/write-authoring.js +125 -50
- package/dist/usecases/script/write-authoring.js.map +1 -1
- package/dist/usecases/update.d.ts +2 -2
- package/dist/usecases/update.js +32 -47
- package/dist/usecases/update.js.map +1 -1
- package/package.json +3 -2
- package/skills/scriptctl/SKILL.md +128 -282
- package/skills/scriptctl/references/atomic-edit-workflow.md +23 -38
- package/skills/scriptctl/references/bulk-authoring.md +35 -154
- package/skills/scriptctl/references/ingest-workflow.md +12 -11
- package/skills/scriptctl/references/production-writing-standard.md +38 -67
- package/skills/scriptctl/references/state-reference-repair.md +19 -42
- package/dist/help-text.d.ts +0 -2
- package/dist/help-text.js +0 -1112
- package/dist/help-text.js.map +0 -1
|
@@ -1,169 +1,50 @@
|
|
|
1
1
|
# 文件化批量写作
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
完整剧本、集、场和连续 Action 区间使用 `.scriptctl` authoring 文件。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 固定流程
|
|
6
6
|
|
|
7
|
-
1.
|
|
8
|
-
2.
|
|
9
|
-
3.
|
|
10
|
-
4.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
1. 既有目标先 `export`;新节点 ID 用 `ids` 生成候选。
|
|
8
|
+
2. 修改导出文件或生成完整 create 文件。
|
|
9
|
+
3. `write FILE --create|--replace` 生成计划。
|
|
10
|
+
4. 审阅所有目标、目标内变化、全局保留/新增/删除 ID、未触及 sibling、声明、
|
|
11
|
+
保留的孤立资产和 validation。
|
|
12
|
+
5. 使用相同文件与 mode 执行
|
|
13
|
+
`write FILE --create|--replace --apply --plan <digest>`。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
确认码绑定精确源文件、mode、解析目标和当前本地基线,不保存为计划文件。
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
## 方言
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
- 无基线 `--create` 使用 Script v4。
|
|
20
|
+
- 已有文件按显式 `script.version` 选择 V3 或 V4 parser、serializer、validator 和 apply。
|
|
21
|
+
- V4 target、replacement 节点和 Action 都携带正式 ID。
|
|
22
|
+
- V4 scene 中同一资产只声明一次,状态写成完整集合。
|
|
23
|
+
- V4 speaking Action 使用
|
|
24
|
+
`[dlg|action-id|speaker|parenthetical?]` 或
|
|
25
|
+
`[think|action-id|speaker|parenthetical?]`。
|
|
20
26
|
|
|
21
|
-
|
|
22
|
-
<authoring version=1>
|
|
27
|
+
## Target
|
|
23
28
|
|
|
24
|
-
|
|
25
|
-
...create-only asset/state declarations...
|
|
26
|
-
</create>
|
|
29
|
+
一个文件包含一个或多个同类 target:
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
- `script`
|
|
32
|
+
- `episode`
|
|
33
|
+
- `episode-span`
|
|
34
|
+
- `scene`
|
|
35
|
+
- `scene-span`
|
|
36
|
+
- `action-span`
|
|
29
37
|
|
|
30
|
-
|
|
31
|
-
|
|
38
|
+
区间包含两端,端点正反等价,并按写入前的当前文档顺序解析。replace 批次必须按
|
|
39
|
+
当前文档顺序排列且互不重叠。span replacement 至少包含一个对应节点;纯删除使用
|
|
40
|
+
显式 delete 原子操作。
|
|
32
41
|
|
|
33
|
-
|
|
42
|
+
## 声明
|
|
34
43
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<episode-span from=ep_002 through=ep_004>...</episode-span>
|
|
39
|
-
<scene id=scn_021 parent=ep_007>...</scene>
|
|
40
|
-
<scene-span parent=ep_007 from=scn_010 through=scn_012>...</scene-span>
|
|
41
|
-
<action-span parent=ep_007/scn_021 from=12 through=18>...</action-span>
|
|
42
|
-
```
|
|
44
|
+
`<create>` 放在 targets 前,声明本批次新增的 actor、location、prop 与 state。
|
|
45
|
+
资产先声明,state 紧随 owner 或在 owner 已存在时作为 standalone state 声明。
|
|
46
|
+
所有引用必须在最终提案中可解析。
|
|
43
47
|
|
|
44
|
-
|
|
48
|
+
## 核验
|
|
45
49
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
声明按 actor、location、prop 分组;每个新资产后立刻写它的 states,第一条且唯一常态 state 必须是 `default`。引用既有资产的 standalone state 放在所有资产声明之后。state ID 在所属资产内唯一,完整身份是 typed owner 与 state ID,例如 `actor:act_001/st_001`。
|
|
49
|
-
|
|
50
|
-
```text
|
|
51
|
-
<create>
|
|
52
|
-
[aliases]
|
|
53
|
-
[alias] 门卫
|
|
54
|
-
[actor|act_010|王建国|featured|配角] 五十岁男性。
|
|
55
|
-
[state|actor:act_010|default|常态] 深蓝色保安制服。
|
|
56
|
-
[state|actor:act_010|st_010|雨衣] 黄色雨衣。
|
|
57
|
-
[location|loc_003|旧教室|featured] 墙皮脱落。
|
|
58
|
-
[state|location:loc_003|default|常态] 夜间无人使用。
|
|
59
|
-
[prop|prp_004|工作证|featured] 蓝色塑封证件。
|
|
60
|
-
[state|prop:prp_004|default|常态] 挂在胸前。
|
|
61
|
-
</create>
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
重复提交完全相同的既有声明是 no-op;同 ID 不同定义是冲突。importance 只有 `featured|background`,actor role 只有 `主角|配角`。
|
|
65
|
-
`[aliases]` 表示正式 aliases 数组存在;后续零到多条 `[alias]` 保留顺序,因此空数组也能无损导出。
|
|
66
|
-
|
|
67
|
-
## script 与 episode
|
|
68
|
-
|
|
69
|
-
script metadata 固定顺序:
|
|
70
|
-
|
|
71
|
-
```text
|
|
72
|
-
<script>
|
|
73
|
-
[title] 剧名
|
|
74
|
-
[worldview] 现代
|
|
75
|
-
[worldview-raw] 可选原始世界观
|
|
76
|
-
[style] 悬疑
|
|
77
|
-
[synopsis] 可选全剧梗概
|
|
78
|
-
[logline] 可选一句话梗概
|
|
79
|
-
[theme] 可选主题
|
|
80
|
-
[main-characters]
|
|
81
|
-
[main-character|林夏|主角]
|
|
82
|
-
|
|
83
|
-
<episode id=ep_001>
|
|
84
|
-
[title] 第一集
|
|
85
|
-
[synopsis] 可选分集梗概
|
|
86
|
-
...scenes...
|
|
87
|
-
</episode>
|
|
88
|
-
</script>
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
可选字段省略表示字段不存在;写成空 content 表示字段存在且值为空。
|
|
92
|
-
`[main-characters]` 表示正式数组存在,后续零到多条 main-character,因此空数组也能无损往返。
|
|
93
|
-
|
|
94
|
-
## scene
|
|
95
|
-
|
|
96
|
-
scene 成员固定为 environment、location、零到多条 cast、零到多条 prop、body。scene 的 body 可以为空,episode 也可以不含 scene,用于表达待填充骨架;`write` 会在计划中报告 warning。replace 把原本非空的 scene 或 episode 清空时会报告更明确的 cleared warning。每个非空 scene 引用都绑定具体 state。actor 引用允许重复并保留顺序;同一个 prop 不重复。
|
|
97
|
-
|
|
98
|
-
```text
|
|
99
|
-
<scene id=scn_021 parent=ep_007>
|
|
100
|
-
[environment|interior|night]
|
|
101
|
-
[location|loc_003|default]
|
|
102
|
-
[cast|act_001|st_before]
|
|
103
|
-
[cast|act_001|st_after]
|
|
104
|
-
[cast|act_010|default]
|
|
105
|
-
[prop|prp_004|default]
|
|
106
|
-
|
|
107
|
-
<body>
|
|
108
|
-
[act|紧张] 林夏拉开衣柜。
|
|
109
|
-
[dlg|act_001/st_after|压低声音] 谁在那里?
|
|
110
|
-
[think|act_001/st_after|不安] 不能让他发现。
|
|
111
|
-
[dlg|broadcast:] 不要回头。
|
|
112
|
-
[trans] 画面切黑。
|
|
113
|
-
</body>
|
|
114
|
-
</scene>
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
嵌在 episode/scene-span 内的 scene 不写 parent;根 scene 必须写 parent。`location` 无槽位表示 `null`。非人物 speaker 是 `system|broadcast|offscreen|group`,可写 `kind:label`。普通写作不需要 `transition_prompt` 或 timestamp。
|
|
118
|
-
|
|
119
|
-
单条正文记录的 content 可以为空,但计划会报告 `authoring_empty_action_content` warning。`action-span` 的 replacement 仍必须至少包含一条 action;空 replacement 会被拒绝,纯删除使用显式 mutation。
|
|
120
|
-
|
|
121
|
-
## prefix modifiers 与 extensions
|
|
122
|
-
|
|
123
|
-
modifier 必须紧贴其节点,顺序是零到多条 extend、零到多条 alias、最多一条 prompt:
|
|
124
|
-
|
|
125
|
-
```text
|
|
126
|
-
[extensions]
|
|
127
|
-
[extend|camera] {"lens":35,"locked":true}
|
|
128
|
-
[prompt|actor:act_001|换装|由校服变为礼服]
|
|
129
|
-
[act] 林夏拉开衣柜。
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
`[extensions]` 表示正式 extend 对象存在,后续零到多条 extend,因此缺失与空对象可无损区分。`extend` 的 content 是单个 JSON value,key 唯一;仅 extensions 使用 JSON。canonical serializer 按 key 排序。`prompt` 的 target/process/contrast 都必填,仅在确实存在显式过渡提示时使用。
|
|
133
|
-
|
|
134
|
-
## span
|
|
135
|
-
|
|
136
|
-
```text
|
|
137
|
-
<episode-span from=ep_002 through=ep_004>
|
|
138
|
-
...one or more complete episodes...
|
|
139
|
-
</episode-span>
|
|
140
|
-
|
|
141
|
-
<scene-span parent=ep_003 from=scn_010 through=scn_012>
|
|
142
|
-
...one or more complete scenes...
|
|
143
|
-
</scene-span>
|
|
144
|
-
|
|
145
|
-
<action-span parent=ep_003/scn_010 from=12 through=18>
|
|
146
|
-
<body>
|
|
147
|
-
...one or more actions...
|
|
148
|
-
</body>
|
|
149
|
-
</action-span>
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
episode/scene 端点按写入前本地脚本的真实数组位置解析,不比较 ID 数字。action index 零基且包含两端。一个文件中的多个 span 不得重叠,全部相对同一个写入前基线解析;replacement 数量可以与旧区间不同。action-span 只改 body,不改 scene refs。
|
|
153
|
-
|
|
154
|
-
## export
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
scriptctl export script --output story.scriptctl
|
|
158
|
-
scriptctl export episodes --in "ep_002..ep_004,ep_010" --output episodes.scriptctl
|
|
159
|
-
scriptctl export episode-spans --in "ep_002..ep_004" --output episode-span.scriptctl
|
|
160
|
-
scriptctl export scenes --in "ep_003/scn_010..ep_003/scn_012" --output scenes.scriptctl
|
|
161
|
-
scriptctl export scene-spans --in "ep_003/scn_010..ep_003/scn_012" --output scene-span.scriptctl
|
|
162
|
-
scriptctl export action-spans --in "ep_003/scn_010#12..ep_003/scn_010#18" --output actions.scriptctl
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
逗号分隔多个 point/range region。episodes/scenes 把区间展开成独立 targets;三种 span 命令的每个 region 产生一个 span target。跨 parent 的 scene/action span 直接拒绝。
|
|
166
|
-
|
|
167
|
-
## 转义
|
|
168
|
-
|
|
169
|
-
tag 属性只接受 canonical ID/address 字符,不需要转义。record header 中可用 `\|`、`\]`、`\\`、`\n`;content 中只用 `\\`、`\n`。不支持注释或自由散文行。
|
|
50
|
+
apply 后用对应 `episodes`、`scenes`、`actions` 和 `refs` 读回,再运行 `validate`。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ingest workflow — 素材直转入库(文本 / 视频)
|
|
2
2
|
|
|
3
|
-
适用:有外部素材要**转成
|
|
3
|
+
适用:有外部素材要**转成 Script v4 并入库**。统一入口 `scriptctl ingest`,按 source 类型自动分流文本 / 视频;两条管线最终都产出 v4 `script.json`。视频、小说和非标准剧本统一执行 [production-writing-standard.md](production-writing-standard.md)。
|
|
4
4
|
|
|
5
5
|
```
|
|
6
6
|
ingest --source-path <file|dir> → 标准化复核 → view / ingest status → publish
|
|
@@ -22,18 +22,17 @@ scriptctl ingest --source-path uploads/正片/
|
|
|
22
22
|
|
|
23
23
|
常用 flag:
|
|
24
24
|
- `--workspace-path <dir>`:工作区根(manifest + 各 pass 目录 + 产物)。**不传默认 `<cwd>/workspace`**;显式传可放别处。`view` / `ingest status` 使用同一 workspace;publish 用 `--script-path <workspace>/script.json`。
|
|
25
|
-
- `--concurrency <n
|
|
26
|
-
- `--video-concurrency <n>`:视频上传+转录并发。默认 10。
|
|
25
|
+
- `--concurrency <n>`:文本 fanout 并发,默认 30。视频逐集串行。
|
|
27
26
|
- `--fps <n>`:视频采样帧率(>1 解锁亚秒级时间码)。默认 3。
|
|
28
27
|
- `--force`:**同源**重跑,清掉产物重来(**不能换源**)。
|
|
29
28
|
|
|
30
29
|
管线(了解即可,产物都在 `workspace/`):
|
|
31
|
-
- **文本**:正文起点定位 → 切块 →
|
|
32
|
-
-
|
|
30
|
+
- **文本**:正文起点定位 → 切块 → 生产化归一 → 合并组装 `body.json` → 串行资产/身份/state 治理 → V3 中间校验 → 稳定 V4 身份分配 → V4 校验与生产规范 warning → `script.json`。
|
|
31
|
+
- **视频**:逐集串行观看原视频并维护跨集人物、剧情和造型上下文 → 确定性治理 → V3 中间校验 → 稳定 V4 身份分配 → V4 校验与生产规范 warning → `script.json`。时间戳写入 `extend.timestamp`,逐集 `ep/*.json`、`context.json` 和身份映射支持断点续跑。
|
|
33
32
|
|
|
34
33
|
### 提取与解析原则
|
|
35
34
|
|
|
36
|
-
-
|
|
35
|
+
- 先忠实提取源素材可验证的对白、动作、顺序、人物状态和场景切换,再整理成标准资产与正文。
|
|
37
36
|
- 视频以画面和声音为准;小说与非标准剧本把叙述转换成可拍摄 Action,同时保留原文事实、因果和人物关系。
|
|
38
37
|
- 保留对白原文;允许为结构化和可拍摄性规范化叙述措辞,同时保持事实、因果、顺序、动作结果和状态不变。
|
|
39
38
|
- 将无法确认的人物身份、动作主体、地点和状态保留为待复核项,不补写源素材没有表达的事实。
|
|
@@ -47,7 +46,8 @@ scriptctl ingest --source-path uploads/正片/
|
|
|
47
46
|
2. 用 `scenes --in <ep>` 检查唯一地点、场界、蒙太奇顺序和状态变化边界。
|
|
48
47
|
3. 用 `actions --in <ep>` 检查说话人、群体发声、人物真名、动作链和可拍摄性。
|
|
49
48
|
4. 视频对照画面与声音;文本对照原文,确认对白逐字保真,事实、因果、顺序、动作结果和状态没有改变或补造。
|
|
50
|
-
5.
|
|
49
|
+
5. 运行 `audit-assets --script-path workspace/script.json`,查看 `asset-audit.json` 中的人物身份重复、同义状态、未使用/落单状态、重复地点和道具建议。不要仅凭名称相似或低频就合并、删除。
|
|
50
|
+
6. 用 scriptctl 读写动词修正 `workspace/script.json`,再次运行 `validate` 和 `audit-assets`,完成内容复核后再 publish。
|
|
51
51
|
|
|
52
52
|
## 三、看进度 / 自查
|
|
53
53
|
|
|
@@ -56,10 +56,11 @@ scriptctl ingest status # 人读:kind / state / 各 pass 进度(tra
|
|
|
56
56
|
scriptctl ingest status --json # 机器:.status = {kind,state,phase,passes[],units,validation,errors[]}
|
|
57
57
|
scriptctl view # 生成 workspace/review.html(视频版可点击定位到画面)
|
|
58
58
|
scriptctl view --watch [--port N]# 实时监听面板:分阶段进度条 + 逐集 context/决策 + 产物树,自动刷新(跑中也能开)。🔴 仅本地用,**沙箱内不要用**(起阻塞服务+开浏览器,会挂住;沙箱看进度用 `ingest status`)
|
|
59
|
+
scriptctl audit-assets --script-path workspace/script.json # 全剧资产一致性复核;结果写 asset-audit.json
|
|
59
60
|
scriptctl summary --script-path workspace/script.json # 抽完当普通剧本读
|
|
60
61
|
```
|
|
61
62
|
|
|
62
|
-
`state`:`empty`(没开始)/ `incomplete`(在跑或中断、无硬错,重跑续)/ `failed`(有失败单元或校验没过)/ `ready`(`script.json` 生成且
|
|
63
|
+
`state`:`empty`(没开始)/ `incomplete`(在跑或中断、无硬错,重跑续)/ `failed`(有失败单元或校验没过)/ `ready`(`script.json` 生成且 v4 结构校验通过)。`validation.json` 的 production/asset-audit warning 标出仍需复核的问题,`asset-audit.json` 保存完整证据和建议。进度从工作区真实文件推导;它报的是管线事实,资产合并结论和源素材一致性仍由复核完成门确认。
|
|
63
64
|
|
|
64
65
|
## 四、🔴 抖动与重跑(大规模转剧本的常态)
|
|
65
66
|
|
|
@@ -71,7 +72,7 @@ scriptctl summary --script-path workspace/script.json # 抽完当普通剧本
|
|
|
71
72
|
| `INGEST_SERIAL_FAILED`(文本串行 govern) | 某集串行解析连试几次仍失败(模型抖动) | **直接重跑**,从该集续——前面各集已缓存不重跑 |
|
|
72
73
|
| `INGEST_PIPELINE_MISMATCH` | 工作区的管线版本与当前版本不同 | 确认 source 未变化后,使用同一 source、同一 workspace 加 `--force` 完整重建 checkpoint |
|
|
73
74
|
| `INGEST_SOURCE_MISMATCH` | 工作区是别的 source 建的 | 换一个新的 `--workspace-path`,**别 `--force` 硬覆盖** |
|
|
74
|
-
| `INGEST_VALIDATION_FAILED` |
|
|
75
|
+
| `INGEST_VALIDATION_FAILED` | 最终校验没过 | 看 `workspace/validation.json` 的具体报错,修复后再 `publish` |
|
|
75
76
|
| 持续 401/403/404 / 模型路由错 | 网关/密钥/模型环境问题(不是抖动,重跑也不好) | 如实告诉用户,别反复空跑、别编造成功。视频需 `GEMINI_API_KEY` |
|
|
76
77
|
|
|
77
78
|
🔴 **绝不**:清工作区、删 checkpoint、手塞/手改中间文件来"绕过"失败。重跑 = 唯一正解;成功单元不会重跑,贵的花名册归并(`roster.json`)也会复用。
|
|
@@ -83,7 +84,7 @@ scriptctl publish --script-path workspace/script.json
|
|
|
83
84
|
scriptctl publish --script-path workspace/script.json --project-group-no 123
|
|
84
85
|
```
|
|
85
86
|
|
|
86
|
-
- `publish` 读本地 `--script-path`(默认 `workspace/script.json
|
|
87
|
+
- `publish` 读本地 `--script-path`(默认 `workspace/script.json`),按显式版本再次校验,通过才发布。
|
|
87
88
|
- 沙箱里转完**必须 publish**,否则后端/前端看不到剧本。
|
|
88
89
|
- 已管理工作副本 publish 采用 local-wins:CAS/网络失败后重拉 snapshot、重算 diff 并重试,最终远端内容以本地稿为准。
|
|
89
90
|
- 已管理且内容未变时 publish 本地直接 no-op,不发网络请求。服务端不保存 requestId,也不提供 publish 幂等重试。
|
|
@@ -98,7 +99,7 @@ scriptctl publish --script-path workspace/script.json --project-group-no 123
|
|
|
98
99
|
|
|
99
100
|
## 七、抽完后的读写
|
|
100
101
|
|
|
101
|
-
抽取产物就是标准
|
|
102
|
+
抽取产物就是标准 v4 剧本,用 SKILL.md 里所有读写能力精修(目标指 `--script-path workspace/script.json`;远端稿先 checkout):
|
|
102
103
|
- `summary` / `episodes` 看整本 + 分集梗概;`actions --in <ep>` 带 timestamp 看节奏。
|
|
103
104
|
- `states <actor>` 看造型弧线;`actors --counts` 看出场频次决定 `importance`。
|
|
104
105
|
- 归属/造型修正:`dialogue <at> --actor/--kind`、`scene-ref <ep/scn> <kind:id> --state`。
|
|
@@ -1,83 +1,54 @@
|
|
|
1
1
|
# 标准剧本生产写作规范
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
适用于从零创作、素材提取、小说解析、对标仿写和转绘。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 资产与场
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- 提取与解析遇到不确定信息时保留待复核标记;不为满足格式补写源素材没有表达的动作、身份、状态或镜头。
|
|
7
|
+
1. 正文出现的可识别人物、地点和关键道具先注册为资产。
|
|
8
|
+
2. 每个资产有且仅有一个 `default` state;需要独立视觉参考的持久变体再建 state。
|
|
9
|
+
3. 每个 scene 绑定实际地点、全部在场人物、关键道具及本场适用状态。
|
|
10
|
+
4. V4 同一资产在一场只引用一次,`state_ids` 可以包含多个状态且没有先后顺序。
|
|
11
|
+
5. actor speaker 必须属于当前 scene;显式 speaker state 必须在该 actor 的场景状态集合中。
|
|
13
12
|
|
|
14
|
-
##
|
|
13
|
+
## Action 与对白
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
- Action 写可见、可拍摄的行为链:明确行动者、动作、对象、空间关系和结果。
|
|
16
|
+
- 动作描述使用唯一 `actor_name`,避免依赖上下文猜测“他、她、另一个人”等指代。
|
|
17
|
+
- dialogue / inner_thought 绑定 actor 或 `system|broadcast|offscreen|group` 非人物发声源。
|
|
18
|
+
- V4 的短表演提示写 `parenthetical`;字段可省略,也可显式保存空字符串。
|
|
19
|
+
- 影响走位、道具、状态或连续性的动作写成独立 Action。
|
|
20
|
+
- 同时说话用相邻 dialogue 表达;结构不声明对白重叠时间轴。
|
|
17
21
|
|
|
18
|
-
|
|
19
|
-
2. 确定本场唯一地点、全部出场人物、全部使用道具和各自实际 state;同一人物需要多份画面引用时列出每一份引用。
|
|
20
|
-
3. 注册缺少的资产,定义需要独立视觉参考的持久状态。
|
|
21
|
-
4. 建立 scene,绑定地点、人物、道具及实际 state。
|
|
22
|
-
5. 读回 scene-ref,确认正文中的每项资产都能映射到本场引用。
|
|
23
|
-
6. 写入正文;发现新增资产或状态时,先完成资产与引用再继续。
|
|
22
|
+
## 场界
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
同一地点、连续时段和连续叙事线保持同一 scene。地点切换、明显跳时或切换叙事线
|
|
25
|
+
时新建 scene。情绪升级、攻防回合、人物进出和同场状态变化本身不构成分场。
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
- 将固定人数、固定服装、固定站位或跨场连续出现的群体拆成可识别人物资产。
|
|
29
|
-
- 将无法区分成员、无需连续造型的环境人群写成群体 Action。
|
|
30
|
-
- 将群体共同发声写成 `--kind group --label <群体名>`。`group` 只属于该条 dialogue,不创建 actor、state 或视觉参考资产。
|
|
31
|
-
- 当某个群体成员开始独立说话或行动时,先为该成员建立 actor 并绑定到 scene。
|
|
32
|
-
- 仅有 group 发声、没有可识别 actor 的场面直接使用 group speaker;scene 绑定实际 location 与关键道具,不创建虚假人物。
|
|
27
|
+
## 提取与改写
|
|
33
28
|
|
|
34
|
-
|
|
29
|
+
- 提取保留可验证的对白、动作、因果、顺序和状态,不补写素材没有表达的事实。
|
|
30
|
+
- 对标或转绘只从原剧读取结构与节奏,只向目标 `script.json` 写新内容。
|
|
31
|
+
- 每批落盘后读回目标并运行 `validate`;随后继续做内容、连续性和可拍摄性复核。
|
|
35
32
|
|
|
36
|
-
|
|
37
|
-
- 使用“豪宅·客厅”“豪宅·卧室”“剧院·舞台”“剧院·后台”这类统一命名表达空间归属,并在 description 中写明共享建筑风格和连接关系。
|
|
38
|
-
- 摄影机留在当前空间时,scene 继续引用当前地点;门内可见空间写入 Action。
|
|
39
|
-
- 摄影机或主要表演进入另一空间时建立新 scene,并引用新地点。
|
|
40
|
-
- 舞台与后台交叉剪辑按每次切换建立相邻 scene;连续跟拍跨过空间边界时在边界处切换 scene。
|
|
41
|
-
- 当前每个 scene 只支持一个 location。画面需要同时使用两个正式地点参考图时,报告结构限制;“客厅/卧室”只会形成一个复合地点资产,不能代替两个地点引用。
|
|
42
|
-
- 当前没有地点组、父地点或共享美术继承。统一命名和 description 是现阶段的归属约定。
|
|
33
|
+
## 地点、关联空间与蒙太奇
|
|
43
34
|
|
|
44
|
-
|
|
35
|
+
- 将可独立布置、生成参考图和重复引用的稳定物理空间建立为 location;相关空间用“豪宅·客厅”“豪宅·卧室”等统一命名表达归属。
|
|
36
|
+
- 每个 scene 只绑定一个 location。摄影机或主要表演进入另一空间时新建 scene;一次性时间或光线写入 environment/Action,持久且可复用的视觉变化建立 location state。
|
|
37
|
+
- 跨地点蒙太奇按剪辑顺序建立多个短 scene,并用 transition 表达开始、切换和结束。
|
|
38
|
+
- 纯空镜 scene 绑定实际 location 与关键道具,不创建虚假人物。
|
|
45
39
|
|
|
46
|
-
|
|
47
|
-
- 当光线、布景、损毁或季节变化需要反复引用或独立生成视觉资产时,为 location 建立 state,例如“广场·夕阳”“大厅·停电”。
|
|
48
|
-
- 将一次性的时间描述保留在 environment 或 Action 中;将持久、可复用的视觉变化建立为 state。
|
|
40
|
+
## 版本化状态引用
|
|
49
41
|
|
|
50
|
-
|
|
42
|
+
- V4 同一资产在一个 scene 只引用一次,以完整、非空、无序的 `state_ids` 集合表达本场可能使用的状态;状态的具体对白落点由下游判断。
|
|
43
|
+
- V3 保持单状态引用结构;若同一 actor 有重复引用,使用 `occurrence` 精确定位。
|
|
44
|
+
- 同一连续场内的状态变化不必分场;在场景状态集合中声明所需状态,并在 Action 中写清可见变化。
|
|
51
45
|
|
|
52
|
-
|
|
53
|
-
- 使用人物真名指明每个行动者;对白内容可以自然使用人称代词。
|
|
54
|
-
- 根据生产需要补充景别、机位、镜头运动和画面焦点。
|
|
55
|
-
- 将抽象心理和评价转换成表情、肢体、道具变化、环境反应或明确对白。
|
|
56
|
-
- 为每条 dialogue 绑定 `--actor` 或非角色发声源。将情绪、语气和短促伴随动作写入 `emotion`;将影响走位、道具或连续性的动作单独写成 Action。
|
|
57
|
-
- 两人同时说话时写成相邻两条 dialogue,第二条的 `emotion` 以“同时”开头。当前结构不提供对白重叠时间轴。
|
|
46
|
+
## 完成门
|
|
58
47
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
## 八、同场人物多引用与状态变化
|
|
68
|
-
|
|
69
|
-
- 一个 scene 可重复引用同一 actor;每份引用独立绑定一个有效 state,可使用相同或不同 state。
|
|
70
|
-
- 先用 `scene-ref <ep/scn> actor:<id> --state <state_id>` 建第一份引用,再用同一命令加 `--append` 建后续引用。
|
|
71
|
-
- 同一 actor 已有多份引用时,用 1-based `--occurrence <n>` 精确修改、清除或删除某一份;不要省略 occurrence 让目标产生歧义。
|
|
72
|
-
- 同一连续场内的造型变化保留在同一 scene:绑定变化前后所需的人物引用,在 Action 中写清变化顺序;需要生成过程画面时给该 Action 添加 `transition_prompt`。
|
|
73
|
-
- 地点切换、明显跳时、叙事线切换或明确转场时建立新 scene。location 仍是单值引用。
|
|
74
|
-
|
|
75
|
-
## 九、完成门
|
|
76
|
-
|
|
77
|
-
1. 读回本集 `scenes` 与 `actions`。
|
|
78
|
-
2. 检查每场唯一地点、全部出场人物、道具和 state 引用。
|
|
79
|
-
3. 检查 Action 的真名、动作链、空间结果和可拍摄性。
|
|
80
|
-
4. 检查 dialogue 的说话人、emotion 和群体发声类型。
|
|
81
|
-
5. 检查场界、蒙太奇顺序、重复人物引用和状态变化顺序。
|
|
82
|
-
6. 提取与解析任务对照源素材复核对白原文,以及事实、因果、顺序、动作结果和状态。
|
|
83
|
-
7. 运行 `validate`。把结构通过与内容标准、源素材一致性分别报告。
|
|
48
|
+
1. 读回本集 `scenes` 与 `actions`,检查每场地点、人物、道具和状态引用。
|
|
49
|
+
2. 检查 Action 的真名、动作链、空间结果和可拍摄性,以及对白说话人与表演提示。
|
|
50
|
+
3. 对照源素材复核对白原文、事实、因果、顺序、动作结果和状态。
|
|
51
|
+
4. 运行 `validate`,确认结构与引用合法。
|
|
52
|
+
5. 运行 `audit-assets`,检查重复人物、同义视觉状态、未使用/落单状态,以及重复地点和道具资产。
|
|
53
|
+
6. 审计只提供建议;结合剧情身份、外观、对白归属、出现位置和跨集连续性确认后再合并或删除。
|
|
54
|
+
7. 修复后重新运行 `validate` 和 `audit-assets`,分别报告结构、资产审计、内容标准和源素材一致性。
|
|
@@ -1,61 +1,38 @@
|
|
|
1
|
-
# State
|
|
1
|
+
# State 引用修复
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
> 造型(state)挂在**场景级 cast 引用**上(`scene.actors[]` / `props[]` / `location` 的 `state_id`),引用只有这一层。
|
|
6
|
-
|
|
7
|
-
## 操作语义
|
|
8
|
-
|
|
9
|
-
合并 state 使用 `state-delete --strategy replace`,删除源 state 并替换引用:
|
|
3
|
+
先反查旧 state:
|
|
10
4
|
|
|
11
5
|
```bash
|
|
12
|
-
|
|
13
|
-
scriptctl state-delete actor:act_001/st_old --strategy replace --replacement st_keep
|
|
14
|
-
|
|
15
|
-
# 真删除:删 st_old,引用它的场景 ref 的 state_id 被清掉
|
|
16
|
-
scriptctl state-delete actor:act_001/st_old --strategy remove
|
|
6
|
+
scriptctl refs actA3kP9x/stB4xR8p --script-path "$SCRIPT"
|
|
17
7
|
```
|
|
18
8
|
|
|
19
|
-
|
|
9
|
+
## Script v4
|
|
20
10
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
1. **操作前反查旧 state**,看谁在引用它:
|
|
11
|
+
场景引用保存完整、非空的 `state_ids` 集合。替换 state 会在场景集合与 actor
|
|
12
|
+
speaker 上同步替换:
|
|
24
13
|
|
|
25
14
|
```bash
|
|
26
|
-
scriptctl
|
|
15
|
+
scriptctl state-delete actA3kP9x/stB4xR8p \
|
|
16
|
+
--strategy replace --replacement default --script-path "$SCRIPT"
|
|
27
17
|
```
|
|
28
18
|
|
|
29
|
-
|
|
19
|
+
`--strategy remove` 会从每个集合移除该 state;若任何集合将变为空,命令拒绝,
|
|
20
|
+
应先为该场写入另一个完整状态集合。speaker 上的可选 state 被移除后可省略,由
|
|
21
|
+
下游依据场景集合判断具体对白落点。
|
|
30
22
|
|
|
31
|
-
|
|
23
|
+
## Script v3
|
|
32
24
|
|
|
33
|
-
|
|
34
|
-
scriptctl state-delete actor:act_001/st_old --strategy replace --replacement st_keep
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
期望:`refs actor:act_001/st_old` 为空;`refs actor:act_001/st_keep` 包含应迁移的场景引用;`scriptctl validate` 通过。
|
|
38
|
-
|
|
39
|
-
3. **真删除用 `remove`**:
|
|
25
|
+
使用 V3 state 地址和既有单值引用语义:
|
|
40
26
|
|
|
41
27
|
```bash
|
|
42
|
-
scriptctl state-delete actor:act_001/
|
|
28
|
+
scriptctl state-delete actor:act_001/st_002 \
|
|
29
|
+
--strategy replace --replacement st_001 --script-path "$SCRIPT"
|
|
43
30
|
```
|
|
44
31
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
4. **只想清某场的造型**(不删 state):
|
|
32
|
+
## 核验
|
|
48
33
|
|
|
49
34
|
```bash
|
|
50
|
-
scriptctl
|
|
51
|
-
scriptctl
|
|
35
|
+
scriptctl refs <旧-state-address> --script-path "$SCRIPT"
|
|
36
|
+
scriptctl refs <新-state-address> --script-path "$SCRIPT"
|
|
37
|
+
scriptctl validate --script-path "$SCRIPT"
|
|
52
38
|
```
|
|
53
|
-
|
|
54
|
-
`--clear` / `--state none` 只用于修复中间态;从零创作不能用它们跳过状态绑定。
|
|
55
|
-
|
|
56
|
-
## 核验要点
|
|
57
|
-
|
|
58
|
-
- 引用只有一层:`scene.{actors|props}[].state_id` 和 `scene.location.state_id`。`replace`/`remove` 会自动处理这一层。
|
|
59
|
-
- replacement 只能是**同一资产**上已存在的 state_id。
|
|
60
|
-
- 改完固定两步复查:`scriptctl refs actor:<id>/<st>` 为空 + `scriptctl validate` 通过。
|
|
61
|
-
- `STATE_NOT_MATERIALIZED`:某场引用了一个该资产上不存在的 state_id。用 `scriptctl states <asset>` 看合法 state_id,再 `scene-ref <ep/scn> <kind:id> --state <合法 id>` 修正。
|
package/dist/help-text.d.ts
DELETED