@lingjingai/scriptctl 0.63.14 → 0.63.16
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 +12 -1
- package/changes/0.63.15.md +15 -0
- package/dist/bin.js +1 -20844
- package/dist/chunk-YOCQDDQC.js +823 -0
- package/dist/cli.d.ts +214 -5
- package/dist/cli.js +1 -187
- package/dist/review-agent.js +60 -3593
- package/package.json +17 -9
- package/skills/scriptctl/SKILL.md +2 -0
- package/skills/scriptctl/references/ingest-workflow.md +4 -0
- package/skills/scriptctl/references/production-writing-standard.md +10 -1
- package/skills/scriptctl/references/state-reference-repair.md +8 -0
- package/dist/bin.d.ts +0 -2
- package/dist/bin.js.map +0 -7
- package/dist/cli/register-authoring.d.ts +0 -4
- package/dist/cli/register-authoring.js +0 -35
- package/dist/cli/register-authoring.js.map +0 -1
- package/dist/cli/register-review.d.ts +0 -3
- package/dist/cli/register-review.js +0 -20
- package/dist/cli/register-review.js.map +0 -1
- package/dist/cli/register-script.d.ts +0 -3
- package/dist/cli/register-script.js +0 -297
- package/dist/cli/register-script.js.map +0 -1
- package/dist/cli/register-tools.d.ts +0 -3
- package/dist/cli/register-tools.js +0 -23
- package/dist/cli/register-tools.js.map +0 -1
- package/dist/cli/register-workflows.d.ts +0 -4
- package/dist/cli/register-workflows.js +0 -108
- package/dist/cli/register-workflows.js.map +0 -1
- package/dist/cli/registry.d.ts +0 -14
- package/dist/cli/registry.js +0 -65
- package/dist/cli/registry.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/common.d.ts +0 -93
- package/dist/common.js +0 -240
- package/dist/common.js.map +0 -1
- package/dist/domain/authoring/apply.d.ts +0 -1
- package/dist/domain/authoring/apply.js +0 -2
- package/dist/domain/authoring/apply.js.map +0 -1
- package/dist/domain/authoring/export.d.ts +0 -1
- package/dist/domain/authoring/export.js +0 -2
- package/dist/domain/authoring/export.js.map +0 -1
- package/dist/domain/authoring/parser.d.ts +0 -2
- package/dist/domain/authoring/parser.js +0 -3
- package/dist/domain/authoring/parser.js.map +0 -1
- package/dist/domain/authoring/serializer.d.ts +0 -1
- package/dist/domain/authoring/serializer.js +0 -2
- package/dist/domain/authoring/serializer.js.map +0 -1
- package/dist/domain/authoring/shared/bracket.d.ts +0 -4
- package/dist/domain/authoring/shared/bracket.js +0 -95
- package/dist/domain/authoring/shared/bracket.js.map +0 -1
- package/dist/domain/authoring/shared/types.d.ts +0 -12
- package/dist/domain/authoring/shared/types.js +0 -2
- package/dist/domain/authoring/shared/types.js.map +0 -1
- package/dist/domain/authoring/types.d.ts +0 -2
- package/dist/domain/authoring/types.js +0 -3
- package/dist/domain/authoring/types.js.map +0 -1
- package/dist/domain/authoring/v3/apply.d.ts +0 -33
- package/dist/domain/authoring/v3/apply.js +0 -784
- package/dist/domain/authoring/v3/apply.js.map +0 -1
- package/dist/domain/authoring/v3/export.d.ts +0 -7
- package/dist/domain/authoring/v3/export.js +0 -85
- package/dist/domain/authoring/v3/export.js.map +0 -1
- package/dist/domain/authoring/v3/parser.d.ts +0 -3
- package/dist/domain/authoring/v3/parser.js +0 -823
- package/dist/domain/authoring/v3/parser.js.map +0 -1
- package/dist/domain/authoring/v3/serializer.d.ts +0 -2
- package/dist/domain/authoring/v3/serializer.js +0 -244
- package/dist/domain/authoring/v3/serializer.js.map +0 -1
- package/dist/domain/authoring/v3/types.d.ts +0 -76
- package/dist/domain/authoring/v3/types.js +0 -2
- package/dist/domain/authoring/v3/types.js.map +0 -1
- package/dist/domain/authoring/v4/apply.d.ts +0 -40
- package/dist/domain/authoring/v4/apply.js +0 -451
- package/dist/domain/authoring/v4/apply.js.map +0 -1
- package/dist/domain/authoring/v4/parser.d.ts +0 -2
- package/dist/domain/authoring/v4/parser.js +0 -729
- package/dist/domain/authoring/v4/parser.js.map +0 -1
- package/dist/domain/authoring/v4/serializer.d.ts +0 -6
- package/dist/domain/authoring/v4/serializer.js +0 -280
- package/dist/domain/authoring/v4/serializer.js.map +0 -1
- package/dist/domain/authoring/v4/types.d.ts +0 -50
- package/dist/domain/authoring/v4/types.js +0 -2
- package/dist/domain/authoring/v4/types.js.map +0 -1
- package/dist/domain/creative-draft/compose.d.ts +0 -18
- package/dist/domain/creative-draft/compose.js +0 -448
- package/dist/domain/creative-draft/compose.js.map +0 -1
- package/dist/domain/ingest/apply-plan.d.ts +0 -23
- package/dist/domain/ingest/apply-plan.js +0 -210
- package/dist/domain/ingest/apply-plan.js.map +0 -1
- package/dist/domain/ingest/assembler.d.ts +0 -65
- package/dist/domain/ingest/assembler.js +0 -263
- package/dist/domain/ingest/assembler.js.map +0 -1
- package/dist/domain/ingest/asset-audit.d.ts +0 -50
- package/dist/domain/ingest/asset-audit.js +0 -196
- package/dist/domain/ingest/asset-audit.js.map +0 -1
- package/dist/domain/ingest/chunker.d.ts +0 -9
- package/dist/domain/ingest/chunker.js +0 -49
- package/dist/domain/ingest/chunker.js.map +0 -1
- package/dist/domain/ingest/environment.d.ts +0 -3
- package/dist/domain/ingest/environment.js +0 -32
- package/dist/domain/ingest/environment.js.map +0 -1
- package/dist/domain/ingest/evidence.d.ts +0 -5
- package/dist/domain/ingest/evidence.js +0 -66
- package/dist/domain/ingest/evidence.js.map +0 -1
- package/dist/domain/ingest/govern.d.ts +0 -3
- package/dist/domain/ingest/govern.js +0 -157
- package/dist/domain/ingest/govern.js.map +0 -1
- package/dist/domain/ingest/jsonl-parser.d.ts +0 -6
- package/dist/domain/ingest/jsonl-parser.js +0 -204
- package/dist/domain/ingest/jsonl-parser.js.map +0 -1
- package/dist/domain/ingest/markdown-parser.d.ts +0 -6
- package/dist/domain/ingest/markdown-parser.js +0 -187
- package/dist/domain/ingest/markdown-parser.js.map +0 -1
- package/dist/domain/ingest/production-validation.d.ts +0 -8
- package/dist/domain/ingest/production-validation.js +0 -37
- package/dist/domain/ingest/production-validation.js.map +0 -1
- package/dist/domain/ingest/records.d.ts +0 -72
- package/dist/domain/ingest/records.js +0 -10
- package/dist/domain/ingest/records.js.map +0 -1
- package/dist/domain/ingest/renumber.d.ts +0 -14
- package/dist/domain/ingest/renumber.js +0 -130
- package/dist/domain/ingest/renumber.js.map +0 -1
- package/dist/domain/ingest/serial-context.d.ts +0 -93
- package/dist/domain/ingest/serial-context.js +0 -355
- package/dist/domain/ingest/serial-context.js.map +0 -1
- package/dist/domain/ingest/state-identity.d.ts +0 -2
- package/dist/domain/ingest/state-identity.js +0 -3
- package/dist/domain/ingest/state-identity.js.map +0 -1
- package/dist/domain/ingest/state-reconcile.d.ts +0 -12
- package/dist/domain/ingest/state-reconcile.js +0 -92
- package/dist/domain/ingest/state-reconcile.js.map +0 -1
- package/dist/domain/ingest/validation.d.ts +0 -1
- package/dist/domain/ingest/validation.js +0 -2
- package/dist/domain/ingest/validation.js.map +0 -1
- package/dist/domain/ingest/video-apply.d.ts +0 -4
- package/dist/domain/ingest/video-apply.js +0 -128
- package/dist/domain/ingest/video-apply.js.map +0 -1
- package/dist/domain/ingest/video-context.d.ts +0 -64
- package/dist/domain/ingest/video-context.js +0 -480
- package/dist/domain/ingest/video-context.js.map +0 -1
- package/dist/domain/ingest/video-records.d.ts +0 -57
- package/dist/domain/ingest/video-records.js +0 -9
- package/dist/domain/ingest/video-records.js.map +0 -1
- package/dist/domain/ingest/video-serial-md.d.ts +0 -81
- package/dist/domain/ingest/video-serial-md.js +0 -297
- package/dist/domain/ingest/video-serial-md.js.map +0 -1
- package/dist/domain/ingest/video-source-evolution.d.ts +0 -25
- package/dist/domain/ingest/video-source-evolution.js +0 -40
- package/dist/domain/ingest/video-source-evolution.js.map +0 -1
- package/dist/domain/ingest/video-state-evidence.d.ts +0 -66
- package/dist/domain/ingest/video-state-evidence.js +0 -385
- package/dist/domain/ingest/video-state-evidence.js.map +0 -1
- package/dist/domain/ingest/video-timestamp.d.ts +0 -8
- package/dist/domain/ingest/video-timestamp.js +0 -26
- package/dist/domain/ingest/video-timestamp.js.map +0 -1
- package/dist/domain/loom/checkpointer.d.ts +0 -3
- package/dist/domain/loom/checkpointer.js +0 -30
- package/dist/domain/loom/checkpointer.js.map +0 -1
- package/dist/domain/loom/index.d.ts +0 -45
- package/dist/domain/loom/index.js +0 -277
- package/dist/domain/loom/index.js.map +0 -1
- package/dist/domain/loom/types.d.ts +0 -101
- package/dist/domain/loom/types.js +0 -2
- package/dist/domain/loom/types.js.map +0 -1
- package/dist/domain/script/address.d.ts +0 -1
- package/dist/domain/script/address.js +0 -2
- package/dist/domain/script/address.js.map +0 -1
- package/dist/domain/script/dispatch.d.ts +0 -18
- package/dist/domain/script/dispatch.js +0 -55
- package/dist/domain/script/dispatch.js.map +0 -1
- package/dist/domain/script/lookups.d.ts +0 -1
- package/dist/domain/script/lookups.js +0 -2
- package/dist/domain/script/lookups.js.map +0 -1
- package/dist/domain/script/migrations/registry.d.ts +0 -4
- package/dist/domain/script/migrations/registry.js +0 -76
- package/dist/domain/script/migrations/registry.js.map +0 -1
- package/dist/domain/script/migrations/types.d.ts +0 -17
- package/dist/domain/script/migrations/types.js +0 -2
- package/dist/domain/script/migrations/types.js.map +0 -1
- package/dist/domain/script/migrations/v3-to-v4.d.ts +0 -3
- package/dist/domain/script/migrations/v3-to-v4.js +0 -57
- package/dist/domain/script/migrations/v3-to-v4.js.map +0 -1
- package/dist/domain/script/names.d.ts +0 -1
- package/dist/domain/script/names.js +0 -2
- package/dist/domain/script/names.js.map +0 -1
- package/dist/domain/script/parse.d.ts +0 -1
- package/dist/domain/script/parse.js +0 -2
- package/dist/domain/script/parse.js.map +0 -1
- package/dist/domain/script/patch/apply.d.ts +0 -1
- package/dist/domain/script/patch/apply.js +0 -2
- package/dist/domain/script/patch/apply.js.map +0 -1
- package/dist/domain/script/patch/helpers.d.ts +0 -1
- package/dist/domain/script/patch/helpers.js +0 -2
- package/dist/domain/script/patch/helpers.js.map +0 -1
- package/dist/domain/script/patch/inline-speaker.d.ts +0 -1
- package/dist/domain/script/patch/inline-speaker.js +0 -2
- package/dist/domain/script/patch/inline-speaker.js.map +0 -1
- package/dist/domain/script/patch/ops-action.d.ts +0 -1
- package/dist/domain/script/patch/ops-action.js +0 -2
- package/dist/domain/script/patch/ops-action.js.map +0 -1
- package/dist/domain/script/patch/ops-asset.d.ts +0 -1
- package/dist/domain/script/patch/ops-asset.js +0 -2
- package/dist/domain/script/patch/ops-asset.js.map +0 -1
- package/dist/domain/script/patch/ops-dialogue.d.ts +0 -1
- package/dist/domain/script/patch/ops-dialogue.js +0 -2
- package/dist/domain/script/patch/ops-dialogue.js.map +0 -1
- package/dist/domain/script/patch/ops-extend.d.ts +0 -1
- package/dist/domain/script/patch/ops-extend.js +0 -2
- package/dist/domain/script/patch/ops-extend.js.map +0 -1
- package/dist/domain/script/patch/ops-meta.d.ts +0 -1
- package/dist/domain/script/patch/ops-meta.js +0 -2
- package/dist/domain/script/patch/ops-meta.js.map +0 -1
- package/dist/domain/script/patch/ops-scene.d.ts +0 -1
- package/dist/domain/script/patch/ops-scene.js +0 -2
- package/dist/domain/script/patch/ops-scene.js.map +0 -1
- package/dist/domain/script/patch/ops-state.d.ts +0 -1
- package/dist/domain/script/patch/ops-state.js +0 -2
- package/dist/domain/script/patch/ops-state.js.map +0 -1
- package/dist/domain/script/patch/registry.d.ts +0 -1
- package/dist/domain/script/patch/registry.js +0 -2
- package/dist/domain/script/patch/registry.js.map +0 -1
- package/dist/domain/script/patch/types.d.ts +0 -1
- package/dist/domain/script/patch/types.js +0 -2
- package/dist/domain/script/patch/types.js.map +0 -1
- package/dist/domain/script/refs.d.ts +0 -1
- package/dist/domain/script/refs.js +0 -2
- package/dist/domain/script/refs.js.map +0 -1
- package/dist/domain/script/scene-refs.d.ts +0 -1
- package/dist/domain/script/scene-refs.js +0 -2
- package/dist/domain/script/scene-refs.js.map +0 -1
- package/dist/domain/script/schema.d.ts +0 -1
- package/dist/domain/script/schema.js +0 -2
- package/dist/domain/script/schema.js.map +0 -1
- package/dist/domain/script/selector.d.ts +0 -1
- package/dist/domain/script/selector.js +0 -2
- package/dist/domain/script/selector.js.map +0 -1
- package/dist/domain/script/shared/regex.d.ts +0 -2
- package/dist/domain/script/shared/regex.js +0 -7
- package/dist/domain/script/shared/regex.js.map +0 -1
- package/dist/domain/script/shared/types.d.ts +0 -1
- package/dist/domain/script/shared/types.js +0 -5
- package/dist/domain/script/shared/types.js.map +0 -1
- package/dist/domain/script/shared/validation.d.ts +0 -1
- package/dist/domain/script/shared/validation.js +0 -3
- package/dist/domain/script/shared/validation.js.map +0 -1
- package/dist/domain/script/shared.d.ts +0 -15
- package/dist/domain/script/shared.js +0 -35
- package/dist/domain/script/shared.js.map +0 -1
- package/dist/domain/script/text-util.d.ts +0 -7
- package/dist/domain/script/text-util.js +0 -95
- package/dist/domain/script/text-util.js.map +0 -1
- package/dist/domain/script/timestamp.d.ts +0 -1
- package/dist/domain/script/timestamp.js +0 -3
- package/dist/domain/script/timestamp.js.map +0 -1
- package/dist/domain/script/types.d.ts +0 -1
- package/dist/domain/script/types.js +0 -2
- package/dist/domain/script/types.js.map +0 -1
- package/dist/domain/script/v3/address.d.ts +0 -32
- package/dist/domain/script/v3/address.js +0 -136
- package/dist/domain/script/v3/address.js.map +0 -1
- package/dist/domain/script/v3/lookups.d.ts +0 -33
- package/dist/domain/script/v3/lookups.js +0 -316
- package/dist/domain/script/v3/lookups.js.map +0 -1
- package/dist/domain/script/v3/ordinal.d.ts +0 -8
- package/dist/domain/script/v3/ordinal.js +0 -91
- package/dist/domain/script/v3/ordinal.js.map +0 -1
- package/dist/domain/script/v3/parse.d.ts +0 -3
- package/dist/domain/script/v3/parse.js +0 -164
- package/dist/domain/script/v3/parse.js.map +0 -1
- package/dist/domain/script/v3/patch/apply.d.ts +0 -2
- package/dist/domain/script/v3/patch/apply.js +0 -31
- package/dist/domain/script/v3/patch/apply.js.map +0 -1
- package/dist/domain/script/v3/patch/helpers.d.ts +0 -15
- package/dist/domain/script/v3/patch/helpers.js +0 -155
- package/dist/domain/script/v3/patch/helpers.js.map +0 -1
- package/dist/domain/script/v3/patch/inline-speaker.d.ts +0 -2
- package/dist/domain/script/v3/patch/inline-speaker.js +0 -50
- package/dist/domain/script/v3/patch/inline-speaker.js.map +0 -1
- package/dist/domain/script/v3/patch/ops-action.d.ts +0 -12
- package/dist/domain/script/v3/patch/ops-action.js +0 -355
- package/dist/domain/script/v3/patch/ops-action.js.map +0 -1
- package/dist/domain/script/v3/patch/ops-asset.d.ts +0 -14
- package/dist/domain/script/v3/patch/ops-asset.js +0 -347
- package/dist/domain/script/v3/patch/ops-asset.js.map +0 -1
- package/dist/domain/script/v3/patch/ops-dialogue.d.ts +0 -2
- package/dist/domain/script/v3/patch/ops-dialogue.js +0 -21
- package/dist/domain/script/v3/patch/ops-dialogue.js.map +0 -1
- package/dist/domain/script/v3/patch/ops-extend.d.ts +0 -8
- package/dist/domain/script/v3/patch/ops-extend.js +0 -122
- package/dist/domain/script/v3/patch/ops-extend.js.map +0 -1
- package/dist/domain/script/v3/patch/ops-meta.d.ts +0 -5
- package/dist/domain/script/v3/patch/ops-meta.js +0 -82
- package/dist/domain/script/v3/patch/ops-meta.js.map +0 -1
- package/dist/domain/script/v3/patch/ops-scene.d.ts +0 -6
- package/dist/domain/script/v3/patch/ops-scene.js +0 -351
- package/dist/domain/script/v3/patch/ops-scene.js.map +0 -1
- package/dist/domain/script/v3/patch/ops-state.d.ts +0 -8
- package/dist/domain/script/v3/patch/ops-state.js +0 -155
- package/dist/domain/script/v3/patch/ops-state.js.map +0 -1
- package/dist/domain/script/v3/patch/ops-timestamp.d.ts +0 -6
- package/dist/domain/script/v3/patch/ops-timestamp.js +0 -47
- package/dist/domain/script/v3/patch/ops-timestamp.js.map +0 -1
- package/dist/domain/script/v3/patch/registry.d.ts +0 -2
- package/dist/domain/script/v3/patch/registry.js +0 -56
- package/dist/domain/script/v3/patch/registry.js.map +0 -1
- package/dist/domain/script/v3/patch/types.d.ts +0 -10
- package/dist/domain/script/v3/patch/types.js +0 -2
- package/dist/domain/script/v3/patch/types.js.map +0 -1
- package/dist/domain/script/v3/refs.d.ts +0 -4
- package/dist/domain/script/v3/refs.js +0 -64
- package/dist/domain/script/v3/refs.js.map +0 -1
- package/dist/domain/script/v3/scene-refs.d.ts +0 -3
- package/dist/domain/script/v3/scene-refs.js +0 -35
- package/dist/domain/script/v3/scene-refs.js.map +0 -1
- package/dist/domain/script/v3/schema.d.ts +0 -6
- package/dist/domain/script/v3/schema.js +0 -58
- package/dist/domain/script/v3/schema.js.map +0 -1
- package/dist/domain/script/v3/selector.d.ts +0 -44
- package/dist/domain/script/v3/selector.js +0 -178
- package/dist/domain/script/v3/selector.js.map +0 -1
- package/dist/domain/script/v3/types.d.ts +0 -106
- package/dist/domain/script/v3/types.js +0 -2
- package/dist/domain/script/v3/types.js.map +0 -1
- package/dist/domain/script/v3/validation.d.ts +0 -2
- package/dist/domain/script/v3/validation.js +0 -2
- package/dist/domain/script/v3/validation.js.map +0 -1
- package/dist/domain/script/v4/address.d.ts +0 -61
- package/dist/domain/script/v4/address.js +0 -99
- package/dist/domain/script/v4/address.js.map +0 -1
- package/dist/domain/script/v4/factory.d.ts +0 -2
- package/dist/domain/script/v4/factory.js +0 -13
- package/dist/domain/script/v4/factory.js.map +0 -1
- package/dist/domain/script/v4/from-v3.d.ts +0 -29
- package/dist/domain/script/v4/from-v3.js +0 -307
- package/dist/domain/script/v4/from-v3.js.map +0 -1
- package/dist/domain/script/v4/ids.d.ts +0 -5
- package/dist/domain/script/v4/ids.js +0 -41
- package/dist/domain/script/v4/ids.js.map +0 -1
- package/dist/domain/script/v4/ordinal.d.ts +0 -3
- package/dist/domain/script/v4/ordinal.js +0 -66
- package/dist/domain/script/v4/ordinal.js.map +0 -1
- package/dist/domain/script/v4/parse.d.ts +0 -5
- package/dist/domain/script/v4/parse.js +0 -196
- package/dist/domain/script/v4/parse.js.map +0 -1
- package/dist/domain/script/v4/patch/apply.d.ts +0 -3
- package/dist/domain/script/v4/patch/apply.js +0 -24
- package/dist/domain/script/v4/patch/apply.js.map +0 -1
- package/dist/domain/script/v4/patch/helpers.d.ts +0 -32
- package/dist/domain/script/v4/patch/helpers.js +0 -138
- package/dist/domain/script/v4/patch/helpers.js.map +0 -1
- package/dist/domain/script/v4/patch/ops-action.d.ts +0 -13
- package/dist/domain/script/v4/patch/ops-action.js +0 -351
- package/dist/domain/script/v4/patch/ops-action.js.map +0 -1
- package/dist/domain/script/v4/patch/ops-asset.d.ts +0 -17
- package/dist/domain/script/v4/patch/ops-asset.js +0 -556
- package/dist/domain/script/v4/patch/ops-asset.js.map +0 -1
- package/dist/domain/script/v4/patch/ops-extend.d.ts +0 -11
- package/dist/domain/script/v4/patch/ops-extend.js +0 -103
- package/dist/domain/script/v4/patch/ops-extend.js.map +0 -1
- package/dist/domain/script/v4/patch/ops-meta.d.ts +0 -5
- package/dist/domain/script/v4/patch/ops-meta.js +0 -49
- package/dist/domain/script/v4/patch/ops-meta.js.map +0 -1
- package/dist/domain/script/v4/patch/ops-scene-ref.d.ts +0 -3
- package/dist/domain/script/v4/patch/ops-scene-ref.js +0 -74
- package/dist/domain/script/v4/patch/ops-scene-ref.js.map +0 -1
- package/dist/domain/script/v4/patch/ops-structure.d.ts +0 -6
- package/dist/domain/script/v4/patch/ops-structure.js +0 -236
- package/dist/domain/script/v4/patch/ops-structure.js.map +0 -1
- package/dist/domain/script/v4/patch/ops-timestamp.d.ts +0 -6
- package/dist/domain/script/v4/patch/ops-timestamp.js +0 -40
- package/dist/domain/script/v4/patch/ops-timestamp.js.map +0 -1
- package/dist/domain/script/v4/patch/registry.d.ts +0 -2
- package/dist/domain/script/v4/patch/registry.js +0 -53
- package/dist/domain/script/v4/patch/registry.js.map +0 -1
- package/dist/domain/script/v4/patch/schema.d.ts +0 -7
- package/dist/domain/script/v4/patch/schema.js +0 -77
- package/dist/domain/script/v4/patch/schema.js.map +0 -1
- package/dist/domain/script/v4/patch/types.d.ts +0 -10
- package/dist/domain/script/v4/patch/types.js +0 -2
- package/dist/domain/script/v4/patch/types.js.map +0 -1
- package/dist/domain/script/v4/selector.d.ts +0 -11
- package/dist/domain/script/v4/selector.js +0 -124
- package/dist/domain/script/v4/selector.js.map +0 -1
- package/dist/domain/script/v4/types.d.ts +0 -120
- package/dist/domain/script/v4/types.js +0 -2
- package/dist/domain/script/v4/types.js.map +0 -1
- package/dist/domain/script/v4/validation.d.ts +0 -2
- package/dist/domain/script/v4/validation.js +0 -2
- package/dist/domain/script/v4/validation.js.map +0 -1
- package/dist/failures.d.ts +0 -58
- package/dist/failures.js +0 -96
- package/dist/failures.js.map +0 -1
- package/dist/infra/converters.d.ts +0 -9
- package/dist/infra/converters.js +0 -689
- package/dist/infra/converters.js.map +0 -1
- package/dist/infra/env.d.ts +0 -2
- package/dist/infra/env.js +0 -81
- package/dist/infra/env.js.map +0 -1
- package/dist/infra/episode-title.d.ts +0 -4
- package/dist/infra/episode-title.js +0 -129
- package/dist/infra/episode-title.js.map +0 -1
- package/dist/infra/ingest/review-renderer.d.ts +0 -1
- package/dist/infra/ingest/review-renderer.js +0 -440
- package/dist/infra/ingest/review-renderer.js.map +0 -1
- package/dist/infra/ingest/source-resolver.d.ts +0 -21
- package/dist/infra/ingest/source-resolver.js +0 -51
- package/dist/infra/ingest/source-resolver.js.map +0 -1
- package/dist/infra/ingest/text-reader.d.ts +0 -3
- package/dist/infra/ingest/text-reader.js +0 -27
- package/dist/infra/ingest/text-reader.js.map +0 -1
- package/dist/infra/ingest/video-discovery.d.ts +0 -8
- package/dist/infra/ingest/video-discovery.js +0 -69
- package/dist/infra/ingest/video-discovery.js.map +0 -1
- package/dist/infra/ingest/video-source-snapshot.d.ts +0 -4
- package/dist/infra/ingest/video-source-snapshot.js +0 -47
- package/dist/infra/ingest/video-source-snapshot.js.map +0 -1
- package/dist/infra/ingest/video-state-evidence.d.ts +0 -14
- package/dist/infra/ingest/video-state-evidence.js +0 -140
- package/dist/infra/ingest/video-state-evidence.js.map +0 -1
- package/dist/infra/ingest/video-transcode.d.ts +0 -7
- package/dist/infra/ingest/video-transcode.js +0 -98
- package/dist/infra/ingest/video-transcode.js.map +0 -1
- package/dist/infra/ingest/workspace-lock.d.ts +0 -1
- package/dist/infra/ingest/workspace-lock.js +0 -32
- package/dist/infra/ingest/workspace-lock.js.map +0 -1
- package/dist/infra/ingest/workspace-store.d.ts +0 -18
- package/dist/infra/ingest/workspace-store.js +0 -70
- package/dist/infra/ingest/workspace-store.js.map +0 -1
- package/dist/infra/llm/anthropic-model.d.ts +0 -11
- package/dist/infra/llm/anthropic-model.js +0 -130
- package/dist/infra/llm/anthropic-model.js.map +0 -1
- package/dist/infra/llm/doubao-model.d.ts +0 -60
- package/dist/infra/llm/doubao-model.js +0 -249
- package/dist/infra/llm/doubao-model.js.map +0 -1
- package/dist/infra/llm/failure-mapping.d.ts +0 -6
- package/dist/infra/llm/failure-mapping.js +0 -146
- package/dist/infra/llm/failure-mapping.js.map +0 -1
- package/dist/infra/llm/gemini-upload.d.ts +0 -13
- package/dist/infra/llm/gemini-upload.js +0 -138
- package/dist/infra/llm/gemini-upload.js.map +0 -1
- package/dist/infra/llm/gemini-video-model.d.ts +0 -50
- package/dist/infra/llm/gemini-video-model.js +0 -371
- package/dist/infra/llm/gemini-video-model.js.map +0 -1
- package/dist/infra/llm/openai-compatible-model.d.ts +0 -14
- package/dist/infra/llm/openai-compatible-model.js +0 -207
- package/dist/infra/llm/openai-compatible-model.js.map +0 -1
- package/dist/infra/llm/retry.d.ts +0 -8
- package/dist/infra/llm/retry.js +0 -41
- package/dist/infra/llm/retry.js.map +0 -1
- package/dist/infra/local-script-output-store.d.ts +0 -43
- package/dist/infra/local-script-output-store.js +0 -168
- package/dist/infra/local-script-output-store.js.map +0 -1
- package/dist/infra/script-output-api.d.ts +0 -50
- package/dist/infra/script-output-api.js +0 -251
- package/dist/infra/script-output-api.js.map +0 -1
- package/dist/infra/script-output-store.d.ts +0 -152
- package/dist/infra/script-output-store.js +0 -114
- package/dist/infra/script-output-store.js.map +0 -1
- package/dist/infra/script-working-copy.d.ts +0 -23
- package/dist/infra/script-working-copy.js +0 -157
- package/dist/infra/script-working-copy.js.map +0 -1
- package/dist/infra/storage.d.ts +0 -35
- package/dist/infra/storage.js +0 -91
- package/dist/infra/storage.js.map +0 -1
- package/dist/llm/composition.d.ts +0 -5
- package/dist/llm/composition.js +0 -5
- package/dist/llm/composition.js.map +0 -1
- package/dist/llm/config.d.ts +0 -28
- package/dist/llm/config.js +0 -231
- package/dist/llm/config.js.map +0 -1
- package/dist/llm/registry.d.ts +0 -43
- package/dist/llm/registry.js +0 -69
- package/dist/llm/registry.js.map +0 -1
- package/dist/llm/router.d.ts +0 -46
- package/dist/llm/router.js +0 -512
- package/dist/llm/router.js.map +0 -1
- package/dist/llm/tasks/ingest/arc-summary.d.ts +0 -8
- package/dist/llm/tasks/ingest/arc-summary.js +0 -26
- package/dist/llm/tasks/ingest/arc-summary.js.map +0 -1
- package/dist/llm/tasks/ingest/asset-audit.d.ts +0 -6
- package/dist/llm/tasks/ingest/asset-audit.js +0 -158
- package/dist/llm/tasks/ingest/asset-audit.js.map +0 -1
- package/dist/llm/tasks/ingest/asset-curate.d.ts +0 -13
- package/dist/llm/tasks/ingest/asset-curate.js +0 -45
- package/dist/llm/tasks/ingest/asset-curate.js.map +0 -1
- package/dist/llm/tasks/ingest/asset-extract.d.ts +0 -12
- package/dist/llm/tasks/ingest/asset-extract.js +0 -51
- package/dist/llm/tasks/ingest/asset-extract.js.map +0 -1
- package/dist/llm/tasks/ingest/asset-govern.d.ts +0 -22
- package/dist/llm/tasks/ingest/asset-govern.js +0 -143
- package/dist/llm/tasks/ingest/asset-govern.js.map +0 -1
- package/dist/llm/tasks/ingest/body-start.d.ts +0 -10
- package/dist/llm/tasks/ingest/body-start.js +0 -41
- package/dist/llm/tasks/ingest/body-start.js.map +0 -1
- package/dist/llm/tasks/ingest/episode-assets.d.ts +0 -29
- package/dist/llm/tasks/ingest/episode-assets.js +0 -282
- package/dist/llm/tasks/ingest/episode-assets.js.map +0 -1
- package/dist/llm/tasks/ingest/mention-resolve.d.ts +0 -9
- package/dist/llm/tasks/ingest/mention-resolve.js +0 -39
- package/dist/llm/tasks/ingest/mention-resolve.js.map +0 -1
- package/dist/llm/tasks/ingest/name-fix.d.ts +0 -9
- package/dist/llm/tasks/ingest/name-fix.js +0 -56
- package/dist/llm/tasks/ingest/name-fix.js.map +0 -1
- package/dist/llm/tasks/ingest/state-reconcile.d.ts +0 -8
- package/dist/llm/tasks/ingest/state-reconcile.js +0 -44
- package/dist/llm/tasks/ingest/state-reconcile.js.map +0 -1
- package/dist/llm/tasks/ingest/text-normalize.d.ts +0 -10
- package/dist/llm/tasks/ingest/text-normalize.js +0 -122
- package/dist/llm/tasks/ingest/text-normalize.js.map +0 -1
- package/dist/llm/tasks/ingest/video-serial.d.ts +0 -24
- package/dist/llm/tasks/ingest/video-serial.js +0 -416
- package/dist/llm/tasks/ingest/video-serial.js.map +0 -1
- package/dist/llm/tasks/schemas.d.ts +0 -9
- package/dist/llm/tasks/schemas.js +0 -466
- package/dist/llm/tasks/schemas.js.map +0 -1
- package/dist/llm/types.d.ts +0 -178
- package/dist/llm/types.js +0 -44
- package/dist/llm/types.js.map +0 -1
- package/dist/output.d.ts +0 -3
- package/dist/output.js +0 -94
- package/dist/output.js.map +0 -1
- package/dist/package-root.d.ts +0 -2
- package/dist/package-root.js +0 -38
- package/dist/package-root.js.map +0 -1
- package/dist/review-agent.js.map +0 -7
- package/dist/usecases/changelog.d.ts +0 -9
- package/dist/usecases/changelog.js +0 -134
- package/dist/usecases/changelog.js.map +0 -1
- package/dist/usecases/doctor.d.ts +0 -2
- package/dist/usecases/doctor.js +0 -231
- package/dist/usecases/doctor.js.map +0 -1
- package/dist/usecases/ingest/body-start.d.ts +0 -8
- package/dist/usecases/ingest/body-start.js +0 -36
- package/dist/usecases/ingest/body-start.js.map +0 -1
- package/dist/usecases/ingest/command.d.ts +0 -5
- package/dist/usecases/ingest/command.js +0 -183
- package/dist/usecases/ingest/command.js.map +0 -1
- package/dist/usecases/ingest/failure.d.ts +0 -26
- package/dist/usecases/ingest/failure.js +0 -153
- package/dist/usecases/ingest/failure.js.map +0 -1
- package/dist/usecases/ingest/fanout.d.ts +0 -10
- package/dist/usecases/ingest/fanout.js +0 -23
- package/dist/usecases/ingest/fanout.js.map +0 -1
- package/dist/usecases/ingest/final-asset-audit.d.ts +0 -39
- package/dist/usecases/ingest/final-asset-audit.js +0 -88
- package/dist/usecases/ingest/final-asset-audit.js.map +0 -1
- package/dist/usecases/ingest/generate-video-state-evidence.d.ts +0 -23
- package/dist/usecases/ingest/generate-video-state-evidence.js +0 -124
- package/dist/usecases/ingest/generate-video-state-evidence.js.map +0 -1
- package/dist/usecases/ingest/pass4-mention-resolve.d.ts +0 -11
- package/dist/usecases/ingest/pass4-mention-resolve.js +0 -52
- package/dist/usecases/ingest/pass4-mention-resolve.js.map +0 -1
- package/dist/usecases/ingest/pass5-extract.d.ts +0 -7
- package/dist/usecases/ingest/pass5-extract.js +0 -51
- package/dist/usecases/ingest/pass5-extract.js.map +0 -1
- package/dist/usecases/ingest/pass5-govern.d.ts +0 -13
- package/dist/usecases/ingest/pass5-govern.js +0 -157
- package/dist/usecases/ingest/pass5-govern.js.map +0 -1
- package/dist/usecases/ingest/pipeline.d.ts +0 -28
- package/dist/usecases/ingest/pipeline.js +0 -335
- package/dist/usecases/ingest/pipeline.js.map +0 -1
- package/dist/usecases/ingest/publish-command.d.ts +0 -1
- package/dist/usecases/ingest/publish-command.js +0 -4
- package/dist/usecases/ingest/publish-command.js.map +0 -1
- package/dist/usecases/ingest/serial-govern.d.ts +0 -40
- package/dist/usecases/ingest/serial-govern.js +0 -488
- package/dist/usecases/ingest/serial-govern.js.map +0 -1
- package/dist/usecases/ingest/skip-video-episode.d.ts +0 -4
- package/dist/usecases/ingest/skip-video-episode.js +0 -120
- package/dist/usecases/ingest/skip-video-episode.js.map +0 -1
- package/dist/usecases/ingest/status.d.ts +0 -61
- package/dist/usecases/ingest/status.js +0 -347
- package/dist/usecases/ingest/status.js.map +0 -1
- package/dist/usecases/ingest/timings.d.ts +0 -51
- package/dist/usecases/ingest/timings.js +0 -68
- package/dist/usecases/ingest/timings.js.map +0 -1
- package/dist/usecases/ingest/usage-report.d.ts +0 -125
- package/dist/usecases/ingest/usage-report.js +0 -248
- package/dist/usecases/ingest/usage-report.js.map +0 -1
- package/dist/usecases/ingest/video-pipeline.d.ts +0 -81
- package/dist/usecases/ingest/video-pipeline.js +0 -548
- package/dist/usecases/ingest/video-pipeline.js.map +0 -1
- package/dist/usecases/ingest/video-skip-state.d.ts +0 -29
- package/dist/usecases/ingest/video-skip-state.js +0 -148
- package/dist/usecases/ingest/video-skip-state.js.map +0 -1
- package/dist/usecases/ingest/view-command.d.ts +0 -4
- package/dist/usecases/ingest/view-command.js +0 -67
- package/dist/usecases/ingest/view-command.js.map +0 -1
- package/dist/usecases/ingest/view-server.d.ts +0 -29
- package/dist/usecases/ingest/view-server.js +0 -364
- package/dist/usecases/ingest/view-server.js.map +0 -1
- package/dist/usecases/script/action-span.d.ts +0 -10
- package/dist/usecases/script/action-span.js +0 -42
- package/dist/usecases/script/action-span.js.map +0 -1
- package/dist/usecases/script/actions.d.ts +0 -3
- package/dist/usecases/script/actions.js +0 -184
- package/dist/usecases/script/actions.js.map +0 -1
- package/dist/usecases/script/actor.d.ts +0 -3
- package/dist/usecases/script/actor.js +0 -26
- package/dist/usecases/script/actor.js.map +0 -1
- package/dist/usecases/script/actors.d.ts +0 -3
- package/dist/usecases/script/actors.js +0 -25
- package/dist/usecases/script/actors.js.map +0 -1
- package/dist/usecases/script/add-actor.d.ts +0 -3
- package/dist/usecases/script/add-actor.js +0 -13
- package/dist/usecases/script/add-actor.js.map +0 -1
- package/dist/usecases/script/add-episode.d.ts +0 -3
- package/dist/usecases/script/add-episode.js +0 -9
- package/dist/usecases/script/add-episode.js.map +0 -1
- package/dist/usecases/script/add-location.d.ts +0 -3
- package/dist/usecases/script/add-location.js +0 -11
- package/dist/usecases/script/add-location.js.map +0 -1
- package/dist/usecases/script/add-prop.d.ts +0 -3
- package/dist/usecases/script/add-prop.js +0 -11
- package/dist/usecases/script/add-prop.js.map +0 -1
- package/dist/usecases/script/alias.d.ts +0 -3
- package/dist/usecases/script/alias.js +0 -39
- package/dist/usecases/script/alias.js.map +0 -1
- package/dist/usecases/script/assets.d.ts +0 -3
- package/dist/usecases/script/assets.js +0 -46
- package/dist/usecases/script/assets.js.map +0 -1
- package/dist/usecases/script/audit-assets.d.ts +0 -4
- package/dist/usecases/script/audit-assets.js +0 -37
- package/dist/usecases/script/audit-assets.js.map +0 -1
- package/dist/usecases/script/command-constraints.d.ts +0 -38
- package/dist/usecases/script/command-constraints.js +0 -143
- package/dist/usecases/script/command-constraints.js.map +0 -1
- package/dist/usecases/script/compose-creative-draft.d.ts +0 -3
- package/dist/usecases/script/compose-creative-draft.js +0 -106
- package/dist/usecases/script/compose-creative-draft.js.map +0 -1
- package/dist/usecases/script/context.d.ts +0 -3
- package/dist/usecases/script/context.js +0 -52
- package/dist/usecases/script/context.js.map +0 -1
- package/dist/usecases/script/create.d.ts +0 -3
- package/dist/usecases/script/create.js +0 -27
- package/dist/usecases/script/create.js.map +0 -1
- package/dist/usecases/script/delete.d.ts +0 -3
- package/dist/usecases/script/delete.js +0 -88
- package/dist/usecases/script/delete.js.map +0 -1
- package/dist/usecases/script/describe.d.ts +0 -3
- package/dist/usecases/script/describe.js +0 -32
- package/dist/usecases/script/describe.js.map +0 -1
- package/dist/usecases/script/dialogue.d.ts +0 -3
- package/dist/usecases/script/dialogue.js +0 -30
- package/dist/usecases/script/dialogue.js.map +0 -1
- package/dist/usecases/script/dispatch.d.ts +0 -3
- package/dist/usecases/script/dispatch.js +0 -10
- package/dist/usecases/script/dispatch.js.map +0 -1
- package/dist/usecases/script/do.d.ts +0 -3
- package/dist/usecases/script/do.js +0 -186
- package/dist/usecases/script/do.js.map +0 -1
- package/dist/usecases/script/emotion.d.ts +0 -3
- package/dist/usecases/script/emotion.js +0 -24
- package/dist/usecases/script/emotion.js.map +0 -1
- package/dist/usecases/script/episodes.d.ts +0 -3
- package/dist/usecases/script/episodes.js +0 -62
- package/dist/usecases/script/episodes.js.map +0 -1
- package/dist/usecases/script/export-authoring.d.ts +0 -4
- package/dist/usecases/script/export-authoring.js +0 -326
- package/dist/usecases/script/export-authoring.js.map +0 -1
- package/dist/usecases/script/extend.d.ts +0 -3
- package/dist/usecases/script/extend.js +0 -94
- package/dist/usecases/script/extend.js.map +0 -1
- package/dist/usecases/script/ids.d.ts +0 -3
- package/dist/usecases/script/ids.js +0 -148
- package/dist/usecases/script/ids.js.map +0 -1
- package/dist/usecases/script/importance.d.ts +0 -3
- package/dist/usecases/script/importance.js +0 -16
- package/dist/usecases/script/importance.js.map +0 -1
- package/dist/usecases/script/insert.d.ts +0 -3
- package/dist/usecases/script/insert.js +0 -127
- package/dist/usecases/script/insert.js.map +0 -1
- package/dist/usecases/script/issues.d.ts +0 -3
- package/dist/usecases/script/issues.js +0 -35
- package/dist/usecases/script/issues.js.map +0 -1
- package/dist/usecases/script/lib.d.ts +0 -152
- package/dist/usecases/script/lib.js +0 -1654
- package/dist/usecases/script/lib.js.map +0 -1
- package/dist/usecases/script/locations.d.ts +0 -3
- package/dist/usecases/script/locations.js +0 -25
- package/dist/usecases/script/locations.js.map +0 -1
- package/dist/usecases/script/merge.d.ts +0 -3
- package/dist/usecases/script/merge.js +0 -43
- package/dist/usecases/script/merge.js.map +0 -1
- package/dist/usecases/script/migrate.d.ts +0 -3
- package/dist/usecases/script/migrate.js +0 -210
- package/dist/usecases/script/migrate.js.map +0 -1
- package/dist/usecases/script/move.d.ts +0 -3
- package/dist/usecases/script/move.js +0 -50
- package/dist/usecases/script/move.js.map +0 -1
- package/dist/usecases/script/parenthetical.d.ts +0 -3
- package/dist/usecases/script/parenthetical.js +0 -52
- package/dist/usecases/script/parenthetical.js.map +0 -1
- package/dist/usecases/script/props.d.ts +0 -3
- package/dist/usecases/script/props.js +0 -25
- package/dist/usecases/script/props.js.map +0 -1
- package/dist/usecases/script/refs.d.ts +0 -3
- package/dist/usecases/script/refs.js +0 -111
- package/dist/usecases/script/refs.js.map +0 -1
- package/dist/usecases/script/rename.d.ts +0 -3
- package/dist/usecases/script/rename.js +0 -35
- package/dist/usecases/script/rename.js.map +0 -1
- package/dist/usecases/script/replace.d.ts +0 -3
- package/dist/usecases/script/replace.js +0 -33
- package/dist/usecases/script/replace.js.map +0 -1
- package/dist/usecases/script/review.d.ts +0 -3
- package/dist/usecases/script/review.js +0 -187
- package/dist/usecases/script/review.js.map +0 -1
- package/dist/usecases/script/role.d.ts +0 -3
- package/dist/usecases/script/role.js +0 -16
- package/dist/usecases/script/role.js.map +0 -1
- package/dist/usecases/script/scenes.d.ts +0 -3
- package/dist/usecases/script/scenes.js +0 -66
- package/dist/usecases/script/scenes.js.map +0 -1
- package/dist/usecases/script/script-patch.d.ts +0 -3
- package/dist/usecases/script/script-patch.js +0 -321
- package/dist/usecases/script/script-patch.js.map +0 -1
- package/dist/usecases/script/script-validate.d.ts +0 -3
- package/dist/usecases/script/script-validate.js +0 -27
- package/dist/usecases/script/script-validate.js.map +0 -1
- package/dist/usecases/script/session.d.ts +0 -62
- package/dist/usecases/script/session.js +0 -567
- package/dist/usecases/script/session.js.map +0 -1
- package/dist/usecases/script/split.d.ts +0 -3
- package/dist/usecases/script/split.js +0 -41
- package/dist/usecases/script/split.js.map +0 -1
- package/dist/usecases/script/state-add.d.ts +0 -3
- package/dist/usecases/script/state-add.js +0 -22
- package/dist/usecases/script/state-add.js.map +0 -1
- package/dist/usecases/script/state-delete.d.ts +0 -3
- package/dist/usecases/script/state-delete.js +0 -22
- package/dist/usecases/script/state-delete.js.map +0 -1
- package/dist/usecases/script/state-rename.d.ts +0 -3
- package/dist/usecases/script/state-rename.js +0 -16
- package/dist/usecases/script/state-rename.js.map +0 -1
- package/dist/usecases/script/states.d.ts +0 -3
- package/dist/usecases/script/states.js +0 -197
- package/dist/usecases/script/states.js.map +0 -1
- package/dist/usecases/script/summary.d.ts +0 -3
- package/dist/usecases/script/summary.js +0 -72
- package/dist/usecases/script/summary.js.map +0 -1
- package/dist/usecases/script/synopsis-generate.d.ts +0 -115
- package/dist/usecases/script/synopsis-generate.js +0 -776
- package/dist/usecases/script/synopsis-generate.js.map +0 -1
- package/dist/usecases/script/synopsis.d.ts +0 -3
- package/dist/usecases/script/synopsis.js +0 -45
- package/dist/usecases/script/synopsis.js.map +0 -1
- package/dist/usecases/script/timestamp-filter.d.ts +0 -4
- package/dist/usecases/script/timestamp-filter.js +0 -55
- package/dist/usecases/script/timestamp-filter.js.map +0 -1
- package/dist/usecases/script/timestamp.d.ts +0 -3
- package/dist/usecases/script/timestamp.js +0 -11
- package/dist/usecases/script/timestamp.js.map +0 -1
- package/dist/usecases/script/transition.d.ts +0 -3
- package/dist/usecases/script/transition.js +0 -23
- package/dist/usecases/script/transition.js.map +0 -1
- package/dist/usecases/script/type.d.ts +0 -3
- package/dist/usecases/script/type.js +0 -23
- package/dist/usecases/script/type.js.map +0 -1
- package/dist/usecases/script/v3/mutations.d.ts +0 -2
- package/dist/usecases/script/v3/mutations.js +0 -5
- package/dist/usecases/script/v3/mutations.js.map +0 -1
- package/dist/usecases/script/v4/mutations.d.ts +0 -2
- package/dist/usecases/script/v4/mutations.js +0 -6
- package/dist/usecases/script/v4/mutations.js.map +0 -1
- package/dist/usecases/script/v4/queries.d.ts +0 -15
- package/dist/usecases/script/v4/queries.js +0 -196
- package/dist/usecases/script/v4/queries.js.map +0 -1
- package/dist/usecases/script/working-copy.d.ts +0 -5
- package/dist/usecases/script/working-copy.js +0 -399
- package/dist/usecases/script/working-copy.js.map +0 -1
- package/dist/usecases/script/worldview.d.ts +0 -3
- package/dist/usecases/script/worldview.js +0 -17
- package/dist/usecases/script/worldview.js.map +0 -1
- package/dist/usecases/script/write-authoring.d.ts +0 -3
- package/dist/usecases/script/write-authoring.js +0 -263
- package/dist/usecases/script/write-authoring.js.map +0 -1
- package/dist/usecases/update.d.ts +0 -13
- package/dist/usecases/update.js +0 -128
- package/dist/usecases/update.js.map +0 -1
|
@@ -1,567 +0,0 @@
|
|
|
1
|
-
import * as path from "node:path";
|
|
2
|
-
import { CliError, EXIT_INPUT, EXIT_RUNTIME, EXIT_USAGE, exists, readJson, readText, scriptJsonPath, sha256Text, } from "../../common.js";
|
|
3
|
-
import { validateScriptV3 } from "../../domain/ingest/validation.js";
|
|
4
|
-
import { scriptVersionOf, validateScriptDocument, } from "../../domain/script/dispatch.js";
|
|
5
|
-
import { remoteScriptOutputStoreFromEnv } from "../../infra/script-output-api.js";
|
|
6
|
-
import { assertScriptUnchanged, atomicWriteJson, semanticScriptHash, } from "../../infra/script-working-copy.js";
|
|
7
|
-
import { LocalScriptOutputStore } from "../../infra/local-script-output-store.js";
|
|
8
|
-
import { ScriptOutputApiError, resolveOutputModeOrThrow, } from "../../infra/script-output-store.js";
|
|
9
|
-
import { sortDeep } from "../../domain/script/text-util.js";
|
|
10
|
-
import { asList, isDict, isList, strOf, } from "../../domain/script/shared.js";
|
|
11
|
-
export function parseBound(v) {
|
|
12
|
-
if (v === null || v === undefined || v === "")
|
|
13
|
-
return null;
|
|
14
|
-
const n = Number(v);
|
|
15
|
-
if (!Number.isFinite(n)) {
|
|
16
|
-
throw new CliError("--min-chars / --max-chars must be a non-negative integer.", {
|
|
17
|
-
exitCode: EXIT_USAGE,
|
|
18
|
-
errorCode: "INSPECT_BOUND_INVALID",
|
|
19
|
-
hint: "Pass --min-chars 1000 (positive integer).",
|
|
20
|
-
data: { expected: ["non-negative integer"], actual: [strOf(v)] },
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
return Math.max(0, Math.floor(n));
|
|
24
|
-
}
|
|
25
|
-
// Count characters in an episode's actions. Splits dialogue-class (`dialogue`,
|
|
26
|
-
// `inner_thought`) from narrative/screen-text (`action`) so agents can answer
|
|
27
|
-
// "which episodes exceed N spoken chars" vs. raw size. Overlap dialogue stores
|
|
28
|
-
// content on `lines[].content`; non-overlap stores it on `content`.
|
|
29
|
-
export function episodeCharCounts(scenes) {
|
|
30
|
-
let dialogue = 0;
|
|
31
|
-
let action = 0;
|
|
32
|
-
for (const scene of scenes) {
|
|
33
|
-
for (const a of asList(scene["actions"])) {
|
|
34
|
-
const kind = strOf(a["type"]).trim();
|
|
35
|
-
let chars = strOf(a["content"]).length;
|
|
36
|
-
for (const line of asList(a["lines"])) {
|
|
37
|
-
chars += strOf(line["content"]).length;
|
|
38
|
-
}
|
|
39
|
-
if (kind === "dialogue" || kind === "inner_thought")
|
|
40
|
-
dialogue += chars;
|
|
41
|
-
else
|
|
42
|
-
action += chars;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return { total: dialogue + action, dialogue, action };
|
|
46
|
-
}
|
|
47
|
-
// ---------------------------------------------------------------------------
|
|
48
|
-
// ScriptEditSession
|
|
49
|
-
// ---------------------------------------------------------------------------
|
|
50
|
-
export class ScriptEditSession {
|
|
51
|
-
workspace;
|
|
52
|
-
script;
|
|
53
|
-
version;
|
|
54
|
-
// Deep snapshot of the script as loaded, taken BEFORE any edit mutates
|
|
55
|
-
// `script` in place. It is the baseline for the RFC6902 diff a V2 store sends
|
|
56
|
-
// on save (patchScript). V1/local stores ignore it and replace the whole
|
|
57
|
-
// document, so the snapshot is harmless overhead there.
|
|
58
|
-
baseline;
|
|
59
|
-
baselineHash;
|
|
60
|
-
scriptPath;
|
|
61
|
-
client;
|
|
62
|
-
projectGroupNo;
|
|
63
|
-
revision;
|
|
64
|
-
constructor(opts) {
|
|
65
|
-
this.workspace = opts.workspace;
|
|
66
|
-
this.script = opts.script;
|
|
67
|
-
this.version = scriptVersionOf(opts.script);
|
|
68
|
-
this.baseline = structuredClone(opts.script);
|
|
69
|
-
this.baselineHash = semanticScriptHash(opts.script);
|
|
70
|
-
this.scriptPath = opts.scriptPath ?? null;
|
|
71
|
-
this.client = opts.client ?? null;
|
|
72
|
-
this.projectGroupNo = opts.projectGroupNo ?? null;
|
|
73
|
-
this.revision = opts.revision ?? null;
|
|
74
|
-
}
|
|
75
|
-
get remote() {
|
|
76
|
-
return this.client !== null;
|
|
77
|
-
}
|
|
78
|
-
get artifactLabel() {
|
|
79
|
-
if (this.remote) {
|
|
80
|
-
// Public label — strips the internal `db:/script-output/project-groups/`
|
|
81
|
-
// storage prefix (which leaks implementation), but keeps the project id
|
|
82
|
-
// and revision so two different project groups at the same revision stay
|
|
83
|
-
// distinguishable in user-visible report.artifacts entries. The project
|
|
84
|
-
// id is not a secret: the user supplies it themselves via
|
|
85
|
-
// `--project-group-no` or env config.
|
|
86
|
-
return `script-output/${this.projectGroupNo}@revision/${this.revision ?? 0}`;
|
|
87
|
-
}
|
|
88
|
-
return this.scriptPath ?? "";
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Validate that the target-selection flags on `opts` are coherent, throwing a
|
|
93
|
-
* CliError on any contradiction. The SINGLE conflict gate for every file-capable
|
|
94
|
-
* entry point (loadScriptForEdit AND commandCreate) — neither may resolve a
|
|
95
|
-
* target without passing through here, so a store flag can never be silently
|
|
96
|
-
* dropped on the local-file branch (the wrong-target write this design forbids).
|
|
97
|
-
*
|
|
98
|
-
* `--remote`/`--local`/`--project-group-no` select a STORE; `--script-path`
|
|
99
|
-
* selects a local FILE. The two are mutually exclusive.
|
|
100
|
-
*/
|
|
101
|
-
export function assertTargetCoherent(opts) {
|
|
102
|
-
const scriptPath = strOf(opts["script_path"]).trim() !== "";
|
|
103
|
-
const remote = Boolean(opts["remote"]);
|
|
104
|
-
const local = Boolean(opts["local"]);
|
|
105
|
-
const projectGroup = strOf(opts["project_group_no"]).trim() !== "";
|
|
106
|
-
const targetFlagConflict = (received) => new CliError("The selected output-target flags are mutually exclusive.", {
|
|
107
|
-
exitCode: EXIT_USAGE,
|
|
108
|
-
errorCode: "TARGET_FLAG_CONFLICT",
|
|
109
|
-
hint: "Keep a single target selector and drop the others.",
|
|
110
|
-
data: {
|
|
111
|
-
expected: ["one of: --script-path (a local file), or --remote/--local (the store)"],
|
|
112
|
-
actual: received,
|
|
113
|
-
},
|
|
114
|
-
});
|
|
115
|
-
// Most fundamental first, so the message names the real contradiction even
|
|
116
|
-
// when several conflicting flags are passed at once.
|
|
117
|
-
if (remote && local)
|
|
118
|
-
throw targetFlagConflict(["--remote", "--local"]);
|
|
119
|
-
if ((remote || local) && scriptPath) {
|
|
120
|
-
throw targetFlagConflict([remote ? "--remote" : "--local", "--script-path"]);
|
|
121
|
-
}
|
|
122
|
-
// A project group names a REMOTE target, so it cannot combine with any local
|
|
123
|
-
// target — a local file (--script-path) OR the local store (--local).
|
|
124
|
-
// `--remote --project-group-no` is the one valid pairing and is left alone.
|
|
125
|
-
if (projectGroup && (scriptPath || local)) {
|
|
126
|
-
throw targetFlagConflict(["--project-group-no", scriptPath ? "--script-path" : "--local"]);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
export function scriptOutputClient(opts) {
|
|
130
|
-
const mode = resolveOutputModeOrThrow({
|
|
131
|
-
remote: opts["remote"],
|
|
132
|
-
local: opts["local"],
|
|
133
|
-
projectGroupNo: opts["project_group_no"],
|
|
134
|
-
});
|
|
135
|
-
try {
|
|
136
|
-
if (mode === "local") {
|
|
137
|
-
return LocalScriptOutputStore.fromEnv(strOf(opts["workspace_path"]).trim() || undefined);
|
|
138
|
-
}
|
|
139
|
-
return remoteScriptOutputStoreFromEnv(strOf(opts["project_group_no"]).trim() || null);
|
|
140
|
-
}
|
|
141
|
-
catch (exc) {
|
|
142
|
-
// ScriptOutputApiError carries a `configMissing` discriminator so callers
|
|
143
|
-
// can show the user which slot is unconfigured without naming the env var.
|
|
144
|
-
if (exc instanceof ScriptOutputApiError) {
|
|
145
|
-
const { title, message } = describeConfigMissing(mode, exc.configMissing);
|
|
146
|
-
throw new CliError(message, {
|
|
147
|
-
exitCode: EXIT_INPUT,
|
|
148
|
-
errorCode: "SCRIPT_API_CONFIG_MISSING",
|
|
149
|
-
hint: "Run `scriptctl doctor` to identify missing configuration.",
|
|
150
|
-
data: { expected: [
|
|
151
|
-
mode === "local"
|
|
152
|
-
? "SCRIPTCTL_OUTPUT_DIR"
|
|
153
|
-
: "AWB_BASE_URL, LINGJING_AWB_ACCESS_KEY, and SANDBOX_PROJECT_GROUP_NO (or --project-group-no)",
|
|
154
|
-
], actual: [exc.message, `configMissing: ${exc.configMissing ?? "unknown"}`] },
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
// Belt-and-suspenders: anything else that escapes RemoteScriptOutputStore.fromEnv
|
|
158
|
-
// (a TypeError on a malformed gateway URL, future programmer errors) still
|
|
159
|
-
// surfaces as a clean CliError envelope rather than the generic
|
|
160
|
-
// the generic runtime-error path in cli.ts.
|
|
161
|
-
const raw = exc instanceof Error ? exc.message : String(exc);
|
|
162
|
-
throw new CliError(mode === "local"
|
|
163
|
-
? "Local output dir is not configured for this environment."
|
|
164
|
-
: "Gateway is not configured for this environment.", {
|
|
165
|
-
exitCode: EXIT_INPUT,
|
|
166
|
-
errorCode: "SCRIPT_API_CONFIG_MISSING",
|
|
167
|
-
hint: "Run `scriptctl doctor` to identify missing configuration.",
|
|
168
|
-
data: { expected: [mode === "local" ? "valid local output dir" : "valid gateway configuration"], actual: [raw] },
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
function describeConfigMissing(mode, slot) {
|
|
173
|
-
// Mode wins over slot — if the caller is in local mode, the failure is
|
|
174
|
-
// unambiguously about the output dir even if the underlying error tagged
|
|
175
|
-
// the slot differently.
|
|
176
|
-
// NOTE: this early return short-circuits the exhaustive switch below. New
|
|
177
|
-
// ConfigMissingSlot values for remote-mode callers are guarded by the
|
|
178
|
-
// switch (TS will flag a missing case); values intended for local-mode-only
|
|
179
|
-
// callers must be handled explicitly above this guard.
|
|
180
|
-
if (mode === "local") {
|
|
181
|
-
return {
|
|
182
|
-
title: "SCRIPT API BLOCKED: local output dir missing",
|
|
183
|
-
message: "Local output dir is not configured. Set `SCRIPTCTL_OUTPUT_DIR` to a writable directory.",
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
// Unknown / unspecified failures in remote mode default to the gateway
|
|
187
|
-
// bucket — keeps the pre-0.7.0 UX stable.
|
|
188
|
-
if (slot === null) {
|
|
189
|
-
return {
|
|
190
|
-
title: "SCRIPT API BLOCKED: gateway not configured",
|
|
191
|
-
message: "Gateway is not configured for this environment.",
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
// After the two guards above, `slot` is narrowed to ConfigMissingSlot. TS
|
|
195
|
-
// exhaustiveness on the switch means adding a new slot without handling it
|
|
196
|
-
// here is a compile error — `assertNever` makes the intent explicit.
|
|
197
|
-
switch (slot) {
|
|
198
|
-
case "output":
|
|
199
|
-
return {
|
|
200
|
-
title: "SCRIPT API BLOCKED: local output dir missing",
|
|
201
|
-
message: "Local output dir is not configured. Set `SCRIPTCTL_OUTPUT_DIR` to a writable directory.",
|
|
202
|
-
};
|
|
203
|
-
case "project":
|
|
204
|
-
return {
|
|
205
|
-
title: "SCRIPT API BLOCKED: project identifier missing",
|
|
206
|
-
message: "Project identifier is not configured. Pass `--project-group-no <id>` or configure the project for this environment.",
|
|
207
|
-
};
|
|
208
|
-
case "access":
|
|
209
|
-
return {
|
|
210
|
-
title: "SCRIPT API BLOCKED: access credential missing",
|
|
211
|
-
message: "Access credential is not configured for this environment.",
|
|
212
|
-
};
|
|
213
|
-
case "gateway":
|
|
214
|
-
return {
|
|
215
|
-
title: "SCRIPT API BLOCKED: gateway not configured",
|
|
216
|
-
message: "Gateway is not configured for this environment.",
|
|
217
|
-
};
|
|
218
|
-
default:
|
|
219
|
-
return assertNever(slot);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
function assertNever(x) {
|
|
223
|
-
throw new Error(`describeConfigMissing: unhandled ConfigMissingSlot ${JSON.stringify(x)}`);
|
|
224
|
-
}
|
|
225
|
-
export function apiErrorToCli(title, exc) {
|
|
226
|
-
const rawMessage = exc.message || "script-output API failed";
|
|
227
|
-
// Use the gateway's own canonical Chinese keywords as the only signal. Free
|
|
228
|
-
// text like "revision" or "not found" can leak in from upstream proxies,
|
|
229
|
-
// DNS errors ("name not found"), or HTTP 404 routing mismatches — matching on
|
|
230
|
-
// those substrings would misroute auth/network failures into the conflict /
|
|
231
|
-
// missing-script UX. The current CAS endpoint uses code 9002; the Chinese
|
|
232
|
-
// keyword keeps the retained legacy endpoint compatible.
|
|
233
|
-
const isConflict = String(exc.code) === "9002" || rawMessage.includes("版本冲突");
|
|
234
|
-
const isMissing = rawMessage.includes("剧本不存在");
|
|
235
|
-
const publicMessage = isConflict
|
|
236
|
-
? "Script has been updated by another revision; keep local work and merge before retrying."
|
|
237
|
-
: isMissing
|
|
238
|
-
? "Script not found on the gateway."
|
|
239
|
-
: "Gateway request failed.";
|
|
240
|
-
return new CliError(publicMessage, {
|
|
241
|
-
exitCode: exc.status !== null && exc.status >= 500 ? EXIT_RUNTIME : EXIT_INPUT,
|
|
242
|
-
errorCode: isConflict
|
|
243
|
-
? "REVISION_CONFLICT"
|
|
244
|
-
: isMissing
|
|
245
|
-
? "SCRIPT_NOT_FOUND"
|
|
246
|
-
: "SCRIPT_API_FAILED",
|
|
247
|
-
hint: isConflict
|
|
248
|
-
? "Keep the local file, inspect the latest remote snapshot, and merge before publishing again."
|
|
249
|
-
: isMissing
|
|
250
|
-
? "Run `scriptctl publish` to publish a script first."
|
|
251
|
-
: "Run `scriptctl doctor` to verify gateway configuration; retry if it was transient.",
|
|
252
|
-
data: { expected: ["successful script-output gateway request"], actual: [rawMessage, `status: ${exc.status ?? "<unknown>"}`] },
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
export async function currentRevisionOrZero(client) {
|
|
256
|
-
try {
|
|
257
|
-
const revision = await client.getRevision();
|
|
258
|
-
if (!revision)
|
|
259
|
-
return 0;
|
|
260
|
-
return Number(revision["revision"] ?? 0);
|
|
261
|
-
}
|
|
262
|
-
catch (exc) {
|
|
263
|
-
if (exc instanceof ScriptOutputApiError) {
|
|
264
|
-
throw apiErrorToCli("SCRIPT API BLOCKED: Revision query failed", exc);
|
|
265
|
-
}
|
|
266
|
-
throw exc;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
export async function loadRemoteScript(opts, workspace) {
|
|
270
|
-
const client = scriptOutputClient(opts);
|
|
271
|
-
let script;
|
|
272
|
-
let revision;
|
|
273
|
-
try {
|
|
274
|
-
script = await client.getScript();
|
|
275
|
-
revision = await client.getRevision();
|
|
276
|
-
}
|
|
277
|
-
catch (exc) {
|
|
278
|
-
if (exc instanceof ScriptOutputApiError) {
|
|
279
|
-
throw apiErrorToCli("SCRIPT API BLOCKED: Script query failed", exc);
|
|
280
|
-
}
|
|
281
|
-
throw exc;
|
|
282
|
-
}
|
|
283
|
-
if (script === null) {
|
|
284
|
-
throw new CliError("No script has been published for this project.", {
|
|
285
|
-
exitCode: EXIT_INPUT,
|
|
286
|
-
errorCode: "SCRIPT_NOT_FOUND",
|
|
287
|
-
hint: "Run `scriptctl publish` first, or pass `--script-path` to edit a local script JSON.",
|
|
288
|
-
data: { expected: ["existing script-output project document"], actual: [`projectGroupNo=${client.projectGroupNo}`] },
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
if (!isDict(script)) {
|
|
292
|
-
throw new CliError("script root invalid.", {
|
|
293
|
-
exitCode: EXIT_USAGE,
|
|
294
|
-
errorCode: "SCRIPT_ROOT_INVALID",
|
|
295
|
-
hint: "Replace the final script with a valid script document object.",
|
|
296
|
-
data: { expected: ["script root object"], actual: [typeof script] },
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
return new ScriptEditSession({
|
|
300
|
-
workspace,
|
|
301
|
-
script,
|
|
302
|
-
client,
|
|
303
|
-
projectGroupNo: client.projectGroupNo,
|
|
304
|
-
revision: Number((revision ?? {})["revision"] ?? 0),
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
export async function loadScriptForEdit(opts) {
|
|
308
|
-
const workspace = strOf(opts["workspace_path"] || "workspace");
|
|
309
|
-
const p = scriptJsonPath(opts);
|
|
310
|
-
if (!exists(p)) {
|
|
311
|
-
throw new CliError("Local script file not found.", {
|
|
312
|
-
exitCode: EXIT_INPUT,
|
|
313
|
-
errorCode: "SCRIPT_NOT_FOUND",
|
|
314
|
-
hint: "Run `scriptctl checkout`, `scriptctl create`, or pass --script-path to an existing script.",
|
|
315
|
-
data: { expected: ["existing local script JSON"], actual: [p] },
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
let data;
|
|
319
|
-
try {
|
|
320
|
-
data = readJson(p);
|
|
321
|
-
}
|
|
322
|
-
catch (exc) {
|
|
323
|
-
throw new CliError("script JSON invalid.", {
|
|
324
|
-
exitCode: EXIT_INPUT,
|
|
325
|
-
errorCode: "SCRIPT_JSON_INVALID",
|
|
326
|
-
hint: "Fix the local script JSON syntax before editing.",
|
|
327
|
-
data: { expected: ["valid JSON"], actual: [`${p}: ${exc.message}`] },
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
if (!isDict(data)) {
|
|
331
|
-
throw new CliError("script root invalid.", {
|
|
332
|
-
exitCode: EXIT_USAGE,
|
|
333
|
-
errorCode: "SCRIPT_ROOT_INVALID",
|
|
334
|
-
hint: "Use a valid script document object.",
|
|
335
|
-
data: { expected: ["script root object"], actual: [Array.isArray(data) ? "array" : typeof data] },
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
return new ScriptEditSession({ workspace, scriptPath: p, script: data });
|
|
339
|
-
}
|
|
340
|
-
// Validate the IN-MEMORY script as Script v3. On a dry-run the edits live only
|
|
341
|
-
// in session.script (never written), so validating the object (not the on-disk
|
|
342
|
-
// file) is what makes "would pass" honest. requireSource is accepted for call-
|
|
343
|
-
// site compatibility but ignored — v3 scripts carry no source-coverage contract.
|
|
344
|
-
export function validateSession(session, _opts = {}) {
|
|
345
|
-
const report = validateScriptReport(session.script);
|
|
346
|
-
if (session.remote)
|
|
347
|
-
report["script_path"] = session.artifactLabel;
|
|
348
|
-
return report;
|
|
349
|
-
}
|
|
350
|
-
function validationResultReport(script, validation) {
|
|
351
|
-
const { ok, errors, warnings } = validation;
|
|
352
|
-
const issues = [
|
|
353
|
-
...errors.map((e) => ({
|
|
354
|
-
severity: "error",
|
|
355
|
-
code: e.code,
|
|
356
|
-
path: e.path,
|
|
357
|
-
summary: e.message,
|
|
358
|
-
...(e.repair_hint ? { repair_hint: e.repair_hint } : {}),
|
|
359
|
-
})),
|
|
360
|
-
...warnings.map((w) => ({
|
|
361
|
-
severity: "warning",
|
|
362
|
-
code: w.code,
|
|
363
|
-
path: w.path,
|
|
364
|
-
summary: w.message,
|
|
365
|
-
...(w.repair_hint ? { repair_hint: w.repair_hint } : {}),
|
|
366
|
-
})),
|
|
367
|
-
];
|
|
368
|
-
const episodes = asList(script["episodes"]);
|
|
369
|
-
let scenes = 0;
|
|
370
|
-
let actions = 0;
|
|
371
|
-
for (const ep of episodes) {
|
|
372
|
-
for (const sc of asList(ep["scenes"])) {
|
|
373
|
-
scenes += 1;
|
|
374
|
-
actions += asList(sc["actions"]).length;
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
return {
|
|
378
|
-
passed: ok,
|
|
379
|
-
has_blocking: !ok,
|
|
380
|
-
issues,
|
|
381
|
-
stats: {
|
|
382
|
-
actors: asList(script["actors"]).length,
|
|
383
|
-
locations: asList(script["locations"]).length,
|
|
384
|
-
props: asList(script["props"]).length,
|
|
385
|
-
episodes: episodes.length,
|
|
386
|
-
scenes,
|
|
387
|
-
actions,
|
|
388
|
-
},
|
|
389
|
-
};
|
|
390
|
-
}
|
|
391
|
-
// Adapt a versioned validator's {ok, errors, warnings} into the report shape
|
|
392
|
-
// consumed by CLI output and gateway validation sync.
|
|
393
|
-
export function validateScriptReport(script) {
|
|
394
|
-
return validationResultReport(script, validateScriptDocument(script));
|
|
395
|
-
}
|
|
396
|
-
export function validateScriptV3Report(script) {
|
|
397
|
-
return validationResultReport(script, validateScriptV3(script));
|
|
398
|
-
}
|
|
399
|
-
function validationIssueKey(issue) {
|
|
400
|
-
return JSON.stringify([
|
|
401
|
-
strOf(issue["code"]),
|
|
402
|
-
strOf(issue["path"]),
|
|
403
|
-
strOf(issue["summary"]),
|
|
404
|
-
]);
|
|
405
|
-
}
|
|
406
|
-
export function mutationValidationWarnings(session, validation) {
|
|
407
|
-
const baseline = validateScriptReport(session.baseline);
|
|
408
|
-
const baselineCounts = new Map();
|
|
409
|
-
for (const issue of asList(baseline["issues"])) {
|
|
410
|
-
const key = validationIssueKey(issue);
|
|
411
|
-
baselineCounts.set(key, (baselineCounts.get(key) ?? 0) + 1);
|
|
412
|
-
}
|
|
413
|
-
const warnings = [];
|
|
414
|
-
for (const issue of asList(validation["issues"])) {
|
|
415
|
-
const key = validationIssueKey(issue);
|
|
416
|
-
const remaining = baselineCounts.get(key) ?? 0;
|
|
417
|
-
if (remaining > 0) {
|
|
418
|
-
baselineCounts.set(key, remaining - 1);
|
|
419
|
-
continue;
|
|
420
|
-
}
|
|
421
|
-
warnings.push({
|
|
422
|
-
...issue,
|
|
423
|
-
validation_severity: issue["severity"],
|
|
424
|
-
severity: "warning",
|
|
425
|
-
});
|
|
426
|
-
}
|
|
427
|
-
return warnings;
|
|
428
|
-
}
|
|
429
|
-
function validationIssuePath(issue) {
|
|
430
|
-
if (issue["path"])
|
|
431
|
-
return strOf(issue["path"]);
|
|
432
|
-
const parts = [];
|
|
433
|
-
if (issue["episode"] !== null && issue["episode"] !== undefined)
|
|
434
|
-
parts.push(strOf(issue["episode"]));
|
|
435
|
-
if (issue["scene"] !== null && issue["scene"] !== undefined)
|
|
436
|
-
parts.push(strOf(issue["scene"]));
|
|
437
|
-
if (issue["action_index"] !== null && issue["action_index"] !== undefined)
|
|
438
|
-
parts.push(`action[${issue["action_index"]}]`);
|
|
439
|
-
return parts.length > 0 ? parts.join("/") : null;
|
|
440
|
-
}
|
|
441
|
-
function validationIssueSeverity(raw) {
|
|
442
|
-
const severity = strOf(raw || "info");
|
|
443
|
-
if (severity === "blocking" || severity === "error")
|
|
444
|
-
return "error";
|
|
445
|
-
if (severity === "warning")
|
|
446
|
-
return "warning";
|
|
447
|
-
return "info";
|
|
448
|
-
}
|
|
449
|
-
function validationToApiPayload(validation) {
|
|
450
|
-
const issues = asList(validation["issues"]);
|
|
451
|
-
const status = validation["passed"] ? "valid" : "invalid";
|
|
452
|
-
const summary = {
|
|
453
|
-
passed: Boolean(validation["passed"]),
|
|
454
|
-
hasBlocking: Boolean(validation["has_blocking"]),
|
|
455
|
-
stats: validation["stats"] ?? {},
|
|
456
|
-
issueCount: issues.length,
|
|
457
|
-
};
|
|
458
|
-
const apiIssues = [];
|
|
459
|
-
for (const issue of issues) {
|
|
460
|
-
if (!isDict(issue))
|
|
461
|
-
continue;
|
|
462
|
-
const payload = { ...issue };
|
|
463
|
-
for (const key of ["severity", "code", "path", "summary", "repair_hint"])
|
|
464
|
-
delete payload[key];
|
|
465
|
-
apiIssues.push({
|
|
466
|
-
severity: validationIssueSeverity(issue["severity"]),
|
|
467
|
-
code: strOf(issue["code"] || "SCRIPT_VALIDATION_ISSUE"),
|
|
468
|
-
path: validationIssuePath(issue),
|
|
469
|
-
summary: strOf(issue["summary"]),
|
|
470
|
-
repairHint: issue["repair_hint"],
|
|
471
|
-
payload,
|
|
472
|
-
});
|
|
473
|
-
}
|
|
474
|
-
return [status, summary, apiIssues];
|
|
475
|
-
}
|
|
476
|
-
export async function syncValidationResult(session, validation, revision) {
|
|
477
|
-
if (!session.remote || session.client === null)
|
|
478
|
-
return;
|
|
479
|
-
const targetRevision = Number(revision ?? session.revision ?? 0);
|
|
480
|
-
if (targetRevision <= 0)
|
|
481
|
-
return;
|
|
482
|
-
const [status, summary, issues] = validationToApiPayload(validation);
|
|
483
|
-
try {
|
|
484
|
-
await session.client.saveValidationResult({
|
|
485
|
-
revision: targetRevision,
|
|
486
|
-
validationStatus: status,
|
|
487
|
-
validationSummary: summary,
|
|
488
|
-
issues,
|
|
489
|
-
});
|
|
490
|
-
}
|
|
491
|
-
catch (exc) {
|
|
492
|
-
if (exc instanceof ScriptOutputApiError) {
|
|
493
|
-
throw apiErrorToCli("SCRIPT API BLOCKED: Validation sync failed", exc);
|
|
494
|
-
}
|
|
495
|
-
throw exc;
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
// Idempotency key for gateway writes. Returns the agent-provided --request-id
|
|
499
|
-
// when present, otherwise derives a deterministic key from (op, post-mutation
|
|
500
|
-
// script content). baseRevision is intentionally NOT in the hash: in a
|
|
501
|
-
// partial-success retry the client reloads at a new baseRevision but the
|
|
502
|
-
// post-mutation script is identical, so the hash matches and the gateway can
|
|
503
|
-
// dedupe. The cost of including baseRevision (an old version of this code)
|
|
504
|
-
// was that retries produced different ids and committed redundant no-op
|
|
505
|
-
// revisions to the gateway history.
|
|
506
|
-
export function requestIdForScriptWrite(opts, op, payload) {
|
|
507
|
-
const explicit = strOf(opts["request_id"]).trim();
|
|
508
|
-
if (explicit)
|
|
509
|
-
return explicit;
|
|
510
|
-
const canonical = JSON.stringify(sortDeep({
|
|
511
|
-
op,
|
|
512
|
-
script: payload.script,
|
|
513
|
-
}));
|
|
514
|
-
return `scriptctl:${op}:${sha256Text(canonical)}`;
|
|
515
|
-
}
|
|
516
|
-
export async function saveScriptSession(session, _opts, _op) {
|
|
517
|
-
if (session.scriptPath === null)
|
|
518
|
-
throw new Error("local script session missing script path");
|
|
519
|
-
assertScriptUnchanged(session.scriptPath, session.baselineHash);
|
|
520
|
-
atomicWriteJson(session.scriptPath, session.script);
|
|
521
|
-
return [null, false];
|
|
522
|
-
}
|
|
523
|
-
export function scriptSourceText(workspace) {
|
|
524
|
-
const sourcePath = path.join(workspace, "source.txt");
|
|
525
|
-
return exists(sourcePath) ? readText(sourcePath) : "";
|
|
526
|
-
}
|
|
527
|
-
export function patchOperationsFromPayload(payload) {
|
|
528
|
-
let operations;
|
|
529
|
-
if (isList(payload)) {
|
|
530
|
-
operations = payload;
|
|
531
|
-
}
|
|
532
|
-
else if (isDict(payload) && isList(payload["ops"])) {
|
|
533
|
-
operations = payload["ops"];
|
|
534
|
-
}
|
|
535
|
-
else if (isDict(payload) && isList(payload["operations"])) {
|
|
536
|
-
operations = payload["operations"];
|
|
537
|
-
}
|
|
538
|
-
else if (isDict(payload)) {
|
|
539
|
-
operations = [payload];
|
|
540
|
-
}
|
|
541
|
-
else {
|
|
542
|
-
throw new CliError("Patch schema invalid.", {
|
|
543
|
-
exitCode: EXIT_USAGE,
|
|
544
|
-
errorCode: "PATCH_BLOCKED_PATCH_SCHEMA_INVALID",
|
|
545
|
-
hint: "Fix patch JSON and rerun patch.",
|
|
546
|
-
data: { expected: ["object, array, object with ops[], or object with operations[]"], actual: [Array.isArray(payload) ? "array" : typeof payload] },
|
|
547
|
-
});
|
|
548
|
-
}
|
|
549
|
-
if (operations.some((op) => !isDict(op))) {
|
|
550
|
-
throw new CliError("Patch operation invalid.", {
|
|
551
|
-
exitCode: EXIT_USAGE,
|
|
552
|
-
errorCode: "PATCH_BLOCKED_PATCH_OPERATION_INVALID",
|
|
553
|
-
hint: "Fix patch JSON and rerun patch.",
|
|
554
|
-
data: { expected: ["each operation must be an object"], actual: [JSON.stringify(operations).slice(0, 500)] },
|
|
555
|
-
});
|
|
556
|
-
}
|
|
557
|
-
return operations;
|
|
558
|
-
}
|
|
559
|
-
// ---------------------------------------------------------------------------
|
|
560
|
-
// commandScriptValidate / commandScriptInspect
|
|
561
|
-
// ---------------------------------------------------------------------------
|
|
562
|
-
// ===========================================================================
|
|
563
|
-
// do — verb-script transaction (the agent-friendly alternative to JSON patch)
|
|
564
|
-
// ===========================================================================
|
|
565
|
-
// Minimal shell-like tokenizer: whitespace-split honoring "..."/'...' quoting
|
|
566
|
-
// and backslash escapes. Enough to carry screenplay content with spaces/quotes.
|
|
567
|
-
//# sourceMappingURL=session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/usecases/script/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { CliError, EXIT_USAGE, } from "../../common.js";
|
|
2
|
-
import { asList, } from "../../domain/script/shared.js";
|
|
3
|
-
import { loadScriptForEdit, } from "./session.js";
|
|
4
|
-
import { applySingleScriptOpToSession, } from "./lib.js";
|
|
5
|
-
export async function commandSplit(opts) {
|
|
6
|
-
const args = asList(opts["_args"]);
|
|
7
|
-
if (args.length < 1) {
|
|
8
|
-
throw new CliError("Scene ref missing.", {
|
|
9
|
-
exitCode: EXIT_USAGE,
|
|
10
|
-
errorCode: "ARGS_MISSING",
|
|
11
|
-
hint: "Example: scriptctl split ep_001/scn_005 --at 7",
|
|
12
|
-
data: { expected: ["<ep/scn>"], actual: ["<empty>"] },
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
const session = await loadScriptForEdit(opts);
|
|
16
|
-
const rawAt = opts["at_index"] ?? opts["at"];
|
|
17
|
-
if (session.version === 4) {
|
|
18
|
-
return applySingleScriptOpToSession(session, opts, {
|
|
19
|
-
op: "scene.split",
|
|
20
|
-
at: args[0],
|
|
21
|
-
at_action: rawAt,
|
|
22
|
-
new_scene_id: opts["new_scene_id"],
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
const atIndex = rawAt === undefined || rawAt === null || rawAt === "" ? undefined : Number(rawAt);
|
|
26
|
-
if (atIndex !== undefined && (!Number.isFinite(atIndex) || !Number.isInteger(atIndex))) {
|
|
27
|
-
throw new CliError("--at must be an integer.", {
|
|
28
|
-
exitCode: EXIT_USAGE,
|
|
29
|
-
errorCode: "AT_INDEX_INVALID",
|
|
30
|
-
hint: "Pass an integer action index.",
|
|
31
|
-
data: { expected: ["--at <integer>"], actual: [String(rawAt)] },
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
return applySingleScriptOpToSession(session, opts, {
|
|
35
|
-
op: "scene.split",
|
|
36
|
-
at: args[0],
|
|
37
|
-
at_index: atIndex,
|
|
38
|
-
new_scene_id: opts["new_scene_id"],
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=split.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"split.js","sourceRoot":"","sources":["../../../src/usecases/script/split.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAKR,UAAU,GASX,MAAM,iBAAiB,CAAC;AA6BzB,OAAO,EACL,MAAM,GAKP,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,iBAAiB,GAElB,MAAM,cAAc,CAAC;AACtB,OAAO,EACoK,4BAA4B,GACtM,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAU;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE;YACjC,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,cAAc;YACzB,IAAI,EAAE,gDAAgD;YACtD,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;SACtD,CAAC,CAAC;IACX,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,4BAA4B,CAAC,OAAO,EAAE,IAAI,EAAE;YACjD,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YACX,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClG,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,IAAI,QAAQ,CAAC,0BAA0B,EAAE;YACvC,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;SAChE,CAAC,CAAC;IACX,CAAC;IACD,OAAO,4BAA4B,CAAC,OAAO,EAAE,IAAI,EAAE;QACjD,EAAE,EAAE,aAAa;QACjB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACX,QAAQ,EAAE,OAAO;QACjB,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;KACnC,CAAC,CAAC;AACL,CAAC"}
|