@lingjingai/scriptctl 0.49.16 → 0.50.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/unreleased.md +2 -1
- package/dist/cli.js +26 -5
- package/dist/cli.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 +47 -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/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 +145 -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 +317 -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 +92 -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 +165 -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 +211 -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 +180 -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 +100 -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 +63 -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 +67 -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 +18 -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 +139 -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 +379 -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 +125 -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/help-text.js +146 -114
- package/dist/help-text.js.map +1 -1
- package/dist/llm/config.js +2 -0
- 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/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/types.d.ts +1 -1
- package/dist/llm/types.js.map +1 -1
- package/dist/usecases/ingest/command.js +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/pipeline.js +62 -11
- 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 +11 -4
- package/dist/usecases/ingest/serial-govern.js.map +1 -1
- package/dist/usecases/ingest/video-pipeline.js +100 -14
- package/dist/usecases/ingest/video-pipeline.js.map +1 -1
- package/dist/usecases/ingest/view-server.js +2 -2
- package/dist/usecases/ingest/view-server.js.map +1 -1
- package/dist/usecases/script/actions.js +101 -5
- package/dist/usecases/script/actions.js.map +1 -1
- package/dist/usecases/script/actors.js +16 -7
- package/dist/usecases/script/actors.js.map +1 -1
- package/dist/usecases/script/alias.js +7 -6
- package/dist/usecases/script/alias.js.map +1 -1
- package/dist/usecases/script/assets.js +18 -2
- 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 +40 -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 +115 -0
- package/dist/usecases/script/command-constraints.js.map +1 -0
- package/dist/usecases/script/context.js +31 -4
- package/dist/usecases/script/context.js.map +1 -1
- package/dist/usecases/script/create.js +2 -2
- package/dist/usecases/script/create.js.map +1 -1
- package/dist/usecases/script/delete.js +6 -3
- package/dist/usecases/script/delete.js.map +1 -1
- package/dist/usecases/script/describe.js +7 -4
- package/dist/usecases/script/describe.js.map +1 -1
- package/dist/usecases/script/dialogue.js +15 -5
- 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.js +74 -11
- package/dist/usecases/script/do.js.map +1 -1
- package/dist/usecases/script/emotion.js +14 -3
- package/dist/usecases/script/emotion.js.map +1 -1
- package/dist/usecases/script/episodes.js +15 -4
- package/dist/usecases/script/episodes.js.map +1 -1
- package/dist/usecases/script/export-authoring.js +35 -11
- package/dist/usecases/script/export-authoring.js.map +1 -1
- package/dist/usecases/script/extend.js +23 -15
- package/dist/usecases/script/extend.js.map +1 -1
- package/dist/usecases/script/ids.js +53 -10
- package/dist/usecases/script/ids.js.map +1 -1
- package/dist/usecases/script/insert.js +74 -38
- package/dist/usecases/script/insert.js.map +1 -1
- package/dist/usecases/script/lib.d.ts +50 -1
- package/dist/usecases/script/lib.js +599 -61
- package/dist/usecases/script/lib.js.map +1 -1
- package/dist/usecases/script/locations.js +16 -7
- package/dist/usecases/script/locations.js.map +1 -1
- package/dist/usecases/script/merge.js +8 -5
- package/dist/usecases/script/merge.js.map +1 -1
- package/dist/usecases/script/move.js +24 -5
- package/dist/usecases/script/move.js.map +1 -1
- package/dist/usecases/script/parenthetical.d.ts +3 -0
- package/dist/usecases/script/parenthetical.js +55 -0
- package/dist/usecases/script/parenthetical.js.map +1 -0
- package/dist/usecases/script/props.js +16 -7
- package/dist/usecases/script/props.js.map +1 -1
- package/dist/usecases/script/refs.js +44 -0
- package/dist/usecases/script/refs.js.map +1 -1
- package/dist/usecases/script/rename.js +7 -4
- package/dist/usecases/script/rename.js.map +1 -1
- package/dist/usecases/script/scenes.js +32 -6
- package/dist/usecases/script/scenes.js.map +1 -1
- package/dist/usecases/script/script-patch.js +180 -16
- package/dist/usecases/script/script-patch.js.map +1 -1
- package/dist/usecases/script/session.d.ts +3 -0
- package/dist/usecases/script/session.js +25 -5
- package/dist/usecases/script/session.js.map +1 -1
- package/dist/usecases/script/split.js +12 -6
- package/dist/usecases/script/split.js.map +1 -1
- package/dist/usecases/script/states.js +45 -1
- package/dist/usecases/script/states.js.map +1 -1
- package/dist/usecases/script/synopsis.js +11 -4
- package/dist/usecases/script/synopsis.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 +14 -0
- package/dist/usecases/script/v4/queries.js +154 -0
- package/dist/usecases/script/v4/queries.js.map +1 -0
- package/dist/usecases/script/working-copy.js +3 -3
- package/dist/usecases/script/working-copy.js.map +1 -1
- package/dist/usecases/script/write-authoring.js +99 -5
- package/dist/usecases/script/write-authoring.js.map +1 -1
- package/package.json +3 -2
- package/skills/scriptctl/SKILL.md +122 -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/llm/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/llm/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/llm/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type AssetAuditIssue, type AssetAuditSnapshot } from "../../../domain/ingest/asset-audit.js";
|
|
2
|
+
import type { LlmTaskExecutor } from "../../types.js";
|
|
3
|
+
export declare const ASSET_AUDIT_SYSTEM: string;
|
|
4
|
+
export declare function formatAssetAuditInput(snapshot: AssetAuditSnapshot): string;
|
|
5
|
+
export declare function parseAssetAuditResponse(raw: string, snapshot: AssetAuditSnapshot): AssetAuditIssue[];
|
|
6
|
+
export declare function runAssetAudit(executor: LlmTaskExecutor, snapshot: AssetAuditSnapshot, signal?: AbortSignal): Promise<AssetAuditIssue[]>;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
// Whole-script semantic asset audit. Unlike per-episode extraction, this task
|
|
2
|
+
// sees the final global roster and only reports suspected duplicates/anomalies;
|
|
3
|
+
// it never mutates or merges the script by itself.
|
|
4
|
+
const ASSET_INPUT_COLUMNS = ["id", "name", "aliases", "importance", "refs", "episodes", "scenes", "format_key", "description", "evidence_refs"];
|
|
5
|
+
const STATE_INPUT_COLUMNS = ["address", "name", "refs", "episodes", "scenes", "frequency", "format_key", "description", "evidence_refs"];
|
|
6
|
+
export const ASSET_AUDIT_SYSTEM = [
|
|
7
|
+
"你正在对一部已经完成解析的完整剧本进行全局资产一致性审计。目标是发现同一实体被重复建档、同一稳定视觉状态被重复拆分,以及值得人工重点复核的低频异常状态。",
|
|
8
|
+
"输入是完整资产登记的紧凑行式快照,不是 JSON。第一行 ASSET_AUDIT_SNAPSHOT_V1 是协议版本;title|<剧名> 是剧名;A_COLUMNS/S_COLUMNS 是列定义,不是资产数据;[actors:N]、[locations:N]、[props:N] 分别开始人物、地点、道具分区,N 是该分区资产数并决定其中 A 行的资产类型。",
|
|
9
|
+
`A 行表示一项资产。去掉开头的 A 后,各列从左到右固定为:${ASSET_INPUT_COLUMNS.join(" | ")}。id 是资产 ID;name 是规范名;aliases 是别名列表;importance 是重要度;refs/episodes/scenes 是引用次数、覆盖集数、覆盖场数;format_key 是仅消除格式噪声的名称键;description 是资产描述;evidence_refs 是少量实际引用位置。`,
|
|
10
|
+
`S 行表示状态并隶属于同一分区中紧邻其上的 A 行。去掉开头的 S 后,各列从左到右固定为:${STATE_INPUT_COLUMNS.join(" | ")}。address 是 <asset_id>/<state_id> 形式的全局状态地址;name 是状态名;refs/episodes/scenes 含义同上;frequency 为 unused、singleton 或 -;description 是状态视觉描述;evidence_refs 是该状态的实际引用位置。`,
|
|
11
|
+
"解析规则:只在未转义的 | 处分列,只在未转义的 ; 处分隔 aliases/evidence_refs 列表;- 表示空值或无频率标记;\\|、\\;、\\n、\\\\ 分别表示字段内容中的竖线、分号、换行和反斜杠。不要把 A_COLUMNS/S_COLUMNS 当作实体,也不要把 S 行跨资产归属。",
|
|
12
|
+
"format_key 只折叠空白、标点、大小写、全半角等格式差异,是召回证据而不是同一实体的最终结论。",
|
|
13
|
+
"",
|
|
14
|
+
"一、人物身份一致性",
|
|
15
|
+
"检查同一个人物是否因名称表达不同被登记成多个 actor。差异包括但不限于:空格、标点、大小写、全半角、简繁体;全名、简称、昵称、称谓、职位、旧名、化名、译名、音译;分词差异、轻微错别字、转录误差;名称附带身份、情绪、对白或状态说明;前期身份未明、后期又以真名重新登记。",
|
|
16
|
+
"例如『林有粮』和『林 有粮』只是格式不同,但不能只按名称相似度合并。必须综合人物关系、剧情身份、外貌描述、行为轨迹、对白归属、出现位置和跨集连续性判断。姓名相似、身份相近或经常同框的不同人物绝不能误合。",
|
|
17
|
+
"",
|
|
18
|
+
"二、视觉状态一致性",
|
|
19
|
+
"在同一个人物、地点或道具内部,检查是否因描述方式、颜色粒度、措辞详略或观察角度不同,把同一个稳定视觉状态拆成多个 state。重点关注同义/近义状态、同一套服装被重新命名、仅光线或局部细节造成的差异,以及状态名混入情绪、动作或场景说明。",
|
|
20
|
+
"判断标准不是名称是否一致,而是是否真的需要分别制作独立、可复用的视觉参考资产。视觉主体和持续外观一致时建议归并;明确换装、变身、损毁、持续伤势或其他持续性变化则保持独立。",
|
|
21
|
+
"",
|
|
22
|
+
"三、低频与异常状态",
|
|
23
|
+
"重点检查非 default 且未被引用、只在一个场景出现、出现后立即恢复原状态、与前后状态几乎相同或实际属于情绪/姿势/动作/光线/瞬时过程的状态。低频不等于错误:明确对应关键换装、剧情事件、持续伤势、变身或必要视觉变化时应保留,不要输出为问题。证据不足时 action=review。",
|
|
24
|
+
"",
|
|
25
|
+
"四、地点与道具一致性",
|
|
26
|
+
"检查同一个物理地点或同一件具体道具是否因名称、前后缀、归属描述、简称、简繁体、转录差异或观察角度不同而重复登记。区分同一地点的不同名称与同一建筑中的不同独立空间,也区分同一件具体道具与同类但实际不同的多件道具。",
|
|
27
|
+
"这里检查和建议合并的是重复 location 资产,不是 scene。相同地点可以承载多个不同剧情场次,不能因为地点相同就合并 scene。",
|
|
28
|
+
"",
|
|
29
|
+
"五、审计边界与输出",
|
|
30
|
+
"只引用输入中真实存在的 asset/state id;只输出确实可疑、需要合并/删除/人工确认的项目,确认合理的资产或低频状态不要输出。不要直接修改剧本。",
|
|
31
|
+
"每个问题必须给出具体证据和操作建议。高置信度仍只是建议;存在冲突或无法确认时 action=review、confidence=low 或 medium。",
|
|
32
|
+
"只输出一个 JSON 对象,不要 Markdown,不要解释文字。格式:",
|
|
33
|
+
"state_ids 必须填写输入里的完整状态 address(<asset_id>/<state_id>),不能只写可能在多个资产下重复的局部 state_id。",
|
|
34
|
+
'{"issues":[{"type":"duplicate_actor|duplicate_location|duplicate_prop|duplicate_state|suspicious_singleton_state|unused_state|needs_human_review","asset_ids":["真实资产id"],"state_ids":["真实状态address"],"names":["相关名称"],"evidence":"判断依据","recommendation":"建议如何处理","suggested_survivor":"建议保留的资产id或状态address;没有则为null","action":"merge|delete|review","confidence":"high|medium|low"}]}',
|
|
35
|
+
"没有问题时输出 {\"issues\":[]}。",
|
|
36
|
+
].join("\n");
|
|
37
|
+
const ISSUE_TYPES = new Set([
|
|
38
|
+
"duplicate_actor",
|
|
39
|
+
"duplicate_location",
|
|
40
|
+
"duplicate_prop",
|
|
41
|
+
"duplicate_state",
|
|
42
|
+
"suspicious_singleton_state",
|
|
43
|
+
"unused_state",
|
|
44
|
+
"needs_human_review",
|
|
45
|
+
]);
|
|
46
|
+
const ACTIONS = new Set(["merge", "delete", "review"]);
|
|
47
|
+
const CONFIDENCES = new Set(["high", "medium", "low"]);
|
|
48
|
+
// The roster can be large. This format declares column names once instead of
|
|
49
|
+
// repeating JSON keys for every asset/state, while preserving readable evidence.
|
|
50
|
+
function compactField(value) {
|
|
51
|
+
const trimmed = value.trim();
|
|
52
|
+
if (!trimmed)
|
|
53
|
+
return "-";
|
|
54
|
+
return trimmed
|
|
55
|
+
.replace(/\\/g, "\\\\")
|
|
56
|
+
.replace(/\r\n?|\n/g, "\\n")
|
|
57
|
+
.replace(/\|/g, "\\|")
|
|
58
|
+
.replace(/;/g, "\\;");
|
|
59
|
+
}
|
|
60
|
+
function compactList(values) {
|
|
61
|
+
return values.length > 0 ? values.map(compactField).join(";") : "-";
|
|
62
|
+
}
|
|
63
|
+
export function formatAssetAuditInput(snapshot) {
|
|
64
|
+
const lines = [
|
|
65
|
+
"ASSET_AUDIT_SNAPSHOT_V1",
|
|
66
|
+
`title|${compactField(snapshot.title)}`,
|
|
67
|
+
`A_COLUMNS|${ASSET_INPUT_COLUMNS.join("|")}`,
|
|
68
|
+
`S_COLUMNS|${STATE_INPUT_COLUMNS.join("|")}`,
|
|
69
|
+
];
|
|
70
|
+
const appendSection = (name, assets) => {
|
|
71
|
+
lines.push(`[${name}:${assets.length}]`);
|
|
72
|
+
for (const asset of assets) {
|
|
73
|
+
lines.push([
|
|
74
|
+
"A",
|
|
75
|
+
compactField(asset.id),
|
|
76
|
+
compactField(asset.name),
|
|
77
|
+
compactList(asset.aliases),
|
|
78
|
+
compactField(asset.importance),
|
|
79
|
+
String(asset.reference_count),
|
|
80
|
+
String(asset.episode_count),
|
|
81
|
+
String(asset.scene_count),
|
|
82
|
+
compactField(asset.format_key),
|
|
83
|
+
compactField(asset.description),
|
|
84
|
+
compactList(asset.references),
|
|
85
|
+
].join("|"));
|
|
86
|
+
for (const state of asset.states) {
|
|
87
|
+
lines.push([
|
|
88
|
+
"S",
|
|
89
|
+
compactField(state.address),
|
|
90
|
+
compactField(state.state_name),
|
|
91
|
+
String(state.reference_count),
|
|
92
|
+
String(state.episode_count),
|
|
93
|
+
String(state.scene_count),
|
|
94
|
+
state.frequency_flag ?? "-",
|
|
95
|
+
compactField(state.format_key),
|
|
96
|
+
compactField(state.description),
|
|
97
|
+
compactList(state.references),
|
|
98
|
+
].join("|"));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
appendSection("actors", snapshot.actors);
|
|
103
|
+
appendSection("locations", snapshot.locations);
|
|
104
|
+
appendSection("props", snapshot.props);
|
|
105
|
+
return lines.join("\n");
|
|
106
|
+
}
|
|
107
|
+
const isObj = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
108
|
+
const asArr = (value) => Array.isArray(value) ? value : [];
|
|
109
|
+
const asStr = (value) => typeof value === "string" ? value.trim() : "";
|
|
110
|
+
const strings = (value) => [...new Set(asArr(value).map(asStr).filter(Boolean))];
|
|
111
|
+
function parseJsonObject(raw) {
|
|
112
|
+
const text = raw.trim();
|
|
113
|
+
if (!text)
|
|
114
|
+
return { issues: [] };
|
|
115
|
+
const unfenced = text.startsWith("```")
|
|
116
|
+
? text.replace(/^```(?:json)?\s*/i, "").replace(/\s*```$/, "")
|
|
117
|
+
: text;
|
|
118
|
+
return JSON.parse(unfenced);
|
|
119
|
+
}
|
|
120
|
+
export function parseAssetAuditResponse(raw, snapshot) {
|
|
121
|
+
const parsed = parseJsonObject(raw);
|
|
122
|
+
if (!isObj(parsed))
|
|
123
|
+
throw new Error("asset audit response must be a JSON object");
|
|
124
|
+
const validAssetIds = new Set([...snapshot.actors, ...snapshot.locations, ...snapshot.props].map((asset) => asset.id));
|
|
125
|
+
const validStateIds = new Set([...snapshot.actors, ...snapshot.locations, ...snapshot.props].flatMap((asset) => asset.states.map((state) => state.address)));
|
|
126
|
+
const issues = [];
|
|
127
|
+
for (const rawIssue of asArr(parsed.issues)) {
|
|
128
|
+
if (!isObj(rawIssue))
|
|
129
|
+
continue;
|
|
130
|
+
const type = asStr(rawIssue.type);
|
|
131
|
+
const action = asStr(rawIssue.action);
|
|
132
|
+
const confidence = asStr(rawIssue.confidence);
|
|
133
|
+
if (!ISSUE_TYPES.has(type) || !ACTIONS.has(action) || !CONFIDENCES.has(confidence))
|
|
134
|
+
continue;
|
|
135
|
+
const assetIds = strings(rawIssue.asset_ids).filter((id) => validAssetIds.has(id));
|
|
136
|
+
const stateIds = strings(rawIssue.state_ids).filter((id) => validStateIds.has(id));
|
|
137
|
+
if (assetIds.length === 0 && stateIds.length === 0)
|
|
138
|
+
continue;
|
|
139
|
+
const survivor = asStr(rawIssue.suggested_survivor);
|
|
140
|
+
const suggestedSurvivor = survivor && (validAssetIds.has(survivor) || validStateIds.has(survivor)) ? survivor : null;
|
|
141
|
+
issues.push({
|
|
142
|
+
type,
|
|
143
|
+
asset_ids: assetIds,
|
|
144
|
+
state_ids: stateIds,
|
|
145
|
+
names: strings(rawIssue.names),
|
|
146
|
+
evidence: asStr(rawIssue.evidence),
|
|
147
|
+
recommendation: asStr(rawIssue.recommendation),
|
|
148
|
+
suggested_survivor: suggestedSurvivor,
|
|
149
|
+
action,
|
|
150
|
+
confidence,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return issues;
|
|
154
|
+
}
|
|
155
|
+
export async function runAssetAudit(executor, snapshot, signal) {
|
|
156
|
+
const response = await executor.generateText("ingest.asset-audit", {
|
|
157
|
+
system: ASSET_AUDIT_SYSTEM,
|
|
158
|
+
user: formatAssetAuditInput(snapshot),
|
|
159
|
+
responseFormat: "json_object",
|
|
160
|
+
...(signal ? { signal } : {}),
|
|
161
|
+
});
|
|
162
|
+
return parseAssetAuditResponse(response.text, snapshot);
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=asset-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-audit.js","sourceRoot":"","sources":["../../../../src/llm/tasks/ingest/asset-audit.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type LlmProtocol = "anthropic" | "openai-compatible" | "google-gemini";
|
|
2
|
-
export type LlmTaskId = "direct.episode-titles" | "direct.batch-extract" | "direct.episode-synopsis" | "direct.synopsis-reduction" | "direct.script-synopsis" | "direct.asset-grouping" | "direct.asset-curation" | "direct.asset-curation-audit" | "direct.location-canonicalization" | "direct.state-curation" | "direct.state-binding" | "metadata.global" | "metadata.descriptions" | "synopsis.chunk" | "synopsis.episode" | "synopsis.arc" | "synopsis.script-overview" | "ingest.body-start" | "ingest.arc-summary" | "ingest.text-normalize" | "ingest.episode-assets" | "ingest.name-fix" | "ingest.mention-resolve" | "ingest.asset-extract" | "ingest.asset-curate" | "ingest.asset-recall" | "ingest.asset-refine" | "ingest.state-reconcile" | "ingest.speaker-audit" | "ingest.video-serial";
|
|
2
|
+
export type LlmTaskId = "direct.episode-titles" | "direct.batch-extract" | "direct.episode-synopsis" | "direct.synopsis-reduction" | "direct.script-synopsis" | "direct.asset-grouping" | "direct.asset-curation" | "direct.asset-curation-audit" | "direct.location-canonicalization" | "direct.state-curation" | "direct.state-binding" | "metadata.global" | "metadata.descriptions" | "synopsis.chunk" | "synopsis.episode" | "synopsis.arc" | "synopsis.script-overview" | "ingest.body-start" | "ingest.arc-summary" | "ingest.text-normalize" | "ingest.episode-assets" | "ingest.name-fix" | "ingest.mention-resolve" | "ingest.asset-extract" | "ingest.asset-curate" | "ingest.asset-recall" | "ingest.asset-refine" | "ingest.state-reconcile" | "ingest.asset-audit" | "ingest.speaker-audit" | "ingest.video-serial";
|
|
3
3
|
export type LlmTaskMode = "text" | "tool" | "video";
|
|
4
4
|
export type JsonSchema = Record<string, unknown>;
|
|
5
5
|
export interface TextGenerationRequest {
|
package/dist/llm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AAiLA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,CAAe;IACnB,SAAS,CAAU;IACnB,OAAO,CAAW;IAE3B,YAAY,IAAkB,EAAE,OAAe,EAAE,UAAuD,EAAE;QACxG,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// `scriptctl ingest` — bare command (§4). Converts a txt/md/docx or video source
|
|
2
|
-
// into a Script
|
|
2
|
+
// into a Script v4 workspace (script.jsonl → script.initial.json → script.json).
|
|
3
3
|
// Fully decoupled from `direct`: touches only ingest domain/infra + llm + common.
|
|
4
4
|
import * as path from "node:path";
|
|
5
5
|
import { CliError, EXIT_INPUT, EXIT_OK } from "../../common.js";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type AssetAuditIssue } from "../../domain/ingest/asset-audit.js";
|
|
2
|
+
import type { ValidationIssue } from "../../domain/ingest/validation.js";
|
|
3
|
+
import { WorkspaceStore } from "../../infra/ingest/workspace-store.js";
|
|
4
|
+
import type { LlmTaskExecutor } from "../../llm/types.js";
|
|
5
|
+
export declare const ASSET_AUDIT_VERSION = "1";
|
|
6
|
+
export interface AssetAuditReport {
|
|
7
|
+
audit_version: string;
|
|
8
|
+
script_hash: string;
|
|
9
|
+
created_at: string;
|
|
10
|
+
summary: {
|
|
11
|
+
issues: number;
|
|
12
|
+
high: number;
|
|
13
|
+
medium: number;
|
|
14
|
+
low: number;
|
|
15
|
+
};
|
|
16
|
+
issues: AssetAuditIssue[];
|
|
17
|
+
}
|
|
18
|
+
export declare function auditScriptAssets(script: Record<string, unknown>, executor: LlmTaskExecutor, signal?: AbortSignal): Promise<AssetAuditReport>;
|
|
19
|
+
export declare function auditScriptAssetsCached(opts: {
|
|
20
|
+
script: Record<string, unknown>;
|
|
21
|
+
executor: LlmTaskExecutor;
|
|
22
|
+
read: () => unknown;
|
|
23
|
+
write: (report: AssetAuditReport) => void;
|
|
24
|
+
exists: () => boolean;
|
|
25
|
+
force?: boolean;
|
|
26
|
+
signal?: AbortSignal;
|
|
27
|
+
}): Promise<{
|
|
28
|
+
report: AssetAuditReport;
|
|
29
|
+
reused: boolean;
|
|
30
|
+
}>;
|
|
31
|
+
export declare function auditWorkspaceScriptAssets(store: WorkspaceStore, script: Record<string, unknown>, executor: LlmTaskExecutor, opts?: {
|
|
32
|
+
force?: boolean;
|
|
33
|
+
signal?: AbortSignal;
|
|
34
|
+
}): Promise<{
|
|
35
|
+
report: AssetAuditReport;
|
|
36
|
+
reused: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
export declare function assetAuditIssueLine(issue: AssetAuditIssue): string;
|
|
39
|
+
export declare function assetAuditWarnings(report: AssetAuditReport): ValidationIssue[];
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Shared final asset-audit boundary for text/video ingest and the standalone
|
|
2
|
+
// audit command. Results are content-addressed so an unchanged script reuses the
|
|
3
|
+
// sidecar while any edit makes the old result stale automatically.
|
|
4
|
+
import { buildAssetAuditSnapshot, } from "../../domain/ingest/asset-audit.js";
|
|
5
|
+
import { semanticScriptHash } from "../../infra/script-working-copy.js";
|
|
6
|
+
import { runAssetAudit } from "../../llm/tasks/ingest/asset-audit.js";
|
|
7
|
+
export const ASSET_AUDIT_VERSION = "1";
|
|
8
|
+
const isReport = (value, scriptHash) => {
|
|
9
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
10
|
+
return false;
|
|
11
|
+
const report = value;
|
|
12
|
+
return report.audit_version === ASSET_AUDIT_VERSION
|
|
13
|
+
&& report.script_hash === scriptHash
|
|
14
|
+
&& report.summary !== null
|
|
15
|
+
&& typeof report.summary === "object"
|
|
16
|
+
&& Array.isArray(report.issues);
|
|
17
|
+
};
|
|
18
|
+
function reportFor(scriptHash, issues) {
|
|
19
|
+
return {
|
|
20
|
+
audit_version: ASSET_AUDIT_VERSION,
|
|
21
|
+
script_hash: scriptHash,
|
|
22
|
+
created_at: new Date().toISOString(),
|
|
23
|
+
summary: {
|
|
24
|
+
issues: issues.length,
|
|
25
|
+
high: issues.filter((issue) => issue.confidence === "high").length,
|
|
26
|
+
medium: issues.filter((issue) => issue.confidence === "medium").length,
|
|
27
|
+
low: issues.filter((issue) => issue.confidence === "low").length,
|
|
28
|
+
},
|
|
29
|
+
issues,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export async function auditScriptAssets(script, executor, signal) {
|
|
33
|
+
const scriptHash = semanticScriptHash(script);
|
|
34
|
+
const snapshot = buildAssetAuditSnapshot(script);
|
|
35
|
+
const issues = await runAssetAudit(executor, snapshot, signal);
|
|
36
|
+
return reportFor(scriptHash, issues);
|
|
37
|
+
}
|
|
38
|
+
export async function auditScriptAssetsCached(opts) {
|
|
39
|
+
const scriptHash = semanticScriptHash(opts.script);
|
|
40
|
+
if (!opts.force && opts.exists()) {
|
|
41
|
+
try {
|
|
42
|
+
const cached = opts.read();
|
|
43
|
+
if (isReport(cached, scriptHash)) {
|
|
44
|
+
opts.executor.recordReuse("ingest.asset-audit");
|
|
45
|
+
return { report: cached, reused: true };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// A malformed/stale sidecar is disposable; regenerate it from script.json.
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const report = await auditScriptAssets(opts.script, opts.executor, opts.signal);
|
|
53
|
+
opts.write(report);
|
|
54
|
+
return { report, reused: false };
|
|
55
|
+
}
|
|
56
|
+
export async function auditWorkspaceScriptAssets(store, script, executor, opts = {}) {
|
|
57
|
+
return auditScriptAssetsCached({
|
|
58
|
+
script,
|
|
59
|
+
executor,
|
|
60
|
+
read: () => store.readJson("asset-audit.json"),
|
|
61
|
+
write: (report) => store.writeJson("asset-audit.json", report),
|
|
62
|
+
exists: () => store.has("asset-audit.json"),
|
|
63
|
+
...(opts.force ? { force: true } : {}),
|
|
64
|
+
...(opts.signal ? { signal: opts.signal } : {}),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const TYPE_LABEL = {
|
|
68
|
+
duplicate_actor: "duplicate actor",
|
|
69
|
+
duplicate_location: "duplicate location",
|
|
70
|
+
duplicate_prop: "duplicate prop",
|
|
71
|
+
duplicate_state: "duplicate state",
|
|
72
|
+
suspicious_singleton_state: "suspicious singleton state",
|
|
73
|
+
unused_state: "unused state",
|
|
74
|
+
needs_human_review: "asset needs human review",
|
|
75
|
+
};
|
|
76
|
+
export function assetAuditIssueLine(issue) {
|
|
77
|
+
const targets = [...issue.asset_ids, ...issue.state_ids].join(", ") || "<unknown>";
|
|
78
|
+
const detail = issue.evidence || issue.recommendation || "review the referenced assets";
|
|
79
|
+
return `${TYPE_LABEL[issue.type]} [${targets}]: ${detail}`;
|
|
80
|
+
}
|
|
81
|
+
export function assetAuditWarnings(report) {
|
|
82
|
+
return report.issues.map((issue) => ({
|
|
83
|
+
code: `asset_audit_${issue.type}`,
|
|
84
|
+
path: "$",
|
|
85
|
+
message: `${assetAuditIssueLine(issue)}; action=${issue.action}; confidence=${issue.confidence}`,
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=final-asset-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"final-asset-audit.js","sourceRoot":"","sources":["../../../src/usecases/ingest/final-asset-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,9 @@ import { parseJsonl } from "../../domain/ingest/jsonl-parser.js";
|
|
|
14
14
|
import { validateProductionStandard } from "../../domain/ingest/production-validation.js";
|
|
15
15
|
import { renumberIds } from "../../domain/ingest/renumber.js";
|
|
16
16
|
import { validateScriptV3 } from "../../domain/ingest/validation.js";
|
|
17
|
+
import { requireScriptV3 } from "../../domain/script/v3/parse.js";
|
|
18
|
+
import { newScriptV4FromV3WithIdentity, } from "../../domain/script/v4/from-v3.js";
|
|
19
|
+
import { validateScriptV4 } from "../../domain/script/v4/validation.js";
|
|
17
20
|
import { resolveSource } from "../../infra/ingest/source-resolver.js";
|
|
18
21
|
import { readTextSource } from "../../infra/ingest/text-reader.js";
|
|
19
22
|
import { WorkspaceStore } from "../../infra/ingest/workspace-store.js";
|
|
@@ -21,9 +24,10 @@ import { runTextNormalize, parseNormalizeOutput } from "../../llm/tasks/ingest/t
|
|
|
21
24
|
import { detectBodyStart } from "./body-start.js";
|
|
22
25
|
import { mapSettled } from "./fanout.js";
|
|
23
26
|
import { runSerialGovern } from "./serial-govern.js";
|
|
27
|
+
import { assetAuditWarnings, auditWorkspaceScriptAssets } from "./final-asset-audit.js";
|
|
24
28
|
import { Timings } from "./timings.js";
|
|
25
29
|
import { writeUsage } from "./usage-report.js";
|
|
26
|
-
const PIPELINE_VERSION = "
|
|
30
|
+
const PIPELINE_VERSION = "6";
|
|
27
31
|
const pad = (n) => String(n).padStart(3, "0");
|
|
28
32
|
const serializeJsonl = (records) => records.map((r) => JSON.stringify(r)).join("\n") + "\n";
|
|
29
33
|
function checkLifecycle(store, sourceSha, force) {
|
|
@@ -49,7 +53,17 @@ function checkLifecycle(store, sourceSha, force) {
|
|
|
49
53
|
if (force) {
|
|
50
54
|
for (const dir of ["pass1", "pass2", "pass3", "pass5", "serial"])
|
|
51
55
|
fs.rmSync(store.path(dir), { recursive: true, force: true });
|
|
52
|
-
for (const f of [
|
|
56
|
+
for (const f of [
|
|
57
|
+
"body.json",
|
|
58
|
+
"script.initial.json",
|
|
59
|
+
"script.json",
|
|
60
|
+
"validation.json",
|
|
61
|
+
"asset-audit.json",
|
|
62
|
+
"notes.json",
|
|
63
|
+
"issues.json",
|
|
64
|
+
"provisional_assets.json",
|
|
65
|
+
"v4_identity_map.json",
|
|
66
|
+
])
|
|
53
67
|
fs.rmSync(store.path(f), { force: true });
|
|
54
68
|
}
|
|
55
69
|
}
|
|
@@ -159,7 +173,7 @@ export async function runTextIngest(opts) {
|
|
|
159
173
|
}
|
|
160
174
|
// Serial govern: context starts EMPTY and grows per episode; the model reads each
|
|
161
175
|
// episode's body + context-so-far and reports discovered entities / importance /
|
|
162
|
-
// 造型 / per-scene presence. The
|
|
176
|
+
// 造型 / per-scene presence. The governed v3 intermediate is converted to v4. Every step
|
|
163
177
|
// persists the full context md (= prompt) and the model's `# 更新` md; resume
|
|
164
178
|
// replays cached `# 更新` (no LLM). Cleared by --force (serial dir wiped).
|
|
165
179
|
const pad3 = (n) => String(n).padStart(3, "0");
|
|
@@ -202,32 +216,69 @@ export async function runTextIngest(opts) {
|
|
|
202
216
|
if (serial.autoCreated.length)
|
|
203
217
|
store.writeText("serial/auto_created.json", JSON.stringify(serial.autoCreated, null, 2));
|
|
204
218
|
timings.phaseEnd("serial");
|
|
205
|
-
// Persist
|
|
206
|
-
//
|
|
219
|
+
// Persist serial-model spend before deterministic conversion. A structural
|
|
220
|
+
// failure must not erase spend that a resumed run cannot reconstruct.
|
|
207
221
|
writeUsage(store, opts.executor);
|
|
208
222
|
// Final clean numbering: contiguous per-kind asset ids + per-asset state ids.
|
|
209
223
|
timings.phaseStart("govern");
|
|
210
224
|
const { script: renumbered, idMap } = renumberIds(governed);
|
|
211
225
|
store.writeJson("id_map.json", idMap);
|
|
212
|
-
const
|
|
226
|
+
const intermediateValidation = validateScriptV3(renumbered);
|
|
227
|
+
if (!intermediateValidation.ok) {
|
|
228
|
+
store.writeJson("validation.json", intermediateValidation);
|
|
229
|
+
throw new CliError("INGEST VALIDATION FAILED", "Intermediate script failed validation before v4 identity assignment.", {
|
|
230
|
+
exitCode: EXIT_INPUT,
|
|
231
|
+
errorCode: "INGEST_VALIDATION_FAILED",
|
|
232
|
+
received: intermediateValidation.errors.slice(0, 5).map((e) => `${e.path}: ${e.message}`),
|
|
233
|
+
nextSteps: ["Inspect validation.json."],
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
const priorIdentity = !opts.force && store.has("v4_identity_map.json")
|
|
237
|
+
? store.readJson("v4_identity_map.json")
|
|
238
|
+
: undefined;
|
|
239
|
+
// V4 identities bind to the stable pre-renumber ingest keys. The contiguous
|
|
240
|
+
// V3 ids in `renumbered` are an audit artifact only: deleting or merging an
|
|
241
|
+
// earlier entity can shift them onto a different surviving entity.
|
|
242
|
+
const converted = newScriptV4FromV3WithIdentity(requireScriptV3(governed), priorIdentity, serial.identityKeys);
|
|
243
|
+
const finalScript = converted.script;
|
|
244
|
+
const structuralValidation = validateScriptV4(finalScript);
|
|
245
|
+
let auditWarnings = [];
|
|
246
|
+
try {
|
|
247
|
+
if (structuralValidation.ok) {
|
|
248
|
+
const audit = await auditWorkspaceScriptAssets(store, finalScript, opts.executor, {
|
|
249
|
+
force: opts.force ?? false,
|
|
250
|
+
...(opts.signal ? { signal: opts.signal } : {}),
|
|
251
|
+
});
|
|
252
|
+
auditWarnings = assetAuditWarnings(audit.report);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
finally {
|
|
256
|
+
// The audit is model-backed. Persist its usage even when it fails.
|
|
257
|
+
writeUsage(store, opts.executor);
|
|
258
|
+
}
|
|
213
259
|
const validation = {
|
|
214
260
|
...structuralValidation,
|
|
215
|
-
warnings: [
|
|
261
|
+
warnings: [
|
|
262
|
+
...structuralValidation.warnings,
|
|
263
|
+
...validateProductionStandard(finalScript),
|
|
264
|
+
...auditWarnings,
|
|
265
|
+
],
|
|
216
266
|
};
|
|
217
|
-
store.writeJson("pass5/script.json",
|
|
267
|
+
store.writeJson("pass5/script.json", finalScript);
|
|
268
|
+
store.writeJson("v4_identity_map.json", converted.identityMap);
|
|
218
269
|
store.writeJson("validation.json", validation);
|
|
219
270
|
if (!validation.ok) {
|
|
220
|
-
throw new CliError("INGEST VALIDATION FAILED", "Final script.json failed
|
|
271
|
+
throw new CliError("INGEST VALIDATION FAILED", "Final script.json failed v4 validation.", {
|
|
221
272
|
exitCode: EXIT_INPUT,
|
|
222
273
|
errorCode: "INGEST_VALIDATION_FAILED",
|
|
223
274
|
received: validation.errors.slice(0, 5).map((e) => `${e.path}: ${e.message}`),
|
|
224
275
|
nextSteps: ["Inspect validation.json."],
|
|
225
276
|
});
|
|
226
277
|
}
|
|
227
|
-
store.writeJson("script.json",
|
|
278
|
+
store.writeJson("script.json", finalScript);
|
|
228
279
|
timings.phaseEnd("govern");
|
|
229
280
|
timings.finish();
|
|
230
|
-
const g =
|
|
281
|
+
const g = finalScript;
|
|
231
282
|
return {
|
|
232
283
|
workspacePath: store.root,
|
|
233
284
|
chunks: chunks.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/usecases/ingest/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/usecases/ingest/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type NameScript, type NameScene } from "../../domain/ingest/assembler.js";
|
|
1
|
+
import { type NameScript, type NameScene, type StructuralIdentityKeys } from "../../domain/ingest/assembler.js";
|
|
2
2
|
import { type GlobalContext } from "../../domain/ingest/serial-context.js";
|
|
3
3
|
import type { LlmTaskExecutor } from "../../llm/types.js";
|
|
4
4
|
export interface SerialCheckpoint {
|
|
@@ -29,6 +29,7 @@ export interface SerialGovernOptions {
|
|
|
29
29
|
}
|
|
30
30
|
export interface SerialGovernResult {
|
|
31
31
|
doc: Record<string, unknown>;
|
|
32
|
+
identityKeys: StructuralIdentityKeys;
|
|
32
33
|
episodes: number;
|
|
33
34
|
reused: number;
|
|
34
35
|
autoCreated: GlobalContext["autoCreated"];
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// importance/descriptions/looks are overlaid, and governDeterministic materializes.
|
|
11
11
|
// Per-episode md checkpoint + transient-retry as before.
|
|
12
12
|
import { CliError, EXIT_INPUT } from "../../common.js";
|
|
13
|
-
import { assignProvisionalIds } from "../../domain/ingest/assembler.js";
|
|
13
|
+
import { assignProvisionalIds, } from "../../domain/ingest/assembler.js";
|
|
14
14
|
import { governDeterministic } from "../../domain/ingest/govern.js";
|
|
15
15
|
import { emptyContext, applyDelta, compact, pendingArcFold, applyArcFold, synopsisLabel, render, resolveCanon, findEntity, baseLook, estimateTokens, packEpisodes, isCrowdName } from "../../domain/ingest/serial-context.js";
|
|
16
16
|
import { runArcSummary } from "../../llm/tasks/ingest/arc-summary.js";
|
|
@@ -143,7 +143,13 @@ export async function runSerialGovern(body, opts) {
|
|
|
143
143
|
applyArcFold(ctx, summary);
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
|
-
|
|
146
|
+
const finalized = finalize(body, ctx);
|
|
147
|
+
return {
|
|
148
|
+
...finalized,
|
|
149
|
+
episodes: episodes.length,
|
|
150
|
+
reused,
|
|
151
|
+
autoCreated: ctx.autoCreated,
|
|
152
|
+
};
|
|
147
153
|
}
|
|
148
154
|
// Body ACTOR/LOCATION names (in the given episodes) that resolve to no registry
|
|
149
155
|
// entity — a missed merge worth repairing (a real character/place the serial pass
|
|
@@ -255,13 +261,14 @@ function finalize(body, ctx) {
|
|
|
255
261
|
sc.props = props.map((n) => stateRef(ctx, n, carry));
|
|
256
262
|
}
|
|
257
263
|
}
|
|
258
|
-
const
|
|
264
|
+
const assigned = assignProvisionalIds(doc);
|
|
265
|
+
const script = assigned.script;
|
|
259
266
|
overlay(script, ctx);
|
|
260
267
|
applyImportance(script); // deterministic: override model/registry tiers by on-screen span
|
|
261
268
|
const governed = governDeterministic(script);
|
|
262
269
|
renameSyntheticDefault(governed);
|
|
263
270
|
ensureDescriptions(governed); // last: nothing ships with an empty description
|
|
264
|
-
return governed;
|
|
271
|
+
return { doc: governed, identityKeys: assigned.identityKeys };
|
|
265
272
|
}
|
|
266
273
|
const RESET = "常态";
|
|
267
274
|
// De-dupe a list of already-resolved canonical names, keeping first-seen order.
|