@lingjingai/scriptctl 0.50.0 → 0.51.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.
Files changed (287) hide show
  1. package/changes/0.51.0.md +24 -0
  2. package/changes/0.51.1.md +15 -0
  3. package/changes/unreleased.md +1 -2
  4. package/dist/cli/register-batch.d.ts +3 -0
  5. package/dist/cli/register-batch.js +28 -0
  6. package/dist/cli/register-batch.js.map +1 -0
  7. package/dist/cli/register-edits.d.ts +4 -0
  8. package/dist/cli/register-edits.js +226 -0
  9. package/dist/cli/register-edits.js.map +1 -0
  10. package/dist/cli/register-query.d.ts +4 -0
  11. package/dist/cli/register-query.js +93 -0
  12. package/dist/cli/register-query.js.map +1 -0
  13. package/dist/cli/register-tools.d.ts +3 -0
  14. package/dist/cli/register-tools.js +23 -0
  15. package/dist/cli/register-tools.js.map +1 -0
  16. package/dist/cli/register-workflows.d.ts +4 -0
  17. package/dist/cli/register-workflows.js +71 -0
  18. package/dist/cli/register-workflows.js.map +1 -0
  19. package/dist/cli/registry.d.ts +14 -0
  20. package/dist/cli/registry.js +65 -0
  21. package/dist/cli/registry.js.map +1 -0
  22. package/dist/cli.d.ts +3 -0
  23. package/dist/cli.js +146 -596
  24. package/dist/cli.js.map +1 -1
  25. package/dist/common.d.ts +12 -38
  26. package/dist/common.js +5 -11
  27. package/dist/common.js.map +1 -1
  28. package/dist/domain/authoring/shared/bracket.js +3 -3
  29. package/dist/domain/authoring/shared/bracket.js.map +1 -1
  30. package/dist/domain/authoring/v3/apply.js +3 -3
  31. package/dist/domain/authoring/v3/apply.js.map +1 -1
  32. package/dist/domain/authoring/v4/apply.js +6 -6
  33. package/dist/domain/authoring/v4/apply.js.map +1 -1
  34. package/dist/domain/authoring/v4/parser.js +2 -2
  35. package/dist/domain/authoring/v4/parser.js.map +1 -1
  36. package/dist/domain/authoring/v4/serializer.js +2 -2
  37. package/dist/domain/authoring/v4/serializer.js.map +1 -1
  38. package/dist/domain/ingest/assembler.d.ts +1 -0
  39. package/dist/domain/ingest/assembler.js +8 -2
  40. package/dist/domain/ingest/assembler.js.map +1 -1
  41. package/dist/domain/ingest/video-apply.js +6 -3
  42. package/dist/domain/ingest/video-apply.js.map +1 -1
  43. package/dist/domain/ingest/video-context.js +2 -2
  44. package/dist/domain/ingest/video-context.js.map +1 -1
  45. package/dist/domain/ingest/video-records.d.ts +6 -5
  46. package/dist/domain/ingest/video-serial-md.d.ts +6 -5
  47. package/dist/domain/ingest/video-serial-md.js +11 -4
  48. package/dist/domain/ingest/video-serial-md.js.map +1 -1
  49. package/dist/domain/script/dispatch.js +5 -7
  50. package/dist/domain/script/dispatch.js.map +1 -1
  51. package/dist/domain/script/shared.js +4 -6
  52. package/dist/domain/script/shared.js.map +1 -1
  53. package/dist/domain/script/v3/address.js +29 -38
  54. package/dist/domain/script/v3/address.js.map +1 -1
  55. package/dist/domain/script/v3/lookups.js +31 -32
  56. package/dist/domain/script/v3/lookups.js.map +1 -1
  57. package/dist/domain/script/v3/ordinal.js +4 -5
  58. package/dist/domain/script/v3/ordinal.js.map +1 -1
  59. package/dist/domain/script/v3/parse.js +3 -4
  60. package/dist/domain/script/v3/parse.js.map +1 -1
  61. package/dist/domain/script/v3/patch/helpers.js +6 -8
  62. package/dist/domain/script/v3/patch/helpers.js.map +1 -1
  63. package/dist/domain/script/v3/selector.js +6 -8
  64. package/dist/domain/script/v3/selector.js.map +1 -1
  65. package/dist/domain/script/v4/address.js +2 -3
  66. package/dist/domain/script/v4/address.js.map +1 -1
  67. package/dist/domain/script/v4/ids.js +6 -7
  68. package/dist/domain/script/v4/ids.js.map +1 -1
  69. package/dist/domain/script/v4/ordinal.js +4 -5
  70. package/dist/domain/script/v4/ordinal.js.map +1 -1
  71. package/dist/domain/script/v4/parse.js +3 -4
  72. package/dist/domain/script/v4/parse.js.map +1 -1
  73. package/dist/domain/script/v4/patch/apply.js +3 -3
  74. package/dist/domain/script/v4/patch/apply.js.map +1 -1
  75. package/dist/domain/script/v4/patch/helpers.js +3 -4
  76. package/dist/domain/script/v4/patch/helpers.js.map +1 -1
  77. package/dist/domain/script/v4/patch/ops-action.js +46 -49
  78. package/dist/domain/script/v4/patch/ops-action.js.map +1 -1
  79. package/dist/domain/script/v4/selector.js +2 -3
  80. package/dist/domain/script/v4/selector.js.map +1 -1
  81. package/dist/infra/ingest/video-discovery.js +7 -4
  82. package/dist/infra/ingest/video-discovery.js.map +1 -1
  83. package/dist/infra/script-output-store.js +6 -11
  84. package/dist/infra/script-output-store.js.map +1 -1
  85. package/dist/infra/script-working-copy.js +15 -16
  86. package/dist/infra/script-working-copy.js.map +1 -1
  87. package/dist/llm/config.js +3 -4
  88. package/dist/llm/config.js.map +1 -1
  89. package/dist/llm/router.js +6 -8
  90. package/dist/llm/router.js.map +1 -1
  91. package/dist/llm/tasks/ingest/text-normalize.js +3 -3
  92. package/dist/llm/tasks/ingest/text-normalize.js.map +1 -1
  93. package/dist/llm/tasks/ingest/video-serial.js +29 -22
  94. package/dist/llm/tasks/ingest/video-serial.js.map +1 -1
  95. package/dist/llm/tasks/schemas.js +5 -5
  96. package/dist/llm/tasks/schemas.js.map +1 -1
  97. package/dist/output.d.ts +2 -3
  98. package/dist/output.js +72 -109
  99. package/dist/output.js.map +1 -1
  100. package/dist/usecases/changelog.d.ts +2 -2
  101. package/dist/usecases/changelog.js +28 -36
  102. package/dist/usecases/changelog.js.map +1 -1
  103. package/dist/usecases/doctor.d.ts +2 -2
  104. package/dist/usecases/doctor.js +3 -5
  105. package/dist/usecases/doctor.js.map +1 -1
  106. package/dist/usecases/ingest/command.d.ts +2 -2
  107. package/dist/usecases/ingest/command.js +22 -5
  108. package/dist/usecases/ingest/command.js.map +1 -1
  109. package/dist/usecases/ingest/pass5-extract.js +5 -4
  110. package/dist/usecases/ingest/pass5-extract.js.map +1 -1
  111. package/dist/usecases/ingest/pass5-govern.js +13 -11
  112. package/dist/usecases/ingest/pass5-govern.js.map +1 -1
  113. package/dist/usecases/ingest/pipeline.js +19 -16
  114. package/dist/usecases/ingest/pipeline.js.map +1 -1
  115. package/dist/usecases/ingest/serial-govern.js +5 -4
  116. package/dist/usecases/ingest/serial-govern.js.map +1 -1
  117. package/dist/usecases/ingest/status.d.ts +2 -2
  118. package/dist/usecases/ingest/status.js +1 -1
  119. package/dist/usecases/ingest/status.js.map +1 -1
  120. package/dist/usecases/ingest/video-pipeline.js +23 -17
  121. package/dist/usecases/ingest/video-pipeline.js.map +1 -1
  122. package/dist/usecases/ingest/view-command.d.ts +2 -2
  123. package/dist/usecases/ingest/view-command.js +7 -6
  124. package/dist/usecases/ingest/view-command.js.map +1 -1
  125. package/dist/usecases/ingest/view-server.d.ts +2 -2
  126. package/dist/usecases/ingest/view-server.js +7 -5
  127. package/dist/usecases/ingest/view-server.js.map +1 -1
  128. package/dist/usecases/script/actions.d.ts +2 -2
  129. package/dist/usecases/script/actions.js +12 -13
  130. package/dist/usecases/script/actions.js.map +1 -1
  131. package/dist/usecases/script/actor.d.ts +2 -2
  132. package/dist/usecases/script/actor.js +3 -4
  133. package/dist/usecases/script/actor.js.map +1 -1
  134. package/dist/usecases/script/actors.d.ts +2 -2
  135. package/dist/usecases/script/actors.js +5 -5
  136. package/dist/usecases/script/actors.js.map +1 -1
  137. package/dist/usecases/script/add-actor.d.ts +2 -2
  138. package/dist/usecases/script/add-episode.d.ts +2 -2
  139. package/dist/usecases/script/add-location.d.ts +2 -2
  140. package/dist/usecases/script/add-prop.d.ts +2 -2
  141. package/dist/usecases/script/alias.d.ts +2 -2
  142. package/dist/usecases/script/alias.js +6 -8
  143. package/dist/usecases/script/alias.js.map +1 -1
  144. package/dist/usecases/script/assets.d.ts +2 -2
  145. package/dist/usecases/script/assets.js +15 -7
  146. package/dist/usecases/script/assets.js.map +1 -1
  147. package/dist/usecases/script/audit-assets.d.ts +2 -2
  148. package/dist/usecases/script/audit-assets.js +12 -15
  149. package/dist/usecases/script/audit-assets.js.map +1 -1
  150. package/dist/usecases/script/command-constraints.js +17 -18
  151. package/dist/usecases/script/command-constraints.js.map +1 -1
  152. package/dist/usecases/script/context.d.ts +2 -2
  153. package/dist/usecases/script/context.js +3 -4
  154. package/dist/usecases/script/context.js.map +1 -1
  155. package/dist/usecases/script/create.d.ts +2 -2
  156. package/dist/usecases/script/create.js +3 -4
  157. package/dist/usecases/script/create.js.map +1 -1
  158. package/dist/usecases/script/delete.d.ts +2 -2
  159. package/dist/usecases/script/delete.js +9 -12
  160. package/dist/usecases/script/delete.js.map +1 -1
  161. package/dist/usecases/script/describe.d.ts +2 -2
  162. package/dist/usecases/script/describe.js +6 -8
  163. package/dist/usecases/script/describe.js.map +1 -1
  164. package/dist/usecases/script/dialogue.d.ts +2 -2
  165. package/dist/usecases/script/dialogue.js +5 -6
  166. package/dist/usecases/script/dialogue.js.map +1 -1
  167. package/dist/usecases/script/do.d.ts +2 -2
  168. package/dist/usecases/script/do.js +63 -66
  169. package/dist/usecases/script/do.js.map +1 -1
  170. package/dist/usecases/script/emotion.d.ts +2 -2
  171. package/dist/usecases/script/emotion.js +3 -3
  172. package/dist/usecases/script/emotion.js.map +1 -1
  173. package/dist/usecases/script/episodes.d.ts +2 -2
  174. package/dist/usecases/script/episodes.js +5 -5
  175. package/dist/usecases/script/episodes.js.map +1 -1
  176. package/dist/usecases/script/export-authoring.d.ts +2 -2
  177. package/dist/usecases/script/export-authoring.js +26 -29
  178. package/dist/usecases/script/export-authoring.js.map +1 -1
  179. package/dist/usecases/script/extend.d.ts +2 -2
  180. package/dist/usecases/script/extend.js +22 -18
  181. package/dist/usecases/script/extend.js.map +1 -1
  182. package/dist/usecases/script/ids.d.ts +2 -2
  183. package/dist/usecases/script/ids.js +21 -17
  184. package/dist/usecases/script/ids.js.map +1 -1
  185. package/dist/usecases/script/importance.d.ts +2 -2
  186. package/dist/usecases/script/importance.js +3 -4
  187. package/dist/usecases/script/importance.js.map +1 -1
  188. package/dist/usecases/script/insert.d.ts +2 -2
  189. package/dist/usecases/script/insert.js +8 -10
  190. package/dist/usecases/script/insert.js.map +1 -1
  191. package/dist/usecases/script/issues.d.ts +2 -2
  192. package/dist/usecases/script/issues.js +10 -2
  193. package/dist/usecases/script/issues.js.map +1 -1
  194. package/dist/usecases/script/lib.d.ts +15 -9
  195. package/dist/usecases/script/lib.js +226 -166
  196. package/dist/usecases/script/lib.js.map +1 -1
  197. package/dist/usecases/script/locations.d.ts +2 -2
  198. package/dist/usecases/script/locations.js +5 -5
  199. package/dist/usecases/script/locations.js.map +1 -1
  200. package/dist/usecases/script/merge.d.ts +2 -2
  201. package/dist/usecases/script/merge.js +9 -12
  202. package/dist/usecases/script/merge.js.map +1 -1
  203. package/dist/usecases/script/move.d.ts +2 -2
  204. package/dist/usecases/script/move.js +6 -8
  205. package/dist/usecases/script/move.js.map +1 -1
  206. package/dist/usecases/script/parenthetical.d.ts +2 -2
  207. package/dist/usecases/script/parenthetical.js +9 -12
  208. package/dist/usecases/script/parenthetical.js.map +1 -1
  209. package/dist/usecases/script/props.d.ts +2 -2
  210. package/dist/usecases/script/props.js +5 -5
  211. package/dist/usecases/script/props.js.map +1 -1
  212. package/dist/usecases/script/refs.d.ts +2 -2
  213. package/dist/usecases/script/refs.js +23 -17
  214. package/dist/usecases/script/refs.js.map +1 -1
  215. package/dist/usecases/script/rename.d.ts +2 -2
  216. package/dist/usecases/script/rename.js +6 -8
  217. package/dist/usecases/script/rename.js.map +1 -1
  218. package/dist/usecases/script/replace.d.ts +2 -2
  219. package/dist/usecases/script/replace.js +6 -8
  220. package/dist/usecases/script/replace.js.map +1 -1
  221. package/dist/usecases/script/role.d.ts +2 -2
  222. package/dist/usecases/script/role.js +3 -4
  223. package/dist/usecases/script/role.js.map +1 -1
  224. package/dist/usecases/script/scenes.d.ts +2 -2
  225. package/dist/usecases/script/scenes.js +7 -5
  226. package/dist/usecases/script/scenes.js.map +1 -1
  227. package/dist/usecases/script/script-patch.d.ts +2 -2
  228. package/dist/usecases/script/script-patch.js +95 -112
  229. package/dist/usecases/script/script-patch.js.map +1 -1
  230. package/dist/usecases/script/script-validate.d.ts +2 -2
  231. package/dist/usecases/script/script-validate.js +11 -7
  232. package/dist/usecases/script/script-validate.js.map +1 -1
  233. package/dist/usecases/script/session.js +52 -63
  234. package/dist/usecases/script/session.js.map +1 -1
  235. package/dist/usecases/script/split.d.ts +2 -2
  236. package/dist/usecases/script/split.js +6 -8
  237. package/dist/usecases/script/split.js.map +1 -1
  238. package/dist/usecases/script/state-add.d.ts +2 -2
  239. package/dist/usecases/script/state-add.js +3 -4
  240. package/dist/usecases/script/state-add.js.map +1 -1
  241. package/dist/usecases/script/state-delete.d.ts +2 -2
  242. package/dist/usecases/script/state-delete.js +3 -4
  243. package/dist/usecases/script/state-delete.js.map +1 -1
  244. package/dist/usecases/script/state-rename.d.ts +2 -2
  245. package/dist/usecases/script/state-rename.js +3 -4
  246. package/dist/usecases/script/state-rename.js.map +1 -1
  247. package/dist/usecases/script/states.d.ts +2 -2
  248. package/dist/usecases/script/states.js +54 -27
  249. package/dist/usecases/script/states.js.map +1 -1
  250. package/dist/usecases/script/summary.d.ts +2 -2
  251. package/dist/usecases/script/summary.js +21 -2
  252. package/dist/usecases/script/summary.js.map +1 -1
  253. package/dist/usecases/script/synopsis-generate.d.ts +2 -2
  254. package/dist/usecases/script/synopsis-generate.js +38 -39
  255. package/dist/usecases/script/synopsis-generate.js.map +1 -1
  256. package/dist/usecases/script/synopsis.d.ts +2 -2
  257. package/dist/usecases/script/synopsis.js +9 -12
  258. package/dist/usecases/script/synopsis.js.map +1 -1
  259. package/dist/usecases/script/transition.d.ts +2 -2
  260. package/dist/usecases/script/transition.js +3 -4
  261. package/dist/usecases/script/transition.js.map +1 -1
  262. package/dist/usecases/script/type.d.ts +2 -2
  263. package/dist/usecases/script/type.js +3 -4
  264. package/dist/usecases/script/type.js.map +1 -1
  265. package/dist/usecases/script/v4/queries.d.ts +3 -2
  266. package/dist/usecases/script/v4/queries.js +43 -6
  267. package/dist/usecases/script/v4/queries.js.map +1 -1
  268. package/dist/usecases/script/working-copy.d.ts +4 -4
  269. package/dist/usecases/script/working-copy.js +96 -92
  270. package/dist/usecases/script/working-copy.js.map +1 -1
  271. package/dist/usecases/script/worldview.d.ts +2 -2
  272. package/dist/usecases/script/worldview.js +3 -4
  273. package/dist/usecases/script/worldview.js.map +1 -1
  274. package/dist/usecases/script/write-authoring.d.ts +2 -2
  275. package/dist/usecases/script/write-authoring.js +62 -81
  276. package/dist/usecases/script/write-authoring.js.map +1 -1
  277. package/dist/usecases/update.d.ts +2 -2
  278. package/dist/usecases/update.js +32 -47
  279. package/dist/usecases/update.js.map +1 -1
  280. package/package.json +1 -1
  281. package/skills/scriptctl/SKILL.md +46 -37
  282. package/skills/scriptctl/references/atomic-edit-workflow.md +6 -6
  283. package/skills/scriptctl/references/ingest-workflow.md +20 -20
  284. package/skills/scriptctl/references/state-reference-repair.md +6 -6
  285. package/dist/help-text.d.ts +0 -2
  286. package/dist/help-text.js +0 -1144
  287. package/dist/help-text.js.map +0 -1
@@ -12,12 +12,14 @@ import { applyAuthoringV4, } from "../../domain/authoring/v4/apply.js";
12
12
  import { assertLocalFileFingerprint, assertScriptUnchanged, atomicWriteJson, localFileFingerprint, semanticScriptHash, } from "../../infra/script-working-copy.js";
13
13
  import { strOf } from "../../domain/script/shared.js";
14
14
  function usage(message, received) {
15
- throw new CliError("AUTHORING BLOCKED: invalid invocation", message, {
15
+ throw new CliError(message, {
16
16
  exitCode: EXIT_USAGE,
17
17
  errorCode: "AUTHORING_USAGE_INVALID",
18
- required: ["scriptctl write <file> (--create|--replace) [--apply --plan <digest>]"],
19
- received,
20
- nextSteps: ["Choose exactly one mode and pass a regular authoring source file."],
18
+ hint: "Choose exactly one mode and pass a regular authoring source file.",
19
+ data: {
20
+ expected: ["scriptctl write <file> (--create|--replace) [--apply --plan <digest>]"],
21
+ actual: received,
22
+ },
21
23
  });
22
24
  }
23
25
  function readSource(rawPath) {
@@ -29,11 +31,11 @@ function readSource(rawPath) {
29
31
  stat = fs.statSync(absolutePath);
30
32
  }
31
33
  catch {
32
- throw new CliError("AUTHORING BLOCKED: source unavailable", "The authoring source file does not exist.", {
34
+ throw new CliError("The authoring source file does not exist.", {
33
35
  exitCode: EXIT_INPUT,
34
36
  errorCode: "AUTHORING_SOURCE_UNAVAILABLE",
35
- received: [absolutePath],
36
- nextSteps: ["Write the complete authoring draft to a file, then rerun the command."],
37
+ hint: "Write the complete authoring draft to a file, then rerun the command.",
38
+ data: { actual: [absolutePath] },
37
39
  });
38
40
  }
39
41
  if (!stat.isFile())
@@ -50,11 +52,11 @@ function readCurrent(scriptPath) {
50
52
  parsed = JSON.parse(fs.readFileSync(scriptPath, "utf-8"));
51
53
  }
52
54
  catch (error) {
53
- throw new CliError("AUTHORING BLOCKED: local script unreadable", "The local script is not valid JSON.", {
55
+ throw new CliError("The local script is not valid JSON.", {
54
56
  exitCode: EXIT_INPUT,
55
57
  errorCode: "SCRIPT_JSON_INVALID",
56
- received: [scriptPath, error instanceof Error ? error.message : String(error)],
57
- nextSteps: ["Repair the local JSON file, then rerun authoring."],
58
+ hint: "Repair the local JSON file, then rerun authoring.",
59
+ data: { actual: [scriptPath, error instanceof Error ? error.message : String(error)] },
58
60
  });
59
61
  }
60
62
  const script = requireScriptDocument(parsed);
@@ -138,12 +140,11 @@ function commandWriteAuthoringV4(opts, source, mode, scriptPath, current) {
138
140
  if (!apply && suppliedPlan)
139
141
  usage("--plan is only valid together with --apply.", [`plan=${suppliedPlan}`]);
140
142
  if (apply && suppliedPlan !== digest) {
141
- throw new CliError("AUTHORING BLOCKED: plan mismatch", "The supplied plan does not match the current source, mode, targets, or script baseline.", {
143
+ throw new CliError("The supplied plan does not match the current source, mode, targets, or script baseline.", {
142
144
  exitCode: EXIT_INPUT,
143
145
  errorCode: "AUTHORING_PLAN_MISMATCH",
144
- required: [digest],
145
- received: [suppliedPlan],
146
- nextSteps: ["Review the newly computed plan, then apply its exact digest."],
146
+ hint: "Review the newly computed plan, then apply its exact digest.",
147
+ data: { expected: [digest], actual: [suppliedPlan] },
147
148
  });
148
149
  }
149
150
  if (apply && proposed.changed) {
@@ -155,38 +156,29 @@ function commandWriteAuthoringV4(opts, source, mode, scriptPath, current) {
155
156
  }
156
157
  const resultLines = proposed.targets.map((target, index) => `target[${index}]=${target.address} kind=${target.kind} before=${JSON.stringify(target.before)} after=${JSON.stringify(target.after)} retained=${JSON.stringify(target.retainedIds)} created=${JSON.stringify(target.createdIds)} removed=${JSON.stringify(target.removedIds)} untouched_siblings=${target.untouchedSiblings}`);
157
158
  resultLines.push(`created_assets=${JSON.stringify(proposed.declarations.createdAssets)}`, `existing_assets=${JSON.stringify(proposed.declarations.existingAssets)}`, `created_states=${JSON.stringify(proposed.declarations.createdStates)}`, `existing_states=${JSON.stringify(proposed.declarations.existingStates)}`, `retained_orphan_assets=${JSON.stringify(proposed.retainedOrphanAssets)}`, `created_ids=${JSON.stringify(proposed.identity.createdIds)}`, `removed_ids=${JSON.stringify(proposed.identity.removedIds)}`, `retained_ids=${JSON.stringify(proposed.identity.retainedIds)}`);
159
+ const summary = `${apply ? "Applied" : "Planned"} ${proposed.targets.length} ${document.targetKind} target(s); validation ${proposed.validation.ok ? "passed" : "needs repair"}`;
158
160
  const report = {
159
- title: apply ? "AUTHORING APPLIED" : "AUTHORING PLAN",
160
- op: "write",
161
- changed: proposed.changed,
162
- result: [
163
- `mode=${mode}`,
164
- `target_kind=${document.targetKind}`,
165
- `targets=${proposed.targets.length}`,
166
- `source_digest=${sourceDigest}`,
167
- `baseline=${current.baseline}`,
168
- `plan_digest=${digest}`,
169
- `applied=${apply}`,
170
- ...resultLines,
171
- `validation_ok=${proposed.validation.ok}`,
172
- ],
173
- artifacts: apply && proposed.changed ? [scriptPath] : [source.absolutePath],
174
- source_path: source.absolutePath,
175
- source_digest: sourceDigest,
176
- script_path: scriptPath,
177
- baseline: current.baseline,
178
- script_hash: current.baseline === "missing" ? null : current.baseline,
179
- plan_digest: digest,
180
- plan: identity.plan,
181
- mode,
182
- target_kind: document.targetKind,
183
- targets: proposed.targets,
184
- declarations: proposed.declarations,
185
- retained_orphan_assets: proposed.retainedOrphanAssets,
186
- identity: proposed.identity,
187
- validation: proposed.validation,
188
- applied: apply,
189
- script_version: 4,
161
+ text: [summary, `plan: ${digest}`, ...resultLines].join("\n"),
162
+ data: {
163
+ op: "write",
164
+ changed: proposed.changed,
165
+ source_path: source.absolutePath,
166
+ source_digest: sourceDigest,
167
+ script_path: scriptPath,
168
+ baseline: current.baseline,
169
+ script_hash: current.baseline === "missing" ? null : current.baseline,
170
+ plan_digest: digest,
171
+ plan: identity.plan,
172
+ mode,
173
+ target_kind: document.targetKind,
174
+ targets: proposed.targets,
175
+ declarations: proposed.declarations,
176
+ retained_orphan_assets: proposed.retainedOrphanAssets,
177
+ identity: proposed.identity,
178
+ validation: proposed.validation,
179
+ applied: apply,
180
+ script_version: 4,
181
+ },
190
182
  };
191
183
  return [report, EXIT_OK];
192
184
  }
@@ -225,12 +217,11 @@ export function commandWriteAuthoring(opts) {
225
217
  if (!apply && suppliedPlan)
226
218
  usage("--plan is only valid together with --apply.", [`plan=${suppliedPlan}`]);
227
219
  if (apply && suppliedPlan !== digest) {
228
- throw new CliError("AUTHORING BLOCKED: plan mismatch", "The supplied plan does not match the current source, mode, targets, or script baseline.", {
220
+ throw new CliError("The supplied plan does not match the current source, mode, targets, or script baseline.", {
229
221
  exitCode: EXIT_INPUT,
230
222
  errorCode: "AUTHORING_PLAN_MISMATCH",
231
- required: [digest],
232
- received: [suppliedPlan],
233
- nextSteps: ["Review the newly computed plan, then apply its exact digest."],
223
+ hint: "Review the newly computed plan, then apply its exact digest.",
224
+ data: { expected: [digest], actual: [suppliedPlan] },
234
225
  });
235
226
  }
236
227
  if (apply && proposed.changed) {
@@ -241,39 +232,29 @@ export function commandWriteAuthoring(opts) {
241
232
  atomicWriteJson(scriptPath, proposed.script);
242
233
  }
243
234
  const counts = totals(proposed);
235
+ const summary = `${apply ? "Applied" : "Planned"} ${proposed.targets.length} ${document.targetKind} target(s); episodes ${counts.before.episodes}→${counts.after.episodes}, scenes ${counts.before.scenes}→${counts.after.scenes}, actions ${counts.before.actions}→${counts.after.actions}`;
244
236
  const report = {
245
- title: apply ? "AUTHORING APPLIED" : "AUTHORING PLAN",
246
- op: "write",
247
- changed: proposed.changed,
248
- result: [
249
- `mode=${mode}`,
250
- `target_kind=${document.targetKind}`,
251
- `targets=${proposed.targets.length}`,
252
- `episodes=${counts.before.episodes}->${counts.after.episodes}`,
253
- `scenes=${counts.before.scenes}->${counts.after.scenes}`,
254
- `actions=${counts.before.actions}->${counts.after.actions}`,
255
- `source_digest=${sourceDigest}`,
256
- `baseline=${current.baseline}`,
257
- `plan_digest=${digest}`,
258
- `applied=${apply}`,
259
- ...targetResultLines(proposed),
260
- ],
261
- artifacts: apply && proposed.changed ? [scriptPath] : [source.absolutePath],
262
- source_path: source.absolutePath,
263
- source_digest: sourceDigest,
264
- script_path: scriptPath,
265
- baseline: current.baseline,
266
- script_hash: current.baseline === "missing" ? null : current.baseline,
267
- plan_digest: digest,
268
- plan: identity.plan,
269
- mode,
270
- target_kind: document.targetKind,
271
- targets: proposed.targets,
272
- declarations: proposed.declarations,
273
- counts,
274
- validation: proposed.validation,
275
- retained_orphan_assets: proposed.retainedOrphanAssets,
276
- applied: apply,
237
+ text: [summary, `plan: ${digest}`, ...targetResultLines(proposed)].join("\n"),
238
+ data: {
239
+ op: "write",
240
+ changed: proposed.changed,
241
+ source_path: source.absolutePath,
242
+ source_digest: sourceDigest,
243
+ script_path: scriptPath,
244
+ baseline: current.baseline,
245
+ script_hash: current.baseline === "missing" ? null : current.baseline,
246
+ plan_digest: digest,
247
+ plan: identity.plan,
248
+ mode,
249
+ target_kind: document.targetKind,
250
+ targets: proposed.targets,
251
+ declarations: proposed.declarations,
252
+ counts,
253
+ validation: proposed.validation,
254
+ retained_orphan_assets: proposed.retainedOrphanAssets,
255
+ applied: apply,
256
+ script_version: 3,
257
+ },
277
258
  };
278
259
  return [report, EXIT_OK];
279
260
  }
@@ -1 +1 @@
1
- {"version":3,"file":"write-authoring.js","sourceRoot":"","sources":["../../../src/usecases/script/write-authoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-authoring.js","sourceRoot":"","sources":["../../../src/usecases/script/write-authoring.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Report } from "../common.js";
1
+ import { type CommandOutput } from "../common.js";
2
2
  export declare function patchPackageSpec(version: string): string | null;
3
3
  export interface UpdateRunResult {
4
4
  exitCode: number | null;
@@ -10,4 +10,4 @@ export interface UpdateRunResult {
10
10
  export type UpdateRunner = (command: string, args: readonly string[]) => Promise<UpdateRunResult>;
11
11
  export type InstalledVersionReader = () => string;
12
12
  export declare function runUpdateCommand(command: string, args: readonly string[]): Promise<UpdateRunResult>;
13
- export declare function commandUpdate(opts: Record<string, unknown>, runner?: UpdateRunner, readVersion?: InstalledVersionReader): Promise<[Report, number]>;
13
+ export declare function commandUpdate(opts: Record<string, unknown>, runner?: UpdateRunner, readVersion?: InstalledVersionReader): Promise<[CommandOutput, number]>;
@@ -2,7 +2,7 @@ import { spawn } from "node:child_process";
2
2
  import * as fs from "node:fs";
3
3
  import * as path from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
- import { EXIT_OK, EXIT_RUNTIME } from "../common.js";
5
+ import { CliError, EXIT_OK, EXIT_RUNTIME } from "../common.js";
6
6
  const UPDATE_PACKAGE = "@lingjingai/scriptctl";
7
7
  const UPDATE_LATEST_SPEC = `${UPDATE_PACKAGE}@latest`;
8
8
  const UPDATE_COMMAND = "npm";
@@ -75,15 +75,12 @@ export async function commandUpdate(opts, runner = runUpdateCommand, readVersion
75
75
  ? patchPackageSpec(currentVersion)
76
76
  : UPDATE_LATEST_SPEC;
77
77
  if (!packageSpec) {
78
- return [{
79
- title: "UPDATE FAILED: invalid package version",
80
- op: "update",
81
- changed: false,
82
- message: "Cannot compute a patch update range from the installed version.",
83
- issues: [`version: ${currentVersion}`],
84
- error_code: "UPDATE_VERSION_INVALID",
85
- next: ["Use `scriptctl update` to update to the latest package."],
86
- }, EXIT_RUNTIME];
78
+ throw new CliError(`Cannot compute a patch update range from version ${currentVersion}.`, {
79
+ exitCode: EXIT_RUNTIME,
80
+ errorCode: "UPDATE_VERSION_INVALID",
81
+ hint: "Run `scriptctl update` without --patch to install the latest version.",
82
+ data: { version: currentVersion },
83
+ });
87
84
  }
88
85
  const args = [...updateArgs(packageSpec)];
89
86
  const line = commandLine(UPDATE_COMMAND, args);
@@ -96,60 +93,48 @@ export async function commandUpdate(opts, runner = runUpdateCommand, readVersion
96
93
  };
97
94
  if (Boolean(opts["dry_run"])) {
98
95
  return [{
99
- title: "UPDATE DRY-RUN",
100
- op: "update",
101
- changed: false,
102
- result: [
96
+ text: [
103
97
  `package: ${UPDATE_PACKAGE}`,
104
98
  `command: ${line}`,
105
99
  "dry-run: no update performed",
106
- ],
107
- update,
108
- next: ["Run `scriptctl update` to update the installed package."],
100
+ ].join("\n"),
101
+ data: { op: "update", changed: false, update },
109
102
  }, EXIT_OK];
110
103
  }
111
104
  const result = await runner(UPDATE_COMMAND, args);
112
105
  if (result.error) {
113
- return [{
114
- title: "UPDATE FAILED: package manager unavailable",
115
- op: "update",
116
- changed: false,
117
- message: "Failed to start npm.",
118
- result: [`command: ${line}`],
119
- issues: [result.error.message],
120
- update,
121
- error_code: "UPDATE_SPAWN_FAILED",
122
- next: ["Install npm, then rerun: scriptctl update"],
123
- }, EXIT_RUNTIME];
106
+ throw new CliError(`Failed to start npm: ${result.error.message}`, {
107
+ exitCode: EXIT_RUNTIME,
108
+ errorCode: "UPDATE_SPAWN_FAILED",
109
+ hint: `Run '${line}' after fixing the npm installation.`,
110
+ data: { update, cause: result.error.message },
111
+ });
124
112
  }
125
113
  if (result.exitCode !== EXIT_OK) {
126
114
  const issues = [
127
115
  `exit: ${result.exitCode === null ? `signal ${result.signal ?? "unknown"}` : String(result.exitCode)}`,
128
116
  ...nonEmptyTail(result.stderr, 5).map((line) => `stderr: ${line}`),
129
117
  ];
130
- return [{
131
- title: "UPDATE FAILED: package manager exited non-zero",
132
- op: "update",
133
- changed: false,
134
- message: "npm could not update scriptctl.",
135
- result: [`command: ${line}`],
136
- issues,
137
- update,
138
- error_code: "UPDATE_COMMAND_FAILED",
139
- next: ["Inspect the npm error above, fix the global install environment, then rerun: scriptctl update"],
140
- }, EXIT_RUNTIME];
118
+ throw new CliError("npm could not update scriptctl.", {
119
+ exitCode: EXIT_RUNTIME,
120
+ errorCode: "UPDATE_COMMAND_FAILED",
121
+ hint: `Run '${line}' after resolving the npm error.`,
122
+ data: { update, actual: issues },
123
+ });
141
124
  }
142
125
  const installedVersion = readVersion();
143
126
  const changed = installedVersion !== currentVersion;
144
127
  return [{
145
- title: changed
146
- ? `UPDATED ${currentVersion} → ${installedVersion}`
147
- : `ALREADY LATEST ${installedVersion}`,
148
- op: "update",
149
- changed,
150
- status: changed ? "updated" : "already_latest",
151
- previous_version: currentVersion,
152
- version: installedVersion,
128
+ text: changed
129
+ ? `Updated ${currentVersion} → ${installedVersion}.`
130
+ : `Already up to date (${installedVersion}).`,
131
+ data: {
132
+ op: "update",
133
+ changed,
134
+ status: changed ? "updated" : "already_latest",
135
+ previous_version: currentVersion,
136
+ version: installedVersion,
137
+ },
153
138
  }, EXIT_OK];
154
139
  }
155
140
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/usecases/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,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,YAAY,EAAe,MAAM,cAAc,CAAC;AAElE,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,kBAAkB,GAAG,GAAG,cAAc,SAAS,CAAC;AACtD,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B,SAAS,WAAW;IAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,GAAG,GAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACpG,IACE,OAAO,GAAG,KAAK,QAAQ;WACpB,GAAG,KAAK,IAAI;WACZ,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;WACnB,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAClC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,WAAmB;IACrC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACxC,CAAC;AAiBD,SAAS,WAAW,CAAC,OAAe,EAAE,IAAuB;IAC3D,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,MAAM,KAAK,GAAG,IAAI;SACf,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,IAAuB;IACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;YACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5B,OAAO,CAAC;gBACN,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,KAAK;aACN,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YACvC,OAAO,CAAC;gBACN,QAAQ;gBACR,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAA6B,EAC7B,SAAuB,gBAAgB,EACvC,cAAsC,oBAAoB;IAE1D,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,WAAW,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK;QACvB,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC;QAClC,CAAC,CAAC,kBAAkB,CAAC;IACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC;gBACN,KAAK,EAAE,wCAAwC;gBAC/C,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,iEAAiE;gBAC1E,MAAM,EAAE,CAAC,YAAY,cAAc,EAAE,CAAC;gBACtC,UAAU,EAAE,wBAAwB;gBACpC,IAAI,EAAE,CAAC,yDAAyD,CAAC;aAClE,EAAE,YAAY,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,cAAc;QACvB,YAAY,EAAE,WAAW;QACzB,OAAO,EAAE,cAAc;QACvB,IAAI;QACJ,YAAY,EAAE,IAAI;KACnB,CAAC;IAEF,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC;gBACN,KAAK,EAAE,gBAAgB;gBACvB,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE;oBACN,YAAY,cAAc,EAAE;oBAC5B,YAAY,IAAI,EAAE;oBAClB,8BAA8B;iBAC/B;gBACD,MAAM;gBACN,IAAI,EAAE,CAAC,yDAAyD,CAAC;aAClE,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC;gBACN,KAAK,EAAE,4CAA4C;gBACnD,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC5B,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC9B,MAAM;gBACN,UAAU,EAAE,qBAAqB;gBACjC,IAAI,EAAE,CAAC,2CAA2C,CAAC;aACpD,EAAE,YAAY,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG;YACb,SAAS,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YACtG,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC;SACnE,CAAC;QACF,OAAO,CAAC;gBACN,KAAK,EAAE,gDAAgD;gBACvD,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,iCAAiC;gBAC1C,MAAM,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC5B,MAAM;gBACN,MAAM;gBACN,UAAU,EAAE,uBAAuB;gBACnC,IAAI,EAAE,CAAC,+FAA+F,CAAC;aACxG,EAAE,YAAY,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,WAAW,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,gBAAgB,KAAK,cAAc,CAAC;IACpD,OAAO,CAAC;YACN,KAAK,EAAE,OAAO;gBACZ,CAAC,CAAC,WAAW,cAAc,MAAM,gBAAgB,EAAE;gBACnD,CAAC,CAAC,kBAAkB,gBAAgB,EAAE;YACxC,EAAE,EAAE,QAAQ;YACZ,OAAO;YACP,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB;YAC9C,gBAAgB,EAAE,cAAc;YAChC,OAAO,EAAE,gBAAgB;SAC1B,EAAE,OAAO,CAAC,CAAC;AACd,CAAC"}
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.50.0",
3
+ "version": "0.51.1",
4
4
  "description": "剧本阶段统一 CLI:素材转 Script v4,并兼容 Script v3 的本地写作、精修、校验和发布。",
5
5
  "type": "module",
6
6
  "bin": {
@@ -2,16 +2,19 @@
2
2
  name: scriptctl
3
3
  description: "剧本 script.json 的本地查询、文件化批量写作、原子精修、素材 ingest 与 revision publish CLI。处理 Script v3/v4、两个 script.json、剧本资产/state、Action、场景引用或 authoring 时使用。"
4
4
  metadata:
5
- version: "0.26.0"
6
- scriptctl_version: "0.49.16"
5
+ version: "0.27.1"
6
+ scriptctl_version: "0.51.1"
7
7
  author: "official"
8
8
  ---
9
9
 
10
10
  # scriptctl
11
11
 
12
- `scriptctl` 始终对 `--script-path` 指向的本地 `script.json` 工作。远端剧本先
12
+ `scriptctl` 始终对 `-p` 指向的本地 `script.json` 工作。远端剧本先
13
13
  `checkout`,完成本地查询、修改和 `validate` 后再 `publish`。
14
14
 
15
+ 实际调用和示例优先使用短参数:`-p/-w/-s/-o/-i/-g/-t/-a/-k/-n/-j/-h/-v`。
16
+ 没有短名的参数保持完整长写。
17
+
15
18
  ## 先识别版本
16
19
 
17
20
  读取 `script.json.version`:
@@ -29,7 +32,7 @@ metadata:
29
32
  4. **建立真实场并绑定资产**:完整 scene 显式声明本场地点、全部人物、全部道具及其实际 state。V4 同一资产只出现一条场景引用,完整状态写入无序 `state_ids` 集合;V3 按其既有单状态引用结构处理。
30
33
  5. **写入或标准化正文**:从零、续写和连续正文修改使用 `.scriptctl` authoring 文件;已有目标先 `export`,再执行 `write` plan/apply。ingest 先完成抽取,大块标准化修改同样走 export/write。发现新资产或新 state 时,先补入 `<create>` 和 scene 引用,再继续正文。
31
34
  6. **逐场复核**:每批正文落盘后读回 `scenes / actions`;一集完成后运行 `validate`。`validate` 通过只代表结构与引用合法,仍需完成内容标准和源素材一致性复核。
32
- 7. **全剧资产审计**:全剧完成后运行 `audit-assets --script-path <file>`,检查人物身份重复、同义视觉状态、未使用/落单状态,以及重复地点和道具资产。审计只给建议,不自动合并;必须核对剧情、身份、外观和跨集连续性后再修复。
35
+ 7. **全剧资产审计**:全剧完成后运行 `audit-assets -p <file>`,检查人物身份重复、同义视觉状态、未使用/落单状态,以及重复地点和道具资产。审计只给建议,不自动合并;必须核对剧情、身份、外观和跨集连续性后再修复。
33
36
 
34
37
  ## 三条工作流
35
38
 
@@ -44,25 +47,31 @@ metadata:
44
47
  ## 本地文件边界
45
48
 
46
49
  - 普通命令默认读取 `<cwd>/workspace/script.json`;操作其他文件时始终显式传
47
- `--script-path <file>`。
48
- - `--workspace-path` 只属于 `ingest`、`ingest status` 和 `view`。
49
- - 同时处理原剧与目标剧时,每条命令都显式带对应 `--script-path`,只从原剧读,
50
+ `-p <file>`。
51
+ - `-w` 只属于 `ingest`、`ingest status` 和 `view`。
52
+ - 同时处理原剧与目标剧时,每条命令都显式带对应 `-p`,只从原剧读,
50
53
  只向目标剧写。
51
54
  - `checkout` 不覆盖未管理文件或本地修改;`publish` 按工作副本 revision 严格写入。
52
55
 
53
56
  ## 查询与定位
54
57
 
58
+ 默认文本查询输出 TSV。需要结构化数据时使用 `-j`:顶层固定包含
59
+ `ok`、`exit_code`,表格数据位于 `rows`,列顺序位于 `row_columns`。地址流使用
60
+ `--format addr`。写命令的 JSON 使用 `op`、`changed`、`plan_digest`、
61
+ `validation`、`script_path` 等命令自身字段,不包含展示用的标题或结果区块。
62
+ JSON 错误包含 `error_code`、`message` 和可选 `hint`。
63
+
55
64
  常用查询:
56
65
 
57
66
  ```bash
58
- scriptctl summary --script-path "$SCRIPT"
59
- scriptctl episodes --script-path "$SCRIPT"
60
- scriptctl scenes --in '@ep:3' --script-path "$SCRIPT"
61
- scriptctl actions --grep "台下掌声" --script-path "$SCRIPT"
62
- scriptctl actors --counts --script-path "$SCRIPT"
63
- scriptctl states actA3kP9x --script-path "$SCRIPT"
64
- scriptctl refs actA3kP9x/stB4xR8p --script-path "$SCRIPT"
65
- scriptctl validate --script-path "$SCRIPT"
67
+ scriptctl summary -p "$SCRIPT"
68
+ scriptctl episodes -p "$SCRIPT"
69
+ scriptctl scenes -i '@ep:3' -p "$SCRIPT"
70
+ scriptctl actions -g "台下掌声" -p "$SCRIPT"
71
+ scriptctl actors --counts -p "$SCRIPT"
72
+ scriptctl states actA3kP9x -p "$SCRIPT"
73
+ scriptctl refs actA3kP9x/stB4xR8p -p "$SCRIPT"
74
+ scriptctl validate -p "$SCRIPT"
66
75
  ```
67
76
 
68
77
  序号锚点是 1-based 查询语法:
@@ -80,18 +89,18 @@ scriptctl validate --script-path "$SCRIPT"
80
89
  |---|---|
81
90
  | **了解剧情 / 全貌**:synopsis/worldview/style/logline/theme/main_characters + 标题/集数/场数/资产数("这剧本是关于什么"先跑这个) | `scriptctl summary` |
82
91
  | 每集字数 / 场数 / action 数 **+ 每集剧情梗概** | `scriptctl episodes`(`--min-chars 1000` 找长集) |
83
- | 看某集的所有场(含 `t=t_start..t_end` 时段) | `scriptctl scenes --in '@ep:7'` |
84
- | 看某场的资产 + action 数 | `scriptctl scenes --in '@ep:7/scn:5'` |
85
- | **按正文搜某句话定位 action**(最常用) | `scriptctl actions --grep "<片段>"` |
86
- | 列某集所有 action(含 timestamp / speaker / 正文 /表演提示) | `scriptctl actions --in '@ep:1'` |
87
- | 看单条 action 正文 | `scriptctl actions --in '@ep:1/scn:1/ac:3'` |
88
- | action 多维过滤 | `scriptctl actions --in '@ep:1' --type dialogue --actor <actor-id> --has speaker` |
92
+ | 看某集的所有场(含 `t=t_start..t_end` 时段) | `scriptctl scenes -i '@ep:7'` |
93
+ | 看某场的资产 + action 数 | `scriptctl scenes -i '@ep:7/scn:5'` |
94
+ | **按正文搜某句话定位 action**(最常用) | `scriptctl actions -g "<片段>"` |
95
+ | 列某集所有 action(含 timestamp / speaker / 正文 /表演提示) | `scriptctl actions -i '@ep:1'` |
96
+ | 看单条 action 正文 | `scriptctl actions -i '@ep:1/scn:1/ac:3'` |
97
+ | action 多维过滤 | `scriptctl actions -i '@ep:1' -t dialogue -a <actor-id> --has speaker` |
89
98
  | 某角色出现的所有场 | `scriptctl scenes --has-actor <actor-id>`(另有 `--has-location`/`--has-prop`) |
90
99
  | **列某资产的所有 state + 状态弧线**(改造型前必查) | `scriptctl states <asset-id>` |
91
100
  | 资产**出场统计**(几场/几集,压成集区间) | `scriptctl actors --counts` / `locations --counts` / `props --counts` |
92
101
  | 某资产 / 状态反查 | `scriptctl refs <asset-id>` / `scriptctl refs <asset-id>/<state-id>` |
93
102
  | 当前校验问题 / 跑校验 | `scriptctl issues --severity error` / `scriptctl validate` |
94
- | 全剧人物/状态/地点/道具去重审计 | `scriptctl audit-assets --script-path workspace/script.json` |
103
+ | 全剧人物/状态/地点/道具去重审计 | `scriptctl audit-assets -p workspace/script.json` |
95
104
 
96
105
  ## Script v4 写入
97
106
 
@@ -104,18 +113,18 @@ ep…… scn…… ac…… act…… loc…… prp…… st……
104
113
  `ids` 只生成候选,不预留:
105
114
 
106
115
  ```bash
107
- scriptctl ids --kind action --count 4
108
- scriptctl ids --kind scene --count 2 --script-path "$SCRIPT"
116
+ scriptctl ids -k action --count 4
117
+ scriptctl ids -k scene --count 2 -p "$SCRIPT"
109
118
  ```
110
119
 
111
120
  单点修改使用正式 ID:
112
121
 
113
122
  ```bash
114
- scriptctl replace acR8cV4n --from "旧句" --to "新句" --script-path "$SCRIPT"
115
- scriptctl parenthetical acT2fG6z --set "低声" --script-path "$SCRIPT"
116
- scriptctl parenthetical acT2fG6z --set "" --script-path "$SCRIPT"
117
- scriptctl parenthetical acT2fG6z --remove --script-path "$SCRIPT"
118
- scriptctl dialogue acT2fG6z --actor actA3kP9x --state stB4xR8p --script-path "$SCRIPT"
123
+ scriptctl replace acR8cV4n --from "旧句" --to "新句" -p "$SCRIPT"
124
+ scriptctl parenthetical acT2fG6z --set "低声" -p "$SCRIPT"
125
+ scriptctl parenthetical acT2fG6z --set "" -p "$SCRIPT"
126
+ scriptctl parenthetical acT2fG6z --remove -p "$SCRIPT"
127
+ scriptctl dialogue acT2fG6z -a actA3kP9x --state stB4xR8p -p "$SCRIPT"
119
128
  ```
120
129
 
121
130
  `parenthetical` 只属于 dialogue / inner_thought。字段省略表示没有表演提示;显式
@@ -125,7 +134,7 @@ V4 placement 使用父节点与相邻节点 ID:
125
134
 
126
135
  ```bash
127
136
  scriptctl insert scnK6wT3c --action-id acD4eF6g \
128
- --type action --content "陈默关上门。" --before acT2fG6z
137
+ -t action --content "陈默关上门。" --before acT2fG6z
129
138
  scriptctl move acD4eF6g scnH7jK9m --after acR8cV4n
130
139
  scriptctl split scnK6wT3c --at acT2fG6z --new-scene-id scnD4eF6g
131
140
  ```
@@ -137,8 +146,8 @@ V4 一个场景内同一资产只引用一次;引用携带完整、非空的 `
137
146
 
138
147
  ```bash
139
148
  scriptctl scene-ref scnK6wT3c actA3kP9x \
140
- --state default --state stB4xR8p --script-path "$SCRIPT"
141
- scriptctl scene-ref scnK6wT3c actA3kP9x --remove --script-path "$SCRIPT"
149
+ --state default --state stB4xR8p -p "$SCRIPT"
150
+ scriptctl scene-ref scnK6wT3c actA3kP9x --remove -p "$SCRIPT"
142
151
  ```
143
152
 
144
153
  actor speaker 可选一个 state;若指定,必须属于该 actor 在当前 scene 的
@@ -147,10 +156,10 @@ actor speaker 可选一个 state;若指定,必须属于该 actor 在当前 s
147
156
  state 修改前后都反查并校验:
148
157
 
149
158
  ```bash
150
- scriptctl refs actA3kP9x/stB4xR8p --script-path "$SCRIPT"
159
+ scriptctl refs actA3kP9x/stB4xR8p -p "$SCRIPT"
151
160
  scriptctl state-delete actA3kP9x/stB4xR8p \
152
- --strategy replace --replacement default --script-path "$SCRIPT"
153
- scriptctl validate --script-path "$SCRIPT"
161
+ --strategy replace --replacement default -p "$SCRIPT"
162
+ scriptctl validate -p "$SCRIPT"
154
163
  ```
155
164
 
156
165
  详见 [references/state-reference-repair.md](references/state-reference-repair.md)。
@@ -173,8 +182,8 @@ scriptctl scene-ref ep_001/scn_003 actor:act_001 --state st_002
173
182
  V4 单个明确 ID 的原子修改直接执行。任何单事务多点修改先生成完整计划:
174
183
 
175
184
  ```bash
176
- scriptctl replace --in 'acR8cV4n..acT2fG6z' --from "。" --to "!"
177
- scriptctl replace --in 'acR8cV4n..acT2fG6z' --from "。" --to "!" \
185
+ scriptctl replace -i 'acR8cV4n..acT2fG6z' --from "。" --to "!"
186
+ scriptctl replace -i 'acR8cV4n..acT2fG6z' --from "。" --to "!" \
178
187
  --apply --plan sha256:...
179
188
 
180
189
  scriptctl do edits.txt