@lingjingai/scriptctl 0.20.0 → 0.21.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/dist/cli.js +99 -11
- package/dist/cli.js.map +1 -1
- package/dist/common.d.ts +1 -0
- package/dist/common.js.map +1 -1
- package/dist/domain/script/address.d.ts +30 -0
- package/dist/domain/script/address.js +141 -0
- package/dist/domain/script/address.js.map +1 -0
- package/dist/domain/script/lookups.d.ts +33 -0
- package/dist/domain/script/lookups.js +309 -0
- package/dist/domain/script/lookups.js.map +1 -0
- package/dist/domain/script/patch/apply.d.ts +4 -0
- package/dist/domain/script/patch/apply.js +38 -0
- package/dist/domain/script/patch/apply.js.map +1 -0
- package/dist/domain/script/patch/helpers.d.ts +11 -0
- package/dist/domain/script/patch/helpers.js +141 -0
- package/dist/domain/script/patch/helpers.js.map +1 -0
- package/dist/domain/script/patch/ops-action.d.ts +12 -0
- package/dist/domain/script/patch/ops-action.js +371 -0
- package/dist/domain/script/patch/ops-action.js.map +1 -0
- package/dist/domain/script/patch/ops-asset.d.ts +13 -0
- package/dist/domain/script/patch/ops-asset.js +363 -0
- package/dist/domain/script/patch/ops-asset.js.map +1 -0
- package/dist/domain/script/patch/ops-dialogue.d.ts +5 -0
- package/dist/domain/script/patch/ops-dialogue.js +233 -0
- package/dist/domain/script/patch/ops-dialogue.js.map +1 -0
- package/dist/domain/script/patch/ops-meta.d.ts +3 -0
- package/dist/domain/script/patch/ops-meta.js +47 -0
- package/dist/domain/script/patch/ops-meta.js.map +1 -0
- package/dist/domain/script/patch/ops-scene.d.ts +6 -0
- package/dist/domain/script/patch/ops-scene.js +345 -0
- package/dist/domain/script/patch/ops-scene.js.map +1 -0
- package/dist/domain/script/patch/ops-state.d.ts +8 -0
- package/dist/domain/script/patch/ops-state.js +146 -0
- package/dist/domain/script/patch/ops-state.js.map +1 -0
- package/dist/domain/script/patch/registry.d.ts +2 -0
- package/dist/domain/script/patch/registry.js +50 -0
- package/dist/domain/script/patch/registry.js.map +1 -0
- package/dist/domain/script/patch/types.d.ts +10 -0
- package/dist/domain/script/patch/types.js +2 -0
- package/dist/domain/script/patch/types.js.map +1 -0
- package/dist/domain/script/refs.d.ts +4 -0
- package/dist/domain/script/refs.js +152 -0
- package/dist/domain/script/refs.js.map +1 -0
- package/dist/domain/script/schema.d.ts +6 -0
- package/dist/domain/script/schema.js +53 -0
- package/dist/domain/script/schema.js.map +1 -0
- package/dist/domain/script/selector.d.ts +45 -0
- package/dist/domain/script/selector.js +187 -0
- package/dist/domain/script/selector.js.map +1 -0
- package/dist/domain/script/shared.d.ts +15 -0
- package/dist/domain/script/shared.js +37 -0
- package/dist/domain/script/shared.js.map +1 -0
- package/dist/domain/script/validate.d.ts +22 -0
- package/dist/domain/script/validate.js +844 -0
- package/dist/domain/script/validate.js.map +1 -0
- package/dist/help-text.js +21 -4
- package/dist/help-text.js.map +1 -1
- package/dist/output.d.ts +1 -1
- package/dist/output.js +11 -1
- package/dist/output.js.map +1 -1
- package/dist/usecases/direct.js +1 -1
- package/dist/usecases/direct.js.map +1 -1
- package/dist/usecases/parse.js +1 -1
- package/dist/usecases/parse.js.map +1 -1
- package/dist/usecases/script/actions.d.ts +3 -0
- package/dist/usecases/script/actions.js +71 -0
- package/dist/usecases/script/actions.js.map +1 -0
- package/dist/usecases/script/actor.d.ts +3 -0
- package/dist/usecases/script/actor.js +27 -0
- package/dist/usecases/script/actor.js.map +1 -0
- package/dist/usecases/script/actors.d.ts +3 -0
- package/dist/usecases/script/actors.js +15 -0
- package/dist/usecases/script/actors.js.map +1 -0
- package/dist/usecases/script/add-actor.d.ts +3 -0
- package/dist/usecases/script/add-actor.js +13 -0
- package/dist/usecases/script/add-actor.js.map +1 -0
- package/dist/usecases/script/add-episode.d.ts +3 -0
- package/dist/usecases/script/add-episode.js +9 -0
- package/dist/usecases/script/add-episode.js.map +1 -0
- package/dist/usecases/script/add-location.d.ts +3 -0
- package/dist/usecases/script/add-location.js +11 -0
- package/dist/usecases/script/add-location.js.map +1 -0
- package/dist/usecases/script/add-prop.d.ts +3 -0
- package/dist/usecases/script/add-prop.js +11 -0
- package/dist/usecases/script/add-prop.js.map +1 -0
- package/dist/usecases/script/add-speaker.d.ts +3 -0
- package/dist/usecases/script/add-speaker.js +22 -0
- package/dist/usecases/script/add-speaker.js.map +1 -0
- package/dist/usecases/script/alias.d.ts +3 -0
- package/dist/usecases/script/alias.js +40 -0
- package/dist/usecases/script/alias.js.map +1 -0
- package/dist/usecases/script/assets.d.ts +3 -0
- package/dist/usecases/script/assets.js +21 -0
- package/dist/usecases/script/assets.js.map +1 -0
- package/dist/usecases/script/context.d.ts +3 -0
- package/dist/usecases/script/context.js +20 -0
- package/dist/usecases/script/context.js.map +1 -0
- package/dist/usecases/script/create.d.ts +3 -0
- package/dist/usecases/script/create.js +81 -0
- package/dist/usecases/script/create.js.map +1 -0
- package/dist/usecases/script/delete.d.ts +3 -0
- package/dist/usecases/script/delete.js +79 -0
- package/dist/usecases/script/delete.js.map +1 -0
- package/dist/usecases/script/describe.d.ts +3 -0
- package/dist/usecases/script/describe.js +31 -0
- package/dist/usecases/script/describe.js.map +1 -0
- package/dist/usecases/script/dialogue.d.ts +3 -0
- package/dist/usecases/script/dialogue.js +28 -0
- package/dist/usecases/script/dialogue.js.map +1 -0
- package/dist/usecases/script/do.d.ts +3 -0
- package/dist/usecases/script/do.js +130 -0
- package/dist/usecases/script/do.js.map +1 -0
- package/dist/usecases/script/episodes.d.ts +3 -0
- package/dist/usecases/script/episodes.js +36 -0
- package/dist/usecases/script/episodes.js.map +1 -0
- package/dist/usecases/script/export.d.ts +3 -0
- package/dist/usecases/script/export.js +117 -0
- package/dist/usecases/script/export.js.map +1 -0
- package/dist/usecases/script/insert.d.ts +3 -0
- package/dist/usecases/script/insert.js +87 -0
- package/dist/usecases/script/insert.js.map +1 -0
- package/dist/usecases/script/issues.d.ts +3 -0
- package/dist/usecases/script/issues.js +27 -0
- package/dist/usecases/script/issues.js.map +1 -0
- package/dist/usecases/script/lib.d.ts +77 -0
- package/dist/usecases/script/lib.js +849 -0
- package/dist/usecases/script/lib.js.map +1 -0
- package/dist/usecases/script/locations.d.ts +3 -0
- package/dist/usecases/script/locations.js +15 -0
- package/dist/usecases/script/locations.js.map +1 -0
- package/dist/usecases/script/merge.d.ts +3 -0
- package/dist/usecases/script/merge.js +43 -0
- package/dist/usecases/script/merge.js.map +1 -0
- package/dist/usecases/script/move.d.ts +3 -0
- package/dist/usecases/script/move.js +33 -0
- package/dist/usecases/script/move.js.map +1 -0
- package/dist/usecases/script/overlap.d.ts +3 -0
- package/dist/usecases/script/overlap.js +21 -0
- package/dist/usecases/script/overlap.js.map +1 -0
- package/dist/usecases/script/props.d.ts +3 -0
- package/dist/usecases/script/props.js +15 -0
- package/dist/usecases/script/props.js.map +1 -0
- package/dist/usecases/script/refs.d.ts +3 -0
- package/dist/usecases/script/refs.js +61 -0
- package/dist/usecases/script/refs.js.map +1 -0
- package/dist/usecases/script/rename.d.ts +3 -0
- package/dist/usecases/script/rename.js +17 -0
- package/dist/usecases/script/rename.js.map +1 -0
- package/dist/usecases/script/replace.d.ts +3 -0
- package/dist/usecases/script/replace.js +35 -0
- package/dist/usecases/script/replace.js.map +1 -0
- package/dist/usecases/script/role.d.ts +3 -0
- package/dist/usecases/script/role.js +17 -0
- package/dist/usecases/script/role.js.map +1 -0
- package/dist/usecases/script/scenes.d.ts +3 -0
- package/dist/usecases/script/scenes.js +45 -0
- package/dist/usecases/script/scenes.js.map +1 -0
- package/dist/usecases/script/script-patch.d.ts +3 -0
- package/dist/usecases/script/script-patch.js +187 -0
- package/dist/usecases/script/script-patch.js.map +1 -0
- package/dist/usecases/script/script-validate.d.ts +3 -0
- package/dist/usecases/script/script-validate.js +30 -0
- package/dist/usecases/script/script-validate.js.map +1 -0
- package/dist/usecases/script/session.d.ts +44 -0
- package/dist/usecases/script/session.js +527 -0
- package/dist/usecases/script/session.js.map +1 -0
- package/dist/usecases/script/speakers.d.ts +3 -0
- package/dist/usecases/script/speakers.js +28 -0
- package/dist/usecases/script/speakers.js.map +1 -0
- package/dist/usecases/script/split.d.ts +3 -0
- package/dist/usecases/script/split.js +37 -0
- package/dist/usecases/script/split.js.map +1 -0
- package/dist/usecases/script/state-add.d.ts +3 -0
- package/dist/usecases/script/state-add.js +23 -0
- package/dist/usecases/script/state-add.js.map +1 -0
- package/dist/usecases/script/state-change.d.ts +3 -0
- package/dist/usecases/script/state-change.js +24 -0
- package/dist/usecases/script/state-change.js.map +1 -0
- package/dist/usecases/script/state-delete.d.ts +3 -0
- package/dist/usecases/script/state-delete.js +23 -0
- package/dist/usecases/script/state-delete.js.map +1 -0
- package/dist/usecases/script/state-rename.d.ts +3 -0
- package/dist/usecases/script/state-rename.js +17 -0
- package/dist/usecases/script/state-rename.js.map +1 -0
- package/dist/usecases/script/summary.d.ts +3 -0
- package/dist/usecases/script/summary.js +45 -0
- package/dist/usecases/script/summary.js.map +1 -0
- package/dist/usecases/script/transition.d.ts +3 -0
- package/dist/usecases/script/transition.js +24 -0
- package/dist/usecases/script/transition.js.map +1 -0
- package/dist/usecases/script/type.d.ts +3 -0
- package/dist/usecases/script/type.js +24 -0
- package/dist/usecases/script/type.js.map +1 -0
- package/dist/usecases/script/worldview.d.ts +3 -0
- package/dist/usecases/script/worldview.js +18 -0
- package/dist/usecases/script/worldview.js.map +1 -0
- package/package.json +1 -1
- package/dist/domain/script-core.d.ts +0 -78
- package/dist/domain/script-core.js +0 -3026
- package/dist/domain/script-core.js.map +0 -1
- package/dist/usecases/script.d.ts +0 -67
- package/dist/usecases/script.js +0 -2348
- package/dist/usecases/script.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CliError, EXIT_USAGE, } from "../../common.js";
|
|
2
|
+
import { asList, } from "../../domain/script/shared.js";
|
|
3
|
+
import { applySingleScriptOp, } from "./lib.js";
|
|
4
|
+
export async function commandStateAdd(opts) {
|
|
5
|
+
const args = asList(opts["_args"]);
|
|
6
|
+
if (args.length < 2) {
|
|
7
|
+
throw new CliError("VERB BLOCKED: state-add args missing", "state-add args missing.", {
|
|
8
|
+
exitCode: EXIT_USAGE,
|
|
9
|
+
required: ["<asset-addr> <state-name>"],
|
|
10
|
+
received: args,
|
|
11
|
+
nextSteps: ["Example: scriptctl state-add actor:act_001 \"震惊\""],
|
|
12
|
+
errorCode: "ARGS_MISSING",
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return applySingleScriptOp(opts, {
|
|
16
|
+
op: "state.add",
|
|
17
|
+
target: args[0],
|
|
18
|
+
name: args[1],
|
|
19
|
+
description: opts["description"],
|
|
20
|
+
state_id: opts["state_id"],
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=state-add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-add.js","sourceRoot":"","sources":["../../../src/usecases/script/state-add.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAKR,UAAU,GASX,MAAM,iBAAiB,CAAC;AAmCzB,OAAO,EACL,MAAM,GAKP,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAC+I,mBAAmB,GACxK,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAU;IAC9C,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,sCAAsC,EAAE,yBAAyB,EAAE;YACpF,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,2BAA2B,CAAC;YACvC,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,mDAAmD,CAAC;YAChE,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,EAAE;QAC/B,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACf,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACb,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;QAChC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;KAC3B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CliError, EXIT_USAGE, } from "../../common.js";
|
|
2
|
+
import { asList, strOf, } from "../../domain/script/shared.js";
|
|
3
|
+
import { applySingleScriptOp, applySelectorEdits, selectionHasAnyFilter, } from "./lib.js";
|
|
4
|
+
import { stateChangeTemplate } from "./lib.js";
|
|
5
|
+
export async function commandStateChange(opts) {
|
|
6
|
+
const args = asList(opts["_args"]);
|
|
7
|
+
const selectorMode = selectionHasAnyFilter(opts);
|
|
8
|
+
// Single-point: `state-change <at> <target>`; selector: `state-change <target>`.
|
|
9
|
+
const target = strOf(selectorMode ? args[0] : args[1]);
|
|
10
|
+
if (!target) {
|
|
11
|
+
throw new CliError("VERB BLOCKED: state-change args missing", "state-change args missing.", {
|
|
12
|
+
exitCode: EXIT_USAGE,
|
|
13
|
+
required: [selectorMode ? "<asset-addr> (with a selection)" : "<action-addr> <asset-addr>"],
|
|
14
|
+
received: args,
|
|
15
|
+
nextSteps: ["Example: scriptctl state-change ep_001/scn_001#3 actor:act_001 --to st_shock | scriptctl state-change --in ep_005/scn_002#0..#9 actor:act_001 --to st_shock --apply"],
|
|
16
|
+
errorCode: "ARGS_MISSING",
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
const template = stateChangeTemplate(target, { to: opts["to"], from: opts["from"], effective: opts["effective"], clear: Boolean(opts["clear"]) });
|
|
20
|
+
if (selectorMode)
|
|
21
|
+
return applySelectorEdits(opts, template, "state-change");
|
|
22
|
+
return applySingleScriptOp(opts, { ...template, at: args[0] });
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=state-change.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-change.js","sourceRoot":"","sources":["../../../src/usecases/script/state-change.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAKR,UAAU,GASX,MAAM,iBAAiB,CAAC;AAmCzB,OAAO,EACL,MAAM,EAIN,KAAK,GACN,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAC+I,mBAAmB,EAAmC,kBAAkB,EAA0M,qBAAqB,GAC5b,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAU;IACjD,MAAM,IAAI,GAAG,MAAM,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjD,iFAAiF;IACjF,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,yCAAyC,EAAE,4BAA4B,EAAE;YAC1F,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,4BAA4B,CAAC;YAC3F,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,uKAAuK,CAAC;YACpL,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAClJ,IAAI,YAAY;QAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5E,OAAO,mBAAmB,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CliError, EXIT_USAGE, } from "../../common.js";
|
|
2
|
+
import { asList, } from "../../domain/script/shared.js";
|
|
3
|
+
import { applySingleScriptOp, } from "./lib.js";
|
|
4
|
+
export async function commandStateDelete(opts) {
|
|
5
|
+
const args = asList(opts["_args"]);
|
|
6
|
+
if (args.length < 1) {
|
|
7
|
+
throw new CliError("VERB BLOCKED: state-delete address missing", "state-delete address missing.", {
|
|
8
|
+
exitCode: EXIT_USAGE,
|
|
9
|
+
required: ["<state-addr>"],
|
|
10
|
+
received: ["<empty>"],
|
|
11
|
+
nextSteps: ["Example: scriptctl state-delete actor:act_001/st_calm --strategy remove"],
|
|
12
|
+
errorCode: "ARGS_MISSING",
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return applySingleScriptOp(opts, {
|
|
16
|
+
op: "state.delete",
|
|
17
|
+
target: args[0],
|
|
18
|
+
strategy: opts["strategy"],
|
|
19
|
+
replacement: opts["replacement"],
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
// ----- scene context ref ----------------------------------------------------
|
|
23
|
+
//# sourceMappingURL=state-delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-delete.js","sourceRoot":"","sources":["../../../src/usecases/script/state-delete.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAKR,UAAU,GASX,MAAM,iBAAiB,CAAC;AAmCzB,OAAO,EACL,MAAM,GAKP,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAC+I,mBAAmB,GACxK,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAU;IACjD,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,4CAA4C,EAAE,+BAA+B,EAAE;YAChG,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,SAAS,EAAE,CAAC,yEAAyE,CAAC;YACtF,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,EAAE;QAC/B,EAAE,EAAE,cAAc;QAClB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACf,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;QAC1B,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;KACjC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CliError, EXIT_USAGE, } from "../../common.js";
|
|
2
|
+
import { asList, } from "../../domain/script/shared.js";
|
|
3
|
+
import { applySingleScriptOp, } from "./lib.js";
|
|
4
|
+
export async function commandStateRename(opts) {
|
|
5
|
+
const args = asList(opts["_args"]);
|
|
6
|
+
if (args.length < 2) {
|
|
7
|
+
throw new CliError("VERB BLOCKED: state-rename args missing", "state-rename args missing.", {
|
|
8
|
+
exitCode: EXIT_USAGE,
|
|
9
|
+
required: ["<state-addr> <new-name>"],
|
|
10
|
+
received: args,
|
|
11
|
+
nextSteps: ["Example: scriptctl state-rename actor:act_001/st_calm \"平静(新)\""],
|
|
12
|
+
errorCode: "ARGS_MISSING",
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return applySingleScriptOp(opts, { op: "state.rename", target: args[0], name: args[1] });
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=state-rename.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-rename.js","sourceRoot":"","sources":["../../../src/usecases/script/state-rename.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAKR,UAAU,GASX,MAAM,iBAAiB,CAAC;AAmCzB,OAAO,EACL,MAAM,GAKP,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAC+I,mBAAmB,GACxK,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAU;IACjD,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,yCAAyC,EAAE,4BAA4B,EAAE;YAC1F,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,yBAAyB,CAAC;YACrC,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,iEAAiE,CAAC;YAC9E,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3F,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EXIT_OK, } from "../../common.js";
|
|
2
|
+
import { asList, strOf, } from "../../domain/script/shared.js";
|
|
3
|
+
import { loadScriptForEdit, } from "./session.js";
|
|
4
|
+
import { buildReport, synopsisPreview, } from "./lib.js";
|
|
5
|
+
export async function commandSummary(opts) {
|
|
6
|
+
const session = await loadScriptForEdit(opts);
|
|
7
|
+
const script = session.script;
|
|
8
|
+
const episodes = asList(script["episodes"]);
|
|
9
|
+
const scenes = [];
|
|
10
|
+
for (const ep of episodes)
|
|
11
|
+
scenes.push(...asList(ep["scenes"]));
|
|
12
|
+
const actions = [];
|
|
13
|
+
for (const scene of scenes)
|
|
14
|
+
actions.push(...asList(scene["actions"]));
|
|
15
|
+
const lines = [
|
|
16
|
+
`title: ${script["title"] || "-"}`,
|
|
17
|
+
`episodes: ${episodes.length}`,
|
|
18
|
+
`scenes: ${scenes.length}`,
|
|
19
|
+
`actions: ${actions.length}`,
|
|
20
|
+
`actors: ${asList(script["actors"]).length}`,
|
|
21
|
+
`locations: ${asList(script["locations"]).length}`,
|
|
22
|
+
`props: ${asList(script["props"]).length}`,
|
|
23
|
+
`speakers: ${asList(script["speakers"]).length}`,
|
|
24
|
+
];
|
|
25
|
+
const logline = strOf(script["logline"]).trim();
|
|
26
|
+
if (logline)
|
|
27
|
+
lines.push(`logline: ${logline}`);
|
|
28
|
+
const theme = strOf(script["theme"]).trim();
|
|
29
|
+
if (theme)
|
|
30
|
+
lines.push(`theme: ${theme}`);
|
|
31
|
+
const synopsis = strOf(script["synopsis"]).trim();
|
|
32
|
+
if (synopsis)
|
|
33
|
+
lines.push(`synopsis: ${synopsisPreview(synopsis, 120)}`);
|
|
34
|
+
const mainCharacters = asList(script["main_characters"])
|
|
35
|
+
.map((c) => strOf(c["name"]).trim())
|
|
36
|
+
.filter((n) => n);
|
|
37
|
+
if (mainCharacters.length > 0)
|
|
38
|
+
lines.push(`main characters: ${mainCharacters.slice(0, 6).join(", ")}`);
|
|
39
|
+
return [buildReport("query.summary", "SCRIPT SUMMARY", lines, session.artifactLabel, ["Use plural-noun queries (episodes / scenes / actions / actors / ...) or edit verbs to act on the script."]), EXIT_OK];
|
|
40
|
+
}
|
|
41
|
+
// ----- episodes -------------------------------------------------------------
|
|
42
|
+
// An episode is in scope when the selector is empty, when an episode-level
|
|
43
|
+
// region covers it (probe with a scn=0 id, which only matches episode regions
|
|
44
|
+
// and so also covers scene-less episodes), or when any of its scenes matches.
|
|
45
|
+
//# sourceMappingURL=summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/usecases/script/summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CliError, EXIT_USAGE, } from "../../common.js";
|
|
2
|
+
import { asList, strOf, } from "../../domain/script/shared.js";
|
|
3
|
+
import { applySingleScriptOp, applySelectorEdits, selectionHasAnyFilter, } from "./lib.js";
|
|
4
|
+
import { transitionTemplate } from "./lib.js";
|
|
5
|
+
export async function commandTransition(opts) {
|
|
6
|
+
const args = asList(opts["_args"]);
|
|
7
|
+
const selectorMode = selectionHasAnyFilter(opts);
|
|
8
|
+
const target = strOf(selectorMode ? args[0] : args[1]);
|
|
9
|
+
if (!target) {
|
|
10
|
+
throw new CliError("VERB BLOCKED: transition args missing", "transition args missing.", {
|
|
11
|
+
exitCode: EXIT_USAGE,
|
|
12
|
+
required: [selectorMode ? "<asset-addr> (with a selection)" : "<action-addr> <asset-addr>"],
|
|
13
|
+
received: args,
|
|
14
|
+
nextSteps: ["Example: scriptctl transition ep_001/scn_001#3 actor:act_001 --process \"...\" --contrast \"...\" | scriptctl transition --in ep_005..ep_006 --has transition actor:act_001 --clear --apply"],
|
|
15
|
+
errorCode: "ARGS_MISSING",
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
const template = transitionTemplate(target, { process: opts["process"], contrast: opts["contrast"], clear: Boolean(opts["clear"]) });
|
|
19
|
+
if (selectorMode)
|
|
20
|
+
return applySelectorEdits(opts, template, "transition");
|
|
21
|
+
return applySingleScriptOp(opts, { ...template, at: args[0] });
|
|
22
|
+
}
|
|
23
|
+
// ----- dialogue / speaker ---------------------------------------------------
|
|
24
|
+
//# sourceMappingURL=transition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transition.js","sourceRoot":"","sources":["../../../src/usecases/script/transition.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAKR,UAAU,GASX,MAAM,iBAAiB,CAAC;AAmCzB,OAAO,EACL,MAAM,EAIN,KAAK,GACN,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAC+I,mBAAmB,EAAmC,kBAAkB,EAA0M,qBAAqB,GAC5b,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAU;IAChD,MAAM,IAAI,GAAG,MAAM,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE,0BAA0B,EAAE;YACtF,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,4BAA4B,CAAC;YAC3F,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,+LAA+L,CAAC;YAC5M,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACrI,IAAI,YAAY;QAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC1E,OAAO,mBAAmB,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,+EAA+E"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CliError, EXIT_USAGE, } from "../../common.js";
|
|
2
|
+
import { asList, strOf, } from "../../domain/script/shared.js";
|
|
3
|
+
import { applySingleScriptOp, applySelectorEdits, selectionHasAnyFilter, } from "./lib.js";
|
|
4
|
+
export async function commandType(opts) {
|
|
5
|
+
const args = asList(opts["_args"]);
|
|
6
|
+
const selectorMode = selectionHasAnyFilter(opts);
|
|
7
|
+
// Single-point: `type <at> <type>` (value = args[1]). Selector: `type <type>`
|
|
8
|
+
// (value = args[0]); --type stays a filter predicate, not the new value.
|
|
9
|
+
const typeVal = strOf(selectorMode ? args[0] : args[1]).trim();
|
|
10
|
+
if (!typeVal) {
|
|
11
|
+
throw new CliError("VERB BLOCKED: Type args missing", "Type args missing.", {
|
|
12
|
+
exitCode: EXIT_USAGE,
|
|
13
|
+
required: [selectorMode ? "<type> (with a selection)" : "<action ref> <type>"],
|
|
14
|
+
received: args,
|
|
15
|
+
nextSteps: ["Example: scriptctl type ep_001/scn_001#3 dialogue | scriptctl type --in ep_001 dialogue --apply"],
|
|
16
|
+
errorCode: "ARGS_MISSING",
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
const template = { op: "action.type.set", type: typeVal };
|
|
20
|
+
if (selectorMode)
|
|
21
|
+
return applySelectorEdits(opts, template, "type");
|
|
22
|
+
return applySingleScriptOp(opts, { ...template, at: args[0] });
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/usecases/script/type.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAKR,UAAU,GASX,MAAM,iBAAiB,CAAC;AAmCzB,OAAO,EACL,MAAM,EAIN,KAAK,GACN,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAC+I,mBAAmB,EAAmC,kBAAkB,EAA0M,qBAAqB,GAC5b,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAU;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjD,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,QAAQ,CAAC,iCAAiC,EAAE,oBAAoB,EAAE;YAC1E,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAC9E,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,mGAAmG,CAAC;YAChH,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAS,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAChE,IAAI,YAAY;QAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,mBAAmB,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CliError, EXIT_USAGE, } from "../../common.js";
|
|
2
|
+
import { asList, } from "../../domain/script/shared.js";
|
|
3
|
+
import { applySingleScriptOp, } from "./lib.js";
|
|
4
|
+
export async function commandWorldview(opts) {
|
|
5
|
+
const args = asList(opts["_args"]);
|
|
6
|
+
if (args.length < 1) {
|
|
7
|
+
throw new CliError("VERB BLOCKED: Worldview value missing", "Worldview value missing.", {
|
|
8
|
+
exitCode: EXIT_USAGE,
|
|
9
|
+
required: ["<value>"],
|
|
10
|
+
received: ["<empty>"],
|
|
11
|
+
nextSteps: ["Example: scriptctl worldview 现代"],
|
|
12
|
+
errorCode: "ARGS_MISSING",
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return applySingleScriptOp(opts, { op: "meta.worldview.set", worldview: args[0] });
|
|
16
|
+
}
|
|
17
|
+
// ----- state management -----------------------------------------------------
|
|
18
|
+
//# sourceMappingURL=worldview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worldview.js","sourceRoot":"","sources":["../../../src/usecases/script/worldview.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAKR,UAAU,GASX,MAAM,iBAAiB,CAAC;AAmCzB,OAAO,EACL,MAAM,GAKP,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAC+I,mBAAmB,GACxK,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAU;IAC/C,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,uCAAuC,EAAE,0BAA0B,EAAE;YACtF,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,SAAS,EAAE,CAAC,iCAAiC,CAAC;YAC9C,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,+EAA+E"}
|
package/package.json
CHANGED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
type Dict = Record<string, unknown>;
|
|
2
|
-
export declare function findAction(script: Dict, epId: string, sceneId: string, actionIndex: number): Dict;
|
|
3
|
-
export declare function findEpisode(script: Dict, epId: string): Dict;
|
|
4
|
-
export declare function findScene(script: Dict, epId: string, sceneId: string): Dict;
|
|
5
|
-
/**
|
|
6
|
-
* Minimal schema-v2 script skeleton: every required top-level field present,
|
|
7
|
-
* all collections empty. It is the starting point for building a script
|
|
8
|
-
* bottom-up with the atomic add/insert verbs instead of assembling it from
|
|
9
|
-
* source material (direct) or md (parse). `worldview`/`style`/`title` are
|
|
10
|
-
* present-but-empty so the field-presence checks pass; they get filled in
|
|
11
|
-
* later via `worldview` / `patch`. A blank script validates clean: NO_EPISODES
|
|
12
|
-
* is a completeness warning (`incomplete_ok`), not a blocker.
|
|
13
|
-
*/
|
|
14
|
-
export declare function blankScript(title?: string): Dict;
|
|
15
|
-
/**
|
|
16
|
-
* Validate a script's schema and asset wiring.
|
|
17
|
-
*
|
|
18
|
-
* Pass either:
|
|
19
|
-
* - `scriptPath: string` (or null → default to direct's script.initial.json), or
|
|
20
|
-
* - `opts.scriptData: Dict` to validate an in-memory object without writing to disk.
|
|
21
|
-
*
|
|
22
|
-
* Callers that already have the script as a parsed object (episode draft / publish
|
|
23
|
-
* after assembly) should prefer `scriptData` to avoid the write-validate-rm dance.
|
|
24
|
-
*
|
|
25
|
-
* Completeness issues (no episodes, empty episode/scene, scene without location,
|
|
26
|
-
* missing asset description) are emitted as warnings (`incomplete_ok`), not
|
|
27
|
-
* errors — an unfinished but structurally-sound script passes. Only integrity
|
|
28
|
-
* violations (dangling refs, dup ids, invalid enums, missing ids/names) fail it.
|
|
29
|
-
*/
|
|
30
|
-
export declare function validateScript(workspace: string, scriptPath?: string | null, opts?: {
|
|
31
|
-
requireSource?: boolean;
|
|
32
|
-
scriptData?: Dict;
|
|
33
|
-
persist?: boolean;
|
|
34
|
-
}): Dict;
|
|
35
|
-
export declare function assetKeys(assetType: string): [string, string, string];
|
|
36
|
-
export declare function ensureRefId(script: Dict, assetType: string, rawId: unknown, opts?: {
|
|
37
|
-
allowNone?: boolean;
|
|
38
|
-
}): string | null;
|
|
39
|
-
export declare function parseAssetTarget(raw: unknown): [string, string];
|
|
40
|
-
export declare function parseStateTarget(raw: unknown): [string, string, string];
|
|
41
|
-
export declare function parseSceneRef(raw: unknown): [string, string];
|
|
42
|
-
export declare function parseActionRef(raw: unknown): [string, string, number];
|
|
43
|
-
export declare function collectStateRefs(script: Dict, kind: string, targetId: string, stateId: string): Dict[];
|
|
44
|
-
export type AnyAddress = {
|
|
45
|
-
kind: "action";
|
|
46
|
-
episodeId: string;
|
|
47
|
-
sceneId: string;
|
|
48
|
-
actionIndex: number;
|
|
49
|
-
} | {
|
|
50
|
-
kind: "scene";
|
|
51
|
-
episodeId: string;
|
|
52
|
-
sceneId: string;
|
|
53
|
-
} | {
|
|
54
|
-
kind: "asset";
|
|
55
|
-
assetKind: string;
|
|
56
|
-
assetId: string;
|
|
57
|
-
} | {
|
|
58
|
-
kind: "state";
|
|
59
|
-
assetKind: string;
|
|
60
|
-
assetId: string;
|
|
61
|
-
stateId: string;
|
|
62
|
-
} | {
|
|
63
|
-
kind: "episode";
|
|
64
|
-
episodeId: string;
|
|
65
|
-
} | {
|
|
66
|
-
kind: "speaker";
|
|
67
|
-
speakerId: string;
|
|
68
|
-
};
|
|
69
|
-
export declare function parseAnyAddress(raw: unknown): AnyAddress;
|
|
70
|
-
export declare function collectAssetRefs(script: Dict, kind: string, targetId: string): Dict[];
|
|
71
|
-
export interface PatchOpFieldSchema {
|
|
72
|
-
required: string[];
|
|
73
|
-
optional: string[];
|
|
74
|
-
description: string;
|
|
75
|
-
}
|
|
76
|
-
export declare const PATCH_OP_SCHEMA: Record<string, PatchOpFieldSchema>;
|
|
77
|
-
export declare function applyPatchOperations(script: Dict, sourceText: string, operations: Dict[]): string[];
|
|
78
|
-
export {};
|