@lingjingai/scriptctl 0.61.0 → 0.61.1

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.
@@ -1,19 +1,14 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
- import { fileURLToPath } from "node:url";
4
3
  import { CliError, EXIT_INPUT, EXIT_OK, EXIT_USAGE } from "../common.js";
4
+ import { packageRoot, packageVersion } from "../package-root.js";
5
5
  const VERSION_RE = /^\d+\.\d+\.\d+$/;
6
6
  const UNRELEASED = "unreleased";
7
- function repoRoot() {
8
- return path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
9
- }
10
7
  function changesDir() {
11
- return path.join(repoRoot(), "changes");
8
+ return path.join(packageRoot(), "changes");
12
9
  }
13
10
  function readPackageVersion() {
14
- const pkgPath = path.join(repoRoot(), "package.json");
15
- const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
16
- return pkg.version ?? "0.0.0";
11
+ return packageVersion();
17
12
  }
18
13
  function versionParts(version) {
19
14
  if (!VERSION_RE.test(version)) {
@@ -1 +1 @@
1
- {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/usecases/changelog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/usecases/changelog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type CommandOutput } from "../../common.js";
2
+ import { type Dict } from "../../domain/script/shared.js";
3
+ export declare function commandReview(opts: Dict): Promise<[CommandOutput, number]>;
@@ -0,0 +1,185 @@
1
+ // `scriptctl review`: one process reviews a whole script against its original
2
+ // video. The agent itself lives in @lingjingai/review-agent and is loaded by a
3
+ // dynamic import so that every other command keeps its ~0.09s start-up.
4
+ //
5
+ // Progress is NDJSON on stdout, one line per episode as it finishes, because
6
+ // the caller persists per-episode results and must not lose them if the run
7
+ // is interrupted.
8
+ import * as fs from "node:fs";
9
+ import * as path from "node:path";
10
+ import { fileURLToPath } from "node:url";
11
+ import { CliError, EXIT_INPUT, EXIT_OK, EXIT_RUNTIME } from "../../common.js";
12
+ import { scriptJsonPath } from "../../common.js";
13
+ import { loadLlmConfig } from "../../llm/config.js";
14
+ import { strOf } from "../../domain/script/shared.js";
15
+ const DEFAULT_PROFILE = "review-agent";
16
+ function resolveProfile(llm, override) {
17
+ const name = override || DEFAULT_PROFILE;
18
+ const model = llm.models[name];
19
+ if (!model) {
20
+ throw new CliError(`LLM profile "${name}" is not defined.`, {
21
+ exitCode: EXIT_INPUT,
22
+ errorCode: "REVIEW_PROFILE_UNKNOWN",
23
+ hint: `Define it under models, or pick one of: ${Object.keys(llm.models).join(", ")}.`,
24
+ data: { expected: ["a defined models entry"], actual: [name] },
25
+ });
26
+ }
27
+ const provider = llm.providers[model.provider];
28
+ if (!provider) {
29
+ throw new CliError(`Provider "${model.provider}" is not defined.`, {
30
+ exitCode: EXIT_INPUT,
31
+ errorCode: "REVIEW_PROVIDER_UNKNOWN",
32
+ hint: `Available providers: ${Object.keys(llm.providers).join(", ")}.`,
33
+ data: { expected: ["a defined providers entry"], actual: [model.provider] },
34
+ });
35
+ }
36
+ const apiKey = (process.env[provider.apiKeyEnv] ?? "").trim();
37
+ if (!apiKey) {
38
+ throw new CliError(`${provider.apiKeyEnv} is not set.`, {
39
+ exitCode: EXIT_INPUT,
40
+ errorCode: "REVIEW_API_KEY_MISSING",
41
+ hint: `Export ${provider.apiKeyEnv} for provider ${model.provider}.`,
42
+ data: { expected: [provider.apiKeyEnv], actual: ["<empty>"] },
43
+ });
44
+ }
45
+ return { provider: model.provider, model: model.model, baseUrl: provider.baseUrl, apiKey };
46
+ }
47
+ /**
48
+ * The agent bundle sits next to this file in dist. It is loaded by path rather
49
+ * than by package name so that a published scriptctl needs no resolvable
50
+ * `@lingjingai/review-agent` — the bundle IS the package.
51
+ */
52
+ async function loadAgent() {
53
+ const here = path.dirname(fileURLToPath(import.meta.url));
54
+ // In the shipped bundle this module is dist/bin.js, so the sibling is
55
+ // dist/review-agent.js; under tsc output it is dist/usecases/script/, so the
56
+ // package name resolves through node_modules instead.
57
+ const bundled = path.join(here, "review-agent.js");
58
+ const specifier = fs.existsSync(bundled) ? bundled : "@lingjingai/review-agent";
59
+ try {
60
+ return await import(specifier);
61
+ }
62
+ catch (error) {
63
+ throw new CliError("The review agent is not installed.", {
64
+ exitCode: EXIT_RUNTIME,
65
+ errorCode: "REVIEW_AGENT_MISSING",
66
+ hint: "Reinstall scriptctl without --omit=optional, or install @mastra/core and @ai-sdk/google.",
67
+ data: { expected: ["@lingjingai/review-agent"], actual: [String(error.message).slice(0, 200)] },
68
+ });
69
+ }
70
+ }
71
+ function episodeList(raw) {
72
+ const trimmed = raw.trim();
73
+ if (!trimmed)
74
+ return undefined;
75
+ const numbers = trimmed.split(",").map((part) => Number(part.trim()));
76
+ if (numbers.some((value) => !Number.isInteger(value) || value < 1)) {
77
+ throw new CliError("--episodes takes a comma-separated list of 1-based episode numbers.", {
78
+ exitCode: EXIT_INPUT,
79
+ errorCode: "REVIEW_EPISODES_INVALID",
80
+ hint: "For example: --episodes 1,2,5",
81
+ data: { expected: ["1-based episode numbers"], actual: [trimmed] },
82
+ });
83
+ }
84
+ return numbers;
85
+ }
86
+ function positive(opts, key, fallback) {
87
+ const raw = opts[key];
88
+ if (raw === undefined)
89
+ return fallback;
90
+ const value = Number(raw);
91
+ if (!Number.isFinite(value) || value <= 0) {
92
+ throw new CliError(`--${key.replace(/_/g, "-")} must be a positive number.`, {
93
+ exitCode: EXIT_INPUT,
94
+ errorCode: "REVIEW_OPTION_INVALID",
95
+ hint: `Pass a positive number for --${key.replace(/_/g, "-")}.`,
96
+ data: { expected: ["a positive number"], actual: [String(raw)] },
97
+ });
98
+ }
99
+ return value;
100
+ }
101
+ export async function commandReview(opts) {
102
+ const llm = loadLlmConfig(strOf(opts["llm_config"]).trim() || undefined);
103
+ const override = strOf(opts["model"]).trim();
104
+ const profile = resolveProfile(llm, override);
105
+ // --check answers "can this run at all" without spending a token: it is what
106
+ // replaces `codex login status` in the caller's preflight.
107
+ if (opts["check"]) {
108
+ const agent = await loadAgent();
109
+ const ok = typeof agent.reviewScript === "function";
110
+ return [{
111
+ text: ok
112
+ ? `ready: ${profile.provider}/${profile.model}`
113
+ : "the review agent bundle is present but exports no reviewScript",
114
+ data: {
115
+ ready: ok,
116
+ provider: profile.provider,
117
+ model: profile.model,
118
+ llm_config: llm.sourcePath ?? "builtin",
119
+ },
120
+ }, ok ? EXIT_OK : EXIT_RUNTIME];
121
+ }
122
+ const scriptPath = scriptJsonPath(opts);
123
+ if (!fs.existsSync(scriptPath)) {
124
+ throw new CliError("Local script file not found.", {
125
+ exitCode: EXIT_INPUT,
126
+ errorCode: "SCRIPT_NOT_FOUND",
127
+ hint: "Run `scriptctl checkout`, `scriptctl create`, or pass --script-path to an existing script.",
128
+ data: { expected: ["existing local script JSON"], actual: [scriptPath] },
129
+ });
130
+ }
131
+ const videos = (Array.isArray(opts["video"]) ? opts["video"] : [])
132
+ .map((value) => value.trim())
133
+ .filter((value) => value.length > 0);
134
+ const missing = videos.filter((value) => !fs.existsSync(value));
135
+ if (missing.length > 0) {
136
+ throw new CliError("A --video path does not exist.", {
137
+ exitCode: EXIT_INPUT,
138
+ errorCode: "REVIEW_SOURCE_NOT_FOUND",
139
+ hint: "Pass --video once per episode, in episode order.",
140
+ data: { expected: ["existing video files"], actual: missing.slice(0, 5) },
141
+ });
142
+ }
143
+ const source = strOf(opts["source_path"]).trim();
144
+ if (source && !fs.existsSync(source)) {
145
+ throw new CliError("Video source not found.", {
146
+ exitCode: EXIT_INPUT,
147
+ errorCode: "REVIEW_SOURCE_NOT_FOUND",
148
+ hint: "Pass -s to a video file or a directory of per-episode videos, or omit it for a script-only review.",
149
+ data: { expected: ["existing video file or directory"], actual: [source] },
150
+ });
151
+ }
152
+ const { reviewScript } = await loadAgent();
153
+ const write = (event) => process.stdout.write(JSON.stringify(event) + "\n");
154
+ try {
155
+ await reviewScript({
156
+ scriptPath,
157
+ ...(source ? { source } : {}),
158
+ ...(videos.length > 0 ? { videos } : {}),
159
+ ...(episodeList(strOf(opts["episodes"])) ? { episodes: episodeList(strOf(opts["episodes"])) } : {}),
160
+ concurrency: positive(opts, "concurrency", 5),
161
+ converge: opts["converge"] !== false,
162
+ apiKey: profile.apiKey,
163
+ model: profile.model,
164
+ mediaModel: profile.model,
165
+ ...(profile.baseUrl ? { baseUrl: profile.baseUrl } : {}),
166
+ maxSteps: positive(opts, "max_steps", 60),
167
+ mediaBudget: positive(opts, "media_budget", 1),
168
+ episodeTimeoutMs: positive(opts, "episode_timeout_ms", 8 * 60_000),
169
+ onEvent: write,
170
+ });
171
+ }
172
+ catch (error) {
173
+ if (error instanceof CliError)
174
+ throw error;
175
+ throw new CliError("Review failed.", {
176
+ exitCode: EXIT_RUNTIME,
177
+ errorCode: "REVIEW_FAILED",
178
+ hint: "Read the last NDJSON lines on stdout for the episode that failed.",
179
+ data: { expected: ["a completed review run"], actual: [String(error.message).slice(0, 300)] },
180
+ });
181
+ }
182
+ // Every result already left as NDJSON; the envelope would only repeat it.
183
+ return [{ text: "", data: {} }, EXIT_OK];
184
+ }
185
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/usecases/script/review.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,wEAAwE;AACxE,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,kBAAkB;AAClB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAsB,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAA0B,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAa,KAAK,EAAE,MAAM,+BAA+B,CAAC;AASjE,MAAM,eAAe,GAAG,cAAc,CAAC;AAEvC,SAAS,cAAc,CAAC,GAAsB,EAAE,QAAgB;IAC9D,MAAM,IAAI,GAAG,QAAQ,IAAI,eAAe,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,gBAAgB,IAAI,mBAAmB,EAAE;YAC1D,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,wBAAwB;YACnC,IAAI,EAAE,2CAA2C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACtF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;SAC/D,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,QAAQ,mBAAmB,EAAE;YACjE,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,yBAAyB;YACpC,IAAI,EAAE,wBAAwB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACtE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;SAC5E,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,GAAG,QAAQ,CAAC,SAAS,cAAc,EAAE;YACtD,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,wBAAwB;YACnC,IAAI,EAAE,UAAU,QAAQ,CAAC,SAAS,iBAAiB,KAAK,CAAC,QAAQ,GAAG;YACpE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;SAC9D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7F,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS;IACtB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,sEAAsE;IACtE,6EAA6E;IAC7E,sDAAsD;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;IAChF,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,SAAS,CAA8C,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,oCAAoC,EAAE;YACvD,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,sBAAsB;YACjC,IAAI,EAAE,0FAA0F;YAChG,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;SAC3G,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,QAAQ,CAAC,qEAAqE,EAAE;YACxF,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,yBAAyB;YACpC,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;SACnE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU,EAAE,GAAW,EAAE,QAAgB;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,6BAA6B,EAAE;YAC3E,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,uBAAuB;YAClC,IAAI,EAAE,gCAAgC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG;YAC/D,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;SACjE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAU;IAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE9C,6EAA6E;IAC7E,2DAA2D;IAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,YAAY,KAAK,UAAU,CAAC;QACpD,OAAO,CAAC;gBACN,IAAI,EAAE,EAAE;oBACN,CAAC,CAAC,UAAU,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE;oBAC/C,CAAC,CAAC,gEAAgE;gBACpE,IAAI,EAAE;oBACJ,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;iBACxC;aACF,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,QAAQ,CAAC,8BAA8B,EAAE;YACjD,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,4FAA4F;YAClG,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;SACzE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAa,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3E,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,QAAQ,CAAC,gCAAgC,EAAE;YACnD,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,yBAAyB;YACpC,IAAI,EAAE,kDAAkD;YACxD,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;SAC1E,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE;YAC5C,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,yBAAyB;YACpC,IAAI,EAAE,oGAAoG;YAC1G,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,kCAAkC,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE;SAC3E,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAErF,IAAI,CAAC;QACH,MAAM,YAAY,CAAC;YACjB,UAAU;YACV,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpG,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,KAAK;YACzB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;YACzC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9C,gBAAgB,EAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC,GAAG,MAAM,CAAC;YAClE,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ;YAAE,MAAM,KAAK,CAAC;QAC3C,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE;YACnC,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,eAAe;YAC1B,IAAI,EAAE,mEAAmE;YACzE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;SACzG,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,23 +1,11 @@
1
1
  import { spawn } from "node:child_process";
2
- import * as fs from "node:fs";
3
- import * as path from "node:path";
4
- import { fileURLToPath } from "node:url";
5
2
  import { CliError, EXIT_OK, EXIT_RUNTIME } from "../common.js";
3
+ import { packageVersion } from "../package-root.js";
6
4
  const UPDATE_PACKAGE = "@lingjingai/scriptctl";
7
5
  const UPDATE_LATEST_SPEC = `${UPDATE_PACKAGE}@latest`;
8
6
  const UPDATE_COMMAND = "npm";
9
- function packageRoot() {
10
- return path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
11
- }
12
7
  function readInstalledVersion() {
13
- const pkg = JSON.parse(fs.readFileSync(path.join(packageRoot(), "package.json"), "utf-8"));
14
- if (typeof pkg !== "object"
15
- || pkg === null
16
- || !("version" in pkg)
17
- || typeof pkg.version !== "string") {
18
- throw new Error("scriptctl package.json does not contain a string version");
19
- }
20
- return pkg.version;
8
+ return packageVersion();
21
9
  }
22
10
  export function patchPackageSpec(version) {
23
11
  const match = /^(\d+)\.(\d+)\.\d+/.exec(version);
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/usecases/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/usecases/update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lingjingai/scriptctl",
3
- "version": "0.61.0",
3
+ "version": "0.61.1",
4
4
  "description": "剧本阶段统一 CLI:素材转 Script v4,并兼容 Script v3 的本地写作、精修、校验和发布。",
5
5
  "type": "module",
6
6
  "bin": {
@@ -19,7 +19,7 @@
19
19
  "node": ">=20"
20
20
  },
21
21
  "scripts": {
22
- "build": "pnpm --filter @lingjingai/screenplay build && tsc",
22
+ "build": "pnpm --filter @lingjingai/screenplay build && pnpm --filter @lingjingai/review-agent build && tsc && node scripts/bundle.mjs",
23
23
  "clean": "rm -rf dist packages/screenplay/dist",
24
24
  "postinstall": "node scripts/install-skill.mjs",
25
25
  "install-skill": "node scripts/install-skill.mjs",
@@ -35,7 +35,6 @@
35
35
  "dependencies": {
36
36
  "@anthropic-ai/sdk": "^0.111.0",
37
37
  "@google/genai": "^2.11.0",
38
- "@lingjingai/screenplay": "workspace:*",
39
38
  "commander": "^12.1.0",
40
39
  "fast-json-patch": "^3.1.1",
41
40
  "fast-xml-parser": "^5.9.0",
@@ -47,9 +46,12 @@
47
46
  "yaml": "^2.8.1"
48
47
  },
49
48
  "devDependencies": {
49
+ "@lingjingai/review-agent": "workspace:*",
50
+ "@lingjingai/screenplay": "workspace:*",
50
51
  "@types/node": "^20.14.0",
51
52
  "@types/proper-lockfile": "^4.1.4",
52
53
  "c8": "^11.0.0",
54
+ "esbuild": "^0.28.2",
53
55
  "typescript": "^5.5.0",
54
56
  "vitest": "^2.0.0"
55
57
  },
@@ -62,5 +64,10 @@
62
64
  "license": "MIT",
63
65
  "publishConfig": {
64
66
  "access": "public"
67
+ },
68
+ "optionalDependencies": {
69
+ "@ai-sdk/google": "^4.0.63",
70
+ "@mastra/core": "^1.64.0",
71
+ "zod": "^4.5.4"
65
72
  }
66
73
  }
@@ -2,8 +2,8 @@
2
2
  name: scriptctl
3
3
  description: "剧本 script.json 的本地阅读、定位、原子修改、整场整集回写、素材 ingest 与 revision publish CLI。处理 Script v3/v4、剧本资产与 state、Action、场景引用或视频证据核对时使用。"
4
4
  metadata:
5
- version: "0.30.0"
6
- scriptctl_version: "0.61.0"
5
+ version: "0.31.0"
6
+ scriptctl_version: "0.61.1"
7
7
  author: "official"
8
8
  ---
9
9
 
@@ -186,6 +186,7 @@ scriptctl write + -f /tmp/ep51.txt -p "$S" # `+` 追加新集
186
186
  scriptctl ingest -s <素材> -w <workspace> # 素材转 Script v4
187
187
  scriptctl synopsis generate -p "$S" --apply # LLM 补全剧与分集梗概
188
188
  scriptctl audit-assets -p "$S" # LLM 全剧资产一致性审计
189
+ scriptctl review -p "$S" -s <视频目录> # 派发 agent 逐集审核并修正
189
190
  scriptctl create --title "…" -p "$S" # 从零建空剧本
190
191
  scriptctl view -w <workspace> # 渲染或起审阅页
191
192
  scriptctl checkout / status / publish # 远端工作副本
@@ -193,6 +194,14 @@ scriptctl checkout / status / publish # 远端工作副本
193
194
 
194
195
  `ingest` 见 [references/ingest-workflow.md](references/ingest-workflow.md)。
195
196
 
197
+ `review` 一个进程审完整本剧:剧本只解析一次进内存,按集扇出,最后单线程做全剧收敛。
198
+ 给 `-s` 就按原视频拉片核对(agent 自己切片段送模型看画面和听原声),不给就纯剧本审核,
199
+ 媒体工具不注册。每集完成一行 NDJSON 到 stdout(`{"type":"episode",…}`,末行
200
+ `{"type":"done",…}`),所以调用方可以边跑边落盘,中途挂掉不丢已完成的集。
201
+ `--episodes 3,7` 续跑指定集,`--concurrency` 控同时在飞的集数,`--check` 只验模型与
202
+ agent 是否就绪。**Agent 不要自己调 `review` 去审自己正在改的剧本**——它会派发另一个
203
+ agent 并直接改文件。
204
+
196
205
  ## 版本边界
197
206
 
198
207
  读取 `script.json.version`:`4` 是新建与 ingest 的默认方言,`3` 是线上既有项目的