@lingjingai/scriptctl 0.10.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @lingjingai/scriptctl
2
2
 
3
- 剧本阶段统一 CLI:把外部素材(txt/md/docx/xlsx/pdf/json)导入入库为结构化剧本(`import init`/`push`),以及对当前最终剧本做读取、校验、原子编辑与批量 patch 精修。
3
+ 剧本阶段统一 CLI:把外部素材(txt/md/docx/xlsx/pdf/json)直转为结构化 `script.json`,以及对当前最终剧本做读取、校验、原子编辑与批量 patch 精修。
4
4
 
5
5
  ## 安装
6
6
 
@@ -15,11 +15,11 @@ E2B agent-sandbox 镜像在 `template_bundle.py` 的 `NPM_GLOBAL_PACKAGES` 中
15
15
  ```bash
16
16
  scriptctl --help # 顶层帮助
17
17
  scriptctl doctor # 环境自检
18
- scriptctl import init --source-path <file> # 素材 → script.initial.json
19
- scriptctl import push # 落库到 DB(校验为建议,总是发布)
20
- scriptctl validate # 校验 DB 剧本
21
- scriptctl issues --severity error # 列结构问题
22
- scriptctl patch <patch.json> # 批量原子 patch(≥3 ops)
18
+ scriptctl direct init --source-path <file>
19
+ scriptctl direct inspect --target review --episode 1,15,30
20
+ scriptctl direct validate
21
+ scriptctl direct export
22
+ scriptctl script patch --patch <patch.json>
23
23
  ```
24
24
 
25
25
  详细子命令、参数与退出码以 `scriptctl <cmd> --help` 为准,agent 行为约定见
package/dist/cli.js CHANGED
@@ -6,10 +6,10 @@ import { CliError, EXIT_OK, EXIT_USAGE } from "./common.js";
6
6
  import { getHelp } from "./help-text.js";
7
7
  import { loadLocalEnv } from "./infra/env.js";
8
8
  import { emit, emitError } from "./output.js";
9
- import { commandInit, } from "./usecases/direct.js";
9
+ import { commandInit, commandInspect, commandParse, commandValidate, } from "./usecases/direct.js";
10
10
  import { commandDoctor } from "./usecases/doctor.js";
11
11
  import { commandEpisodeBatch, commandEpisodeDraft, commandEpisodeInit, commandEpisodeMerge, commandEpisodePush, commandEpisodeSpec, commandEpisodeWorkspace, } from "./usecases/episode.js";
12
- import { commandActions, commandActor, commandActors, commandAddSpeaker, commandAlias, commandAssets, commandContext, commandDelete, commandDescribe, commandDialogue, commandEpisodes, commandInsert, commandIssues, commandLocations, commandMerge, commandMove, commandOverlap, commandProps, commandPush, commandRefs, commandRename, commandReplace, commandRole, commandScenes, commandScriptPatch, commandScriptValidate, commandSpeakers, commandSplit, commandStateAdd, commandStateChange, commandStateDelete, commandStateRename, commandSummary, commandTransition, commandType, commandWorldview, } from "./usecases/script.js";
12
+ import { commandActions, commandActor, commandActors, commandAddSpeaker, commandAlias, commandAssets, commandContext, commandDelete, commandDescribe, commandDialogue, commandEpisodes, commandExport, commandInsert, commandIssues, commandLocations, commandMerge, commandMove, commandOverlap, commandProps, commandRefs, commandRename, commandReplace, commandRole, commandScenes, commandScriptPatch, commandScriptValidate, commandSpeakers, commandSplit, commandStateAdd, commandStateChange, commandStateDelete, commandStateRename, commandSummary, commandTransition, commandType, commandWorldview, } from "./usecases/script.js";
13
13
  function readPackageVersion() {
14
14
  try {
15
15
  const here = fileURLToPath(import.meta.url);
@@ -24,8 +24,9 @@ function readPackageVersion() {
24
24
  const KNOWN_COMMANDS = new Set([
25
25
  "doctor",
26
26
  // Workflow groups
27
- "import", "import.init", "import.push",
27
+ "direct", "direct.init", "direct.validate", "direct.inspect", "direct.export",
28
28
  "write", "write.init", "write.draft", "write.batch", "write.workspace", "write.merge", "write.push", "write.spec",
29
+ "parse",
29
30
  // Query (plural-noun)
30
31
  "summary", "episodes", "scenes", "actions", "actors", "locations", "props",
31
32
  "assets", "speakers", "issues", "refs", "validate",
@@ -44,17 +45,17 @@ const KNOWN_COMMANDS = new Set([
44
45
  "patch",
45
46
  ]);
46
47
  // Groups are command nodes that exist only to host subcommands. Extra non-flag
47
- // tokens after a group path indicate an unknown subcommand (e.g. `import nope` → error).
48
+ // tokens after a group path indicate an unknown subcommand (e.g. `direct nope` → error).
48
49
  // Leaves are real commands that can accept positional arguments.
49
50
  const GROUP_COMMANDS = new Set([
50
- "import",
51
+ "direct",
51
52
  "write",
52
53
  ]);
53
54
  function extractLeadingPath(args) {
54
55
  // Collect leading non-flag tokens, then take only as many as form the longest known
55
56
  // command prefix. Trailing tokens are treated as either:
56
57
  // - positional arguments (when the matched node is a leaf, e.g. `episode draft 1`)
57
- // - unknown subcommands (when the matched node is a group, e.g. `import nope`)
58
+ // - unknown subcommands (when the matched node is a group, e.g. `direct nope`)
58
59
  const allNonFlag = [];
59
60
  for (const tok of args) {
60
61
  if (tok.startsWith("-"))
@@ -126,6 +127,7 @@ function showGroupHelp(commandPathParts, state) {
126
127
  const appendStr = (value, prev) => [...prev, value];
127
128
  function withScriptOpts(cmd) {
128
129
  return cmd
130
+ .option("--script-path <path>")
129
131
  .option("--workspace-path <path>", "", "workspace")
130
132
  .option("--project-group-no <no>")
131
133
  .option("--request-id <id>");
@@ -145,9 +147,9 @@ function buildProgram(state) {
145
147
  formatHelp: (cmd) => getHelp(commandPath(cmd)) ?? getHelp([]) ?? "",
146
148
  });
147
149
  program.command("doctor").action(dispatch((o) => commandDoctor(o), state));
148
- // ============================== import (was: direct) ==============================
149
- const importCmd = program.command("import").action(showGroupHelp(["import"], state));
150
- importCmd.command("init")
150
+ // ============================== direct ==============================
151
+ const direct = program.command("direct").action(showGroupHelp(["direct"], state));
152
+ direct.command("init")
151
153
  .requiredOption("--source-path <path>")
152
154
  .option("--workspace-path <path>", "", "workspace")
153
155
  .option("--provider <name>", "", "anthropic")
@@ -158,11 +160,23 @@ function buildProgram(state) {
158
160
  .option("--batch-max-chars <n>", "", "1800")
159
161
  .option("--batch-min-lines <n>", "", "12")
160
162
  .action(dispatch(commandInit, state));
161
- importCmd.command("push")
163
+ direct.command("validate")
162
164
  .option("--workspace-path <path>", "", "workspace")
165
+ .option("--script-path <path>")
166
+ .action(dispatch((o) => commandValidate(o), state));
167
+ direct.command("inspect")
168
+ .requiredOption("--target <target>")
169
+ .option("--workspace-path <path>", "", "workspace")
170
+ .option("--id <id>")
171
+ .option("--episode <e>")
172
+ .action(dispatch((o) => commandInspect(o), state));
173
+ direct.command("export")
174
+ .option("--workspace-path <path>", "", "workspace")
175
+ .option("--output-path <path>", "", "output")
163
176
  .option("--project-group-no <no>")
164
177
  .option("--request-id <id>")
165
- .action(dispatch(commandPush, state));
178
+ .option("--force")
179
+ .action(dispatch(commandExport, state));
166
180
  // ============================== write (was: episode) ==============================
167
181
  const write = program.command("write").action(showGroupHelp(["write"], state));
168
182
  write.command("init")
@@ -208,6 +222,15 @@ function buildProgram(state) {
208
222
  .action(dispatch((o) => commandEpisodePush(o), state));
209
223
  write.command("spec")
210
224
  .action(dispatch((o) => commandEpisodeSpec(o), state));
225
+ // ============================== parse (direct v2: subagent-authored md) ==============================
226
+ program.command("parse [dir]")
227
+ .option("--workspace-path <path>", "", "workspace")
228
+ .option("--md-dir <path>")
229
+ .option("--assets <path>")
230
+ .option("--episodes-dir <path>")
231
+ .option("--title <title>")
232
+ .option("--spec")
233
+ .action(dispatch((o) => commandParse(o), state));
211
234
  // ============================== query (plural-noun) ==============================
212
235
  withScriptOpts(program.command("summary"))
213
236
  .action(dispatch(commandSummary, state));
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAyB,CAAC;QAClF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AASD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,QAAQ;IACR,kBAAkB;IAClB,QAAQ,EAAE,aAAa,EAAE,aAAa;IACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY;IACjH,sBAAsB;IACtB,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO;IAC1E,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU;IAClD,eAAe;IACf,SAAS,EAAE,MAAM,EAAE,OAAO;IAC1B,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAC5C,+BAA+B;IAC/B,cAAc,EAAE,YAAY,EAAE,SAAS;IACvC,iBAAiB;IACjB,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW;IAClD,mBAAmB;IACnB,WAAW,EAAE,cAAc,EAAE,cAAc;IAC3C,6BAA6B;IAC7B,UAAU,EAAE,SAAS,EAAE,aAAa;IACpC,OAAO;CACR,CAAC,CAAC;AAEH,+EAA+E;AAC/E,yFAAyF;AACzF,iEAAiE;AACjE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,QAAQ;IACR,OAAO;CACR,CAAC,CAAC;AAEH,SAAS,kBAAkB,CAAC,IAAc;IACxC,oFAAoF;IACpF,yDAAyD;IACzD,qFAAqF;IACrF,iFAAiF;IACjF,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM;QAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;YAAE,MAAM;IACpC,CAAC;IACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,wEAAwE;QACxE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5C,8EAA8E;QAC9E,0DAA0D;QAC1D,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAc;IACxC,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QAC3C,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;IACnE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,GAA+B,GAAG,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,WAAW;YAAE,MAAM;QACzC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,aAAa,CAAC,IAA6B;IAClD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,OAAgB,EAAE,KAAe;IACjD,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAa,CAAC;QACjF,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC;QAC3D,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,gBAA0B,EAAE,KAAe;IAChE,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,IAAc,EAAY,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;AAEhF,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,GAAG;SACP,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,yBAAyB,CAAC;SACjC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,KAAe;IACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;SACrC,YAAY,EAAE;SACd,oBAAoB,CAAC,KAAK,CAAC;SAC3B,kBAAkB,CAAC,KAAK,CAAC;SACzB,eAAe,CAAC;QACf,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5C,QAAQ,EAAE,GAAG,EAAE;YACb,yCAAyC;QAC3C,CAAC;KACF,CAAC;SACD,aAAa,CAAC;QACb,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;KACpE,CAAC,CAAC;IAEL,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3E,qFAAqF;IACrF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAErF,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;SACtB,cAAc,CAAC,sBAAsB,CAAC;SACtC,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,mBAAmB,EAAE,EAAE,EAAE,WAAW,CAAC;SAC5C,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,mBAAmB,EAAE,EAAE,EAAE,IAAI,CAAC;SACrC,MAAM,CAAC,qBAAqB,EAAE,EAAE,EAAE,SAAS,CAAC;SAC5C,MAAM,CAAC,0BAA0B,EAAE,EAAE,EAAE,IAAI,CAAC;SAC5C,MAAM,CAAC,uBAAuB,EAAE,EAAE,EAAE,MAAM,CAAC;SAC3C,MAAM,CAAC,uBAAuB,EAAE,EAAE,EAAE,IAAI,CAAC;SACzC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;SACtB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,yBAAyB,CAAC;SACjC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,qFAAqF;IACrF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/E,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzD,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;SACvB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,0BAA0B,CAAC;SAClC,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAc,CAAC;SACrD,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,UAAU,CAAC;SAClB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1D,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;SACnB,cAAc,CAAC,eAAe,CAAC;SAC/B,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,0BAA0B,CAAC;SAClC,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAc,CAAC;SACrD,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1D,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;SACvB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9D,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;SACnB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,oBAAoB,CAAC;SAC5B,MAAM,CAAC,YAAY,CAAC;SACpB,MAAM,CAAC,UAAU,CAAC;SAClB,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1D,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,yBAAyB,CAAC;SACjC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzD,oFAAoF;IAEpF,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACvC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACxC,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACtC,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,qBAAqB,CAAC;SAC7B,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACvC,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,cAAc,CAAC;SACtB,MAAM,CAAC,gBAAgB,CAAC;SACxB,MAAM,CAAC,cAAc,CAAC;SACtB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACtC,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACzC,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE7C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACrC,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACtC,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACxC,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACtC,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC3C,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACxC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;IAElD,2EAA2E;IAE3E,sBAAsB;IACtB,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC5C,cAAc,CAAC,eAAe,CAAC;SAC/B,MAAM,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC;SAC7B,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;SAChD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;SACrD,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzC,iEAAiE;IACjE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SAC7C,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,YAAY,CAAC;SACpB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,gBAAgB,CAAC;SACxB,MAAM,CAAC,cAAc,CAAC;SACtB,MAAM,CAAC,gBAAgB,CAAC;SACxB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SAC7C,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC,sBAAsB,CAAC;SAC9B,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;SAChD,MAAM,CAAC,YAAY,CAAC;SACpB,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;SAC9C,cAAc,CAAC,YAAY,CAAC;SAC5B,MAAM,CAAC,qBAAqB,CAAC;SAC7B,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC3C,cAAc,CAAC,cAAc,CAAC;SAC9B,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzC,2CAA2C;IAC3C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;SAC1D,MAAM,CAAC,cAAc,CAAC;SACtB,MAAM,CAAC,gBAAgB,CAAC;SACxB,MAAM,CAAC,oBAAoB,EAAE,EAAE,EAAE,OAAO,CAAC;SACzC,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;SACxD,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;SACrD,MAAM,CAAC,cAAc,CAAC;SACtB,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,UAAU,CAAC;SAClB,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,6BAA6B;IAC7B,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;SACtD,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;SACxD,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;SAC9C,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAc,CAAC;SACtD,MAAM,CAAC,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAc,CAAC;SACzD,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;SACpD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;SACjD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE7C,+BAA+B;IAC/B,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;SACzD,MAAM,CAAC,sBAAsB,EAAE,EAAE,EAAE,EAAE,CAAC;SACtC,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;SAC5D,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;SACrD,cAAc,CAAC,uBAAuB,CAAC;SACvC,MAAM,CAAC,oBAAoB,CAAC;SAC5B,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,iCAAiC;IACjC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SAC7C,cAAc,CAAC,kBAAkB,CAAC;SAClC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC5C,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAc,CAAC;SACtD,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC3C,cAAc,CAAC,eAAe,CAAC;SAC/B,cAAc,CAAC,eAAe,CAAC;SAC/B,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,CAAC;SACrC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9C,4BAA4B;IAC5B,uEAAuE;IACvE,wEAAwE;IACxE,yBAAyB;IACzB,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC5C,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,IAAI,GAAI,CAAC,CAAC,OAAO,CAAc,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEb,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAwB,IAAI;IACrD,YAAY,EAAE,CAAC;IACf,IAAI,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,KAAK,GAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACjF,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAE1C,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,SAAS,CACd,IAAI,QAAQ,CAAC,8BAA8B,EAAE,kBAAkB,EAAE;YAC/D,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,yBAAyB,CAAC;YACrC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;YACvC,SAAS,EAAE,CAAC,uBAAuB,CAAC;SACrC,CAAC,EACF,KAAK,CAAC,QAAQ,CACf,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,SAAS,CACd,IAAI,QAAQ,CAAC,8BAA8B,EAAE,kBAAkB,EAAE;YAC/D,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,yBAAyB,CAAC;YACrC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,SAAS,EAAE,CAAC,uBAAuB,CAAC;SACrC,CAAC,EACF,KAAK,CAAC,QAAQ,CACf,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,IACE,IAAI,KAAK,gBAAgB;gBACzB,IAAI,KAAK,yBAAyB;gBAClC,IAAI,KAAK,mBAAmB,EAC5B,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,oBAAoB,CAAC;YACpD,OAAO,SAAS,CACd,IAAI,QAAQ,CAAC,gCAAgC,EAAE,oBAAoB,EAAE;gBACnE,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,CAAC,uBAAuB,CAAC;gBACnC,QAAQ,EAAE,CAAC,OAAO,CAAC;gBACnB,SAAS,EAAE,CAAC,uBAAuB,CAAC;aACrC,CAAC,EACF,KAAK,CAAC,QAAQ,CACf,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,YAAY,QAAQ;YAAE,OAAO,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,GAAY,CAAC;QACvB,OAAO,SAAS,CACd,IAAI,QAAQ,CAAC,kCAAkC,EAAE,mBAAmB,EAAE;YACpE,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,CAAC,8BAA8B,CAAC;YAC1C,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC;YAC9B,SAAS,EAAE,CAAC,yDAAyD,CAAC;SACvE,CAAC,EACF,KAAK,CAAC,QAAQ,CACf,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/common.d.ts CHANGED
@@ -27,7 +27,9 @@ export declare const DEFAULT_BATCH_MAX_CHARS = 1800;
27
27
  export declare const DEFAULT_BATCH_MIN_LINES = 12;
28
28
  export declare const DEFAULT_BATCH_MODE = "episode";
29
29
  export declare const DIRECT_REL: string;
30
+ export declare const SCRIPT_REL: string;
30
31
  export declare const SUPPORTED_EXTS = ".txt/.md/.docx/.xlsx/.pdf/.json";
32
+ export declare const REVIEW_TARGETS: readonly ["episode", "asset", "issue"];
31
33
  export declare const DIRECT_CONTRACT_VERSION = 3;
32
34
  export declare const SCRIPT_SCHEMA_VERSION = 2;
33
35
  export declare const WORLDVIEW_VALUES: string[];
@@ -40,6 +42,7 @@ export declare const EFFECTIVE_FROM_VALUES: Set<string>;
40
42
  export declare const ACTOR_REUSE_SCENE_LIMIT = 1;
41
43
  export declare const PROP_REUSE_SCENE_LIMIT = 1;
42
44
  export declare const MARKDOWN_BATCH_PROMPT_SPEC: string;
45
+ export declare const PARSE_MD_SPEC: string;
43
46
  export type JsonSchema = Record<string, unknown>;
44
47
  export declare const METADATA_EXTRACTION_SCHEMA: JsonSchema;
45
48
  export declare const ASSET_CURATION_SCHEMA: JsonSchema;
@@ -89,6 +92,7 @@ export interface RunState {
89
92
  model?: string;
90
93
  updated_at?: string;
91
94
  review_status?: string;
95
+ review_missing?: string[];
92
96
  [key: string]: unknown;
93
97
  }
94
98
  export interface Script {
@@ -123,6 +127,7 @@ export declare class CliError extends Error {
123
127
  }
124
128
  export declare function workspaceLayout(workspace: string): WorkspaceLayout;
125
129
  export declare function directDir(workspace: string): string;
130
+ export declare function scriptJsonPath(opts: Record<string, unknown>): string;
126
131
  export declare function fmtId(prefix: string, n: number): string;
127
132
  export declare function readJson<T = unknown>(p: string): T;
128
133
  export declare function writeJson(p: string, data: unknown): void;
package/dist/common.js CHANGED
@@ -32,7 +32,9 @@ export const DEFAULT_BATCH_MAX_CHARS = 1800;
32
32
  export const DEFAULT_BATCH_MIN_LINES = 12;
33
33
  export const DEFAULT_BATCH_MODE = "episode";
34
34
  export const DIRECT_REL = path.join("draft", "scriptctl", "direct");
35
+ export const SCRIPT_REL = path.join("output", "script.json");
35
36
  export const SUPPORTED_EXTS = ".txt/.md/.docx/.xlsx/.pdf/.json";
37
+ export const REVIEW_TARGETS = ["episode", "asset", "issue"];
36
38
  export const DIRECT_CONTRACT_VERSION = 3;
37
39
  export const SCRIPT_SCHEMA_VERSION = 2;
38
40
  export const WORLDVIEW_VALUES = [
@@ -178,6 +180,85 @@ export const MARKDOWN_BATCH_PROMPT_SPEC = "Output format: a single markdown docu
178
180
  " An item without `:` carries no description.\n" +
179
181
  "- Lines marked [meta] in Batch Source are read-only metadata; do not promote\n" +
180
182
  " them to actions.\n";
183
+ // Spec for the subagent-driven `scriptctl parse` workflow. Unlike
184
+ // MARKDOWN_BATCH_PROMPT_SPEC (one self-contained md per batch), this splits the
185
+ // material across two document kinds so many subagents can work in parallel:
186
+ // - one body md PER EPISODE (bodies never collide across episodes)
187
+ // - ONE shared asset md (people/locations/props collide across subagents, so
188
+ // they are maintained together and de-duplicated at parse time)
189
+ // The scene / action / asset grammar is identical to MARKDOWN_BATCH_PROMPT_SPEC;
190
+ // only the file layout differs, plus the `## 梗概` / `# 梗概` synopsis blocks.
191
+ export const PARSE_MD_SPEC = "scriptctl parse 输入 = 一个 md 工作区目录,含两类文档:\n" +
192
+ "\n" +
193
+ "==================== 1. 正文 md(每集一个,文件名形如 ep_001.md) ====================\n" +
194
+ "每个正文 md 只写自己这一集,结构如下:\n" +
195
+ "\n" +
196
+ "# <本集标题> ← 第一行,非「剧本/资产/梗概」的顶级标题即被当作本集标题\n" +
197
+ "\n" +
198
+ "## 梗概\n" +
199
+ "<本集一段话梗概,纯文本,可多行>\n" +
200
+ "\n" +
201
+ "# 剧本\n" +
202
+ "\n" +
203
+ "## 场景 1\n" +
204
+ "- 时空: <内|外> <日|夜>\n" +
205
+ "- 地点: <稳定主空间地点名>[【场景状态】]\n" +
206
+ "- 角色: <角色1>, <角色2>(状态), <角色3> ← 角色名必须来自共享资产 md 的 ## 人物\n" +
207
+ "- 道具: <prop1>, <prop2>\n" +
208
+ "\n" +
209
+ "> [act] 动作或环境描写。\n" +
210
+ "> [dlg|name] 角色对白原文。\n" +
211
+ "> [dlg|name|emotion] 带情绪标签的对白。\n" +
212
+ "> [dlg|system:<发声源名>] 非人物发声源对白。\n" +
213
+ "> [dlg|prop:<道具名>] 道具发声对白。\n" +
214
+ "> [dlg|broadcast:<广播名>] 广播 / 喇叭发声对白。\n" +
215
+ "> [dlg|<speaker1>/<speaker2>|simultaneous] 多人同时说同一句。\n" +
216
+ "> [dlg|overlap] <speaker1>:<line1> / <speaker2>:<line2>\n" +
217
+ "> [think|name] 角色心声/内心独白。\n" +
218
+ "\n" +
219
+ "## 场景 2\n" +
220
+ "...\n" +
221
+ "\n" +
222
+ "正文 md 不写 `# 资产` 段;所有资产登记只在共享资产 md 里。\n" +
223
+ "\n" +
224
+ "==================== 2. 共享资产 md(整部一份,文件名 资产.md) ====================\n" +
225
+ "所有 subagent 共同维护这一份;同名资产只登记一次,冲突由 parse/合并阶段去重。\n" +
226
+ "\n" +
227
+ "# 资产\n" +
228
+ "\n" +
229
+ "## 人物\n" +
230
+ "- 具体单人角色名: 简短角色描述 ← 每个会在正文里出现的人物都必须有描述\n" +
231
+ "\n" +
232
+ "## 场景\n" +
233
+ "- 地点名: 地点用途/氛围\n" +
234
+ "\n" +
235
+ "## 道具\n" +
236
+ "- 道具名: 道具描述\n" +
237
+ "\n" +
238
+ "## 发声源\n" +
239
+ "- <发声源名>(system): 声音描述\n" +
240
+ "- <广播名>(broadcast)\n" +
241
+ "\n" +
242
+ "## 人物状态\n" +
243
+ "- <角色名>|<状态名>: <描述这个状态下的具体可视外观>\n" +
244
+ "\n" +
245
+ "## 场景状态\n" +
246
+ "- <地点名>|<状态名>: <描述这个状态下的具体可视外观>\n" +
247
+ "\n" +
248
+ "## 道具状态\n" +
249
+ "- <道具名>|<状态名>: <描述这个状态下的具体可视外观>\n" +
250
+ "\n" +
251
+ "# 梗概\n" +
252
+ "<整部全文梗概,纯文本,可多行>\n" +
253
+ "\n" +
254
+ "Rules:\n" +
255
+ "- 正文里 `- 角色:` 和对白 anchor 用的名字,必须是资产 md `## 人物` 里登记的规范名。\n" +
256
+ "- 资产名是规范实体名,不夹括号 / 状态 / 情绪 / 身份注解;持久外观造型档位才进\n" +
257
+ " 人物状态 / 场景状态 / 道具状态(整套着装 / 发型 / 持续妆造);情绪 / 姿态 / 临时\n" +
258
+ " 脏污伤口 / 处境一律不是状态,放进 action 文本或 dlg 的 emotion 标签。\n" +
259
+ "- 群体词(众人 / 群众 / 围观者 / 路人们)不进 人物,用 group:name 发声源或动作旁白。\n" +
260
+ "- 动作 / 对白正文逐字保留,不要转述 / 翻译 / 概括 / 加注释;动作种类只有 act/dlg/think。\n" +
261
+ "- 每个出现在正文里的人物,都要在 ## 人物 给出非空描述(否则校验报错)。\n";
181
262
  export const METADATA_EXTRACTION_SCHEMA = {
182
263
  type: "object",
183
264
  required: ["confidence", "worldview", "worldview_raw", "actors", "locations", "props"],
@@ -291,6 +372,12 @@ export function workspaceLayout(workspace) {
291
372
  export function directDir(workspace) {
292
373
  return workspaceLayout(workspace).directDir;
293
374
  }
375
+ export function scriptJsonPath(opts) {
376
+ const v = opts["script_path"] ?? opts["scriptPath"];
377
+ if (typeof v === "string" && v.length > 0)
378
+ return v;
379
+ return SCRIPT_REL;
380
+ }
294
381
  export function fmtId(prefix, n) {
295
382
  return `${prefix}_${String(n).padStart(3, "0")}`;
296
383
  }
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
@@ -94,9 +94,15 @@ export interface ParseMarkdownBatchOptions {
94
94
  * - scene numbers need not start from 1 or be consecutive
95
95
  * - error messages use "fragment" terminology
96
96
  *
97
- * Default false preserves existing import init behavior (zero regression).
97
+ * Default false preserves existing direct init behavior (zero regression).
98
98
  */
99
99
  fragmentMode?: boolean;
100
+ /**
101
+ * When true, an input that parses to zero scenes is accepted and returned as a
102
+ * scene-less fragment instead of throwing. Used by `scriptctl parse` for the
103
+ * shared asset document (人物/场景/道具) which has a `# 资产` section but no `# 剧本`.
104
+ */
105
+ allowEmptyScenes?: boolean;
100
106
  }
101
107
  export declare function parseMarkdownBatch(text: string, batchPlan: Dict, opts?: ParseMarkdownBatchOptions): Dict;
102
108
  export declare function expandCompactEpisodeResult(result: Dict, episodePlan: Dict): Dict;
@@ -1409,11 +1409,25 @@ export function parseMarkdownBatch(text, batchPlan, opts = {}) {
1409
1409
  const speakers = [];
1410
1410
  const stateDefs = [];
1411
1411
  let lastAction = null;
1412
+ // synopsis (## 梗概 sub-header → per-episode; # 梗概 top header → whole-script)
1413
+ // and the episode title carried as the first non-section top header.
1414
+ const synopsisLines = [];
1415
+ let capturingSynopsis = false;
1416
+ let parsedTitle = null;
1412
1417
  for (const rawLine of text.split(/\r?\n/)) {
1413
1418
  const stripped = rawLine.trim();
1414
1419
  const subMatch = reMatch(_MD_SUB_HEADER_RE, stripped);
1415
1420
  const sceneMatch = subMatch ? reMatch(_MD_SCENE_HEADER_RE, stripped) : null;
1421
+ // `## 梗概` opens a synopsis block; subsequent prose lines are captured until
1422
+ // the next header. Handle before the generic sub-header branches below so it
1423
+ // is not mistaken for an asset subsection when inside `# 资产`.
1424
+ if (subMatch && !sceneMatch && subMatch[1].trim() === "梗概") {
1425
+ capturingSynopsis = true;
1426
+ lastAction = null;
1427
+ continue;
1428
+ }
1416
1429
  if (sceneMatch && section === "script") {
1430
+ capturingSynopsis = false;
1417
1431
  scenes.push({
1418
1432
  scene_num: parseInt(sceneMatch[1], 10),
1419
1433
  environment: { space: "interior", time: "day" },
@@ -1428,12 +1442,14 @@ export function parseMarkdownBatch(text, batchPlan, opts = {}) {
1428
1442
  continue;
1429
1443
  }
1430
1444
  if (subMatch && section === "asset") {
1445
+ capturingSynopsis = false;
1431
1446
  const heading = subMatch[1].trim();
1432
1447
  assetSubsection = _MD_ASSET_SUBSECTION_MAP[heading] ?? null;
1433
1448
  lastAction = null;
1434
1449
  continue;
1435
1450
  }
1436
1451
  if (subMatch) {
1452
+ capturingSynopsis = false;
1437
1453
  lastAction = null;
1438
1454
  continue;
1439
1455
  }
@@ -1442,17 +1458,35 @@ export function parseMarkdownBatch(text, batchPlan, opts = {}) {
1442
1458
  const heading = topMatch[1].trim();
1443
1459
  if (heading.startsWith("剧本")) {
1444
1460
  section = "script";
1461
+ capturingSynopsis = false;
1445
1462
  }
1446
1463
  else if (heading.startsWith("资产")) {
1447
1464
  section = "asset";
1448
1465
  assetSubsection = null;
1466
+ capturingSynopsis = false;
1467
+ }
1468
+ else if (heading.startsWith("梗概")) {
1469
+ // Whole-script synopsis block (used in the shared asset document).
1470
+ section = null;
1471
+ assetSubsection = null;
1472
+ capturingSynopsis = true;
1449
1473
  }
1450
1474
  else {
1475
+ // First non-section top header is taken as the episode title.
1476
+ if (parsedTitle === null)
1477
+ parsedTitle = heading;
1478
+ capturingSynopsis = false;
1451
1479
  section = null;
1452
1480
  }
1453
1481
  lastAction = null;
1454
1482
  continue;
1455
1483
  }
1484
+ // Inside a synopsis block, capture prose lines until the next header.
1485
+ if (capturingSynopsis) {
1486
+ if (stripped)
1487
+ synopsisLines.push(stripped);
1488
+ continue;
1489
+ }
1456
1490
  if (section === "script") {
1457
1491
  const fieldMatch = reMatch(_MD_SCENE_FIELD_RE, stripped);
1458
1492
  if (fieldMatch && scenes.length > 0) {
@@ -1612,15 +1646,16 @@ export function parseMarkdownBatch(text, batchPlan, opts = {}) {
1612
1646
  scene["location_state"] = null;
1613
1647
  }
1614
1648
  }
1615
- if (scenes.length === 0) {
1649
+ if (scenes.length === 0 && !opts.allowEmptyScenes) {
1616
1650
  const hint = fragmentMode
1617
1651
  ? "no scenes parsed in fragment; expected at least one '## 场景 N' header under '# 剧本'"
1618
1652
  : "no scenes parsed; expected '## 场景 N' headers under '# 剧本'";
1619
1653
  throw _mdInvalid(label, hint);
1620
1654
  }
1655
+ const synopsis = synopsisLines.join("\n").trim();
1621
1656
  return {
1622
1657
  episode: Number(batchPlan["episode"] ?? 0),
1623
- title: batchPlan["title"],
1658
+ title: batchPlan["title"] ?? (parsedTitle || undefined),
1624
1659
  source_span: batchPlan["source_span"],
1625
1660
  scenes,
1626
1661
  actors,
@@ -1628,6 +1663,7 @@ export function parseMarkdownBatch(text, batchPlan, opts = {}) {
1628
1663
  props,
1629
1664
  speakers,
1630
1665
  state_definitions: stateDefs,
1666
+ ...(synopsis ? { synopsis } : {}),
1631
1667
  };
1632
1668
  }
1633
1669
  // ---------------------------------------------------------------------------
@@ -2929,7 +2965,6 @@ export function mergeEpisodeResults(results, title) {
2929
2965
  };
2930
2966
  const sortedResults = [...results].sort((a, b) => Number(a["episode"] ?? 0) - Number(b["episode"] ?? 0));
2931
2967
  const episodes = [];
2932
- const usedEpisodeIds = new Set();
2933
2968
  let sceneCounter = 0;
2934
2969
  for (const result of sortedResults) {
2935
2970
  const scenes = [];
@@ -3032,25 +3067,15 @@ export function mergeEpisodeResults(results, title) {
3032
3067
  actions,
3033
3068
  });
3034
3069
  }
3035
- // episode_id is normally derived from the parsed source number (第N集), but
3036
- // that number is NOT guaranteed unique — ambiguous/duplicate headers (two
3037
- // "第1集", a recap, etc.) can parse to the same number and would otherwise
3038
- // emit two ep_001, which violates the DB's unique episode constraint on push.
3039
- // Keep the number-based id when free; on collision, fall back to the next
3040
- // free sequential slot. The title still carries the original number.
3041
- let episodeId = fmtId("ep", Number(result["episode"] ?? episodes.length + 1));
3042
- if (usedEpisodeIds.has(episodeId)) {
3043
- let n = episodes.length + 1;
3044
- while (usedEpisodeIds.has(fmtId("ep", n)))
3045
- n++;
3046
- episodeId = fmtId("ep", n);
3047
- }
3048
- usedEpisodeIds.add(episodeId);
3049
- episodes.push({
3050
- episode_id: episodeId,
3070
+ const episodeEntry = {
3071
+ episode_id: fmtId("ep", Number(result["episode"] ?? episodes.length + 1)),
3051
3072
  title: result["title"],
3052
3073
  scenes,
3053
- });
3074
+ };
3075
+ const episodeSynopsis = strOf(result["synopsis"]).trim();
3076
+ if (episodeSynopsis)
3077
+ episodeEntry["synopsis"] = episodeSynopsis;
3078
+ episodes.push(episodeEntry);
3054
3079
  }
3055
3080
  return {
3056
3081
  version: SCRIPT_SCHEMA_VERSION,