@lingjingai/scriptctl 0.13.0 → 0.15.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.
Files changed (36) hide show
  1. package/dist/cli.js +26 -49
  2. package/dist/cli.js.map +1 -1
  3. package/dist/common.d.ts +1 -1
  4. package/dist/common.js +1 -1
  5. package/dist/domain/script-core.d.ts +15 -0
  6. package/dist/domain/script-core.js +207 -63
  7. package/dist/domain/script-core.js.map +1 -1
  8. package/dist/help-text.js +31 -315
  9. package/dist/help-text.js.map +1 -1
  10. package/dist/infra/providers.d.ts +0 -36
  11. package/dist/infra/providers.js +6 -211
  12. package/dist/infra/providers.js.map +1 -1
  13. package/dist/usecases/direct.js +3 -4
  14. package/dist/usecases/direct.js.map +1 -1
  15. package/dist/usecases/doctor.js +2 -5
  16. package/dist/usecases/doctor.js.map +1 -1
  17. package/dist/usecases/script.d.ts +5 -0
  18. package/dist/usecases/script.js +172 -5
  19. package/dist/usecases/script.js.map +1 -1
  20. package/package.json +2 -3
  21. package/dist/domain/asset-registry.d.ts +0 -141
  22. package/dist/domain/asset-registry.js +0 -318
  23. package/dist/domain/asset-registry.js.map +0 -1
  24. package/dist/domain/collision-detector.d.ts +0 -83
  25. package/dist/domain/collision-detector.js +0 -248
  26. package/dist/domain/collision-detector.js.map +0 -1
  27. package/dist/infra/default-writing-prompt.d.ts +0 -31
  28. package/dist/infra/default-writing-prompt.js +0 -50
  29. package/dist/infra/default-writing-prompt.js.map +0 -1
  30. package/dist/infra/default-writing-prompt.md +0 -115
  31. package/dist/infra/gemini-writer.d.ts +0 -107
  32. package/dist/infra/gemini-writer.js +0 -207
  33. package/dist/infra/gemini-writer.js.map +0 -1
  34. package/dist/usecases/episode.d.ts +0 -48
  35. package/dist/usecases/episode.js +0 -1242
  36. package/dist/usecases/episode.js.map +0 -1
package/dist/cli.js CHANGED
@@ -9,8 +9,7 @@ import { emit, emitError } from "./output.js";
9
9
  import { commandInit, commandReview, commandStatus, commandValidate, } from "./usecases/direct.js";
10
10
  import { commandParse } from "./usecases/parse.js";
11
11
  import { commandDoctor } from "./usecases/doctor.js";
12
- import { commandEpisodeBatch, commandEpisodeDraft, commandEpisodeInit, commandEpisodeMerge, commandEpisodePush, commandEpisodeSpec, commandEpisodeWorkspace, } from "./usecases/episode.js";
13
- 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";
12
+ import { commandActions, commandActor, commandActors, commandAddEpisode, commandAddLocation, commandAddProp, commandAddActor, commandAddSpeaker, commandAlias, commandAssets, commandContext, commandCreate, 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";
14
13
  function readPackageVersion() {
15
14
  try {
16
15
  const here = fileURLToPath(import.meta.url);
@@ -26,11 +25,12 @@ const KNOWN_COMMANDS = new Set([
26
25
  "doctor",
27
26
  // Workflow groups
28
27
  "direct", "direct.init", "direct.validate", "direct.review", "direct.export", "direct.status",
29
- "write", "write.init", "write.draft", "write.batch", "write.workspace", "write.merge", "write.push", "write.spec",
30
28
  "parse",
31
29
  // Query (plural-noun)
32
30
  "summary", "episodes", "scenes", "actions", "actors", "locations", "props",
33
31
  "assets", "speakers", "issues", "refs", "validate",
32
+ // Create + add entities
33
+ "create", "add-actor", "add-location", "add-prop", "add-episode",
34
34
  // Edit content
35
35
  "replace", "type", "actor",
36
36
  // Structure (multipolar)
@@ -50,7 +50,6 @@ const KNOWN_COMMANDS = new Set([
50
50
  // Leaves are real commands that can accept positional arguments.
51
51
  const GROUP_COMMANDS = new Set([
52
52
  "direct",
53
- "write",
54
53
  ]);
55
54
  function extractLeadingPath(args) {
56
55
  // Collect leading non-flag tokens, then take only as many as form the longest known
@@ -184,51 +183,6 @@ function buildProgram(state) {
184
183
  .option("--request-id <id>")
185
184
  .option("--force")
186
185
  .action(dispatch(commandExport, state));
187
- // ============================== write (was: episode) ==============================
188
- const write = program.command("write").action(showGroupHelp(["write"], state));
189
- write.command("init")
190
- .option("--workspace-path <path>", "", "workspace")
191
- .option("--force")
192
- .action(dispatch((o) => commandEpisodeInit(o), state));
193
- write.command("draft <n>")
194
- .option("--workspace-path <path>", "", "workspace")
195
- .option("--prompt-template <path>")
196
- .option("--outline <path>")
197
- .option("--ref <spec>", "", appendStr, [])
198
- .option("--from-md <path>")
199
- .option("--provider <name>")
200
- .option("--model <model>")
201
- .option("--max-tokens <n>")
202
- .option("--regen")
203
- .option("--resume")
204
- .action(dispatch((o) => commandEpisodeDraft(o), state));
205
- write.command("batch")
206
- .requiredOption("--range <a-b>")
207
- .option("--workspace-path <path>", "", "workspace")
208
- .option("--prompt-template <path>")
209
- .option("--outline <path>")
210
- .option("--ref <spec>", "", appendStr, [])
211
- .option("--provider <name>")
212
- .option("--model <model>")
213
- .option("--max-tokens <n>")
214
- .action(dispatch((o) => commandEpisodeBatch(o), state));
215
- write.command("workspace")
216
- .option("--workspace-path <path>", "", "workspace")
217
- .action(dispatch((o) => commandEpisodeWorkspace(o), state));
218
- write.command("merge")
219
- .option("--workspace-path <path>", "", "workspace")
220
- .option("--meta-path <path>")
221
- .option("--from <n>")
222
- .option("--to <n>")
223
- .option("--force")
224
- .action(dispatch((o) => commandEpisodeMerge(o), state));
225
- write.command("push")
226
- .option("--workspace-path <path>", "", "workspace")
227
- .option("--project-group-no <no>")
228
- .option("--request-id <id>")
229
- .action(dispatch((o) => commandEpisodePush(o), state));
230
- write.command("spec")
231
- .action(dispatch((o) => commandEpisodeSpec(o), state));
232
186
  // ============================== parse (direct v2: subagent-authored md) ==============================
233
187
  program.command("parse [dir]")
234
188
  .option("--workspace-path <path>", "", "workspace")
@@ -298,6 +252,29 @@ function buildProgram(state) {
298
252
  .action(dispatch(commandRefs, state));
299
253
  withScriptOpts(program.command("validate"))
300
254
  .action(dispatch(commandScriptValidate, state));
255
+ // ============================== create + add entities ==============================
256
+ withScriptOpts(program.command("create"))
257
+ .option("--title <title>")
258
+ .option("--force")
259
+ .action(dispatch(commandCreate, state));
260
+ withScriptOpts(program.command("add-actor <name>"))
261
+ .option("--id <id>")
262
+ .option("--role <role>")
263
+ .option("--description <text>")
264
+ .option("--alias <alias>", "", appendStr, [])
265
+ .action(dispatch(commandAddActor, state));
266
+ withScriptOpts(program.command("add-location <name>"))
267
+ .option("--id <id>")
268
+ .option("--description <text>")
269
+ .action(dispatch(commandAddLocation, state));
270
+ withScriptOpts(program.command("add-prop <name>"))
271
+ .option("--id <id>")
272
+ .option("--description <text>")
273
+ .action(dispatch(commandAddProp, state));
274
+ withScriptOpts(program.command("add-episode"))
275
+ .option("--id <id>")
276
+ .option("--title <title>")
277
+ .action(dispatch(commandAddEpisode, state));
301
278
  // ============================== edit verbs ==============================
302
279
  // ----- content -----
303
280
  withScriptOpts(program.command("replace <at>"))
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
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,EACX,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,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,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe;IAC7F,OAAO;IACP,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,wBAAwB;IACxB,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa;IAChE,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;CACT,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,SAAS,CAAC;SACjB,MAAM,CAAC,sBAAsB,CAAC;SAC9B,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,uEAAuE;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAElF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACnB,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,mBAAmB,CAAC;SAC3B,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,gBAAgB,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SACrB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEpD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;SACvB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,sBAAsB,CAAC;SAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SACrB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEpD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SACrB,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,sBAAsB,EAAE,EAAE,EAAE,QAAQ,CAAC;SAC5C,MAAM,CAAC,yBAAyB,CAAC;SACjC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,wGAAwG;IACxG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;SAC3B,MAAM,CAAC,yBAAyB,EAAE,EAAE,EAAE,WAAW,CAAC;SAClD,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,yBAAyB,CAAC;SACjC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,QAAQ,CAAC;SAChB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnD,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,sFAAsF;IAEtF,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACtC,MAAM,CAAC,iBAAiB,CAAC;SACzB,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,WAAW,CAAC;SACnB,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,sBAAsB,CAAC;SAC9B,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAc,CAAC;SACxD,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;SACnD,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,sBAAsB,CAAC;SAC9B,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;SAC/C,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,sBAAsB,CAAC;SAC9B,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC3C,MAAM,CAAC,WAAW,CAAC;SACnB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9C,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"}
package/dist/common.d.ts CHANGED
@@ -8,7 +8,7 @@ export declare const EXIT_NEEDS_AGENT = 78;
8
8
  * Hidden diagnostic switch. Set `SCRIPTCTL_DEBUG=1` to expose internal details
9
9
  * (env var names, internal paths, raw provider responses, error stacks) in CLI
10
10
  * error output. Off by default so end-users / agents never see implementation
11
- * names like `SCRIPTCTL_GEMINI_API_KEY` or `db:/script-output/...`.
11
+ * names like `PROJECT_LITELLM_GATEWAY_API_KEY` or `db:/script-output/...`.
12
12
  *
13
13
  * Not advertised in --help on purpose: keeping it env-only avoids accidental
14
14
  * exposure when the CLI is wrapped by another agent.
package/dist/common.js CHANGED
@@ -11,7 +11,7 @@ export const EXIT_NEEDS_AGENT = 78;
11
11
  * Hidden diagnostic switch. Set `SCRIPTCTL_DEBUG=1` to expose internal details
12
12
  * (env var names, internal paths, raw provider responses, error stacks) in CLI
13
13
  * error output. Off by default so end-users / agents never see implementation
14
- * names like `SCRIPTCTL_GEMINI_API_KEY` or `db:/script-output/...`.
14
+ * names like `PROJECT_LITELLM_GATEWAY_API_KEY` or `db:/script-output/...`.
15
15
  *
16
16
  * Not advertised in --help on purpose: keeping it env-only avoids accidental
17
17
  * exposure when the CLI is wrapped by another agent.
@@ -2,6 +2,16 @@ type Dict = Record<string, unknown>;
2
2
  export declare function findAction(script: Dict, epId: string, sceneId: string, actionIndex: number): Dict;
3
3
  export declare function findEpisode(script: Dict, epId: string): Dict;
4
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;
5
15
  /**
6
16
  * Validate a script's schema and asset wiring.
7
17
  *
@@ -11,6 +21,11 @@ export declare function findScene(script: Dict, epId: string, sceneId: string):
11
21
  *
12
22
  * Callers that already have the script as a parsed object (episode draft / publish
13
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.
14
29
  */
15
30
  export declare function validateScript(workspace: string, scriptPath?: string | null, opts?: {
16
31
  requireSource?: boolean;
@@ -63,6 +63,54 @@ export function findScene(script, epId, sceneId) {
63
63
  });
64
64
  }
65
65
  // ---------------------------------------------------------------------------
66
+ // blank scaffold
67
+ // ---------------------------------------------------------------------------
68
+ /**
69
+ * Minimal schema-v2 script skeleton: every required top-level field present,
70
+ * all collections empty. It is the starting point for building a script
71
+ * bottom-up with the atomic add/insert verbs instead of assembling it from
72
+ * source material (direct) or md (parse). `worldview`/`style`/`title` are
73
+ * present-but-empty so the field-presence checks pass; they get filled in
74
+ * later via `worldview` / `patch`. A blank script validates clean: NO_EPISODES
75
+ * is a completeness warning (`incomplete_ok`), not a blocker.
76
+ */
77
+ export function blankScript(title = "") {
78
+ return {
79
+ version: SCRIPT_SCHEMA_VERSION,
80
+ title: title,
81
+ worldview: "",
82
+ style: "",
83
+ actors: [],
84
+ locations: [],
85
+ props: [],
86
+ speakers: [],
87
+ episodes: [],
88
+ };
89
+ }
90
+ // Completeness vs. integrity. A script can be structurally sound but unfinished
91
+ // (no episodes yet, an empty episode/scene, a scene without a location, an asset
92
+ // without a description). Those gaps are emitted as `severity: "warning"` with
93
+ // `incomplete_ok: true` directly at their source below — they never block, so an
94
+ // unfinished-but-sound script is editable AND publishable. Only integrity
95
+ // violations (dangling refs, duplicate ids, invalid enums, missing ids/names —
96
+ // things that would corrupt the normalized DB graph) are `severity: "error"`.
97
+ // One SCHEMA_ENTITY_FIELD_MISSING issue for a missing asset field. A missing
98
+ // description is a completeness gap (warning); a missing id/name is an identity
99
+ // error that would dangle in the DB graph. Shared by the actor/location/prop
100
+ // validation loops so the severity/incomplete_ok/repair-hint policy lives once.
101
+ function entityFieldMissingIssue(kindLabel, field, idValue) {
102
+ const isDescription = field === "description";
103
+ return {
104
+ code: "SCHEMA_ENTITY_FIELD_MISSING",
105
+ severity: isDescription ? "warning" : "error",
106
+ ...(isDescription ? { incomplete_ok: true } : {}),
107
+ summary: `${kindLabel} missing ${field}: ${idValue}`,
108
+ repair_hint: isDescription
109
+ ? "Describe with `describe` when ready (an undescribed asset is publishable)."
110
+ : `Patch ${kindLabel.toLowerCase()} metadata.`,
111
+ };
112
+ }
113
+ // ---------------------------------------------------------------------------
66
114
  // validate_script
67
115
  // ---------------------------------------------------------------------------
68
116
  /**
@@ -74,6 +122,11 @@ export function findScene(script, epId, sceneId) {
74
122
  *
75
123
  * Callers that already have the script as a parsed object (episode draft / publish
76
124
  * after assembly) should prefer `scriptData` to avoid the write-validate-rm dance.
125
+ *
126
+ * Completeness issues (no episodes, empty episode/scene, scene without location,
127
+ * missing asset description) are emitted as warnings (`incomplete_ok`), not
128
+ * errors — an unfinished but structurally-sound script passes. Only integrity
129
+ * violations (dangling refs, dup ids, invalid enums, missing ids/names) fail it.
77
130
  */
78
131
  export function validateScript(workspace, scriptPath = null, opts = {}) {
79
132
  const requireSource = opts.requireSource ?? true;
@@ -116,29 +169,6 @@ export function validateScript(workspace, scriptPath = null, opts = {}) {
116
169
  }
117
170
  }
118
171
  const issues = [];
119
- // asset_metadata.json is a `direct init` artifact paired with the on-disk
120
- // script.initial.json. Only apply its low-confidence gate when validating that
121
- // on-disk script (scriptData undefined). Callers validating an in-memory script
122
- // (write merge / parse) must not inherit a stale metadata file left in the same
123
- // workspace by a previous direct run.
124
- const metadataPath = path.join(dd, "asset_metadata.json");
125
- if (opts.scriptData === undefined && exists(metadataPath)) {
126
- let metadata = {};
127
- try {
128
- metadata = readJson(metadataPath);
129
- }
130
- catch {
131
- metadata = {};
132
- }
133
- if (isDict(metadata) && metadata["confidence"] === "low") {
134
- issues.push({
135
- code: "LOW_CONFIDENCE_METADATA",
136
- severity: "error",
137
- summary: "AI metadata confidence is low.",
138
- repair_hint: "Inspect assets and patch worldview, role_type, or descriptions explicitly.",
139
- });
140
- }
141
- }
142
172
  for (const field of ["version", "title", "worldview", "style", "actors", "locations", "props", "speakers", "episodes"]) {
143
173
  if (!(field in script)) {
144
174
  issues.push({
@@ -198,12 +228,7 @@ export function validateScript(workspace, scriptPath = null, opts = {}) {
198
228
  const actorName = strOf(actor["actor_name"]).trim();
199
229
  for (const field of ["actor_id", "actor_name", "description"]) {
200
230
  if (!strOf(actor[field]).trim()) {
201
- issues.push({
202
- code: "SCHEMA_ENTITY_FIELD_MISSING",
203
- severity: "error",
204
- summary: `Actor missing ${field}: ${actor["actor_id"] || idx}`,
205
- repair_hint: "Patch actor metadata.",
206
- });
231
+ issues.push(entityFieldMissingIssue("Actor", field, strOf(actor["actor_id"]) || String(idx)));
207
232
  }
208
233
  }
209
234
  if (actorName && cleanName(actorName) !== actorName) {
@@ -246,12 +271,7 @@ export function validateScript(workspace, scriptPath = null, opts = {}) {
246
271
  const locationName = strOf(loc["location_name"]).trim();
247
272
  for (const field of ["location_id", "location_name", "description"]) {
248
273
  if (!strOf(loc[field]).trim()) {
249
- issues.push({
250
- code: "SCHEMA_ENTITY_FIELD_MISSING",
251
- severity: "error",
252
- summary: `Location missing ${field}: ${loc["location_id"] || idx}`,
253
- repair_hint: "Patch location metadata.",
254
- });
274
+ issues.push(entityFieldMissingIssue("Location", field, strOf(loc["location_id"]) || String(idx)));
255
275
  }
256
276
  }
257
277
  if (locationName && cleanName(locationName) !== locationName) {
@@ -278,12 +298,7 @@ export function validateScript(workspace, scriptPath = null, opts = {}) {
278
298
  const propName = strOf(prop["prop_name"]).trim();
279
299
  for (const field of ["prop_id", "prop_name", "description"]) {
280
300
  if (!strOf(prop[field]).trim()) {
281
- issues.push({
282
- code: "SCHEMA_ENTITY_FIELD_MISSING",
283
- severity: "error",
284
- summary: `Prop missing ${field}: ${prop["prop_id"] || idx}`,
285
- repair_hint: "Patch prop metadata.",
286
- });
301
+ issues.push(entityFieldMissingIssue("Prop", field, strOf(prop["prop_id"]) || String(idx)));
287
302
  }
288
303
  }
289
304
  if (propName && cleanName(propName) !== propName) {
@@ -447,7 +462,7 @@ export function validateScript(workspace, scriptPath = null, opts = {}) {
447
462
  }
448
463
  const episodes = asList(script["episodes"]);
449
464
  if (episodes.length === 0) {
450
- issues.push({ code: "NO_EPISODES", severity: "blocking", summary: "No episodes in script.", repair_hint: "Rerun init or patch episodes." });
465
+ issues.push({ code: "NO_EPISODES", severity: "warning", incomplete_ok: true, summary: "No episodes in script.", repair_hint: "Add episodes with add-episode (an empty script is publishable but renders to nothing)." });
451
466
  }
452
467
  let totalScenes = 0;
453
468
  let totalActions = 0;
@@ -467,10 +482,11 @@ export function validateScript(workspace, scriptPath = null, opts = {}) {
467
482
  if (scenes.length === 0) {
468
483
  issues.push({
469
484
  code: "EPISODE_WITHOUT_SCENES",
470
- severity: "error",
485
+ severity: "warning",
486
+ incomplete_ok: true,
471
487
  episode: ep["episode_id"],
472
488
  summary: "Episode has no scenes.",
473
- repair_hint: "Patch at least one scene into the episode.",
489
+ repair_hint: "Add scenes with insert (an empty episode is publishable but renders to nothing).",
474
490
  });
475
491
  }
476
492
  for (const scene of scenes) {
@@ -506,11 +522,12 @@ export function validateScript(workspace, scriptPath = null, opts = {}) {
506
522
  if (ctxLocations.length === 0) {
507
523
  issues.push({
508
524
  code: "SCENE_WITHOUT_LOCATION",
509
- severity: "error",
525
+ severity: "warning",
526
+ incomplete_ok: true,
510
527
  episode: ep["episode_id"],
511
528
  scene: scene["scene_id"],
512
529
  summary: "Scene has no location.",
513
- repair_hint: "Patch scene.locations with a registered location_id.",
530
+ repair_hint: "Set a location with context (an unlocated scene is publishable but cannot render).",
514
531
  });
515
532
  }
516
533
  for (const ref of ctxLocations) {
@@ -589,11 +606,12 @@ export function validateScript(workspace, scriptPath = null, opts = {}) {
589
606
  if (actionsArr.length === 0) {
590
607
  issues.push({
591
608
  code: "SCENE_WITHOUT_ACTIONS",
592
- severity: "error",
609
+ severity: "warning",
610
+ incomplete_ok: true,
593
611
  episode: ep["episode_id"],
594
612
  scene: scene["scene_id"],
595
613
  summary: "Scene has no actions.",
596
- repair_hint: "Patch actions from source spans.",
614
+ repair_hint: "Add actions with insert (an empty scene is publishable but renders to nothing).",
597
615
  });
598
616
  }
599
617
  for (let actionIndex = 0; actionIndex < actionsArr.length; actionIndex++) {
@@ -959,17 +977,14 @@ function resolvePatchAsset(script, op, assetType = null) {
959
977
  return [asset, idKey, nameKey];
960
978
  }
961
979
  function nextStateId(script) {
962
- let maxSeen = 0;
980
+ const ids = [];
963
981
  for (const key of ["actors", "locations", "props"]) {
964
982
  for (const asset of asList(script[key])) {
965
- for (const state of asList(asset["states"])) {
966
- const m = /^st_(\d+)$/.exec(strOf(state["state_id"]));
967
- if (m)
968
- maxSeen = Math.max(maxSeen, parseInt(m[1], 10));
969
- }
983
+ for (const state of asList(asset["states"]))
984
+ ids.push(state["state_id"]);
970
985
  }
971
986
  }
972
- return fmtId("st", maxSeen + 1);
987
+ return nextSeqId(ids, "st");
973
988
  }
974
989
  function normalizeStates(script, rawStates, assetKind = "") {
975
990
  if (!isList(rawStates)) {
@@ -1484,16 +1499,31 @@ export function collectAssetRefs(script, kind, targetId) {
1484
1499
  }
1485
1500
  return refs;
1486
1501
  }
1487
- function nextSceneId(script) {
1502
+ // Asset id prefixes. props use `prp_` (not `prop_`); mirrors direct-init output.
1503
+ const ASSET_ID_PREFIX = { actor: "act", location: "loc", prop: "prp" };
1504
+ // Next free `<prefix>_NNN` id given the existing ids in a collection. Scans for
1505
+ // the max NNN so a manually-chosen id (e.g. act_007) never collides with a later
1506
+ // auto-id. The single id-allocation routine behind nextScene/Asset/Episode/State.
1507
+ function nextSeqId(existingIds, prefix) {
1508
+ const re = new RegExp(`^${prefix}_(\\d+)$`);
1488
1509
  let maxSeen = 0;
1489
- for (const ep of asList(script["episodes"])) {
1490
- for (const scene of asList(ep["scenes"])) {
1491
- const m = /^scn_(\d+)$/.exec(strOf(scene["scene_id"]));
1492
- if (m)
1493
- maxSeen = Math.max(maxSeen, parseInt(m[1], 10));
1494
- }
1510
+ for (const raw of existingIds) {
1511
+ const m = re.exec(strOf(raw));
1512
+ if (m)
1513
+ maxSeen = Math.max(maxSeen, parseInt(m[1], 10));
1495
1514
  }
1496
- return fmtId("scn", maxSeen + 1);
1515
+ return fmtId(prefix, maxSeen + 1);
1516
+ }
1517
+ function nextSceneId(script) {
1518
+ const ids = asList(script["episodes"]).flatMap((ep) => asList(ep["scenes"]).map((s) => s["scene_id"]));
1519
+ return nextSeqId(ids, "scn");
1520
+ }
1521
+ function nextAssetId(script, kind) {
1522
+ const [key, idKey] = assetKeys(kind);
1523
+ return nextSeqId(asList(script[key]).map((item) => item[idKey]), ASSET_ID_PREFIX[kind]);
1524
+ }
1525
+ function nextEpisodeId(script) {
1526
+ return nextSeqId(asList(script["episodes"]).map((ep) => ep["episode_id"]), "ep");
1497
1527
  }
1498
1528
  function sceneIdExists(script, sceneId) {
1499
1529
  for (const ep of asList(script["episodes"])) {
@@ -1504,6 +1534,53 @@ function sceneIdExists(script, sceneId) {
1504
1534
  }
1505
1535
  return false;
1506
1536
  }
1537
+ // Shared body for actor.add / location.add / prop.add: validate the name,
1538
+ // allocate or accept an id, reject duplicates, and append a minimal entity
1539
+ // ({id, name, description, states:[]}). The caller layers on kind-specific
1540
+ // fields (actor role_type/aliases). Returns the pushed entity so the caller can
1541
+ // extend it. description defaults to "" — an empty description is a completeness
1542
+ // warning, not a hard error, so you can register an asset now and describe it
1543
+ // later.
1544
+ function pushAsset(script, kind, op) {
1545
+ const [collKey, idKey, nameKey] = assetKeys(kind);
1546
+ const name = strOf(op["name"] ?? op[nameKey]).trim();
1547
+ if (!name) {
1548
+ throw opErr("SCRIPT OP BLOCKED: Asset name empty", "Asset name empty.", {
1549
+ required: ["name"], received: [JSON.stringify(op)],
1550
+ nextSteps: [`Provide a ${kind} name.`], op: `${kind}.add`, errorCode: "ASSET_NAME_EMPTY",
1551
+ });
1552
+ }
1553
+ // name is already whitespace-trimmed; cleanName additionally strips trailing/
1554
+ // leading punctuation (:,、…) and embedded 【】() state annotations. Reuse the
1555
+ // same errorCode validateScript uses for this rule (ASSET_NAME_HAS_STATE_ANNOTATION)
1556
+ // so op-time and validate-time speak one vocabulary; the message stays accurate
1557
+ // for the punctuation-only case too. Suggest the canonical form when there is one
1558
+ // (a name that is entirely punctuation/annotation reduces to "").
1559
+ const canonical = cleanName(name);
1560
+ if (canonical !== name) {
1561
+ const suggestion = canonical
1562
+ ? `Use "${canonical}", and register durable looks with state-add instead of putting them in the name.`
1563
+ : "Provide a real name (this one is only punctuation/annotation); register durable looks with state-add.";
1564
+ throw opErr("SCRIPT OP BLOCKED: Asset name not canonical", "Asset name is not canonical (trailing/leading punctuation or an embedded state annotation).", {
1565
+ required: [canonical ? `canonical name, e.g. "${canonical}"` : "a canonical name without punctuation/annotation"],
1566
+ received: [name],
1567
+ nextSteps: [suggestion], op: `${kind}.add`, errorCode: "ASSET_NAME_HAS_STATE_ANNOTATION",
1568
+ });
1569
+ }
1570
+ const id = strOf(op[idKey] ?? op["id"]).trim() || nextAssetId(script, kind);
1571
+ if (!isList(script[collKey]))
1572
+ script[collKey] = [];
1573
+ const coll = script[collKey];
1574
+ if (coll.some((a) => strOf(a[idKey]) === id)) {
1575
+ throw opErr("SCRIPT OP BLOCKED: Asset id exists", "Asset id exists.", {
1576
+ required: ["unused id"], received: [id],
1577
+ nextSteps: ["Use another --id or omit it to auto-allocate."], op: `${kind}.add`, errorCode: "ASSET_ID_EXISTS",
1578
+ });
1579
+ }
1580
+ const entity = { [idKey]: id, [nameKey]: name, description: strOf(op["description"]).trim(), states: [] };
1581
+ coll.push(entity);
1582
+ return entity;
1583
+ }
1507
1584
  function renumberSceneIds(script) {
1508
1585
  let counter = 0;
1509
1586
  for (const ep of asList(script["episodes"])) {
@@ -1535,6 +1612,10 @@ export const PATCH_OP_SCHEMA = {
1535
1612
  "state.describe": { required: ["target", "description"], optional: [], description: "Set a state's description." },
1536
1613
  "state.delete": { required: ["target", "strategy"], optional: ["replacement"], description: "Delete a state. strategy: replace|remove." },
1537
1614
  // asset
1615
+ "actor.add": { required: ["name"], optional: ["actor_id", "role_type", "description", "aliases"], description: "Register a new actor (human/character). role_type: 主角|配角." },
1616
+ "location.add": { required: ["name"], optional: ["location_id", "description"], description: "Register a new location." },
1617
+ "prop.add": { required: ["name"], optional: ["prop_id", "description"], description: "Register a new prop." },
1618
+ "episode.add": { required: [], optional: ["episode_id", "title"], description: "Append a new empty episode (no scenes)." },
1538
1619
  "asset.rename": { required: ["target", "name"], optional: [], description: "Rename an asset (actor / location / prop)." },
1539
1620
  "asset.describe": { required: ["target", "description"], optional: [], description: "Set asset description." },
1540
1621
  "asset.alias.set": { required: ["target", "aliases"], optional: [], description: "Bulk replace aliases[]." },
@@ -1932,6 +2013,69 @@ export function applyPatchOperations(script, sourceText, operations) {
1932
2013
  delete action["speaker_id"];
1933
2014
  applied.push(kind);
1934
2015
  }
2016
+ else if (kind === "actor.add") {
2017
+ const name = strOf(op["name"] ?? op["actor_name"]).trim();
2018
+ // Reject non-human speakers as actors up front (validate would flag
2019
+ // NONHUMAN_AS_ACTOR otherwise) — system/broadcast/prop voices belong in
2020
+ // speakers[], not actors[].
2021
+ if (name && inferNonActorSpeakerKind(name) !== "actor") {
2022
+ throw opErr("SCRIPT OP BLOCKED: Non-human as actor", "Non-human speaker registered as actor.", {
2023
+ required: ["a human/character name"], received: [name],
2024
+ nextSteps: ["Register non-human voices with add-speaker (kind system/broadcast/prop/group/other)."],
2025
+ op: kind, errorCode: "NONHUMAN_AS_ACTOR",
2026
+ });
2027
+ }
2028
+ const entity = pushAsset(script, "actor", op);
2029
+ const roleType = strOf(op["role_type"] ?? op["role"]).trim();
2030
+ if (roleType) {
2031
+ if (!ROLE_TYPE_VALUES.includes(roleType)) {
2032
+ throw opErr("SCRIPT OP BLOCKED: Role type invalid", "Role type invalid.", {
2033
+ required: ["role_type: 主角 or 配角"], received: [roleType],
2034
+ nextSteps: ["Use a supported actor role_type, or omit to leave it unset."],
2035
+ op: kind, errorCode: "ROLE_TYPE_INVALID",
2036
+ });
2037
+ }
2038
+ entity["role_type"] = roleType;
2039
+ }
2040
+ // Only stamp aliases when there's at least one — keeps the entity shape
2041
+ // identical to direct/parse-produced actors (which omit the key when empty).
2042
+ const aliases = isList(op["aliases"]) ? op["aliases"].map((a) => strOf(a).trim()).filter(Boolean) : [];
2043
+ if (aliases.length)
2044
+ entity["aliases"] = aliases;
2045
+ applied.push(kind);
2046
+ }
2047
+ else if (kind === "location.add") {
2048
+ pushAsset(script, "location", op);
2049
+ applied.push(kind);
2050
+ }
2051
+ else if (kind === "prop.add") {
2052
+ pushAsset(script, "prop", op);
2053
+ applied.push(kind);
2054
+ }
2055
+ else if (kind === "episode.add") {
2056
+ // Append an empty episode. Scenes/actions are added afterwards with
2057
+ // scene.insert / action.insert. episode_id auto-allocates as ep_NNN.
2058
+ const epId = strOf(op["episode_id"] ?? op["id"]).trim() || nextEpisodeId(script);
2059
+ if (!/^ep_\d+$/.test(epId)) {
2060
+ throw opErr("SCRIPT OP BLOCKED: Episode id invalid", "Episode id must use ep_NNN format.", {
2061
+ required: ["episode_id: ep_NNN"], received: [epId],
2062
+ nextSteps: ["Pass --id ep_004 or omit to auto-allocate."],
2063
+ op: kind, errorCode: "EPISODE_ID_INVALID",
2064
+ });
2065
+ }
2066
+ if (!isList(script["episodes"]))
2067
+ script["episodes"] = [];
2068
+ const eps = script["episodes"];
2069
+ if (eps.some((e) => strOf(e["episode_id"]) === epId)) {
2070
+ throw opErr("SCRIPT OP BLOCKED: Episode id exists", "Episode id exists.", {
2071
+ required: ["unused episode_id"], received: [epId],
2072
+ nextSteps: ["Use another --id or omit it to auto-allocate."],
2073
+ op: kind, errorCode: "EPISODE_ID_EXISTS",
2074
+ });
2075
+ }
2076
+ eps.push({ episode_id: epId, title: strOf(op["title"]).trim(), scenes: [] });
2077
+ applied.push(kind);
2078
+ }
1935
2079
  else if (kind === "meta.worldview.set") {
1936
2080
  // 0.6.0 dot-style equivalent of the legacy `set_worldview` op.
1937
2081
  const worldview = strOf(op["worldview"] ?? op["value"]).trim();