@lingjingai/scriptctl 0.51.4 → 0.52.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/changes/0.52.0.md +14 -0
- package/dist/cli/register-edits.js +8 -0
- package/dist/cli/register-edits.js.map +1 -1
- package/dist/cli/register-query.js +2 -1
- package/dist/cli/register-query.js.map +1 -1
- package/dist/domain/script/timestamp.d.ts +16 -0
- package/dist/domain/script/timestamp.js +88 -0
- package/dist/domain/script/timestamp.js.map +1 -0
- package/dist/domain/script/v3/patch/apply.js +1 -1
- package/dist/domain/script/v3/patch/apply.js.map +1 -1
- package/dist/domain/script/v3/patch/ops-extend.js +11 -0
- package/dist/domain/script/v3/patch/ops-extend.js.map +1 -1
- package/dist/domain/script/v3/patch/ops-timestamp.d.ts +6 -0
- package/dist/domain/script/v3/patch/ops-timestamp.js +47 -0
- package/dist/domain/script/v3/patch/ops-timestamp.js.map +1 -0
- package/dist/domain/script/v3/patch/registry.js +3 -0
- package/dist/domain/script/v3/patch/registry.js.map +1 -1
- package/dist/domain/script/v3/schema.js +2 -0
- package/dist/domain/script/v3/schema.js.map +1 -1
- package/dist/domain/script/v4/patch/ops-extend.js +18 -1
- package/dist/domain/script/v4/patch/ops-extend.js.map +1 -1
- package/dist/domain/script/v4/patch/ops-timestamp.d.ts +6 -0
- package/dist/domain/script/v4/patch/ops-timestamp.js +40 -0
- package/dist/domain/script/v4/patch/ops-timestamp.js.map +1 -0
- package/dist/domain/script/v4/patch/registry.js +3 -0
- package/dist/domain/script/v4/patch/registry.js.map +1 -1
- package/dist/domain/script/v4/patch/schema.js +2 -0
- package/dist/domain/script/v4/patch/schema.js.map +1 -1
- package/dist/usecases/script/actions.js +3 -2
- package/dist/usecases/script/actions.js.map +1 -1
- package/dist/usecases/script/command-constraints.d.ts +2 -0
- package/dist/usecases/script/command-constraints.js +29 -0
- package/dist/usecases/script/command-constraints.js.map +1 -1
- package/dist/usecases/script/lib.js +15 -1
- package/dist/usecases/script/lib.js.map +1 -1
- package/dist/usecases/script/timestamp-filter.d.ts +4 -0
- package/dist/usecases/script/timestamp-filter.js +55 -0
- package/dist/usecases/script/timestamp-filter.js.map +1 -0
- package/dist/usecases/script/timestamp.d.ts +3 -0
- package/dist/usecases/script/timestamp.js +11 -0
- package/dist/usecases/script/timestamp.js.map +1 -0
- package/dist/usecases/script/v4/queries.js +5 -0
- package/dist/usecases/script/v4/queries.js.map +1 -1
- package/package.json +1 -1
- package/skills/scriptctl/SKILL.md +7 -2
- package/skills/scriptctl/references/atomic-edit-workflow.md +2 -0
- package/skills/scriptctl/references/video-transcript-repair.md +7 -7
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { asList } from "../../domain/script/shared.js";
|
|
2
|
+
import { buildTimestampOperation } from "./command-constraints.js";
|
|
3
|
+
import { applySingleScriptOpToSession } from "./lib.js";
|
|
4
|
+
import { loadScriptForEdit } from "./session.js";
|
|
5
|
+
export async function commandTimestamp(opts) {
|
|
6
|
+
const args = asList(opts["_args"]);
|
|
7
|
+
const operation = buildTimestampOperation(args[0], opts["set"], Boolean(opts["remove"]));
|
|
8
|
+
const session = await loadScriptForEdit(opts);
|
|
9
|
+
return applySingleScriptOpToSession(session, opts, operation);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=timestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../../src/usecases/script/timestamp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAa,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAU;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,4BAA4B,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { listActionLocationsV4, } from "../../../domain/script/v4/address.js";
|
|
|
3
3
|
import { parseV4Selector } from "../../../domain/script/v4/selector.js";
|
|
4
4
|
import { buildGrepMatcher } from "../lib.js";
|
|
5
5
|
import { strOf } from "../../../domain/script/shared.js";
|
|
6
|
+
import { actionTimestampFilter, actionTimestampMatches } from "../timestamp-filter.js";
|
|
6
7
|
const HAS_FILTERS = new Set(["transition", "speaker"]);
|
|
7
8
|
function actorId(action) {
|
|
8
9
|
if (!("speaker" in action) || !("actor_id" in action.speaker))
|
|
@@ -13,6 +14,7 @@ export function resolveActionTargetsV4(script, opts, options = {}) {
|
|
|
13
14
|
const selector = parseV4Selector(script, opts["in"], {
|
|
14
15
|
allowOrdinals: options.allowOrdinals ?? true,
|
|
15
16
|
});
|
|
17
|
+
const timestampRange = actionTimestampFilter(opts);
|
|
16
18
|
const typeFilter = strOf(opts["type"]).trim();
|
|
17
19
|
const actorFilter = strOf(opts["actor"]).trim();
|
|
18
20
|
const hasFilter = strOf(opts["has"]).trim();
|
|
@@ -28,6 +30,9 @@ export function resolveActionTargetsV4(script, opts, options = {}) {
|
|
|
28
30
|
const action = row.action;
|
|
29
31
|
if (!selector.matchesAction(action.action_id))
|
|
30
32
|
return false;
|
|
33
|
+
if (timestampRange
|
|
34
|
+
&& !actionTimestampMatches(action.extend?.timestamp, timestampRange, action.action_id))
|
|
35
|
+
return false;
|
|
31
36
|
if (typeFilter && action.type !== typeFilter)
|
|
32
37
|
return false;
|
|
33
38
|
if (actorFilter && actorId(action) !== actorFilter)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/usecases/script/v4/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,qBAAqB,GAEtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAyB,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,KAAK,EAAa,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/usecases/script/v4/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,qBAAqB,GAEtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAyB,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,KAAK,EAAa,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEvF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AAEvD,SAAS,OAAO,CAAC,MAAgB;IAC/B,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAgB,EAChB,IAAU,EACV,UAAuC,EAAE;IAEzC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;QACnD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;KAC7C,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,SAAS,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE;YACnC,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,oBAAoB;YAC/B,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;SAC1F,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,IACE,cAAc;eACX,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC;YACtF,OAAO,KAAK,CAAC;QACf,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAC3D,IAAI,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QACjE,IAAI,SAAS,KAAK,YAAY,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACvF,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACpE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAqB;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,UAAU,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;;YAC7D,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7D,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,SAAS;QACtB,KAAK,EAAE,GAAG,CAAC,YAAY,GAAG,CAAC;QAC3B,QAAQ,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC;QAC5B,eAAe,EAAE,GAAG,CAAC,gBAAgB,GAAG,CAAC;QACzC,SAAS,EAAE,GAAG,CAAC,WAAW,GAAG,CAAC;QAC9B,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,GAAG,CAAC;QAC3C,SAAS,EAAE,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QACxE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO;QACP,KAAK;QACL,aAAa,EAAE,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC3E,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAqB;IAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG;QACX,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;QAC/C,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACjG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO;KAC/B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAAgB,EAChB,IAAmC,EACnC,IAAgE;IAEhE,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqD,CAAC;IACjF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO;gBAC3B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACzC,CAAC,CAAC,IAAI,KAAK,UAAU;oBACnB,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAC7D,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;gBAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACtC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC1B,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO;QAC7B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5B,EAAE,EAAE,KAAK,CAAC,QAAQ;YAClB,IAAI,EAAE,KAAK,CAAC,UAAU;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,IAAI,EAAE,KAAK,CAAC,SAAS;YACrB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;SAC5B,CAAC,CAAC;QACL,CAAC,CAAC,IAAI,KAAK,UAAU;YACnB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/B,EAAE,EAAE,KAAK,CAAC,WAAW;gBACrB,IAAI,EAAE,KAAK,CAAC,aAAa;gBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;aAC5B,CAAC,CAAC;YACL,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC3B,EAAE,EAAE,KAAK,CAAC,OAAO;gBACjB,IAAI,EAAE,KAAK,CAAC,SAAS;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;aAC5B,CAAC,CAAC,CAAC;IACV,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAClD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3F,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG;YACZ,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACnE,cAAc,KAAK,CAAC,UAAU,EAAE;YAChC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YACtC,UAAU,KAAK,CAAC,MAAM,EAAE;YACxB,eAAe,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;SAC9D,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvC,KAAK,CAAC,IAAI,CACR,UAAU,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,EAC7B,kBAAkB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,EAAE,EAC5C,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CACvD,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,EAAE;YACd,IAAI;YACJ,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,mBAAmB,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,MAAM;gBACb,CAAC,CAAC;oBACE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;oBACzB,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC;oBACxC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;iBACnD;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO;QACL,KAAK;QACL,IAAI;QACJ,UAAU,EAAE;YACV,MAAM;YACN,MAAM;YACN,IAAI;YACJ,MAAM;YACN,SAAS;YACT,YAAY;YACZ,MAAM;YACN,QAAQ;YACR,qBAAqB;YACrB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: scriptctl
|
|
3
3
|
description: "剧本 script.json 的本地查询、文件化批量写作、原子精修、素材 ingest 与 revision publish CLI。处理 Script v3/v4、两个 script.json、剧本资产/state、Action、场景引用或 authoring 时使用。"
|
|
4
4
|
metadata:
|
|
5
|
-
version: "0.27.
|
|
6
|
-
scriptctl_version: "0.
|
|
5
|
+
version: "0.27.3"
|
|
6
|
+
scriptctl_version: "0.52.0"
|
|
7
7
|
author: "official"
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -68,6 +68,7 @@ scriptctl summary -p "$SCRIPT"
|
|
|
68
68
|
scriptctl episodes -p "$SCRIPT"
|
|
69
69
|
scriptctl scenes -i '@ep:3' -p "$SCRIPT"
|
|
70
70
|
scriptctl actions -g "台下掌声" -p "$SCRIPT"
|
|
71
|
+
scriptctl actions -i '@ep:1' --time '00:30..00:45' -p "$SCRIPT"
|
|
71
72
|
scriptctl actors --counts -p "$SCRIPT"
|
|
72
73
|
scriptctl states actA3kP9x -p "$SCRIPT"
|
|
73
74
|
scriptctl refs actA3kP9x/stB4xR8p -p "$SCRIPT"
|
|
@@ -94,6 +95,7 @@ scriptctl validate -p "$SCRIPT"
|
|
|
94
95
|
| **按正文搜某句话定位 action**(最常用) | `scriptctl actions -g "<片段>"` |
|
|
95
96
|
| 列某集所有 action(含 timestamp / speaker / 正文 /表演提示) | `scriptctl actions -i '@ep:1'` |
|
|
96
97
|
| 看单条 action 正文 | `scriptctl actions -i '@ep:1/scn:1/ac:3'` |
|
|
98
|
+
| 按集内时间点或闭区间看正文 | `scriptctl actions -i '@ep:1' --time '00:30..00:45'` |
|
|
97
99
|
| action 多维过滤 | `scriptctl actions -i '@ep:1' -t dialogue -a <actor-id> --has speaker` |
|
|
98
100
|
| 某角色出现的所有场 | `scriptctl scenes --has-actor <actor-id>`(另有 `--has-location`/`--has-prop`) |
|
|
99
101
|
| **列某资产的所有 state + 状态弧线**(改造型前必查) | `scriptctl states <asset-id>` |
|
|
@@ -124,6 +126,8 @@ scriptctl replace acR8cV4n --from "旧句" --to "新句" -p "$SCRIPT"
|
|
|
124
126
|
scriptctl parenthetical acT2fG6z --set "低声" -p "$SCRIPT"
|
|
125
127
|
scriptctl parenthetical acT2fG6z --set "" -p "$SCRIPT"
|
|
126
128
|
scriptctl parenthetical acT2fG6z --remove -p "$SCRIPT"
|
|
129
|
+
scriptctl timestamp acT2fG6z --set 00:42.533 -p "$SCRIPT"
|
|
130
|
+
scriptctl timestamp acT2fG6z --remove -p "$SCRIPT"
|
|
127
131
|
scriptctl dialogue acT2fG6z -a actA3kP9x --state stB4xR8p -p "$SCRIPT"
|
|
128
132
|
```
|
|
129
133
|
|
|
@@ -171,6 +175,7 @@ V3 继续使用现有复合地址,例如:
|
|
|
171
175
|
```bash
|
|
172
176
|
scriptctl replace ep_001/scn_003#5 --from "旧句" --to "新句"
|
|
173
177
|
scriptctl emotion ep_001/scn_003#5 "低声"
|
|
178
|
+
scriptctl timestamp ep_001/scn_003#5 --set 00:42
|
|
174
179
|
scriptctl scene-ref ep_001/scn_003 actor:act_001 --state st_002
|
|
175
180
|
```
|
|
176
181
|
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
scriptctl actions -g "台下掌声雷动" -p "$SCRIPT"
|
|
12
12
|
scriptctl replace acR8cV4n --from "台下掌声雷动" --to "掌声骤停" \
|
|
13
13
|
-p "$SCRIPT"
|
|
14
|
+
scriptctl timestamp acR8cV4n --set 00:42.533 -p "$SCRIPT"
|
|
14
15
|
```
|
|
15
16
|
|
|
16
17
|
V4 查询可以使用 1-based `@` 序号,但修改必须使用正式 ID。V3 查询返回原有的
|
|
@@ -33,6 +34,7 @@ scriptctl replace -i 'acR8cV4n..acT2fG6z' --from "。" --to "!" \
|
|
|
33
34
|
```text
|
|
34
35
|
replace acR8cV4n --from "旧句" --to "新句"
|
|
35
36
|
parenthetical acT2fG6z --set "低声"
|
|
37
|
+
timestamp acT2fG6z --set 00:42.533
|
|
36
38
|
scene-ref scnK6wT3c actA3kP9x --state default --state stB4xR8p
|
|
37
39
|
```
|
|
38
40
|
|
|
@@ -26,14 +26,14 @@ V3 保持其现有地址与字段;V4 使用其正式 ID 与计划写入语义
|
|
|
26
26
|
|
|
27
27
|
## 2. 定位 Action 与时间点
|
|
28
28
|
|
|
29
|
-
时间戳是集内固定起点,存储在 `action.extend.timestamp
|
|
30
|
-
`
|
|
31
|
-
|
|
29
|
+
时间戳是集内固定起点,存储在 `action.extend.timestamp`。输入接受 `M:SS`、`MM:SS`、
|
|
30
|
+
`H:MM:SS` 及可选的 1–3 位小数,写入时规范化宽度并保留有效小数精度。它不是持续区间;
|
|
31
|
+
一条 Action 的结束时间由下一条 Action 的起点或视频画面复核推断。
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
scriptctl actions -i '@ep:4' -p "$SCRIPT"
|
|
35
35
|
scriptctl actions -g "台词片段" -p "$SCRIPT"
|
|
36
|
-
scriptctl
|
|
36
|
+
scriptctl timestamp <action-id> --set 00:42.533 -p "$SCRIPT"
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
校时使用视频中该动作或对白真正开始的画面。保留亚秒级精度。没有视频证据时保留待复核,
|
|
@@ -51,14 +51,14 @@ scriptctl ids -k action --count 1 -p "$SCRIPT"
|
|
|
51
51
|
|
|
52
52
|
```text
|
|
53
53
|
insert <scene-id> --action-id <new-action-id> -t action --content "她推门进屋。" --after <previous-action-id>
|
|
54
|
-
|
|
54
|
+
timestamp <new-action-id> --set 00:42.533
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
对白示例:
|
|
58
58
|
|
|
59
59
|
```text
|
|
60
60
|
insert <scene-id> --action-id <new-action-id> -t dialogue --content "我回来了。" -a <actor-id> --after <previous-action-id>
|
|
61
|
-
|
|
61
|
+
timestamp <new-action-id> --set 00:42.533
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
人物必须已经出现在本场 scene ref 中;需要指定造型时同时传 `--speaker-state <state-id>`。
|
|
@@ -79,7 +79,7 @@ Action。使用一个 `do` 事务:
|
|
|
79
79
|
|
|
80
80
|
```text
|
|
81
81
|
replace <first-action-id> --from "第一段" --to "第一段第二段"
|
|
82
|
-
|
|
82
|
+
timestamp <first-action-id> --set 00:42.533
|
|
83
83
|
delete <second-action-id>
|
|
84
84
|
```
|
|
85
85
|
|