@lingjingai/scriptctl 0.49.16 → 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 (388) hide show
  1. package/README.md +8 -2
  2. package/changes/0.50.0.md +63 -0
  3. package/changes/unreleased.md +2 -1
  4. package/dist/cli.js +26 -5
  5. package/dist/cli.js.map +1 -1
  6. package/dist/domain/authoring/apply.d.ts +1 -33
  7. package/dist/domain/authoring/apply.js +1 -783
  8. package/dist/domain/authoring/apply.js.map +1 -1
  9. package/dist/domain/authoring/export.d.ts +1 -7
  10. package/dist/domain/authoring/export.js +1 -84
  11. package/dist/domain/authoring/export.js.map +1 -1
  12. package/dist/domain/authoring/parser.d.ts +2 -3
  13. package/dist/domain/authoring/parser.js +2 -914
  14. package/dist/domain/authoring/parser.js.map +1 -1
  15. package/dist/domain/authoring/serializer.d.ts +1 -2
  16. package/dist/domain/authoring/serializer.js +1 -243
  17. package/dist/domain/authoring/serializer.js.map +1 -1
  18. package/dist/domain/authoring/shared/bracket.d.ts +4 -0
  19. package/dist/domain/authoring/shared/bracket.js +95 -0
  20. package/dist/domain/authoring/shared/bracket.js.map +1 -0
  21. package/dist/domain/authoring/shared/types.d.ts +12 -0
  22. package/dist/domain/authoring/shared/types.js +2 -0
  23. package/dist/domain/authoring/shared/types.js.map +1 -0
  24. package/dist/domain/authoring/types.d.ts +2 -87
  25. package/dist/domain/authoring/types.js +2 -1
  26. package/dist/domain/authoring/types.js.map +1 -1
  27. package/dist/domain/authoring/v3/apply.d.ts +33 -0
  28. package/dist/domain/authoring/v3/apply.js +784 -0
  29. package/dist/domain/authoring/v3/apply.js.map +1 -0
  30. package/dist/domain/authoring/v3/export.d.ts +7 -0
  31. package/dist/domain/authoring/v3/export.js +85 -0
  32. package/dist/domain/authoring/v3/export.js.map +1 -0
  33. package/dist/domain/authoring/v3/parser.d.ts +3 -0
  34. package/dist/domain/authoring/v3/parser.js +823 -0
  35. package/dist/domain/authoring/v3/parser.js.map +1 -0
  36. package/dist/domain/authoring/v3/serializer.d.ts +2 -0
  37. package/dist/domain/authoring/v3/serializer.js +244 -0
  38. package/dist/domain/authoring/v3/serializer.js.map +1 -0
  39. package/dist/domain/authoring/v3/types.d.ts +76 -0
  40. package/dist/domain/authoring/v3/types.js +2 -0
  41. package/dist/domain/authoring/v3/types.js.map +1 -0
  42. package/dist/domain/authoring/v4/apply.d.ts +40 -0
  43. package/dist/domain/authoring/v4/apply.js +451 -0
  44. package/dist/domain/authoring/v4/apply.js.map +1 -0
  45. package/dist/domain/authoring/v4/parser.d.ts +2 -0
  46. package/dist/domain/authoring/v4/parser.js +729 -0
  47. package/dist/domain/authoring/v4/parser.js.map +1 -0
  48. package/dist/domain/authoring/v4/serializer.d.ts +6 -0
  49. package/dist/domain/authoring/v4/serializer.js +280 -0
  50. package/dist/domain/authoring/v4/serializer.js.map +1 -0
  51. package/dist/domain/authoring/v4/types.d.ts +50 -0
  52. package/dist/domain/authoring/v4/types.js +2 -0
  53. package/dist/domain/authoring/v4/types.js.map +1 -0
  54. package/dist/domain/ingest/apply-plan.d.ts +1 -1
  55. package/dist/domain/ingest/assembler.d.ts +9 -0
  56. package/dist/domain/ingest/assembler.js +98 -36
  57. package/dist/domain/ingest/assembler.js.map +1 -1
  58. package/dist/domain/ingest/asset-audit.d.ts +50 -0
  59. package/dist/domain/ingest/asset-audit.js +196 -0
  60. package/dist/domain/ingest/asset-audit.js.map +1 -0
  61. package/dist/domain/ingest/production-validation.d.ts +5 -4
  62. package/dist/domain/ingest/production-validation.js +10 -25
  63. package/dist/domain/ingest/production-validation.js.map +1 -1
  64. package/dist/domain/ingest/records.d.ts +1 -1
  65. package/dist/domain/ingest/records.js +1 -1
  66. package/dist/domain/ingest/records.js.map +1 -1
  67. package/dist/domain/ingest/serial-context.d.ts +1 -1
  68. package/dist/domain/ingest/validation.d.ts +1 -11
  69. package/dist/domain/ingest/validation.js +1 -199
  70. package/dist/domain/ingest/validation.js.map +1 -1
  71. package/dist/domain/ingest/video-apply.js +68 -45
  72. package/dist/domain/ingest/video-apply.js.map +1 -1
  73. package/dist/domain/script/address.d.ts +1 -32
  74. package/dist/domain/script/address.js +1 -144
  75. package/dist/domain/script/address.js.map +1 -1
  76. package/dist/domain/script/dispatch.d.ts +14 -0
  77. package/dist/domain/script/dispatch.js +47 -0
  78. package/dist/domain/script/dispatch.js.map +1 -0
  79. package/dist/domain/script/lookups.d.ts +1 -33
  80. package/dist/domain/script/lookups.js +1 -316
  81. package/dist/domain/script/lookups.js.map +1 -1
  82. package/dist/domain/script/parse.d.ts +1 -3
  83. package/dist/domain/script/parse.js +1 -164
  84. package/dist/domain/script/parse.js.map +1 -1
  85. package/dist/domain/script/patch/apply.d.ts +1 -2
  86. package/dist/domain/script/patch/apply.js +1 -30
  87. package/dist/domain/script/patch/apply.js.map +1 -1
  88. package/dist/domain/script/patch/helpers.d.ts +1 -17
  89. package/dist/domain/script/patch/helpers.js +1 -210
  90. package/dist/domain/script/patch/helpers.js.map +1 -1
  91. package/dist/domain/script/patch/inline-speaker.d.ts +1 -2
  92. package/dist/domain/script/patch/inline-speaker.js +1 -49
  93. package/dist/domain/script/patch/inline-speaker.js.map +1 -1
  94. package/dist/domain/script/patch/ops-action.d.ts +1 -12
  95. package/dist/domain/script/patch/ops-action.js +1 -366
  96. package/dist/domain/script/patch/ops-action.js.map +1 -1
  97. package/dist/domain/script/patch/ops-asset.d.ts +1 -14
  98. package/dist/domain/script/patch/ops-asset.js +1 -364
  99. package/dist/domain/script/patch/ops-asset.js.map +1 -1
  100. package/dist/domain/script/patch/ops-dialogue.d.ts +1 -2
  101. package/dist/domain/script/patch/ops-dialogue.js +1 -25
  102. package/dist/domain/script/patch/ops-dialogue.js.map +1 -1
  103. package/dist/domain/script/patch/ops-extend.d.ts +1 -8
  104. package/dist/domain/script/patch/ops-extend.js +1 -110
  105. package/dist/domain/script/patch/ops-extend.js.map +1 -1
  106. package/dist/domain/script/patch/ops-meta.d.ts +1 -5
  107. package/dist/domain/script/patch/ops-meta.js +1 -81
  108. package/dist/domain/script/patch/ops-meta.js.map +1 -1
  109. package/dist/domain/script/patch/ops-scene.d.ts +1 -6
  110. package/dist/domain/script/patch/ops-scene.js +1 -350
  111. package/dist/domain/script/patch/ops-scene.js.map +1 -1
  112. package/dist/domain/script/patch/ops-state.d.ts +1 -8
  113. package/dist/domain/script/patch/ops-state.js +1 -164
  114. package/dist/domain/script/patch/ops-state.js.map +1 -1
  115. package/dist/domain/script/patch/registry.d.ts +1 -2
  116. package/dist/domain/script/patch/registry.js +1 -52
  117. package/dist/domain/script/patch/registry.js.map +1 -1
  118. package/dist/domain/script/patch/types.d.ts +1 -10
  119. package/dist/domain/script/patch/types.js +1 -1
  120. package/dist/domain/script/patch/types.js.map +1 -1
  121. package/dist/domain/script/refs.d.ts +1 -4
  122. package/dist/domain/script/refs.js +1 -63
  123. package/dist/domain/script/refs.js.map +1 -1
  124. package/dist/domain/script/scene-refs.d.ts +1 -3
  125. package/dist/domain/script/scene-refs.js +1 -34
  126. package/dist/domain/script/scene-refs.js.map +1 -1
  127. package/dist/domain/script/schema.d.ts +1 -6
  128. package/dist/domain/script/schema.js +1 -55
  129. package/dist/domain/script/schema.js.map +1 -1
  130. package/dist/domain/script/selector.d.ts +1 -45
  131. package/dist/domain/script/selector.js +1 -184
  132. package/dist/domain/script/selector.js.map +1 -1
  133. package/dist/domain/script/shared/regex.d.ts +2 -0
  134. package/dist/domain/script/shared/regex.js +7 -0
  135. package/dist/domain/script/shared/regex.js.map +1 -0
  136. package/dist/domain/script/shared/types.d.ts +18 -0
  137. package/dist/domain/script/shared/types.js +9 -0
  138. package/dist/domain/script/shared/types.js.map +1 -0
  139. package/dist/domain/script/shared/validation.d.ts +10 -0
  140. package/dist/domain/script/shared/validation.js +2 -0
  141. package/dist/domain/script/shared/validation.js.map +1 -0
  142. package/dist/domain/script/types.d.ts +1 -123
  143. package/dist/domain/script/types.js +1 -8
  144. package/dist/domain/script/types.js.map +1 -1
  145. package/dist/domain/script/v3/address.d.ts +32 -0
  146. package/dist/domain/script/v3/address.js +145 -0
  147. package/dist/domain/script/v3/address.js.map +1 -0
  148. package/dist/domain/script/v3/lookups.d.ts +33 -0
  149. package/dist/domain/script/v3/lookups.js +317 -0
  150. package/dist/domain/script/v3/lookups.js.map +1 -0
  151. package/dist/domain/script/v3/ordinal.d.ts +8 -0
  152. package/dist/domain/script/v3/ordinal.js +92 -0
  153. package/dist/domain/script/v3/ordinal.js.map +1 -0
  154. package/dist/domain/script/v3/parse.d.ts +3 -0
  155. package/dist/domain/script/v3/parse.js +165 -0
  156. package/dist/domain/script/v3/parse.js.map +1 -0
  157. package/dist/domain/script/v3/patch/apply.d.ts +2 -0
  158. package/dist/domain/script/v3/patch/apply.js +31 -0
  159. package/dist/domain/script/v3/patch/apply.js.map +1 -0
  160. package/dist/domain/script/v3/patch/helpers.d.ts +17 -0
  161. package/dist/domain/script/v3/patch/helpers.js +211 -0
  162. package/dist/domain/script/v3/patch/helpers.js.map +1 -0
  163. package/dist/domain/script/v3/patch/inline-speaker.d.ts +2 -0
  164. package/dist/domain/script/v3/patch/inline-speaker.js +50 -0
  165. package/dist/domain/script/v3/patch/inline-speaker.js.map +1 -0
  166. package/dist/domain/script/v3/patch/ops-action.d.ts +12 -0
  167. package/dist/domain/script/v3/patch/ops-action.js +367 -0
  168. package/dist/domain/script/v3/patch/ops-action.js.map +1 -0
  169. package/dist/domain/script/v3/patch/ops-asset.d.ts +14 -0
  170. package/dist/domain/script/v3/patch/ops-asset.js +365 -0
  171. package/dist/domain/script/v3/patch/ops-asset.js.map +1 -0
  172. package/dist/domain/script/v3/patch/ops-dialogue.d.ts +2 -0
  173. package/dist/domain/script/v3/patch/ops-dialogue.js +26 -0
  174. package/dist/domain/script/v3/patch/ops-dialogue.js.map +1 -0
  175. package/dist/domain/script/v3/patch/ops-extend.d.ts +8 -0
  176. package/dist/domain/script/v3/patch/ops-extend.js +111 -0
  177. package/dist/domain/script/v3/patch/ops-extend.js.map +1 -0
  178. package/dist/domain/script/v3/patch/ops-meta.d.ts +5 -0
  179. package/dist/domain/script/v3/patch/ops-meta.js +82 -0
  180. package/dist/domain/script/v3/patch/ops-meta.js.map +1 -0
  181. package/dist/domain/script/v3/patch/ops-scene.d.ts +6 -0
  182. package/dist/domain/script/v3/patch/ops-scene.js +351 -0
  183. package/dist/domain/script/v3/patch/ops-scene.js.map +1 -0
  184. package/dist/domain/script/v3/patch/ops-state.d.ts +8 -0
  185. package/dist/domain/script/v3/patch/ops-state.js +165 -0
  186. package/dist/domain/script/v3/patch/ops-state.js.map +1 -0
  187. package/dist/domain/script/v3/patch/registry.d.ts +2 -0
  188. package/dist/domain/script/v3/patch/registry.js +53 -0
  189. package/dist/domain/script/v3/patch/registry.js.map +1 -0
  190. package/dist/domain/script/v3/patch/types.d.ts +10 -0
  191. package/dist/domain/script/v3/patch/types.js +2 -0
  192. package/dist/domain/script/v3/patch/types.js.map +1 -0
  193. package/dist/domain/script/v3/refs.d.ts +4 -0
  194. package/dist/domain/script/v3/refs.js +64 -0
  195. package/dist/domain/script/v3/refs.js.map +1 -0
  196. package/dist/domain/script/v3/scene-refs.d.ts +3 -0
  197. package/dist/domain/script/v3/scene-refs.js +35 -0
  198. package/dist/domain/script/v3/scene-refs.js.map +1 -0
  199. package/dist/domain/script/v3/schema.d.ts +6 -0
  200. package/dist/domain/script/v3/schema.js +56 -0
  201. package/dist/domain/script/v3/schema.js.map +1 -0
  202. package/dist/domain/script/v3/selector.d.ts +44 -0
  203. package/dist/domain/script/v3/selector.js +180 -0
  204. package/dist/domain/script/v3/selector.js.map +1 -0
  205. package/dist/domain/script/v3/types.d.ts +106 -0
  206. package/dist/domain/script/v3/types.js +2 -0
  207. package/dist/domain/script/v3/types.js.map +1 -0
  208. package/dist/domain/script/v3/validation.d.ts +3 -0
  209. package/dist/domain/script/v3/validation.js +200 -0
  210. package/dist/domain/script/v3/validation.js.map +1 -0
  211. package/dist/domain/script/v4/address.d.ts +61 -0
  212. package/dist/domain/script/v4/address.js +100 -0
  213. package/dist/domain/script/v4/address.js.map +1 -0
  214. package/dist/domain/script/v4/factory.d.ts +2 -0
  215. package/dist/domain/script/v4/factory.js +13 -0
  216. package/dist/domain/script/v4/factory.js.map +1 -0
  217. package/dist/domain/script/v4/from-v3.d.ts +29 -0
  218. package/dist/domain/script/v4/from-v3.js +307 -0
  219. package/dist/domain/script/v4/from-v3.js.map +1 -0
  220. package/dist/domain/script/v4/ids.d.ts +27 -0
  221. package/dist/domain/script/v4/ids.js +63 -0
  222. package/dist/domain/script/v4/ids.js.map +1 -0
  223. package/dist/domain/script/v4/ordinal.d.ts +3 -0
  224. package/dist/domain/script/v4/ordinal.js +67 -0
  225. package/dist/domain/script/v4/ordinal.js.map +1 -0
  226. package/dist/domain/script/v4/parse.d.ts +3 -0
  227. package/dist/domain/script/v4/parse.js +18 -0
  228. package/dist/domain/script/v4/parse.js.map +1 -0
  229. package/dist/domain/script/v4/patch/apply.d.ts +3 -0
  230. package/dist/domain/script/v4/patch/apply.js +24 -0
  231. package/dist/domain/script/v4/patch/apply.js.map +1 -0
  232. package/dist/domain/script/v4/patch/helpers.d.ts +32 -0
  233. package/dist/domain/script/v4/patch/helpers.js +139 -0
  234. package/dist/domain/script/v4/patch/helpers.js.map +1 -0
  235. package/dist/domain/script/v4/patch/ops-action.d.ts +13 -0
  236. package/dist/domain/script/v4/patch/ops-action.js +379 -0
  237. package/dist/domain/script/v4/patch/ops-action.js.map +1 -0
  238. package/dist/domain/script/v4/patch/ops-asset.d.ts +17 -0
  239. package/dist/domain/script/v4/patch/ops-asset.js +617 -0
  240. package/dist/domain/script/v4/patch/ops-asset.js.map +1 -0
  241. package/dist/domain/script/v4/patch/ops-extend.d.ts +11 -0
  242. package/dist/domain/script/v4/patch/ops-extend.js +86 -0
  243. package/dist/domain/script/v4/patch/ops-extend.js.map +1 -0
  244. package/dist/domain/script/v4/patch/ops-meta.d.ts +5 -0
  245. package/dist/domain/script/v4/patch/ops-meta.js +49 -0
  246. package/dist/domain/script/v4/patch/ops-meta.js.map +1 -0
  247. package/dist/domain/script/v4/patch/ops-scene-ref.d.ts +3 -0
  248. package/dist/domain/script/v4/patch/ops-scene-ref.js +98 -0
  249. package/dist/domain/script/v4/patch/ops-scene-ref.js.map +1 -0
  250. package/dist/domain/script/v4/patch/ops-structure.d.ts +6 -0
  251. package/dist/domain/script/v4/patch/ops-structure.js +236 -0
  252. package/dist/domain/script/v4/patch/ops-structure.js.map +1 -0
  253. package/dist/domain/script/v4/patch/registry.d.ts +2 -0
  254. package/dist/domain/script/v4/patch/registry.js +50 -0
  255. package/dist/domain/script/v4/patch/registry.js.map +1 -0
  256. package/dist/domain/script/v4/patch/schema.d.ts +7 -0
  257. package/dist/domain/script/v4/patch/schema.js +75 -0
  258. package/dist/domain/script/v4/patch/schema.js.map +1 -0
  259. package/dist/domain/script/v4/patch/types.d.ts +10 -0
  260. package/dist/domain/script/v4/patch/types.js +2 -0
  261. package/dist/domain/script/v4/patch/types.js.map +1 -0
  262. package/dist/domain/script/v4/selector.d.ts +11 -0
  263. package/dist/domain/script/v4/selector.js +125 -0
  264. package/dist/domain/script/v4/selector.js.map +1 -0
  265. package/dist/domain/script/v4/types.d.ts +120 -0
  266. package/dist/domain/script/v4/types.js +2 -0
  267. package/dist/domain/script/v4/types.js.map +1 -0
  268. package/dist/domain/script/v4/validation.d.ts +2 -0
  269. package/dist/domain/script/v4/validation.js +378 -0
  270. package/dist/domain/script/v4/validation.js.map +1 -0
  271. package/dist/help-text.js +146 -114
  272. package/dist/help-text.js.map +1 -1
  273. package/dist/llm/config.js +2 -0
  274. package/dist/llm/config.js.map +1 -1
  275. package/dist/llm/registry.d.ts +1 -0
  276. package/dist/llm/registry.js +3 -0
  277. package/dist/llm/registry.js.map +1 -1
  278. package/dist/llm/tasks/ingest/asset-audit.d.ts +6 -0
  279. package/dist/llm/tasks/ingest/asset-audit.js +164 -0
  280. package/dist/llm/tasks/ingest/asset-audit.js.map +1 -0
  281. package/dist/llm/tasks/ingest/asset-curate.d.ts +1 -1
  282. package/dist/llm/types.d.ts +1 -1
  283. package/dist/llm/types.js.map +1 -1
  284. package/dist/usecases/ingest/command.js +1 -1
  285. package/dist/usecases/ingest/final-asset-audit.d.ts +39 -0
  286. package/dist/usecases/ingest/final-asset-audit.js +88 -0
  287. package/dist/usecases/ingest/final-asset-audit.js.map +1 -0
  288. package/dist/usecases/ingest/pipeline.js +62 -11
  289. package/dist/usecases/ingest/pipeline.js.map +1 -1
  290. package/dist/usecases/ingest/serial-govern.d.ts +2 -1
  291. package/dist/usecases/ingest/serial-govern.js +11 -4
  292. package/dist/usecases/ingest/serial-govern.js.map +1 -1
  293. package/dist/usecases/ingest/video-pipeline.js +100 -14
  294. package/dist/usecases/ingest/video-pipeline.js.map +1 -1
  295. package/dist/usecases/ingest/view-server.js +2 -2
  296. package/dist/usecases/ingest/view-server.js.map +1 -1
  297. package/dist/usecases/script/actions.js +101 -5
  298. package/dist/usecases/script/actions.js.map +1 -1
  299. package/dist/usecases/script/actors.js +16 -7
  300. package/dist/usecases/script/actors.js.map +1 -1
  301. package/dist/usecases/script/alias.js +7 -6
  302. package/dist/usecases/script/alias.js.map +1 -1
  303. package/dist/usecases/script/assets.js +18 -2
  304. package/dist/usecases/script/assets.js.map +1 -1
  305. package/dist/usecases/script/audit-assets.d.ts +4 -0
  306. package/dist/usecases/script/audit-assets.js +40 -0
  307. package/dist/usecases/script/audit-assets.js.map +1 -0
  308. package/dist/usecases/script/command-constraints.d.ts +36 -0
  309. package/dist/usecases/script/command-constraints.js +115 -0
  310. package/dist/usecases/script/command-constraints.js.map +1 -0
  311. package/dist/usecases/script/context.js +31 -4
  312. package/dist/usecases/script/context.js.map +1 -1
  313. package/dist/usecases/script/create.js +2 -2
  314. package/dist/usecases/script/create.js.map +1 -1
  315. package/dist/usecases/script/delete.js +6 -3
  316. package/dist/usecases/script/delete.js.map +1 -1
  317. package/dist/usecases/script/describe.js +7 -4
  318. package/dist/usecases/script/describe.js.map +1 -1
  319. package/dist/usecases/script/dialogue.js +15 -5
  320. package/dist/usecases/script/dialogue.js.map +1 -1
  321. package/dist/usecases/script/dispatch.d.ts +3 -0
  322. package/dist/usecases/script/dispatch.js +10 -0
  323. package/dist/usecases/script/dispatch.js.map +1 -0
  324. package/dist/usecases/script/do.js +74 -11
  325. package/dist/usecases/script/do.js.map +1 -1
  326. package/dist/usecases/script/emotion.js +14 -3
  327. package/dist/usecases/script/emotion.js.map +1 -1
  328. package/dist/usecases/script/episodes.js +15 -4
  329. package/dist/usecases/script/episodes.js.map +1 -1
  330. package/dist/usecases/script/export-authoring.js +35 -11
  331. package/dist/usecases/script/export-authoring.js.map +1 -1
  332. package/dist/usecases/script/extend.js +23 -15
  333. package/dist/usecases/script/extend.js.map +1 -1
  334. package/dist/usecases/script/ids.js +53 -10
  335. package/dist/usecases/script/ids.js.map +1 -1
  336. package/dist/usecases/script/insert.js +74 -38
  337. package/dist/usecases/script/insert.js.map +1 -1
  338. package/dist/usecases/script/lib.d.ts +50 -1
  339. package/dist/usecases/script/lib.js +599 -61
  340. package/dist/usecases/script/lib.js.map +1 -1
  341. package/dist/usecases/script/locations.js +16 -7
  342. package/dist/usecases/script/locations.js.map +1 -1
  343. package/dist/usecases/script/merge.js +8 -5
  344. package/dist/usecases/script/merge.js.map +1 -1
  345. package/dist/usecases/script/move.js +24 -5
  346. package/dist/usecases/script/move.js.map +1 -1
  347. package/dist/usecases/script/parenthetical.d.ts +3 -0
  348. package/dist/usecases/script/parenthetical.js +55 -0
  349. package/dist/usecases/script/parenthetical.js.map +1 -0
  350. package/dist/usecases/script/props.js +16 -7
  351. package/dist/usecases/script/props.js.map +1 -1
  352. package/dist/usecases/script/refs.js +44 -0
  353. package/dist/usecases/script/refs.js.map +1 -1
  354. package/dist/usecases/script/rename.js +7 -4
  355. package/dist/usecases/script/rename.js.map +1 -1
  356. package/dist/usecases/script/scenes.js +32 -6
  357. package/dist/usecases/script/scenes.js.map +1 -1
  358. package/dist/usecases/script/script-patch.js +180 -16
  359. package/dist/usecases/script/script-patch.js.map +1 -1
  360. package/dist/usecases/script/session.d.ts +3 -0
  361. package/dist/usecases/script/session.js +25 -5
  362. package/dist/usecases/script/session.js.map +1 -1
  363. package/dist/usecases/script/split.js +12 -6
  364. package/dist/usecases/script/split.js.map +1 -1
  365. package/dist/usecases/script/states.js +45 -1
  366. package/dist/usecases/script/states.js.map +1 -1
  367. package/dist/usecases/script/synopsis.js +11 -4
  368. package/dist/usecases/script/synopsis.js.map +1 -1
  369. package/dist/usecases/script/v3/mutations.d.ts +2 -0
  370. package/dist/usecases/script/v3/mutations.js +5 -0
  371. package/dist/usecases/script/v3/mutations.js.map +1 -0
  372. package/dist/usecases/script/v4/mutations.d.ts +2 -0
  373. package/dist/usecases/script/v4/mutations.js +6 -0
  374. package/dist/usecases/script/v4/mutations.js.map +1 -0
  375. package/dist/usecases/script/v4/queries.d.ts +14 -0
  376. package/dist/usecases/script/v4/queries.js +154 -0
  377. package/dist/usecases/script/v4/queries.js.map +1 -0
  378. package/dist/usecases/script/working-copy.js +3 -3
  379. package/dist/usecases/script/working-copy.js.map +1 -1
  380. package/dist/usecases/script/write-authoring.js +99 -5
  381. package/dist/usecases/script/write-authoring.js.map +1 -1
  382. package/package.json +3 -2
  383. package/skills/scriptctl/SKILL.md +122 -282
  384. package/skills/scriptctl/references/atomic-edit-workflow.md +23 -38
  385. package/skills/scriptctl/references/bulk-authoring.md +35 -154
  386. package/skills/scriptctl/references/ingest-workflow.md +12 -11
  387. package/skills/scriptctl/references/production-writing-standard.md +38 -67
  388. package/skills/scriptctl/references/state-reference-repair.md +19 -42
@@ -0,0 +1,139 @@
1
+ import { CliError, EXIT_INPUT, EXIT_USAGE } from "../../../../common.js";
2
+ import { strOf } from "../../shared.js";
3
+ import { findActionV4, findSceneV4, parseV4Address, } from "../address.js";
4
+ import { isV4Id } from "../ids.js";
5
+ export function opUsage(title, message, opts) {
6
+ throw new CliError(title, message, {
7
+ exitCode: opts.input ? EXIT_INPUT : EXIT_USAGE,
8
+ errorCode: opts.code,
9
+ required: opts.required ?? [],
10
+ received: opts.received ?? [],
11
+ nextSteps: opts.next ?? [],
12
+ });
13
+ }
14
+ export function requireAction(script, raw) {
15
+ const id = strOf(raw).trim();
16
+ if (!isV4Id("action", id)) {
17
+ return opUsage("SCRIPT V4 OP BLOCKED: Action ID invalid", "Action writes require a stable Action ID.", {
18
+ code: "V4_ACTION_ID_REQUIRED",
19
+ required: ["ac + six Base58 characters"],
20
+ received: [id || "<empty>"],
21
+ });
22
+ }
23
+ const found = findActionV4(script, id);
24
+ if (!found) {
25
+ return opUsage("SCRIPT V4 OP BLOCKED: Action not found", `Action ${id} was not found.`, {
26
+ code: "ACTION_NOT_FOUND",
27
+ received: [id],
28
+ input: true,
29
+ });
30
+ }
31
+ return found;
32
+ }
33
+ export function requireScene(script, raw) {
34
+ const id = strOf(raw).trim();
35
+ if (!isV4Id("scene", id)) {
36
+ return opUsage("SCRIPT V4 OP BLOCKED: Scene ID invalid", "Scene writes require a stable Scene ID.", {
37
+ code: "V4_SCENE_ID_REQUIRED",
38
+ required: ["scn + six Base58 characters"],
39
+ received: [id || "<empty>"],
40
+ });
41
+ }
42
+ const found = findSceneV4(script, id);
43
+ if (!found) {
44
+ return opUsage("SCRIPT V4 OP BLOCKED: Scene not found", `Scene ${id} was not found.`, {
45
+ code: "SCENE_NOT_FOUND",
46
+ received: [id],
47
+ input: true,
48
+ });
49
+ }
50
+ return found.scene;
51
+ }
52
+ export function requireAsset(script, raw) {
53
+ const address = parseV4Address(raw);
54
+ if (address.kind !== "asset") {
55
+ return opUsage("SCRIPT V4 OP BLOCKED: Asset ID invalid", "Expected a bare actor, location, or prop ID.", {
56
+ code: "V4_ASSET_ID_REQUIRED",
57
+ received: [strOf(raw)],
58
+ });
59
+ }
60
+ if (address.assetKind === "actor") {
61
+ const asset = script.actors.find((candidate) => candidate.actor_id === address.id);
62
+ if (asset)
63
+ return { kind: "actor", id: address.id, asset };
64
+ }
65
+ else if (address.assetKind === "location") {
66
+ const asset = script.locations.find((candidate) => candidate.location_id === address.id);
67
+ if (asset)
68
+ return { kind: "location", id: address.id, asset };
69
+ }
70
+ else {
71
+ const asset = script.props.find((candidate) => candidate.prop_id === address.id);
72
+ if (asset)
73
+ return { kind: "prop", id: address.id, asset };
74
+ }
75
+ return opUsage("SCRIPT V4 OP BLOCKED: Asset not found", `Asset ${address.id} was not found.`, {
76
+ code: "ASSET_NOT_FOUND",
77
+ received: [address.id],
78
+ input: true,
79
+ });
80
+ }
81
+ export function requireState(script, raw) {
82
+ const address = parseV4Address(raw);
83
+ if (address.kind !== "state") {
84
+ return opUsage("SCRIPT V4 OP BLOCKED: State address invalid", "Expected asset_id/state_id.", {
85
+ code: "V4_STATE_ADDRESS_REQUIRED",
86
+ received: [strOf(raw)],
87
+ });
88
+ }
89
+ const owner = requireAsset(script, address.assetId);
90
+ const stateIndex = owner.asset.states.findIndex((state) => state.state_id === address.stateId);
91
+ if (stateIndex < 0) {
92
+ return opUsage("SCRIPT V4 OP BLOCKED: State not found", `State ${address.stateId} was not found.`, {
93
+ code: "STATE_NOT_FOUND",
94
+ received: [strOf(raw)],
95
+ input: true,
96
+ });
97
+ }
98
+ return { owner, state: owner.asset.states[stateIndex], stateIndex };
99
+ }
100
+ export function normalizedStateIds(asset, raw) {
101
+ if (!Array.isArray(raw) || raw.length === 0 || !raw.every((value) => typeof value === "string")) {
102
+ return opUsage("SCENE REF BLOCKED: states missing", "At least one explicit state ID is required.", {
103
+ code: "SCENE_REF_STATES_REQUIRED",
104
+ required: ["one or more --state values"],
105
+ received: [JSON.stringify(raw)],
106
+ });
107
+ }
108
+ const ids = raw;
109
+ const seen = new Set();
110
+ for (const id of ids) {
111
+ if (seen.has(id)) {
112
+ return opUsage("SCENE REF BLOCKED: duplicate state", `State ${id} is repeated.`, {
113
+ code: "SCENE_REF_STATE_DUPLICATE",
114
+ received: ids,
115
+ });
116
+ }
117
+ seen.add(id);
118
+ if (!asset.states.some((state) => state.state_id === id)) {
119
+ return opUsage("SCENE REF BLOCKED: state not found", `State ${id} does not belong to this asset.`, {
120
+ code: "STATE_NOT_FOUND",
121
+ received: [id],
122
+ input: true,
123
+ });
124
+ }
125
+ }
126
+ return [...ids].sort();
127
+ }
128
+ export function stringField(op, key) {
129
+ const value = op[key];
130
+ if (typeof value !== "string") {
131
+ return opUsage("SCRIPT V4 OP BLOCKED: field invalid", `${key} must be a string.`, {
132
+ code: "OP_FIELD_INVALID",
133
+ required: [`${key}: string`],
134
+ received: [String(value)],
135
+ });
136
+ }
137
+ return value;
138
+ }
139
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/domain/script/v4/patch/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { V4OpHandler } from "./types.js";
2
+ export declare const op_action_parenthetical_set: V4OpHandler;
3
+ export declare const op_action_parenthetical_remove: V4OpHandler;
4
+ export declare const op_action_content_replace: V4OpHandler;
5
+ export declare const op_action_content_regex_replace: V4OpHandler;
6
+ export declare const op_dialogue_speaker_set: V4OpHandler;
7
+ export declare const op_action_actor_set: V4OpHandler;
8
+ export declare const op_action_type_set: V4OpHandler;
9
+ export declare const op_action_delete: V4OpHandler;
10
+ export declare const op_action_insert: V4OpHandler;
11
+ export declare const op_action_move: V4OpHandler;
12
+ export declare const op_action_transition_set: V4OpHandler;
13
+ export declare const op_action_transition_clear: V4OpHandler;
@@ -0,0 +1,379 @@
1
+ import { CliError, EXIT_USAGE } from "../../../../common.js";
2
+ import { isDangerousRegex, MAX_GREP_PATTERN_LEN } from "../../shared/regex.js";
3
+ import { strOf } from "../../shared.js";
4
+ import { findSceneV4 } from "../address.js";
5
+ import { generateV4Id, isV4Id } from "../ids.js";
6
+ import { opUsage, requireAction, requireAsset, requireScene, stringField } from "./helpers.js";
7
+ function requireSpeaking(action) {
8
+ if (action.type !== "dialogue" && action.type !== "inner_thought") {
9
+ throw new CliError("PARENTHETICAL BLOCKED: Action is not speaking", "parenthetical only belongs to dialogue or inner_thought.", {
10
+ exitCode: EXIT_USAGE,
11
+ errorCode: "PARENTHETICAL_ACTION_TYPE_INVALID",
12
+ required: ["dialogue or inner_thought Action ID"],
13
+ received: [action.type],
14
+ });
15
+ }
16
+ }
17
+ function speakerFromOp(ctx) {
18
+ const actorId = strOf(ctx.op.actor_id).trim();
19
+ const kind = strOf(ctx.op.kind).trim();
20
+ const label = strOf(ctx.op.label);
21
+ const stateId = strOf(ctx.op.state_id).trim();
22
+ if (actorId && kind) {
23
+ throw new CliError("DIALOGUE BLOCKED: speaker ambiguous", "Choose an actor or a non-actor speaker kind.", {
24
+ exitCode: EXIT_USAGE,
25
+ errorCode: "SPEAKER_AMBIGUOUS",
26
+ received: [actorId, kind],
27
+ });
28
+ }
29
+ if (actorId && label) {
30
+ throw new CliError("DIALOGUE BLOCKED: label misplaced", "label only belongs to a non-actor speaker.", {
31
+ exitCode: EXIT_USAGE,
32
+ errorCode: "SPEAKER_LABEL_WITHOUT_KIND",
33
+ received: [label],
34
+ });
35
+ }
36
+ if (!actorId && stateId) {
37
+ throw new CliError("DIALOGUE BLOCKED: state misplaced", "state_id only belongs to an actor speaker.", {
38
+ exitCode: EXIT_USAGE,
39
+ errorCode: "SPEAKER_STATE_WITHOUT_ACTOR",
40
+ received: [stateId],
41
+ });
42
+ }
43
+ if (actorId) {
44
+ const asset = requireAsset(ctx.script, actorId);
45
+ if (asset.kind !== "actor") {
46
+ throw new CliError("DIALOGUE BLOCKED: speaker is not an actor", "actor_id must identify an actor.", {
47
+ exitCode: EXIT_USAGE,
48
+ errorCode: "SPEAKER_ACTOR_INVALID",
49
+ required: ["actor ID"],
50
+ received: [actorId],
51
+ });
52
+ }
53
+ if (stateId && !asset.asset.states.some((state) => state.state_id === stateId)) {
54
+ throw new CliError("DIALOGUE BLOCKED: speaker state invalid", "state_id must belong to the speaker actor.", {
55
+ exitCode: EXIT_USAGE,
56
+ errorCode: "SPEAKER_STATE_INVALID",
57
+ received: [stateId],
58
+ });
59
+ }
60
+ return {
61
+ actor_id: asset.id,
62
+ ...(stateId ? { state_id: stateId } : {}),
63
+ };
64
+ }
65
+ if (kind !== "system" && kind !== "broadcast" && kind !== "offscreen" && kind !== "group") {
66
+ throw new CliError("DIALOGUE BLOCKED: speaker missing", "Specify an actor or supported non-actor speaker kind.", {
67
+ exitCode: EXIT_USAGE,
68
+ errorCode: "SPEAKER_INVALID",
69
+ required: ["actor_id or system|broadcast|offscreen|group"],
70
+ received: [kind || "<empty>"],
71
+ });
72
+ }
73
+ return {
74
+ kind,
75
+ ...(label ? { label } : {}),
76
+ };
77
+ }
78
+ function assertSpeakerInScene(scene, speaker) {
79
+ if (!("actor_id" in speaker))
80
+ return;
81
+ const ref = scene.actors.find((candidate) => candidate.actor_id === speaker.actor_id);
82
+ if (!ref) {
83
+ throw new CliError("DIALOGUE BLOCKED: actor not in scene", "The speaking actor must be referenced by the scene.", {
84
+ exitCode: EXIT_USAGE,
85
+ errorCode: "SPEAKER_ACTOR_NOT_IN_SCENE",
86
+ received: [speaker.actor_id, scene.scene_id],
87
+ });
88
+ }
89
+ if (speaker.state_id && !ref.state_ids.includes(speaker.state_id)) {
90
+ throw new CliError("DIALOGUE BLOCKED: speaker state not in scene", "The speaker state must belong to the scene's state set for this actor.", {
91
+ exitCode: EXIT_USAGE,
92
+ errorCode: "SPEAKER_STATE_NOT_IN_SCENE",
93
+ received: [speaker.state_id, scene.scene_id],
94
+ });
95
+ }
96
+ }
97
+ export const op_action_parenthetical_set = (ctx) => {
98
+ const action = requireAction(ctx.script, ctx.op.at).action;
99
+ requireSpeaking(action);
100
+ action.parenthetical = stringField(ctx.op, "parenthetical");
101
+ ctx.applied.push(ctx.kind);
102
+ };
103
+ export const op_action_parenthetical_remove = (ctx) => {
104
+ const action = requireAction(ctx.script, ctx.op.at).action;
105
+ requireSpeaking(action);
106
+ delete action.parenthetical;
107
+ ctx.applied.push(ctx.kind);
108
+ };
109
+ export const op_action_content_replace = (ctx) => {
110
+ const action = requireAction(ctx.script, ctx.op.at).action;
111
+ const from = stringField(ctx.op, "from");
112
+ const to = ctx.op.to === undefined ? "" : stringField(ctx.op, "to");
113
+ const occurrences = from === "" ? 0 : action.content.split(from).length - 1;
114
+ if (occurrences === 0) {
115
+ throw new CliError("REPLACE BLOCKED: text not found", "The source text was not found in this Action.", {
116
+ exitCode: EXIT_USAGE,
117
+ errorCode: "FROM_TEXT_NOT_FOUND",
118
+ received: [from],
119
+ });
120
+ }
121
+ if (occurrences > 1 && !ctx.op.all) {
122
+ throw new CliError("REPLACE BLOCKED: ambiguous match", "The source text occurs more than once.", {
123
+ exitCode: EXIT_USAGE,
124
+ errorCode: "FROM_AMBIGUOUS",
125
+ nextSteps: ["Pass --all or use a longer source string."],
126
+ });
127
+ }
128
+ action.content = ctx.op.all ? action.content.split(from).join(to) : action.content.replace(from, to);
129
+ ctx.applied.push(ctx.kind);
130
+ };
131
+ export const op_action_content_regex_replace = (ctx) => {
132
+ const action = requireAction(ctx.script, ctx.op.at).action;
133
+ const raw = stringField(ctx.op, "pattern");
134
+ const match = /^\/(.*)\/([gimsuy]*)$/.exec(raw);
135
+ if (!match || isDangerousRegex(match[1]) || match[1].length > MAX_GREP_PATTERN_LEN) {
136
+ throw new CliError("REPLACE BLOCKED: regex invalid", "Regex is invalid or unsafe.", {
137
+ exitCode: EXIT_USAGE,
138
+ errorCode: "REGEX_INVALID",
139
+ received: [raw],
140
+ });
141
+ }
142
+ const to = ctx.op.to === undefined ? "" : stringField(ctx.op, "to");
143
+ const body = match[1];
144
+ const flags = match[2];
145
+ const countFlags = flags.includes("g") ? flags : `${flags}g`;
146
+ const replaceFlags = ctx.op.all
147
+ ? countFlags
148
+ : flags.replaceAll("g", "");
149
+ let countRegex;
150
+ let replaceRegex;
151
+ try {
152
+ countRegex = new RegExp(body, countFlags);
153
+ replaceRegex = new RegExp(body, replaceFlags);
154
+ }
155
+ catch {
156
+ throw new CliError("REPLACE BLOCKED: regex invalid", "Regex failed to compile.", {
157
+ exitCode: EXIT_USAGE,
158
+ errorCode: "REGEX_INVALID",
159
+ received: [raw],
160
+ });
161
+ }
162
+ const matchCount = (action.content.match(countRegex) ?? []).length;
163
+ if (matchCount === 0) {
164
+ throw new CliError("REPLACE BLOCKED: regex did not match", "Regex did not match this Action.", {
165
+ exitCode: EXIT_USAGE,
166
+ errorCode: "REGEX_NO_MATCH",
167
+ });
168
+ }
169
+ if (matchCount > 1 && !ctx.op.all) {
170
+ throw new CliError("REPLACE BLOCKED: regex match ambiguous", `Regex matched this Action ${matchCount} times.`, {
171
+ exitCode: EXIT_USAGE,
172
+ errorCode: "REGEX_MULTIPLE_MATCH",
173
+ nextSteps: ["Pass --all or use a more specific pattern."],
174
+ });
175
+ }
176
+ action.content = action.content.replace(replaceRegex, to);
177
+ ctx.applied.push(ctx.kind);
178
+ };
179
+ export const op_dialogue_speaker_set = (ctx) => {
180
+ const found = requireAction(ctx.script, ctx.op.at);
181
+ requireSpeaking(found.action);
182
+ const speaker = speakerFromOp(ctx);
183
+ assertSpeakerInScene(found.scene, speaker);
184
+ found.action.speaker = speaker;
185
+ ctx.applied.push(ctx.kind);
186
+ };
187
+ export const op_action_actor_set = (ctx) => {
188
+ const found = requireAction(ctx.script, ctx.op.at);
189
+ requireSpeaking(found.action);
190
+ const speaker = speakerFromOp(ctx);
191
+ assertSpeakerInScene(found.scene, speaker);
192
+ found.action.speaker = speaker;
193
+ ctx.applied.push(ctx.kind);
194
+ };
195
+ export const op_action_type_set = (ctx) => {
196
+ const found = requireAction(ctx.script, ctx.op.at);
197
+ const type = strOf(ctx.op.type).trim();
198
+ if (type !== "action" && type !== "transition" && type !== "dialogue" && type !== "inner_thought") {
199
+ throw new CliError("TYPE BLOCKED: Action type invalid", "Use action, transition, dialogue, or inner_thought.", {
200
+ exitCode: EXIT_USAGE,
201
+ errorCode: "ACTION_TYPE_INVALID",
202
+ received: [type || "<empty>"],
203
+ });
204
+ }
205
+ const willSpeak = type === "dialogue" || type === "inner_thought";
206
+ if (found.action.type !== "dialogue"
207
+ && found.action.type !== "inner_thought"
208
+ && willSpeak) {
209
+ throw new CliError("TYPE BLOCKED: speaker required", "A narrative action cannot become speaking without an explicit speaker.", {
210
+ exitCode: EXIT_USAGE,
211
+ errorCode: "SPEAKER_REQUIRED",
212
+ nextSteps: ["Insert a speaking action with its speaker, then delete this action."],
213
+ });
214
+ }
215
+ if ((found.action.type === "dialogue" || found.action.type === "inner_thought")
216
+ && (type === "dialogue" || type === "inner_thought")) {
217
+ found.scene.actions[found.actionIndex] = { ...found.action, type };
218
+ }
219
+ else {
220
+ found.scene.actions[found.actionIndex] = {
221
+ action_id: found.action.action_id,
222
+ type: type === "transition" ? "transition" : "action",
223
+ content: found.action.content,
224
+ ...(found.action.transition_prompt ? { transition_prompt: found.action.transition_prompt } : {}),
225
+ ...(found.action.extend ? { extend: found.action.extend } : {}),
226
+ };
227
+ }
228
+ ctx.applied.push(ctx.kind);
229
+ };
230
+ export const op_action_delete = (ctx) => {
231
+ const found = requireAction(ctx.script, ctx.op.at);
232
+ found.scene.actions.splice(found.actionIndex, 1);
233
+ ctx.applied.push(ctx.kind);
234
+ };
235
+ export const op_action_insert = (ctx) => {
236
+ const scene = requireScene(ctx.script, ctx.op.at);
237
+ const existingIds = new Set(ctx.script.episodes.flatMap((episode) => episode.scenes.flatMap((candidate) => candidate.actions.map((action) => action.action_id))));
238
+ const requestedId = strOf(ctx.op.action_id).trim();
239
+ const actionId = requestedId || generateV4Id("action", existingIds);
240
+ if (!isV4Id("action", actionId)) {
241
+ throw new CliError("INSERT BLOCKED: Action ID invalid", "New Action ID must be a unique v4 Action ID.", {
242
+ exitCode: EXIT_USAGE,
243
+ errorCode: "ACTION_ID_INVALID",
244
+ received: [actionId],
245
+ });
246
+ }
247
+ if (existingIds.has(actionId)) {
248
+ throw new CliError("INSERT BLOCKED: Action ID duplicate", "New Action ID must be unique in this script.", {
249
+ exitCode: EXIT_USAGE,
250
+ errorCode: "ACTION_ID_DUPLICATE",
251
+ received: [actionId],
252
+ });
253
+ }
254
+ const type = strOf(ctx.op.type) || "action";
255
+ const content = strOf(ctx.op.content);
256
+ if (type === "action" || type === "transition") {
257
+ const incompatibleFields = [
258
+ "parenthetical",
259
+ "actor_id",
260
+ "state_id",
261
+ "kind",
262
+ "label",
263
+ ].filter((field) => ctx.op[field] !== undefined);
264
+ if (incompatibleFields.length > 0) {
265
+ return opUsage("INSERT BLOCKED: fields incompatible with Action type", "Speaking fields only belong to dialogue or inner_thought Actions.", {
266
+ code: "ACTION_INSERT_FIELD_INVALID",
267
+ received: incompatibleFields,
268
+ });
269
+ }
270
+ }
271
+ let action;
272
+ if (type === "dialogue" || type === "inner_thought") {
273
+ const speaker = speakerFromOp(ctx);
274
+ assertSpeakerInScene(scene, speaker);
275
+ action = {
276
+ action_id: actionId,
277
+ type,
278
+ content,
279
+ speaker,
280
+ ...(ctx.op.parenthetical !== undefined
281
+ ? { parenthetical: stringField(ctx.op, "parenthetical") }
282
+ : {}),
283
+ };
284
+ }
285
+ else if (type === "action" || type === "transition") {
286
+ action = { action_id: actionId, type, content };
287
+ }
288
+ else {
289
+ throw new CliError("INSERT BLOCKED: Action type invalid", "Action type is invalid.", {
290
+ exitCode: EXIT_USAGE,
291
+ errorCode: "ACTION_TYPE_INVALID",
292
+ received: [type],
293
+ });
294
+ }
295
+ const before = strOf(ctx.op.before).trim();
296
+ const after = strOf(ctx.op.after).trim();
297
+ if (before && after) {
298
+ throw new CliError("INSERT BLOCKED: placement ambiguous", "Use only one of before or after.", {
299
+ exitCode: EXIT_USAGE,
300
+ errorCode: "PLACEMENT_AMBIGUOUS",
301
+ });
302
+ }
303
+ let index = scene.actions.length;
304
+ if (before || after) {
305
+ const anchor = scene.actions.findIndex((candidate) => candidate.action_id === (before || after));
306
+ if (anchor < 0) {
307
+ throw new CliError("INSERT BLOCKED: anchor not found", "Placement anchor must be an Action in the target scene.", {
308
+ exitCode: EXIT_USAGE,
309
+ errorCode: "PLACEMENT_ANCHOR_NOT_FOUND",
310
+ received: [before || after],
311
+ });
312
+ }
313
+ index = before ? anchor : anchor + 1;
314
+ }
315
+ scene.actions.splice(index, 0, action);
316
+ ctx.applied.push(ctx.kind);
317
+ };
318
+ export const op_action_move = (ctx) => {
319
+ const found = requireAction(ctx.script, ctx.op.at);
320
+ const targetSceneId = strOf(ctx.op.to).trim();
321
+ const target = findSceneV4(ctx.script, targetSceneId);
322
+ if (!target) {
323
+ throw new CliError("MOVE BLOCKED: target scene not found", "Move target must be a v4 Scene ID.", {
324
+ exitCode: EXIT_USAGE,
325
+ errorCode: "SCENE_NOT_FOUND",
326
+ received: [targetSceneId],
327
+ });
328
+ }
329
+ if (found.action.type === "dialogue" || found.action.type === "inner_thought") {
330
+ assertSpeakerInScene(target.scene, found.action.speaker);
331
+ }
332
+ const before = strOf(ctx.op.before).trim();
333
+ const after = strOf(ctx.op.after).trim();
334
+ if (before && after) {
335
+ throw new CliError("MOVE BLOCKED: placement ambiguous", "Use only one of before or after.", {
336
+ exitCode: EXIT_USAGE,
337
+ errorCode: "PLACEMENT_AMBIGUOUS",
338
+ });
339
+ }
340
+ const targetActions = target.scene.actions.filter((candidate) => candidate.action_id !== found.action.action_id);
341
+ let index = targetActions.length;
342
+ if (before || after) {
343
+ const anchor = targetActions.findIndex((candidate) => candidate.action_id === (before || after));
344
+ if (anchor < 0) {
345
+ throw new CliError("MOVE BLOCKED: anchor not found", "Placement anchor must be in the target scene.", {
346
+ exitCode: EXIT_USAGE,
347
+ errorCode: "PLACEMENT_ANCHOR_NOT_FOUND",
348
+ });
349
+ }
350
+ index = before ? anchor : anchor + 1;
351
+ }
352
+ found.scene.actions.splice(found.actionIndex, 1);
353
+ target.scene.actions.splice(index, 0, found.action);
354
+ ctx.applied.push(ctx.kind);
355
+ };
356
+ export const op_action_transition_set = (ctx) => {
357
+ const action = requireAction(ctx.script, ctx.op.at).action;
358
+ const target = requireAsset(ctx.script, ctx.op.target);
359
+ const process = stringField(ctx.op, "process");
360
+ const contrast = stringField(ctx.op, "contrast");
361
+ if (process === "" || contrast === "") {
362
+ return opUsage("TRANSITION BLOCKED: prompt incomplete", "process and contrast must be non-empty.", {
363
+ code: "TRANSITION_PROMPT_INCOMPLETE",
364
+ received: [`process=${JSON.stringify(process)}`, `contrast=${JSON.stringify(contrast)}`],
365
+ });
366
+ }
367
+ action.transition_prompt = {
368
+ target: target.id,
369
+ process,
370
+ contrast,
371
+ };
372
+ ctx.applied.push(ctx.kind);
373
+ };
374
+ export const op_action_transition_clear = (ctx) => {
375
+ const action = requireAction(ctx.script, ctx.op.at).action;
376
+ delete action.transition_prompt;
377
+ ctx.applied.push(ctx.kind);
378
+ };
379
+ //# sourceMappingURL=ops-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ops-action.js","sourceRoot":"","sources":["../../../../../src/domain/script/v4/patch/ops-action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { V4OpHandler } from "./types.js";
2
+ export declare const op_actor_add: V4OpHandler;
3
+ export declare const op_location_add: V4OpHandler;
4
+ export declare const op_prop_add: V4OpHandler;
5
+ export declare const op_state_add: V4OpHandler;
6
+ export declare const op_asset_rename: V4OpHandler;
7
+ export declare const op_asset_describe: V4OpHandler;
8
+ export declare const op_importance_set: V4OpHandler;
9
+ export declare const op_asset_role_set: V4OpHandler;
10
+ export declare const op_asset_alias_set: V4OpHandler;
11
+ export declare const op_asset_alias_add: V4OpHandler;
12
+ export declare const op_asset_alias_remove: V4OpHandler;
13
+ export declare const op_state_rename: V4OpHandler;
14
+ export declare const op_state_describe: V4OpHandler;
15
+ export declare const op_state_delete: V4OpHandler;
16
+ export declare const op_asset_merge: V4OpHandler;
17
+ export declare const op_asset_delete: V4OpHandler;