@lingjingai/scriptctl 0.49.15 → 0.50.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 (390) hide show
  1. package/README.md +8 -2
  2. package/changes/0.49.16.md +15 -0
  3. package/changes/0.50.0.md +63 -0
  4. package/changes/unreleased.md +2 -1
  5. package/dist/cli.js +26 -5
  6. package/dist/cli.js.map +1 -1
  7. package/dist/domain/authoring/apply.d.ts +1 -33
  8. package/dist/domain/authoring/apply.js +1 -783
  9. package/dist/domain/authoring/apply.js.map +1 -1
  10. package/dist/domain/authoring/export.d.ts +1 -7
  11. package/dist/domain/authoring/export.js +1 -84
  12. package/dist/domain/authoring/export.js.map +1 -1
  13. package/dist/domain/authoring/parser.d.ts +2 -3
  14. package/dist/domain/authoring/parser.js +2 -914
  15. package/dist/domain/authoring/parser.js.map +1 -1
  16. package/dist/domain/authoring/serializer.d.ts +1 -2
  17. package/dist/domain/authoring/serializer.js +1 -243
  18. package/dist/domain/authoring/serializer.js.map +1 -1
  19. package/dist/domain/authoring/shared/bracket.d.ts +4 -0
  20. package/dist/domain/authoring/shared/bracket.js +95 -0
  21. package/dist/domain/authoring/shared/bracket.js.map +1 -0
  22. package/dist/domain/authoring/shared/types.d.ts +12 -0
  23. package/dist/domain/authoring/shared/types.js +2 -0
  24. package/dist/domain/authoring/shared/types.js.map +1 -0
  25. package/dist/domain/authoring/types.d.ts +2 -87
  26. package/dist/domain/authoring/types.js +2 -1
  27. package/dist/domain/authoring/types.js.map +1 -1
  28. package/dist/domain/authoring/v3/apply.d.ts +33 -0
  29. package/dist/domain/authoring/v3/apply.js +784 -0
  30. package/dist/domain/authoring/v3/apply.js.map +1 -0
  31. package/dist/domain/authoring/v3/export.d.ts +7 -0
  32. package/dist/domain/authoring/v3/export.js +85 -0
  33. package/dist/domain/authoring/v3/export.js.map +1 -0
  34. package/dist/domain/authoring/v3/parser.d.ts +3 -0
  35. package/dist/domain/authoring/v3/parser.js +823 -0
  36. package/dist/domain/authoring/v3/parser.js.map +1 -0
  37. package/dist/domain/authoring/v3/serializer.d.ts +2 -0
  38. package/dist/domain/authoring/v3/serializer.js +244 -0
  39. package/dist/domain/authoring/v3/serializer.js.map +1 -0
  40. package/dist/domain/authoring/v3/types.d.ts +76 -0
  41. package/dist/domain/authoring/v3/types.js +2 -0
  42. package/dist/domain/authoring/v3/types.js.map +1 -0
  43. package/dist/domain/authoring/v4/apply.d.ts +40 -0
  44. package/dist/domain/authoring/v4/apply.js +451 -0
  45. package/dist/domain/authoring/v4/apply.js.map +1 -0
  46. package/dist/domain/authoring/v4/parser.d.ts +2 -0
  47. package/dist/domain/authoring/v4/parser.js +729 -0
  48. package/dist/domain/authoring/v4/parser.js.map +1 -0
  49. package/dist/domain/authoring/v4/serializer.d.ts +6 -0
  50. package/dist/domain/authoring/v4/serializer.js +280 -0
  51. package/dist/domain/authoring/v4/serializer.js.map +1 -0
  52. package/dist/domain/authoring/v4/types.d.ts +50 -0
  53. package/dist/domain/authoring/v4/types.js +2 -0
  54. package/dist/domain/authoring/v4/types.js.map +1 -0
  55. package/dist/domain/ingest/apply-plan.d.ts +1 -1
  56. package/dist/domain/ingest/assembler.d.ts +9 -0
  57. package/dist/domain/ingest/assembler.js +98 -36
  58. package/dist/domain/ingest/assembler.js.map +1 -1
  59. package/dist/domain/ingest/asset-audit.d.ts +50 -0
  60. package/dist/domain/ingest/asset-audit.js +196 -0
  61. package/dist/domain/ingest/asset-audit.js.map +1 -0
  62. package/dist/domain/ingest/production-validation.d.ts +5 -4
  63. package/dist/domain/ingest/production-validation.js +10 -25
  64. package/dist/domain/ingest/production-validation.js.map +1 -1
  65. package/dist/domain/ingest/records.d.ts +1 -1
  66. package/dist/domain/ingest/records.js +1 -1
  67. package/dist/domain/ingest/records.js.map +1 -1
  68. package/dist/domain/ingest/serial-context.d.ts +1 -1
  69. package/dist/domain/ingest/validation.d.ts +1 -11
  70. package/dist/domain/ingest/validation.js +1 -199
  71. package/dist/domain/ingest/validation.js.map +1 -1
  72. package/dist/domain/ingest/video-apply.js +68 -45
  73. package/dist/domain/ingest/video-apply.js.map +1 -1
  74. package/dist/domain/script/address.d.ts +1 -32
  75. package/dist/domain/script/address.js +1 -144
  76. package/dist/domain/script/address.js.map +1 -1
  77. package/dist/domain/script/dispatch.d.ts +14 -0
  78. package/dist/domain/script/dispatch.js +47 -0
  79. package/dist/domain/script/dispatch.js.map +1 -0
  80. package/dist/domain/script/lookups.d.ts +1 -33
  81. package/dist/domain/script/lookups.js +1 -316
  82. package/dist/domain/script/lookups.js.map +1 -1
  83. package/dist/domain/script/parse.d.ts +1 -3
  84. package/dist/domain/script/parse.js +1 -164
  85. package/dist/domain/script/parse.js.map +1 -1
  86. package/dist/domain/script/patch/apply.d.ts +1 -2
  87. package/dist/domain/script/patch/apply.js +1 -30
  88. package/dist/domain/script/patch/apply.js.map +1 -1
  89. package/dist/domain/script/patch/helpers.d.ts +1 -17
  90. package/dist/domain/script/patch/helpers.js +1 -210
  91. package/dist/domain/script/patch/helpers.js.map +1 -1
  92. package/dist/domain/script/patch/inline-speaker.d.ts +1 -2
  93. package/dist/domain/script/patch/inline-speaker.js +1 -49
  94. package/dist/domain/script/patch/inline-speaker.js.map +1 -1
  95. package/dist/domain/script/patch/ops-action.d.ts +1 -12
  96. package/dist/domain/script/patch/ops-action.js +1 -366
  97. package/dist/domain/script/patch/ops-action.js.map +1 -1
  98. package/dist/domain/script/patch/ops-asset.d.ts +1 -14
  99. package/dist/domain/script/patch/ops-asset.js +1 -364
  100. package/dist/domain/script/patch/ops-asset.js.map +1 -1
  101. package/dist/domain/script/patch/ops-dialogue.d.ts +1 -2
  102. package/dist/domain/script/patch/ops-dialogue.js +1 -25
  103. package/dist/domain/script/patch/ops-dialogue.js.map +1 -1
  104. package/dist/domain/script/patch/ops-extend.d.ts +1 -8
  105. package/dist/domain/script/patch/ops-extend.js +1 -110
  106. package/dist/domain/script/patch/ops-extend.js.map +1 -1
  107. package/dist/domain/script/patch/ops-meta.d.ts +1 -5
  108. package/dist/domain/script/patch/ops-meta.js +1 -81
  109. package/dist/domain/script/patch/ops-meta.js.map +1 -1
  110. package/dist/domain/script/patch/ops-scene.d.ts +1 -6
  111. package/dist/domain/script/patch/ops-scene.js +1 -350
  112. package/dist/domain/script/patch/ops-scene.js.map +1 -1
  113. package/dist/domain/script/patch/ops-state.d.ts +1 -8
  114. package/dist/domain/script/patch/ops-state.js +1 -164
  115. package/dist/domain/script/patch/ops-state.js.map +1 -1
  116. package/dist/domain/script/patch/registry.d.ts +1 -2
  117. package/dist/domain/script/patch/registry.js +1 -52
  118. package/dist/domain/script/patch/registry.js.map +1 -1
  119. package/dist/domain/script/patch/types.d.ts +1 -10
  120. package/dist/domain/script/patch/types.js +1 -1
  121. package/dist/domain/script/patch/types.js.map +1 -1
  122. package/dist/domain/script/refs.d.ts +1 -4
  123. package/dist/domain/script/refs.js +1 -63
  124. package/dist/domain/script/refs.js.map +1 -1
  125. package/dist/domain/script/scene-refs.d.ts +1 -3
  126. package/dist/domain/script/scene-refs.js +1 -34
  127. package/dist/domain/script/scene-refs.js.map +1 -1
  128. package/dist/domain/script/schema.d.ts +1 -6
  129. package/dist/domain/script/schema.js +1 -55
  130. package/dist/domain/script/schema.js.map +1 -1
  131. package/dist/domain/script/selector.d.ts +1 -45
  132. package/dist/domain/script/selector.js +1 -184
  133. package/dist/domain/script/selector.js.map +1 -1
  134. package/dist/domain/script/shared/regex.d.ts +2 -0
  135. package/dist/domain/script/shared/regex.js +7 -0
  136. package/dist/domain/script/shared/regex.js.map +1 -0
  137. package/dist/domain/script/shared/types.d.ts +18 -0
  138. package/dist/domain/script/shared/types.js +9 -0
  139. package/dist/domain/script/shared/types.js.map +1 -0
  140. package/dist/domain/script/shared/validation.d.ts +10 -0
  141. package/dist/domain/script/shared/validation.js +2 -0
  142. package/dist/domain/script/shared/validation.js.map +1 -0
  143. package/dist/domain/script/types.d.ts +1 -123
  144. package/dist/domain/script/types.js +1 -8
  145. package/dist/domain/script/types.js.map +1 -1
  146. package/dist/domain/script/v3/address.d.ts +32 -0
  147. package/dist/domain/script/v3/address.js +145 -0
  148. package/dist/domain/script/v3/address.js.map +1 -0
  149. package/dist/domain/script/v3/lookups.d.ts +33 -0
  150. package/dist/domain/script/v3/lookups.js +317 -0
  151. package/dist/domain/script/v3/lookups.js.map +1 -0
  152. package/dist/domain/script/v3/ordinal.d.ts +8 -0
  153. package/dist/domain/script/v3/ordinal.js +92 -0
  154. package/dist/domain/script/v3/ordinal.js.map +1 -0
  155. package/dist/domain/script/v3/parse.d.ts +3 -0
  156. package/dist/domain/script/v3/parse.js +165 -0
  157. package/dist/domain/script/v3/parse.js.map +1 -0
  158. package/dist/domain/script/v3/patch/apply.d.ts +2 -0
  159. package/dist/domain/script/v3/patch/apply.js +31 -0
  160. package/dist/domain/script/v3/patch/apply.js.map +1 -0
  161. package/dist/domain/script/v3/patch/helpers.d.ts +17 -0
  162. package/dist/domain/script/v3/patch/helpers.js +211 -0
  163. package/dist/domain/script/v3/patch/helpers.js.map +1 -0
  164. package/dist/domain/script/v3/patch/inline-speaker.d.ts +2 -0
  165. package/dist/domain/script/v3/patch/inline-speaker.js +50 -0
  166. package/dist/domain/script/v3/patch/inline-speaker.js.map +1 -0
  167. package/dist/domain/script/v3/patch/ops-action.d.ts +12 -0
  168. package/dist/domain/script/v3/patch/ops-action.js +367 -0
  169. package/dist/domain/script/v3/patch/ops-action.js.map +1 -0
  170. package/dist/domain/script/v3/patch/ops-asset.d.ts +14 -0
  171. package/dist/domain/script/v3/patch/ops-asset.js +365 -0
  172. package/dist/domain/script/v3/patch/ops-asset.js.map +1 -0
  173. package/dist/domain/script/v3/patch/ops-dialogue.d.ts +2 -0
  174. package/dist/domain/script/v3/patch/ops-dialogue.js +26 -0
  175. package/dist/domain/script/v3/patch/ops-dialogue.js.map +1 -0
  176. package/dist/domain/script/v3/patch/ops-extend.d.ts +8 -0
  177. package/dist/domain/script/v3/patch/ops-extend.js +111 -0
  178. package/dist/domain/script/v3/patch/ops-extend.js.map +1 -0
  179. package/dist/domain/script/v3/patch/ops-meta.d.ts +5 -0
  180. package/dist/domain/script/v3/patch/ops-meta.js +82 -0
  181. package/dist/domain/script/v3/patch/ops-meta.js.map +1 -0
  182. package/dist/domain/script/v3/patch/ops-scene.d.ts +6 -0
  183. package/dist/domain/script/v3/patch/ops-scene.js +351 -0
  184. package/dist/domain/script/v3/patch/ops-scene.js.map +1 -0
  185. package/dist/domain/script/v3/patch/ops-state.d.ts +8 -0
  186. package/dist/domain/script/v3/patch/ops-state.js +165 -0
  187. package/dist/domain/script/v3/patch/ops-state.js.map +1 -0
  188. package/dist/domain/script/v3/patch/registry.d.ts +2 -0
  189. package/dist/domain/script/v3/patch/registry.js +53 -0
  190. package/dist/domain/script/v3/patch/registry.js.map +1 -0
  191. package/dist/domain/script/v3/patch/types.d.ts +10 -0
  192. package/dist/domain/script/v3/patch/types.js +2 -0
  193. package/dist/domain/script/v3/patch/types.js.map +1 -0
  194. package/dist/domain/script/v3/refs.d.ts +4 -0
  195. package/dist/domain/script/v3/refs.js +64 -0
  196. package/dist/domain/script/v3/refs.js.map +1 -0
  197. package/dist/domain/script/v3/scene-refs.d.ts +3 -0
  198. package/dist/domain/script/v3/scene-refs.js +35 -0
  199. package/dist/domain/script/v3/scene-refs.js.map +1 -0
  200. package/dist/domain/script/v3/schema.d.ts +6 -0
  201. package/dist/domain/script/v3/schema.js +56 -0
  202. package/dist/domain/script/v3/schema.js.map +1 -0
  203. package/dist/domain/script/v3/selector.d.ts +44 -0
  204. package/dist/domain/script/v3/selector.js +180 -0
  205. package/dist/domain/script/v3/selector.js.map +1 -0
  206. package/dist/domain/script/v3/types.d.ts +106 -0
  207. package/dist/domain/script/v3/types.js +2 -0
  208. package/dist/domain/script/v3/types.js.map +1 -0
  209. package/dist/domain/script/v3/validation.d.ts +3 -0
  210. package/dist/domain/script/v3/validation.js +200 -0
  211. package/dist/domain/script/v3/validation.js.map +1 -0
  212. package/dist/domain/script/v4/address.d.ts +61 -0
  213. package/dist/domain/script/v4/address.js +100 -0
  214. package/dist/domain/script/v4/address.js.map +1 -0
  215. package/dist/domain/script/v4/factory.d.ts +2 -0
  216. package/dist/domain/script/v4/factory.js +13 -0
  217. package/dist/domain/script/v4/factory.js.map +1 -0
  218. package/dist/domain/script/v4/from-v3.d.ts +29 -0
  219. package/dist/domain/script/v4/from-v3.js +307 -0
  220. package/dist/domain/script/v4/from-v3.js.map +1 -0
  221. package/dist/domain/script/v4/ids.d.ts +27 -0
  222. package/dist/domain/script/v4/ids.js +63 -0
  223. package/dist/domain/script/v4/ids.js.map +1 -0
  224. package/dist/domain/script/v4/ordinal.d.ts +3 -0
  225. package/dist/domain/script/v4/ordinal.js +67 -0
  226. package/dist/domain/script/v4/ordinal.js.map +1 -0
  227. package/dist/domain/script/v4/parse.d.ts +3 -0
  228. package/dist/domain/script/v4/parse.js +18 -0
  229. package/dist/domain/script/v4/parse.js.map +1 -0
  230. package/dist/domain/script/v4/patch/apply.d.ts +3 -0
  231. package/dist/domain/script/v4/patch/apply.js +24 -0
  232. package/dist/domain/script/v4/patch/apply.js.map +1 -0
  233. package/dist/domain/script/v4/patch/helpers.d.ts +32 -0
  234. package/dist/domain/script/v4/patch/helpers.js +139 -0
  235. package/dist/domain/script/v4/patch/helpers.js.map +1 -0
  236. package/dist/domain/script/v4/patch/ops-action.d.ts +13 -0
  237. package/dist/domain/script/v4/patch/ops-action.js +379 -0
  238. package/dist/domain/script/v4/patch/ops-action.js.map +1 -0
  239. package/dist/domain/script/v4/patch/ops-asset.d.ts +17 -0
  240. package/dist/domain/script/v4/patch/ops-asset.js +617 -0
  241. package/dist/domain/script/v4/patch/ops-asset.js.map +1 -0
  242. package/dist/domain/script/v4/patch/ops-extend.d.ts +11 -0
  243. package/dist/domain/script/v4/patch/ops-extend.js +86 -0
  244. package/dist/domain/script/v4/patch/ops-extend.js.map +1 -0
  245. package/dist/domain/script/v4/patch/ops-meta.d.ts +5 -0
  246. package/dist/domain/script/v4/patch/ops-meta.js +49 -0
  247. package/dist/domain/script/v4/patch/ops-meta.js.map +1 -0
  248. package/dist/domain/script/v4/patch/ops-scene-ref.d.ts +3 -0
  249. package/dist/domain/script/v4/patch/ops-scene-ref.js +98 -0
  250. package/dist/domain/script/v4/patch/ops-scene-ref.js.map +1 -0
  251. package/dist/domain/script/v4/patch/ops-structure.d.ts +6 -0
  252. package/dist/domain/script/v4/patch/ops-structure.js +236 -0
  253. package/dist/domain/script/v4/patch/ops-structure.js.map +1 -0
  254. package/dist/domain/script/v4/patch/registry.d.ts +2 -0
  255. package/dist/domain/script/v4/patch/registry.js +50 -0
  256. package/dist/domain/script/v4/patch/registry.js.map +1 -0
  257. package/dist/domain/script/v4/patch/schema.d.ts +7 -0
  258. package/dist/domain/script/v4/patch/schema.js +75 -0
  259. package/dist/domain/script/v4/patch/schema.js.map +1 -0
  260. package/dist/domain/script/v4/patch/types.d.ts +10 -0
  261. package/dist/domain/script/v4/patch/types.js +2 -0
  262. package/dist/domain/script/v4/patch/types.js.map +1 -0
  263. package/dist/domain/script/v4/selector.d.ts +11 -0
  264. package/dist/domain/script/v4/selector.js +125 -0
  265. package/dist/domain/script/v4/selector.js.map +1 -0
  266. package/dist/domain/script/v4/types.d.ts +120 -0
  267. package/dist/domain/script/v4/types.js +2 -0
  268. package/dist/domain/script/v4/types.js.map +1 -0
  269. package/dist/domain/script/v4/validation.d.ts +2 -0
  270. package/dist/domain/script/v4/validation.js +378 -0
  271. package/dist/domain/script/v4/validation.js.map +1 -0
  272. package/dist/help-text.js +146 -114
  273. package/dist/help-text.js.map +1 -1
  274. package/dist/llm/config.js +2 -0
  275. package/dist/llm/config.js.map +1 -1
  276. package/dist/llm/registry.d.ts +1 -0
  277. package/dist/llm/registry.js +3 -0
  278. package/dist/llm/registry.js.map +1 -1
  279. package/dist/llm/tasks/ingest/asset-audit.d.ts +6 -0
  280. package/dist/llm/tasks/ingest/asset-audit.js +164 -0
  281. package/dist/llm/tasks/ingest/asset-audit.js.map +1 -0
  282. package/dist/llm/tasks/ingest/asset-curate.d.ts +1 -1
  283. package/dist/llm/types.d.ts +1 -1
  284. package/dist/llm/types.js.map +1 -1
  285. package/dist/usecases/ingest/command.js +1 -1
  286. package/dist/usecases/ingest/final-asset-audit.d.ts +39 -0
  287. package/dist/usecases/ingest/final-asset-audit.js +88 -0
  288. package/dist/usecases/ingest/final-asset-audit.js.map +1 -0
  289. package/dist/usecases/ingest/pipeline.js +62 -11
  290. package/dist/usecases/ingest/pipeline.js.map +1 -1
  291. package/dist/usecases/ingest/serial-govern.d.ts +2 -1
  292. package/dist/usecases/ingest/serial-govern.js +11 -4
  293. package/dist/usecases/ingest/serial-govern.js.map +1 -1
  294. package/dist/usecases/ingest/video-pipeline.js +100 -14
  295. package/dist/usecases/ingest/video-pipeline.js.map +1 -1
  296. package/dist/usecases/ingest/view-server.js +2 -2
  297. package/dist/usecases/ingest/view-server.js.map +1 -1
  298. package/dist/usecases/script/actions.js +101 -5
  299. package/dist/usecases/script/actions.js.map +1 -1
  300. package/dist/usecases/script/actors.js +16 -7
  301. package/dist/usecases/script/actors.js.map +1 -1
  302. package/dist/usecases/script/alias.js +7 -6
  303. package/dist/usecases/script/alias.js.map +1 -1
  304. package/dist/usecases/script/assets.js +18 -2
  305. package/dist/usecases/script/assets.js.map +1 -1
  306. package/dist/usecases/script/audit-assets.d.ts +4 -0
  307. package/dist/usecases/script/audit-assets.js +40 -0
  308. package/dist/usecases/script/audit-assets.js.map +1 -0
  309. package/dist/usecases/script/command-constraints.d.ts +36 -0
  310. package/dist/usecases/script/command-constraints.js +115 -0
  311. package/dist/usecases/script/command-constraints.js.map +1 -0
  312. package/dist/usecases/script/context.js +31 -4
  313. package/dist/usecases/script/context.js.map +1 -1
  314. package/dist/usecases/script/create.js +2 -2
  315. package/dist/usecases/script/create.js.map +1 -1
  316. package/dist/usecases/script/delete.js +6 -3
  317. package/dist/usecases/script/delete.js.map +1 -1
  318. package/dist/usecases/script/describe.js +7 -4
  319. package/dist/usecases/script/describe.js.map +1 -1
  320. package/dist/usecases/script/dialogue.js +15 -5
  321. package/dist/usecases/script/dialogue.js.map +1 -1
  322. package/dist/usecases/script/dispatch.d.ts +3 -0
  323. package/dist/usecases/script/dispatch.js +10 -0
  324. package/dist/usecases/script/dispatch.js.map +1 -0
  325. package/dist/usecases/script/do.js +74 -11
  326. package/dist/usecases/script/do.js.map +1 -1
  327. package/dist/usecases/script/emotion.js +14 -3
  328. package/dist/usecases/script/emotion.js.map +1 -1
  329. package/dist/usecases/script/episodes.js +15 -4
  330. package/dist/usecases/script/episodes.js.map +1 -1
  331. package/dist/usecases/script/export-authoring.js +35 -11
  332. package/dist/usecases/script/export-authoring.js.map +1 -1
  333. package/dist/usecases/script/extend.js +23 -15
  334. package/dist/usecases/script/extend.js.map +1 -1
  335. package/dist/usecases/script/ids.js +53 -10
  336. package/dist/usecases/script/ids.js.map +1 -1
  337. package/dist/usecases/script/insert.js +74 -38
  338. package/dist/usecases/script/insert.js.map +1 -1
  339. package/dist/usecases/script/lib.d.ts +50 -1
  340. package/dist/usecases/script/lib.js +599 -61
  341. package/dist/usecases/script/lib.js.map +1 -1
  342. package/dist/usecases/script/locations.js +16 -7
  343. package/dist/usecases/script/locations.js.map +1 -1
  344. package/dist/usecases/script/merge.js +8 -5
  345. package/dist/usecases/script/merge.js.map +1 -1
  346. package/dist/usecases/script/move.js +24 -5
  347. package/dist/usecases/script/move.js.map +1 -1
  348. package/dist/usecases/script/parenthetical.d.ts +3 -0
  349. package/dist/usecases/script/parenthetical.js +55 -0
  350. package/dist/usecases/script/parenthetical.js.map +1 -0
  351. package/dist/usecases/script/props.js +16 -7
  352. package/dist/usecases/script/props.js.map +1 -1
  353. package/dist/usecases/script/refs.js +44 -0
  354. package/dist/usecases/script/refs.js.map +1 -1
  355. package/dist/usecases/script/rename.js +7 -4
  356. package/dist/usecases/script/rename.js.map +1 -1
  357. package/dist/usecases/script/scenes.js +32 -6
  358. package/dist/usecases/script/scenes.js.map +1 -1
  359. package/dist/usecases/script/script-patch.js +180 -16
  360. package/dist/usecases/script/script-patch.js.map +1 -1
  361. package/dist/usecases/script/session.d.ts +3 -0
  362. package/dist/usecases/script/session.js +25 -5
  363. package/dist/usecases/script/session.js.map +1 -1
  364. package/dist/usecases/script/split.js +12 -6
  365. package/dist/usecases/script/split.js.map +1 -1
  366. package/dist/usecases/script/states.js +45 -1
  367. package/dist/usecases/script/states.js.map +1 -1
  368. package/dist/usecases/script/synopsis.js +11 -4
  369. package/dist/usecases/script/synopsis.js.map +1 -1
  370. package/dist/usecases/script/v3/mutations.d.ts +2 -0
  371. package/dist/usecases/script/v3/mutations.js +5 -0
  372. package/dist/usecases/script/v3/mutations.js.map +1 -0
  373. package/dist/usecases/script/v4/mutations.d.ts +2 -0
  374. package/dist/usecases/script/v4/mutations.js +6 -0
  375. package/dist/usecases/script/v4/mutations.js.map +1 -0
  376. package/dist/usecases/script/v4/queries.d.ts +14 -0
  377. package/dist/usecases/script/v4/queries.js +154 -0
  378. package/dist/usecases/script/v4/queries.js.map +1 -0
  379. package/dist/usecases/script/working-copy.js +3 -3
  380. package/dist/usecases/script/working-copy.js.map +1 -1
  381. package/dist/usecases/script/write-authoring.js +99 -5
  382. package/dist/usecases/script/write-authoring.js.map +1 -1
  383. package/package.json +3 -2
  384. package/skills/scriptctl/SKILL.md +126 -283
  385. package/skills/scriptctl/references/atomic-edit-workflow.md +45 -0
  386. package/skills/scriptctl/references/bulk-authoring.md +35 -154
  387. package/skills/scriptctl/references/ingest-workflow.md +12 -11
  388. package/skills/scriptctl/references/production-writing-standard.md +38 -67
  389. package/skills/scriptctl/references/state-reference-repair.md +19 -42
  390. package/skills/scriptctl/references/atomic-write-workflow.md +0 -176
@@ -16,6 +16,13 @@ export function assemble(records, opts = {}) {
16
16
  let curScene = null;
17
17
  let epNo = 0;
18
18
  let scnNo = 0;
19
+ const identityOccurrences = new Map();
20
+ const sourceIdentityKey = (kind, source) => {
21
+ const base = `text:${kind}:${source.chunk}:${source.line_start}:${source.line_end}`;
22
+ const occurrence = (identityOccurrences.get(base) ?? 0) + 1;
23
+ identityOccurrences.set(base, occurrence);
24
+ return `${base}:${occurrence}`;
25
+ };
19
26
  const addActor = (scene, ref) => {
20
27
  const existing = scene.actors.find((a) => norm(a.name) === norm(ref.name));
21
28
  if (!existing)
@@ -27,7 +34,11 @@ export function assemble(records, opts = {}) {
27
34
  switch (rec.kind) {
28
35
  case "episode": {
29
36
  epNo++;
30
- curEpisode = { episode_id: `ep_${pad(epNo)}`, scenes: [] };
37
+ curEpisode = {
38
+ identity_key: sourceIdentityKey("episode", rec.source),
39
+ episode_id: `ep_${pad(epNo)}`,
40
+ scenes: [],
41
+ };
31
42
  if (rec.title !== undefined)
32
43
  curEpisode.title = rec.title;
33
44
  episodes.push(curEpisode);
@@ -40,11 +51,16 @@ export function assemble(records, opts = {}) {
40
51
  // screenplay that opens directly on a scene): auto-open episode 1 so
41
52
  // the content is kept and structured instead of crashing the ingest.
42
53
  epNo++;
43
- curEpisode = { episode_id: `ep_${pad(epNo)}`, scenes: [] };
54
+ curEpisode = {
55
+ identity_key: sourceIdentityKey("synthetic-episode", rec.source),
56
+ episode_id: `ep_${pad(epNo)}`,
57
+ scenes: [],
58
+ };
44
59
  episodes.push(curEpisode);
45
60
  }
46
61
  scnNo++;
47
62
  curScene = {
63
+ identity_key: sourceIdentityKey("scene", rec.source),
48
64
  scene_id: `scn_${pad(scnNo)}`,
49
65
  location: rec.location ? { ...rec.location } : null,
50
66
  actors: (rec.actors ?? []).map((a) => ({ ...a })),
@@ -68,7 +84,11 @@ export function assemble(records, opts = {}) {
68
84
  notes.push({ content: rec.content, category: "preamble", source: rec.source });
69
85
  break;
70
86
  }
71
- curScene.actions.push({ type: rec.kind, content: rec.content });
87
+ curScene.actions.push({
88
+ identity_key: sourceIdentityKey(rec.kind, rec.source),
89
+ type: rec.kind,
90
+ content: rec.content,
91
+ });
72
92
  break;
73
93
  }
74
94
  case "dialogue":
@@ -77,7 +97,12 @@ export function assemble(records, opts = {}) {
77
97
  notes.push({ content: rec.content, category: "preamble", source: rec.source });
78
98
  break;
79
99
  }
80
- const action = { type: rec.kind, content: rec.content, speaker: rec.speaker };
100
+ const action = {
101
+ identity_key: sourceIdentityKey(rec.kind, rec.source),
102
+ type: rec.kind,
103
+ content: rec.content,
104
+ speaker: rec.speaker,
105
+ };
81
106
  if (rec.emotion !== undefined)
82
107
  action.emotion = rec.emotion;
83
108
  curScene.actions.push(action);
@@ -139,6 +164,23 @@ export function assignProvisionalIds(name) {
139
164
  const actors = new Registry("act", "actor", nextStateId);
140
165
  const locations = new Registry("loc", "location", nextStateId);
141
166
  const props = new Registry("prp", "prop", nextStateId);
167
+ const identityKeys = {
168
+ episode: {},
169
+ scene: {},
170
+ action: {},
171
+ };
172
+ const seenIdentityKeys = {
173
+ episode: new Set(),
174
+ scene: new Set(),
175
+ action: new Set(),
176
+ };
177
+ const bindIdentity = (kind, address, identityKey) => {
178
+ if (!identityKey || seenIdentityKeys[kind].has(identityKey)) {
179
+ throw new Error(`Duplicate or missing ${kind} source identity: ${identityKey}`);
180
+ }
181
+ seenIdentityKeys[kind].add(identityKey);
182
+ identityKeys[kind][address] = identityKey;
183
+ };
142
184
  const idState = (reg, ref, occ, idKey) => {
143
185
  const a = reg.ensure(ref.name, occ);
144
186
  const out = { [idKey]: a.provisional_id };
@@ -146,38 +188,54 @@ export function assignProvisionalIds(name) {
146
188
  out.state_id = reg.stateId(a, ref.state);
147
189
  return out;
148
190
  };
149
- const episodes = name.episodes.map((ep, ei) => ({
150
- episode_id: ep.episode_id,
151
- ...(ep.title ? { title: ep.title } : {}),
152
- scenes: ep.scenes.map((sc, si) => {
153
- const occ = { episode: ei, scene: si };
154
- const location = sc.location ? idState(locations, sc.location, occ, "location_id") : null;
155
- const sceneActors = sc.actors.map((a) => idState(actors, a, occ, "actor_id"));
156
- const sceneProps = sc.props.map((p) => idState(props, p, occ, "prop_id"));
157
- const actions = sc.actions.map((ac) => {
158
- const out = { type: ac.type, content: ac.content };
159
- if (ac.speaker) {
160
- if ("name" in ac.speaker) {
161
- const a = actors.ensure(ac.speaker.name, occ);
162
- const sp = { actor_id: a.provisional_id };
163
- if (ac.speaker.state !== undefined)
164
- sp.state_id = actors.stateId(a, ac.speaker.state);
165
- out.speaker = sp;
191
+ const episodes = name.episodes.map((ep, ei) => {
192
+ bindIdentity("episode", ep.episode_id, ep.identity_key);
193
+ return {
194
+ episode_id: ep.episode_id,
195
+ ...(ep.title ? { title: ep.title } : {}),
196
+ scenes: ep.scenes.map((sc, si) => {
197
+ const sceneAddress = `${ep.episode_id}/${sc.scene_id}`;
198
+ bindIdentity("scene", sceneAddress, sc.identity_key);
199
+ const occ = { episode: ei, scene: si };
200
+ const location = sc.location ? idState(locations, sc.location, occ, "location_id") : null;
201
+ const sceneActors = sc.actors.map((a) => idState(actors, a, occ, "actor_id"));
202
+ const sceneProps = sc.props.map((p) => idState(props, p, occ, "prop_id"));
203
+ const actions = sc.actions.map((ac, actionIndex) => {
204
+ bindIdentity("action", `${sceneAddress}#${actionIndex}`, ac.identity_key);
205
+ const out = { type: ac.type, content: ac.content };
206
+ if (ac.speaker) {
207
+ if ("name" in ac.speaker) {
208
+ const a = actors.ensure(ac.speaker.name, occ);
209
+ const sp = { actor_id: a.provisional_id };
210
+ if (ac.speaker.state !== undefined)
211
+ sp.state_id = actors.stateId(a, ac.speaker.state);
212
+ out.speaker = sp;
213
+ }
214
+ else {
215
+ out.speaker = ac.speaker.label !== undefined
216
+ ? { kind: ac.speaker.kind, label: ac.speaker.label }
217
+ : { kind: ac.speaker.kind };
218
+ }
166
219
  }
167
- else
168
- out.speaker = ac.speaker.label !== undefined ? { kind: ac.speaker.kind, label: ac.speaker.label } : { kind: ac.speaker.kind };
169
- }
170
- if (ac.emotion !== undefined)
171
- out.emotion = ac.emotion;
172
- // Carry through free-form extend (e.g. video timestamps) so it survives
173
- // into the final v3 product; text ingest never sets it.
174
- if (ac.extend !== undefined)
175
- out.extend = ac.extend;
176
- return out;
177
- });
178
- return { scene_id: sc.scene_id, ...(sc.environment ? { environment: sc.environment } : {}), location, actors: sceneActors, props: sceneProps, actions };
179
- }),
180
- }));
220
+ if (ac.emotion !== undefined)
221
+ out.emotion = ac.emotion;
222
+ // Carry through free-form extend (e.g. video timestamps) so it survives
223
+ // into the final v3 product; text ingest never sets it.
224
+ if (ac.extend !== undefined)
225
+ out.extend = ac.extend;
226
+ return out;
227
+ });
228
+ return {
229
+ scene_id: sc.scene_id,
230
+ ...(sc.environment ? { environment: sc.environment } : {}),
231
+ location,
232
+ actors: sceneActors,
233
+ props: sceneProps,
234
+ actions,
235
+ };
236
+ }),
237
+ };
238
+ });
181
239
  const mkAssets = (reg, idKey, nameKey) => reg.list().map((a) => ({ [idKey]: a.provisional_id, [nameKey]: a.names[0] ?? a.provisional_id, aliases: a.names.slice(1), description: "", states: emitStates(a) }));
182
240
  const script = {
183
241
  version: 3,
@@ -189,6 +247,10 @@ export function assignProvisionalIds(name) {
189
247
  props: mkAssets(props, "prop_id", "prop_name"),
190
248
  episodes,
191
249
  };
192
- return { script, assets: [...actors.list(), ...locations.list(), ...props.list()] };
250
+ return {
251
+ script,
252
+ assets: [...actors.list(), ...locations.list(), ...props.list()],
253
+ identityKeys,
254
+ };
193
255
  }
194
256
  //# sourceMappingURL=assembler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assembler.js","sourceRoot":"","sources":["../../../src/domain/ingest/assembler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assembler.js","sourceRoot":"","sources":["../../../src/domain/ingest/assembler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export type AuditAssetKind = "actor" | "location" | "prop";
2
+ export type AssetAuditIssueType = "duplicate_actor" | "duplicate_location" | "duplicate_prop" | "duplicate_state" | "suspicious_singleton_state" | "unused_state" | "needs_human_review";
3
+ export type AssetAuditAction = "merge" | "delete" | "review";
4
+ export type AssetAuditConfidence = "high" | "medium" | "low";
5
+ export interface AssetAuditStateSnapshot {
6
+ address: string;
7
+ state_id: string;
8
+ state_name: string;
9
+ description: string;
10
+ format_key: string;
11
+ reference_count: number;
12
+ episode_count: number;
13
+ scene_count: number;
14
+ references: string[];
15
+ frequency_flag: "unused" | "singleton" | null;
16
+ }
17
+ export interface AssetAuditAssetSnapshot {
18
+ kind: AuditAssetKind;
19
+ id: string;
20
+ name: string;
21
+ aliases: string[];
22
+ description: string;
23
+ importance: string;
24
+ format_key: string;
25
+ alias_format_keys: string[];
26
+ reference_count: number;
27
+ episode_count: number;
28
+ scene_count: number;
29
+ references: string[];
30
+ states: AssetAuditStateSnapshot[];
31
+ }
32
+ export interface AssetAuditSnapshot {
33
+ title: string;
34
+ actors: AssetAuditAssetSnapshot[];
35
+ locations: AssetAuditAssetSnapshot[];
36
+ props: AssetAuditAssetSnapshot[];
37
+ }
38
+ export interface AssetAuditIssue {
39
+ type: AssetAuditIssueType;
40
+ asset_ids: string[];
41
+ state_ids: string[];
42
+ names: string[];
43
+ evidence: string;
44
+ recommendation: string;
45
+ suggested_survivor: string | null;
46
+ action: AssetAuditAction;
47
+ confidence: AssetAuditConfidence;
48
+ }
49
+ export declare function assetAuditFormatKey(value: string): string;
50
+ export declare function buildAssetAuditSnapshot(doc: unknown): AssetAuditSnapshot;
@@ -0,0 +1,196 @@
1
+ // Pure whole-script asset audit projection. The LLM never receives the full
2
+ // screenplay body: it gets one compact global roster with canonical names,
3
+ // aliases, descriptions, state usage counts and a few concrete references.
4
+ const isObj = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
5
+ const asArr = (value) => Array.isArray(value) ? value : [];
6
+ const asStr = (value) => typeof value === "string" ? value.trim() : "";
7
+ // Formatting-only key used as deterministic evidence, not as an identity
8
+ // verdict. It folds Unicode compatibility forms, case, whitespace, punctuation
9
+ // and separators (`林有粮` = `林 有粮`); semantic variants such as aliases,
10
+ // transcription mistakes and Simplified/Traditional forms remain for the model.
11
+ export function assetAuditFormatKey(value) {
12
+ return value.normalize("NFKC").toLowerCase().replace(/[\p{White_Space}\p{P}\p{S}]+/gu, "");
13
+ }
14
+ const KIND_META = {
15
+ actor: { list: "actors", id: "actor_id", name: "actor_name" },
16
+ location: { list: "locations", id: "location_id", name: "location_name" },
17
+ prop: { list: "props", id: "prop_id", name: "prop_name" },
18
+ };
19
+ const pushUnique = (list, value, limit = 8) => {
20
+ if (!value || list.includes(value) || list.length >= limit)
21
+ return;
22
+ list.push(value);
23
+ };
24
+ export function buildAssetAuditSnapshot(doc) {
25
+ const root = isObj(doc) ? doc : {};
26
+ const byKind = { actor: [], location: [], prop: [] };
27
+ const byId = new Map();
28
+ for (const kind of ["actor", "location", "prop"]) {
29
+ const meta = KIND_META[kind];
30
+ for (const raw of asArr(root[meta.list])) {
31
+ if (!isObj(raw))
32
+ continue;
33
+ const id = asStr(raw[meta.id]);
34
+ const name = asStr(raw[meta.name]);
35
+ if (!id)
36
+ continue;
37
+ const aliases = [...new Set(asArr(raw.aliases).map(asStr).filter(Boolean))];
38
+ const stateById = new Map();
39
+ const states = [];
40
+ for (const stateRaw of asArr(raw.states)) {
41
+ if (!isObj(stateRaw))
42
+ continue;
43
+ const stateId = asStr(stateRaw.state_id);
44
+ if (!stateId)
45
+ continue;
46
+ const stateName = asStr(stateRaw.state_name);
47
+ const state = {
48
+ address: `${id}/${stateId}`,
49
+ state_id: stateId,
50
+ state_name: stateName,
51
+ description: asStr(stateRaw.description),
52
+ format_key: assetAuditFormatKey(stateName),
53
+ reference_count: 0,
54
+ episode_count: 0,
55
+ scene_count: 0,
56
+ references: [],
57
+ frequency_flag: null,
58
+ episodeIds: new Set(),
59
+ sceneIds: new Set(),
60
+ };
61
+ states.push(state);
62
+ stateById.set(stateId, state);
63
+ }
64
+ const asset = {
65
+ kind,
66
+ id,
67
+ name,
68
+ aliases,
69
+ description: asStr(raw.description),
70
+ importance: asStr(raw.importance),
71
+ format_key: assetAuditFormatKey(name),
72
+ alias_format_keys: aliases.map(assetAuditFormatKey),
73
+ reference_count: 0,
74
+ episode_count: 0,
75
+ scene_count: 0,
76
+ references: [],
77
+ states,
78
+ episodeIds: new Set(),
79
+ sceneIds: new Set(),
80
+ stateById,
81
+ };
82
+ byKind[kind].push(asset);
83
+ byId.set(id, asset);
84
+ }
85
+ }
86
+ const stateIdsOf = (ref) => {
87
+ const plural = asArr(ref.state_ids).map(asStr).filter(Boolean);
88
+ if (plural.length > 0)
89
+ return [...new Set(plural)];
90
+ const singular = asStr(ref.state_id);
91
+ return singular ? [singular] : [];
92
+ };
93
+ const addReference = (kind, id, stateIds, episodeId, sceneId, addr) => {
94
+ const asset = byId.get(id);
95
+ if (!asset || asset.kind !== kind)
96
+ return;
97
+ asset.reference_count += 1;
98
+ asset.episodeIds.add(episodeId);
99
+ asset.sceneIds.add(`${episodeId}/${sceneId}`);
100
+ pushUnique(asset.references, addr);
101
+ const resolvedStateIds = stateIds.length > 0
102
+ ? stateIds
103
+ : asset.stateById.has("default")
104
+ ? ["default"]
105
+ : [];
106
+ for (const stateId of resolvedStateIds) {
107
+ const state = asset.stateById.get(stateId);
108
+ if (!state)
109
+ continue;
110
+ state.reference_count += 1;
111
+ state.episodeIds.add(episodeId);
112
+ state.sceneIds.add(`${episodeId}/${sceneId}`);
113
+ pushUnique(state.references, addr);
114
+ }
115
+ };
116
+ for (const episodeRaw of asArr(root.episodes)) {
117
+ if (!isObj(episodeRaw))
118
+ continue;
119
+ const episodeId = asStr(episodeRaw.episode_id) || "<episode>";
120
+ for (const sceneRaw of asArr(episodeRaw.scenes)) {
121
+ if (!isObj(sceneRaw))
122
+ continue;
123
+ const sceneId = asStr(sceneRaw.scene_id) || "<scene>";
124
+ const sceneAddr = `${episodeId}/${sceneId}`;
125
+ if (isObj(sceneRaw.location)) {
126
+ addReference("location", asStr(sceneRaw.location.location_id), stateIdsOf(sceneRaw.location), episodeId, sceneId, `${sceneAddr}.location`);
127
+ }
128
+ for (const ref of asArr(sceneRaw.actors)) {
129
+ if (isObj(ref)) {
130
+ addReference("actor", asStr(ref.actor_id), stateIdsOf(ref), episodeId, sceneId, `${sceneAddr}.actors`);
131
+ }
132
+ }
133
+ for (const ref of asArr(sceneRaw.props)) {
134
+ if (isObj(ref)) {
135
+ addReference("prop", asStr(ref.prop_id), stateIdsOf(ref), episodeId, sceneId, `${sceneAddr}.props`);
136
+ }
137
+ }
138
+ asArr(sceneRaw.actions).forEach((actionRaw, actionIndex) => {
139
+ if (!isObj(actionRaw) || !isObj(actionRaw.speaker))
140
+ return;
141
+ const actorId = asStr(actionRaw.speaker.actor_id);
142
+ if (actorId) {
143
+ addReference("actor", actorId, stateIdsOf(actionRaw.speaker), episodeId, sceneId, `${sceneAddr}#${actionIndex + 1}.speaker`);
144
+ }
145
+ });
146
+ }
147
+ }
148
+ const finish = (asset) => {
149
+ asset.episode_count = asset.episodeIds.size;
150
+ asset.scene_count = asset.sceneIds.size;
151
+ for (const state of asset.states) {
152
+ state.episode_count = state.episodeIds.size;
153
+ state.scene_count = state.sceneIds.size;
154
+ state.frequency_flag = state.state_id === "default"
155
+ ? null
156
+ : state.scene_count === 0
157
+ ? "unused"
158
+ : state.scene_count === 1
159
+ ? "singleton"
160
+ : null;
161
+ }
162
+ return {
163
+ kind: asset.kind,
164
+ id: asset.id,
165
+ name: asset.name,
166
+ aliases: asset.aliases,
167
+ description: asset.description,
168
+ importance: asset.importance,
169
+ format_key: asset.format_key,
170
+ alias_format_keys: asset.alias_format_keys,
171
+ reference_count: asset.reference_count,
172
+ episode_count: asset.episode_count,
173
+ scene_count: asset.scene_count,
174
+ references: asset.references,
175
+ states: asset.states.map((state) => ({
176
+ address: state.address,
177
+ state_id: state.state_id,
178
+ state_name: state.state_name,
179
+ description: state.description,
180
+ format_key: state.format_key,
181
+ reference_count: state.reference_count,
182
+ episode_count: state.episode_count,
183
+ scene_count: state.scene_count,
184
+ references: state.references,
185
+ frequency_flag: state.frequency_flag,
186
+ })),
187
+ };
188
+ };
189
+ return {
190
+ title: asStr(root.title),
191
+ actors: byKind.actor.map(finish),
192
+ locations: byKind.location.map(finish),
193
+ props: byKind.prop.map(finish),
194
+ };
195
+ }
196
+ //# sourceMappingURL=asset-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-audit.js","sourceRoot":"","sources":["../../../src/domain/ingest/asset-audit.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { ValidationIssue } from "./validation.js";
2
+ import type { ScriptV4 } from "../script/v4/types.js";
2
3
  /**
3
- * Production-facing quality checks that are meaningful but not structural v3
4
- * invariants. Ingest appends these as warnings so source fidelity and model
5
- * uncertainty remain reviewable without turning a valid extraction into data loss.
4
+ * Production-facing quality checks for the final Script v4 document. Ingest
5
+ * appends these as warnings so source fidelity and model uncertainty remain
6
+ * reviewable without turning a valid extraction into data loss.
6
7
  */
7
- export declare function validateProductionStandard(doc: unknown): ValidationIssue[];
8
+ export declare function validateProductionStandard(script: ScriptV4): ValidationIssue[];
@@ -1,49 +1,34 @@
1
1
  import { isCrowdName } from "./serial-context.js";
2
- const isObj = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
3
- const asArr = (value) => Array.isArray(value) ? value : [];
4
2
  const ACTION_PRONOUN = /(?:^|[,。!?;:、\s“”"'((])(他们|她们|它们|其中一人|另一个人|前者|后者|对方|有人|两人|他|她|它)(?!人)/;
5
3
  /**
6
- * Production-facing quality checks that are meaningful but not structural v3
7
- * invariants. Ingest appends these as warnings so source fidelity and model
8
- * uncertainty remain reviewable without turning a valid extraction into data loss.
4
+ * Production-facing quality checks for the final Script v4 document. Ingest
5
+ * appends these as warnings so source fidelity and model uncertainty remain
6
+ * reviewable without turning a valid extraction into data loss.
9
7
  */
10
- export function validateProductionStandard(doc) {
11
- if (!isObj(doc))
12
- return [];
8
+ export function validateProductionStandard(script) {
13
9
  const warnings = [];
14
10
  const warn = (code, path, message) => {
15
11
  warnings.push({ code, path, message });
16
12
  };
17
- asArr(doc.actors).forEach((asset, index) => {
18
- if (!isObj(asset) || typeof asset.actor_name !== "string")
19
- return;
13
+ script.actors.forEach((asset, index) => {
20
14
  if (isCrowdName(asset.actor_name)) {
21
15
  warn("production_crowd_actor", `$.actors[${index}].actor_name`, `${asset.actor_name} is a group speaker, not an actor asset`);
22
16
  }
23
17
  });
24
- asArr(doc.episodes).forEach((episode, episodeIndex) => {
25
- if (!isObj(episode))
26
- return;
27
- asArr(episode.scenes).forEach((scene, sceneIndex) => {
28
- if (!isObj(scene))
29
- return;
18
+ script.episodes.forEach((episode, episodeIndex) => {
19
+ episode.scenes.forEach((scene, sceneIndex) => {
30
20
  const scenePath = `$.episodes[${episodeIndex}].scenes[${sceneIndex}]`;
31
- if (scene.location === null || scene.location === undefined) {
21
+ if (scene.location === null) {
32
22
  warn("production_location_missing", `${scenePath}.location`, "production scene needs one stable location");
33
23
  }
34
- asArr(scene.actions).forEach((action, actionIndex) => {
35
- if (!isObj(action))
36
- return;
24
+ scene.actions.forEach((action, actionIndex) => {
37
25
  const actionPath = `${scenePath}.actions[${actionIndex}]`;
38
- if (action.type === "action" && typeof action.content === "string") {
26
+ if (action.type === "action") {
39
27
  const match = ACTION_PRONOUN.exec(action.content);
40
28
  if (match) {
41
29
  warn("production_action_pronoun", `${actionPath}.content`, `action uses ambiguous reference ${match[1]}`);
42
30
  }
43
31
  }
44
- if (action.type === "dialogue" && (typeof action.emotion !== "string" || action.emotion.trim() === "")) {
45
- warn("production_dialogue_emotion", `${actionPath}.emotion`, "dialogue needs a playable emotion, delivery, or micro-action");
46
- }
47
32
  });
48
33
  });
49
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"production-validation.js","sourceRoot":"","sources":["../../../src/domain/ingest/production-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"production-validation.js","sourceRoot":"","sources":["../../../src/domain/ingest/production-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD,MAAM,cAAc,GAAG,uEAAuE,CAAC;AAE/F;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAgB;IACzD,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,OAAe,EAAQ,EAAE;QACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,wBAAwB,EAAE,YAAY,KAAK,cAAc,EAAE,GAAG,KAAK,CAAC,UAAU,yCAAyC,CAAC,CAAC;QAChI,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;QAChD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,cAAc,YAAY,YAAY,UAAU,GAAG,CAAC;YACtE,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,6BAA6B,EAAE,GAAG,SAAS,WAAW,EAAE,4CAA4C,CAAC,CAAC;YAC7G,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;gBAC5C,MAAM,UAAU,GAAG,GAAG,SAAS,YAAY,WAAW,GAAG,CAAC;gBAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAClD,IAAI,KAAK,EAAE,CAAC;wBACV,IAAI,CAAC,2BAA2B,EAAE,GAAG,UAAU,UAAU,EAAE,mCAAmC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC5G,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { NON_ACTOR_SPEAKER_KINDS, type NonActorSpeakerKind } from "../script/types.js";
1
+ import { NON_ACTOR_SPEAKER_KINDS, type NonActorSpeakerKind } from "../script/shared/types.js";
2
2
  export type SourceSpan = {
3
3
  chunk: number;
4
4
  line_start: number;
@@ -2,7 +2,7 @@
2
2
  // and pre-canonicalization; Pass5 assigns final ids. Content is plain text (no
3
3
  // inline entity tags); scene-level cast/props are declared on the scene record
4
4
  // (from source `人物:`/`道具:` lines) and augmented by the extract pass.
5
- import { NON_ACTOR_SPEAKER_KINDS, } from "../script/types.js";
5
+ import { NON_ACTOR_SPEAKER_KINDS, } from "../script/shared/types.js";
6
6
  // Non-actor speaker kinds. Bit-part characters (龙套) are still actors (tagged
7
7
  // importance=background), so they speak via actor_id — no special speaker kind.
8
8
  export { NON_ACTOR_SPEAKER_KINDS };
@@ -1 +1 @@
1
- {"version":3,"file":"records.js","sourceRoot":"","sources":["../../../src/domain/ingest/records.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,qEAAqE;AAErE,OAAO,EACL,uBAAuB,GAExB,MAAM,oBAAoB,CAAC;AAW5B,6EAA6E;AAC7E,gFAAgF;AAChF,OAAO,EAAE,uBAAuB,EAAE,CAAC;AA2BnC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC"}
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../../src/domain/ingest/records.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,qEAAqE;AAErE,OAAO,EACL,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AAWnC,6EAA6E;AAC7E,gFAAgF;AAChF,OAAO,EAAE,uBAAuB,EAAE,CAAC;AA2BnC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Importance } from "../script/types.js";
1
+ import type { Importance } from "../script/shared/types.js";
2
2
  export interface Look {
3
3
  name: string;
4
4
  aliases: string[];
@@ -1,11 +1 @@
1
- export type ValidationIssue = {
2
- code: string;
3
- path: string;
4
- message: string;
5
- };
6
- export type ValidationResult = {
7
- ok: boolean;
8
- errors: ValidationIssue[];
9
- warnings: ValidationIssue[];
10
- };
11
- export declare function validateScriptV3(doc: unknown): ValidationResult;
1
+ export * from "../script/v3/validation.js";