@lingjingai/scriptctl 0.49.16 → 0.51.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 (525) hide show
  1. package/README.md +8 -2
  2. package/changes/0.50.0.md +63 -0
  3. package/changes/0.51.0.md +24 -0
  4. package/dist/cli/register-batch.d.ts +3 -0
  5. package/dist/cli/register-batch.js +28 -0
  6. package/dist/cli/register-batch.js.map +1 -0
  7. package/dist/cli/register-edits.d.ts +4 -0
  8. package/dist/cli/register-edits.js +226 -0
  9. package/dist/cli/register-edits.js.map +1 -0
  10. package/dist/cli/register-query.d.ts +4 -0
  11. package/dist/cli/register-query.js +93 -0
  12. package/dist/cli/register-query.js.map +1 -0
  13. package/dist/cli/register-tools.d.ts +3 -0
  14. package/dist/cli/register-tools.js +23 -0
  15. package/dist/cli/register-tools.js.map +1 -0
  16. package/dist/cli/register-workflows.d.ts +4 -0
  17. package/dist/cli/register-workflows.js +71 -0
  18. package/dist/cli/register-workflows.js.map +1 -0
  19. package/dist/cli/registry.d.ts +14 -0
  20. package/dist/cli/registry.js +65 -0
  21. package/dist/cli/registry.js.map +1 -0
  22. package/dist/cli.d.ts +3 -0
  23. package/dist/cli.js +146 -575
  24. package/dist/cli.js.map +1 -1
  25. package/dist/common.d.ts +12 -38
  26. package/dist/common.js +5 -11
  27. package/dist/common.js.map +1 -1
  28. package/dist/domain/authoring/apply.d.ts +1 -33
  29. package/dist/domain/authoring/apply.js +1 -783
  30. package/dist/domain/authoring/apply.js.map +1 -1
  31. package/dist/domain/authoring/export.d.ts +1 -7
  32. package/dist/domain/authoring/export.js +1 -84
  33. package/dist/domain/authoring/export.js.map +1 -1
  34. package/dist/domain/authoring/parser.d.ts +2 -3
  35. package/dist/domain/authoring/parser.js +2 -914
  36. package/dist/domain/authoring/parser.js.map +1 -1
  37. package/dist/domain/authoring/serializer.d.ts +1 -2
  38. package/dist/domain/authoring/serializer.js +1 -243
  39. package/dist/domain/authoring/serializer.js.map +1 -1
  40. package/dist/domain/authoring/shared/bracket.d.ts +4 -0
  41. package/dist/domain/authoring/shared/bracket.js +95 -0
  42. package/dist/domain/authoring/shared/bracket.js.map +1 -0
  43. package/dist/domain/authoring/shared/types.d.ts +12 -0
  44. package/dist/domain/authoring/shared/types.js +2 -0
  45. package/dist/domain/authoring/shared/types.js.map +1 -0
  46. package/dist/domain/authoring/types.d.ts +2 -87
  47. package/dist/domain/authoring/types.js +2 -1
  48. package/dist/domain/authoring/types.js.map +1 -1
  49. package/dist/domain/authoring/v3/apply.d.ts +33 -0
  50. package/dist/domain/authoring/v3/apply.js +784 -0
  51. package/dist/domain/authoring/v3/apply.js.map +1 -0
  52. package/dist/domain/authoring/v3/export.d.ts +7 -0
  53. package/dist/domain/authoring/v3/export.js +85 -0
  54. package/dist/domain/authoring/v3/export.js.map +1 -0
  55. package/dist/domain/authoring/v3/parser.d.ts +3 -0
  56. package/dist/domain/authoring/v3/parser.js +823 -0
  57. package/dist/domain/authoring/v3/parser.js.map +1 -0
  58. package/dist/domain/authoring/v3/serializer.d.ts +2 -0
  59. package/dist/domain/authoring/v3/serializer.js +244 -0
  60. package/dist/domain/authoring/v3/serializer.js.map +1 -0
  61. package/dist/domain/authoring/v3/types.d.ts +76 -0
  62. package/dist/domain/authoring/v3/types.js +2 -0
  63. package/dist/domain/authoring/v3/types.js.map +1 -0
  64. package/dist/domain/authoring/v4/apply.d.ts +40 -0
  65. package/dist/domain/authoring/v4/apply.js +451 -0
  66. package/dist/domain/authoring/v4/apply.js.map +1 -0
  67. package/dist/domain/authoring/v4/parser.d.ts +2 -0
  68. package/dist/domain/authoring/v4/parser.js +729 -0
  69. package/dist/domain/authoring/v4/parser.js.map +1 -0
  70. package/dist/domain/authoring/v4/serializer.d.ts +6 -0
  71. package/dist/domain/authoring/v4/serializer.js +280 -0
  72. package/dist/domain/authoring/v4/serializer.js.map +1 -0
  73. package/dist/domain/authoring/v4/types.d.ts +50 -0
  74. package/dist/domain/authoring/v4/types.js +2 -0
  75. package/dist/domain/authoring/v4/types.js.map +1 -0
  76. package/dist/domain/ingest/apply-plan.d.ts +1 -1
  77. package/dist/domain/ingest/assembler.d.ts +9 -0
  78. package/dist/domain/ingest/assembler.js +98 -36
  79. package/dist/domain/ingest/assembler.js.map +1 -1
  80. package/dist/domain/ingest/asset-audit.d.ts +50 -0
  81. package/dist/domain/ingest/asset-audit.js +196 -0
  82. package/dist/domain/ingest/asset-audit.js.map +1 -0
  83. package/dist/domain/ingest/production-validation.d.ts +5 -4
  84. package/dist/domain/ingest/production-validation.js +10 -25
  85. package/dist/domain/ingest/production-validation.js.map +1 -1
  86. package/dist/domain/ingest/records.d.ts +1 -1
  87. package/dist/domain/ingest/records.js +1 -1
  88. package/dist/domain/ingest/records.js.map +1 -1
  89. package/dist/domain/ingest/serial-context.d.ts +1 -1
  90. package/dist/domain/ingest/validation.d.ts +1 -11
  91. package/dist/domain/ingest/validation.js +1 -199
  92. package/dist/domain/ingest/validation.js.map +1 -1
  93. package/dist/domain/ingest/video-apply.js +68 -45
  94. package/dist/domain/ingest/video-apply.js.map +1 -1
  95. package/dist/domain/script/address.d.ts +1 -32
  96. package/dist/domain/script/address.js +1 -144
  97. package/dist/domain/script/address.js.map +1 -1
  98. package/dist/domain/script/dispatch.d.ts +14 -0
  99. package/dist/domain/script/dispatch.js +45 -0
  100. package/dist/domain/script/dispatch.js.map +1 -0
  101. package/dist/domain/script/lookups.d.ts +1 -33
  102. package/dist/domain/script/lookups.js +1 -316
  103. package/dist/domain/script/lookups.js.map +1 -1
  104. package/dist/domain/script/parse.d.ts +1 -3
  105. package/dist/domain/script/parse.js +1 -164
  106. package/dist/domain/script/parse.js.map +1 -1
  107. package/dist/domain/script/patch/apply.d.ts +1 -2
  108. package/dist/domain/script/patch/apply.js +1 -30
  109. package/dist/domain/script/patch/apply.js.map +1 -1
  110. package/dist/domain/script/patch/helpers.d.ts +1 -17
  111. package/dist/domain/script/patch/helpers.js +1 -210
  112. package/dist/domain/script/patch/helpers.js.map +1 -1
  113. package/dist/domain/script/patch/inline-speaker.d.ts +1 -2
  114. package/dist/domain/script/patch/inline-speaker.js +1 -49
  115. package/dist/domain/script/patch/inline-speaker.js.map +1 -1
  116. package/dist/domain/script/patch/ops-action.d.ts +1 -12
  117. package/dist/domain/script/patch/ops-action.js +1 -366
  118. package/dist/domain/script/patch/ops-action.js.map +1 -1
  119. package/dist/domain/script/patch/ops-asset.d.ts +1 -14
  120. package/dist/domain/script/patch/ops-asset.js +1 -364
  121. package/dist/domain/script/patch/ops-asset.js.map +1 -1
  122. package/dist/domain/script/patch/ops-dialogue.d.ts +1 -2
  123. package/dist/domain/script/patch/ops-dialogue.js +1 -25
  124. package/dist/domain/script/patch/ops-dialogue.js.map +1 -1
  125. package/dist/domain/script/patch/ops-extend.d.ts +1 -8
  126. package/dist/domain/script/patch/ops-extend.js +1 -110
  127. package/dist/domain/script/patch/ops-extend.js.map +1 -1
  128. package/dist/domain/script/patch/ops-meta.d.ts +1 -5
  129. package/dist/domain/script/patch/ops-meta.js +1 -81
  130. package/dist/domain/script/patch/ops-meta.js.map +1 -1
  131. package/dist/domain/script/patch/ops-scene.d.ts +1 -6
  132. package/dist/domain/script/patch/ops-scene.js +1 -350
  133. package/dist/domain/script/patch/ops-scene.js.map +1 -1
  134. package/dist/domain/script/patch/ops-state.d.ts +1 -8
  135. package/dist/domain/script/patch/ops-state.js +1 -164
  136. package/dist/domain/script/patch/ops-state.js.map +1 -1
  137. package/dist/domain/script/patch/registry.d.ts +1 -2
  138. package/dist/domain/script/patch/registry.js +1 -52
  139. package/dist/domain/script/patch/registry.js.map +1 -1
  140. package/dist/domain/script/patch/types.d.ts +1 -10
  141. package/dist/domain/script/patch/types.js +1 -1
  142. package/dist/domain/script/patch/types.js.map +1 -1
  143. package/dist/domain/script/refs.d.ts +1 -4
  144. package/dist/domain/script/refs.js +1 -63
  145. package/dist/domain/script/refs.js.map +1 -1
  146. package/dist/domain/script/scene-refs.d.ts +1 -3
  147. package/dist/domain/script/scene-refs.js +1 -34
  148. package/dist/domain/script/scene-refs.js.map +1 -1
  149. package/dist/domain/script/schema.d.ts +1 -6
  150. package/dist/domain/script/schema.js +1 -55
  151. package/dist/domain/script/schema.js.map +1 -1
  152. package/dist/domain/script/selector.d.ts +1 -45
  153. package/dist/domain/script/selector.js +1 -184
  154. package/dist/domain/script/selector.js.map +1 -1
  155. package/dist/domain/script/shared/regex.d.ts +2 -0
  156. package/dist/domain/script/shared/regex.js +7 -0
  157. package/dist/domain/script/shared/regex.js.map +1 -0
  158. package/dist/domain/script/shared/types.d.ts +18 -0
  159. package/dist/domain/script/shared/types.js +9 -0
  160. package/dist/domain/script/shared/types.js.map +1 -0
  161. package/dist/domain/script/shared/validation.d.ts +10 -0
  162. package/dist/domain/script/shared/validation.js +2 -0
  163. package/dist/domain/script/shared/validation.js.map +1 -0
  164. package/dist/domain/script/shared.js +4 -6
  165. package/dist/domain/script/shared.js.map +1 -1
  166. package/dist/domain/script/types.d.ts +1 -123
  167. package/dist/domain/script/types.js +1 -8
  168. package/dist/domain/script/types.js.map +1 -1
  169. package/dist/domain/script/v3/address.d.ts +32 -0
  170. package/dist/domain/script/v3/address.js +136 -0
  171. package/dist/domain/script/v3/address.js.map +1 -0
  172. package/dist/domain/script/v3/lookups.d.ts +33 -0
  173. package/dist/domain/script/v3/lookups.js +316 -0
  174. package/dist/domain/script/v3/lookups.js.map +1 -0
  175. package/dist/domain/script/v3/ordinal.d.ts +8 -0
  176. package/dist/domain/script/v3/ordinal.js +91 -0
  177. package/dist/domain/script/v3/ordinal.js.map +1 -0
  178. package/dist/domain/script/v3/parse.d.ts +3 -0
  179. package/dist/domain/script/v3/parse.js +164 -0
  180. package/dist/domain/script/v3/parse.js.map +1 -0
  181. package/dist/domain/script/v3/patch/apply.d.ts +2 -0
  182. package/dist/domain/script/v3/patch/apply.js +31 -0
  183. package/dist/domain/script/v3/patch/apply.js.map +1 -0
  184. package/dist/domain/script/v3/patch/helpers.d.ts +17 -0
  185. package/dist/domain/script/v3/patch/helpers.js +209 -0
  186. package/dist/domain/script/v3/patch/helpers.js.map +1 -0
  187. package/dist/domain/script/v3/patch/inline-speaker.d.ts +2 -0
  188. package/dist/domain/script/v3/patch/inline-speaker.js +50 -0
  189. package/dist/domain/script/v3/patch/inline-speaker.js.map +1 -0
  190. package/dist/domain/script/v3/patch/ops-action.d.ts +12 -0
  191. package/dist/domain/script/v3/patch/ops-action.js +367 -0
  192. package/dist/domain/script/v3/patch/ops-action.js.map +1 -0
  193. package/dist/domain/script/v3/patch/ops-asset.d.ts +14 -0
  194. package/dist/domain/script/v3/patch/ops-asset.js +365 -0
  195. package/dist/domain/script/v3/patch/ops-asset.js.map +1 -0
  196. package/dist/domain/script/v3/patch/ops-dialogue.d.ts +2 -0
  197. package/dist/domain/script/v3/patch/ops-dialogue.js +26 -0
  198. package/dist/domain/script/v3/patch/ops-dialogue.js.map +1 -0
  199. package/dist/domain/script/v3/patch/ops-extend.d.ts +8 -0
  200. package/dist/domain/script/v3/patch/ops-extend.js +111 -0
  201. package/dist/domain/script/v3/patch/ops-extend.js.map +1 -0
  202. package/dist/domain/script/v3/patch/ops-meta.d.ts +5 -0
  203. package/dist/domain/script/v3/patch/ops-meta.js +82 -0
  204. package/dist/domain/script/v3/patch/ops-meta.js.map +1 -0
  205. package/dist/domain/script/v3/patch/ops-scene.d.ts +6 -0
  206. package/dist/domain/script/v3/patch/ops-scene.js +351 -0
  207. package/dist/domain/script/v3/patch/ops-scene.js.map +1 -0
  208. package/dist/domain/script/v3/patch/ops-state.d.ts +8 -0
  209. package/dist/domain/script/v3/patch/ops-state.js +165 -0
  210. package/dist/domain/script/v3/patch/ops-state.js.map +1 -0
  211. package/dist/domain/script/v3/patch/registry.d.ts +2 -0
  212. package/dist/domain/script/v3/patch/registry.js +53 -0
  213. package/dist/domain/script/v3/patch/registry.js.map +1 -0
  214. package/dist/domain/script/v3/patch/types.d.ts +10 -0
  215. package/dist/domain/script/v3/patch/types.js +2 -0
  216. package/dist/domain/script/v3/patch/types.js.map +1 -0
  217. package/dist/domain/script/v3/refs.d.ts +4 -0
  218. package/dist/domain/script/v3/refs.js +64 -0
  219. package/dist/domain/script/v3/refs.js.map +1 -0
  220. package/dist/domain/script/v3/scene-refs.d.ts +3 -0
  221. package/dist/domain/script/v3/scene-refs.js +35 -0
  222. package/dist/domain/script/v3/scene-refs.js.map +1 -0
  223. package/dist/domain/script/v3/schema.d.ts +6 -0
  224. package/dist/domain/script/v3/schema.js +56 -0
  225. package/dist/domain/script/v3/schema.js.map +1 -0
  226. package/dist/domain/script/v3/selector.d.ts +44 -0
  227. package/dist/domain/script/v3/selector.js +178 -0
  228. package/dist/domain/script/v3/selector.js.map +1 -0
  229. package/dist/domain/script/v3/types.d.ts +106 -0
  230. package/dist/domain/script/v3/types.js +2 -0
  231. package/dist/domain/script/v3/types.js.map +1 -0
  232. package/dist/domain/script/v3/validation.d.ts +3 -0
  233. package/dist/domain/script/v3/validation.js +200 -0
  234. package/dist/domain/script/v3/validation.js.map +1 -0
  235. package/dist/domain/script/v4/address.d.ts +61 -0
  236. package/dist/domain/script/v4/address.js +99 -0
  237. package/dist/domain/script/v4/address.js.map +1 -0
  238. package/dist/domain/script/v4/factory.d.ts +2 -0
  239. package/dist/domain/script/v4/factory.js +13 -0
  240. package/dist/domain/script/v4/factory.js.map +1 -0
  241. package/dist/domain/script/v4/from-v3.d.ts +29 -0
  242. package/dist/domain/script/v4/from-v3.js +307 -0
  243. package/dist/domain/script/v4/from-v3.js.map +1 -0
  244. package/dist/domain/script/v4/ids.d.ts +27 -0
  245. package/dist/domain/script/v4/ids.js +62 -0
  246. package/dist/domain/script/v4/ids.js.map +1 -0
  247. package/dist/domain/script/v4/ordinal.d.ts +3 -0
  248. package/dist/domain/script/v4/ordinal.js +66 -0
  249. package/dist/domain/script/v4/ordinal.js.map +1 -0
  250. package/dist/domain/script/v4/parse.d.ts +3 -0
  251. package/dist/domain/script/v4/parse.js +17 -0
  252. package/dist/domain/script/v4/parse.js.map +1 -0
  253. package/dist/domain/script/v4/patch/apply.d.ts +3 -0
  254. package/dist/domain/script/v4/patch/apply.js +24 -0
  255. package/dist/domain/script/v4/patch/apply.js.map +1 -0
  256. package/dist/domain/script/v4/patch/helpers.d.ts +32 -0
  257. package/dist/domain/script/v4/patch/helpers.js +138 -0
  258. package/dist/domain/script/v4/patch/helpers.js.map +1 -0
  259. package/dist/domain/script/v4/patch/ops-action.d.ts +13 -0
  260. package/dist/domain/script/v4/patch/ops-action.js +376 -0
  261. package/dist/domain/script/v4/patch/ops-action.js.map +1 -0
  262. package/dist/domain/script/v4/patch/ops-asset.d.ts +17 -0
  263. package/dist/domain/script/v4/patch/ops-asset.js +617 -0
  264. package/dist/domain/script/v4/patch/ops-asset.js.map +1 -0
  265. package/dist/domain/script/v4/patch/ops-extend.d.ts +11 -0
  266. package/dist/domain/script/v4/patch/ops-extend.js +86 -0
  267. package/dist/domain/script/v4/patch/ops-extend.js.map +1 -0
  268. package/dist/domain/script/v4/patch/ops-meta.d.ts +5 -0
  269. package/dist/domain/script/v4/patch/ops-meta.js +49 -0
  270. package/dist/domain/script/v4/patch/ops-meta.js.map +1 -0
  271. package/dist/domain/script/v4/patch/ops-scene-ref.d.ts +3 -0
  272. package/dist/domain/script/v4/patch/ops-scene-ref.js +98 -0
  273. package/dist/domain/script/v4/patch/ops-scene-ref.js.map +1 -0
  274. package/dist/domain/script/v4/patch/ops-structure.d.ts +6 -0
  275. package/dist/domain/script/v4/patch/ops-structure.js +236 -0
  276. package/dist/domain/script/v4/patch/ops-structure.js.map +1 -0
  277. package/dist/domain/script/v4/patch/registry.d.ts +2 -0
  278. package/dist/domain/script/v4/patch/registry.js +50 -0
  279. package/dist/domain/script/v4/patch/registry.js.map +1 -0
  280. package/dist/domain/script/v4/patch/schema.d.ts +7 -0
  281. package/dist/domain/script/v4/patch/schema.js +75 -0
  282. package/dist/domain/script/v4/patch/schema.js.map +1 -0
  283. package/dist/domain/script/v4/patch/types.d.ts +10 -0
  284. package/dist/domain/script/v4/patch/types.js +2 -0
  285. package/dist/domain/script/v4/patch/types.js.map +1 -0
  286. package/dist/domain/script/v4/selector.d.ts +11 -0
  287. package/dist/domain/script/v4/selector.js +124 -0
  288. package/dist/domain/script/v4/selector.js.map +1 -0
  289. package/dist/domain/script/v4/types.d.ts +120 -0
  290. package/dist/domain/script/v4/types.js +2 -0
  291. package/dist/domain/script/v4/types.js.map +1 -0
  292. package/dist/domain/script/v4/validation.d.ts +2 -0
  293. package/dist/domain/script/v4/validation.js +378 -0
  294. package/dist/domain/script/v4/validation.js.map +1 -0
  295. package/dist/infra/ingest/video-discovery.js +7 -4
  296. package/dist/infra/ingest/video-discovery.js.map +1 -1
  297. package/dist/infra/script-output-store.js +6 -11
  298. package/dist/infra/script-output-store.js.map +1 -1
  299. package/dist/infra/script-working-copy.js +15 -16
  300. package/dist/infra/script-working-copy.js.map +1 -1
  301. package/dist/llm/config.js +5 -4
  302. package/dist/llm/config.js.map +1 -1
  303. package/dist/llm/registry.d.ts +1 -0
  304. package/dist/llm/registry.js +3 -0
  305. package/dist/llm/registry.js.map +1 -1
  306. package/dist/llm/router.js +6 -8
  307. package/dist/llm/router.js.map +1 -1
  308. package/dist/llm/tasks/ingest/asset-audit.d.ts +6 -0
  309. package/dist/llm/tasks/ingest/asset-audit.js +164 -0
  310. package/dist/llm/tasks/ingest/asset-audit.js.map +1 -0
  311. package/dist/llm/tasks/ingest/asset-curate.d.ts +1 -1
  312. package/dist/llm/tasks/ingest/text-normalize.js +3 -3
  313. package/dist/llm/tasks/ingest/text-normalize.js.map +1 -1
  314. package/dist/llm/tasks/ingest/video-serial.js +3 -3
  315. package/dist/llm/tasks/ingest/video-serial.js.map +1 -1
  316. package/dist/llm/types.d.ts +1 -1
  317. package/dist/llm/types.js.map +1 -1
  318. package/dist/output.d.ts +2 -3
  319. package/dist/output.js +72 -109
  320. package/dist/output.js.map +1 -1
  321. package/dist/usecases/changelog.d.ts +2 -2
  322. package/dist/usecases/changelog.js +28 -36
  323. package/dist/usecases/changelog.js.map +1 -1
  324. package/dist/usecases/doctor.d.ts +2 -2
  325. package/dist/usecases/doctor.js +3 -5
  326. package/dist/usecases/doctor.js.map +1 -1
  327. package/dist/usecases/ingest/command.d.ts +2 -2
  328. package/dist/usecases/ingest/command.js +23 -6
  329. package/dist/usecases/ingest/command.js.map +1 -1
  330. package/dist/usecases/ingest/final-asset-audit.d.ts +39 -0
  331. package/dist/usecases/ingest/final-asset-audit.js +88 -0
  332. package/dist/usecases/ingest/final-asset-audit.js.map +1 -0
  333. package/dist/usecases/ingest/pass5-extract.js +5 -4
  334. package/dist/usecases/ingest/pass5-extract.js.map +1 -1
  335. package/dist/usecases/ingest/pass5-govern.js +13 -11
  336. package/dist/usecases/ingest/pass5-govern.js.map +1 -1
  337. package/dist/usecases/ingest/pipeline.js +77 -23
  338. package/dist/usecases/ingest/pipeline.js.map +1 -1
  339. package/dist/usecases/ingest/serial-govern.d.ts +2 -1
  340. package/dist/usecases/ingest/serial-govern.js +16 -8
  341. package/dist/usecases/ingest/serial-govern.js.map +1 -1
  342. package/dist/usecases/ingest/status.d.ts +2 -2
  343. package/dist/usecases/ingest/status.js +1 -1
  344. package/dist/usecases/ingest/status.js.map +1 -1
  345. package/dist/usecases/ingest/video-pipeline.js +121 -29
  346. package/dist/usecases/ingest/video-pipeline.js.map +1 -1
  347. package/dist/usecases/ingest/view-command.d.ts +2 -2
  348. package/dist/usecases/ingest/view-command.js +7 -6
  349. package/dist/usecases/ingest/view-command.js.map +1 -1
  350. package/dist/usecases/ingest/view-server.d.ts +2 -2
  351. package/dist/usecases/ingest/view-server.js +9 -7
  352. package/dist/usecases/ingest/view-server.js.map +1 -1
  353. package/dist/usecases/script/actions.d.ts +2 -2
  354. package/dist/usecases/script/actions.js +106 -11
  355. package/dist/usecases/script/actions.js.map +1 -1
  356. package/dist/usecases/script/actor.d.ts +2 -2
  357. package/dist/usecases/script/actor.js +3 -4
  358. package/dist/usecases/script/actor.js.map +1 -1
  359. package/dist/usecases/script/actors.d.ts +2 -2
  360. package/dist/usecases/script/actors.js +18 -9
  361. package/dist/usecases/script/actors.js.map +1 -1
  362. package/dist/usecases/script/add-actor.d.ts +2 -2
  363. package/dist/usecases/script/add-episode.d.ts +2 -2
  364. package/dist/usecases/script/add-location.d.ts +2 -2
  365. package/dist/usecases/script/add-prop.d.ts +2 -2
  366. package/dist/usecases/script/alias.d.ts +2 -2
  367. package/dist/usecases/script/alias.js +13 -14
  368. package/dist/usecases/script/alias.js.map +1 -1
  369. package/dist/usecases/script/assets.d.ts +2 -2
  370. package/dist/usecases/script/assets.js +29 -5
  371. package/dist/usecases/script/assets.js.map +1 -1
  372. package/dist/usecases/script/audit-assets.d.ts +4 -0
  373. package/dist/usecases/script/audit-assets.js +37 -0
  374. package/dist/usecases/script/audit-assets.js.map +1 -0
  375. package/dist/usecases/script/command-constraints.d.ts +36 -0
  376. package/dist/usecases/script/command-constraints.js +114 -0
  377. package/dist/usecases/script/command-constraints.js.map +1 -0
  378. package/dist/usecases/script/context.d.ts +2 -2
  379. package/dist/usecases/script/context.js +34 -8
  380. package/dist/usecases/script/context.js.map +1 -1
  381. package/dist/usecases/script/create.d.ts +2 -2
  382. package/dist/usecases/script/create.js +5 -6
  383. package/dist/usecases/script/create.js.map +1 -1
  384. package/dist/usecases/script/delete.d.ts +2 -2
  385. package/dist/usecases/script/delete.js +15 -15
  386. package/dist/usecases/script/delete.js.map +1 -1
  387. package/dist/usecases/script/describe.d.ts +2 -2
  388. package/dist/usecases/script/describe.js +13 -12
  389. package/dist/usecases/script/describe.js.map +1 -1
  390. package/dist/usecases/script/dialogue.d.ts +2 -2
  391. package/dist/usecases/script/dialogue.js +18 -9
  392. package/dist/usecases/script/dialogue.js.map +1 -1
  393. package/dist/usecases/script/dispatch.d.ts +3 -0
  394. package/dist/usecases/script/dispatch.js +10 -0
  395. package/dist/usecases/script/dispatch.js.map +1 -0
  396. package/dist/usecases/script/do.d.ts +2 -2
  397. package/dist/usecases/script/do.js +105 -45
  398. package/dist/usecases/script/do.js.map +1 -1
  399. package/dist/usecases/script/emotion.d.ts +2 -2
  400. package/dist/usecases/script/emotion.js +14 -3
  401. package/dist/usecases/script/emotion.js.map +1 -1
  402. package/dist/usecases/script/episodes.d.ts +2 -2
  403. package/dist/usecases/script/episodes.js +19 -8
  404. package/dist/usecases/script/episodes.js.map +1 -1
  405. package/dist/usecases/script/export-authoring.d.ts +2 -2
  406. package/dist/usecases/script/export-authoring.js +47 -26
  407. package/dist/usecases/script/export-authoring.js.map +1 -1
  408. package/dist/usecases/script/extend.d.ts +2 -2
  409. package/dist/usecases/script/extend.js +43 -31
  410. package/dist/usecases/script/extend.js.map +1 -1
  411. package/dist/usecases/script/ids.d.ts +2 -2
  412. package/dist/usecases/script/ids.js +68 -21
  413. package/dist/usecases/script/ids.js.map +1 -1
  414. package/dist/usecases/script/importance.d.ts +2 -2
  415. package/dist/usecases/script/importance.js +3 -4
  416. package/dist/usecases/script/importance.js.map +1 -1
  417. package/dist/usecases/script/insert.d.ts +2 -2
  418. package/dist/usecases/script/insert.js +80 -46
  419. package/dist/usecases/script/insert.js.map +1 -1
  420. package/dist/usecases/script/issues.d.ts +2 -2
  421. package/dist/usecases/script/issues.js +10 -2
  422. package/dist/usecases/script/issues.js.map +1 -1
  423. package/dist/usecases/script/lib.d.ts +62 -7
  424. package/dist/usecases/script/lib.js +782 -184
  425. package/dist/usecases/script/lib.js.map +1 -1
  426. package/dist/usecases/script/locations.d.ts +2 -2
  427. package/dist/usecases/script/locations.js +18 -9
  428. package/dist/usecases/script/locations.js.map +1 -1
  429. package/dist/usecases/script/merge.d.ts +2 -2
  430. package/dist/usecases/script/merge.js +17 -17
  431. package/dist/usecases/script/merge.js.map +1 -1
  432. package/dist/usecases/script/move.d.ts +2 -2
  433. package/dist/usecases/script/move.js +30 -13
  434. package/dist/usecases/script/move.js.map +1 -1
  435. package/dist/usecases/script/parenthetical.d.ts +3 -0
  436. package/dist/usecases/script/parenthetical.js +52 -0
  437. package/dist/usecases/script/parenthetical.js.map +1 -0
  438. package/dist/usecases/script/props.d.ts +2 -2
  439. package/dist/usecases/script/props.js +18 -9
  440. package/dist/usecases/script/props.js.map +1 -1
  441. package/dist/usecases/script/refs.d.ts +2 -2
  442. package/dist/usecases/script/refs.js +61 -11
  443. package/dist/usecases/script/refs.js.map +1 -1
  444. package/dist/usecases/script/rename.d.ts +2 -2
  445. package/dist/usecases/script/rename.js +13 -12
  446. package/dist/usecases/script/rename.js.map +1 -1
  447. package/dist/usecases/script/replace.d.ts +2 -2
  448. package/dist/usecases/script/replace.js +6 -8
  449. package/dist/usecases/script/replace.js.map +1 -1
  450. package/dist/usecases/script/role.d.ts +2 -2
  451. package/dist/usecases/script/role.js +3 -4
  452. package/dist/usecases/script/role.js.map +1 -1
  453. package/dist/usecases/script/scenes.d.ts +2 -2
  454. package/dist/usecases/script/scenes.js +35 -7
  455. package/dist/usecases/script/scenes.js.map +1 -1
  456. package/dist/usecases/script/script-patch.d.ts +2 -2
  457. package/dist/usecases/script/script-patch.js +219 -72
  458. package/dist/usecases/script/script-patch.js.map +1 -1
  459. package/dist/usecases/script/script-validate.d.ts +2 -2
  460. package/dist/usecases/script/script-validate.js +11 -7
  461. package/dist/usecases/script/script-validate.js.map +1 -1
  462. package/dist/usecases/script/session.d.ts +3 -0
  463. package/dist/usecases/script/session.js +74 -65
  464. package/dist/usecases/script/session.js.map +1 -1
  465. package/dist/usecases/script/split.d.ts +2 -2
  466. package/dist/usecases/script/split.js +18 -14
  467. package/dist/usecases/script/split.js.map +1 -1
  468. package/dist/usecases/script/state-add.d.ts +2 -2
  469. package/dist/usecases/script/state-add.js +3 -4
  470. package/dist/usecases/script/state-add.js.map +1 -1
  471. package/dist/usecases/script/state-delete.d.ts +2 -2
  472. package/dist/usecases/script/state-delete.js +3 -4
  473. package/dist/usecases/script/state-delete.js.map +1 -1
  474. package/dist/usecases/script/state-rename.d.ts +2 -2
  475. package/dist/usecases/script/state-rename.js +3 -4
  476. package/dist/usecases/script/state-rename.js.map +1 -1
  477. package/dist/usecases/script/states.d.ts +2 -2
  478. package/dist/usecases/script/states.js +91 -20
  479. package/dist/usecases/script/states.js.map +1 -1
  480. package/dist/usecases/script/summary.d.ts +2 -2
  481. package/dist/usecases/script/summary.js +21 -2
  482. package/dist/usecases/script/summary.js.map +1 -1
  483. package/dist/usecases/script/synopsis-generate.d.ts +2 -2
  484. package/dist/usecases/script/synopsis-generate.js +38 -39
  485. package/dist/usecases/script/synopsis-generate.js.map +1 -1
  486. package/dist/usecases/script/synopsis.d.ts +2 -2
  487. package/dist/usecases/script/synopsis.js +20 -16
  488. package/dist/usecases/script/synopsis.js.map +1 -1
  489. package/dist/usecases/script/transition.d.ts +2 -2
  490. package/dist/usecases/script/transition.js +3 -4
  491. package/dist/usecases/script/transition.js.map +1 -1
  492. package/dist/usecases/script/type.d.ts +2 -2
  493. package/dist/usecases/script/type.js +3 -4
  494. package/dist/usecases/script/type.js.map +1 -1
  495. package/dist/usecases/script/v3/mutations.d.ts +2 -0
  496. package/dist/usecases/script/v3/mutations.js +5 -0
  497. package/dist/usecases/script/v3/mutations.js.map +1 -0
  498. package/dist/usecases/script/v4/mutations.d.ts +2 -0
  499. package/dist/usecases/script/v4/mutations.js +6 -0
  500. package/dist/usecases/script/v4/mutations.js.map +1 -0
  501. package/dist/usecases/script/v4/queries.d.ts +15 -0
  502. package/dist/usecases/script/v4/queries.js +191 -0
  503. package/dist/usecases/script/v4/queries.js.map +1 -0
  504. package/dist/usecases/script/working-copy.d.ts +4 -4
  505. package/dist/usecases/script/working-copy.js +98 -94
  506. package/dist/usecases/script/working-copy.js.map +1 -1
  507. package/dist/usecases/script/worldview.d.ts +2 -2
  508. package/dist/usecases/script/worldview.js +3 -4
  509. package/dist/usecases/script/worldview.js.map +1 -1
  510. package/dist/usecases/script/write-authoring.d.ts +2 -2
  511. package/dist/usecases/script/write-authoring.js +125 -50
  512. package/dist/usecases/script/write-authoring.js.map +1 -1
  513. package/dist/usecases/update.d.ts +2 -2
  514. package/dist/usecases/update.js +32 -47
  515. package/dist/usecases/update.js.map +1 -1
  516. package/package.json +3 -2
  517. package/skills/scriptctl/SKILL.md +128 -282
  518. package/skills/scriptctl/references/atomic-edit-workflow.md +23 -38
  519. package/skills/scriptctl/references/bulk-authoring.md +35 -154
  520. package/skills/scriptctl/references/ingest-workflow.md +12 -11
  521. package/skills/scriptctl/references/production-writing-standard.md +38 -67
  522. package/skills/scriptctl/references/state-reference-repair.md +19 -42
  523. package/dist/help-text.d.ts +0 -2
  524. package/dist/help-text.js +0 -1112
  525. package/dist/help-text.js.map +0 -1
@@ -0,0 +1,378 @@
1
+ import { ACTION_TYPES, IMPORTANCE_TIERS, NON_ACTOR_SPEAKER_KINDS, ROLE_TYPES, } from "../shared/types.js";
2
+ import { isV4Id } from "./ids.js";
3
+ const isObj = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
4
+ const isStr = (value) => typeof value === "string";
5
+ const isArr = (value) => Array.isArray(value);
6
+ function isJsonValue(value) {
7
+ if (value === null
8
+ || typeof value === "string"
9
+ || typeof value === "number"
10
+ || typeof value === "boolean")
11
+ return true;
12
+ if (Array.isArray(value))
13
+ return value.every(isJsonValue);
14
+ return isObj(value) && Object.values(value).every(isJsonValue);
15
+ }
16
+ function validateExtend(value, path, err) {
17
+ if (value !== undefined && (!isObj(value) || !Object.values(value).every(isJsonValue))) {
18
+ err("extend", path, "extend must be an object containing JSON values");
19
+ }
20
+ }
21
+ function isSorted(values) {
22
+ for (let index = 1; index < values.length; index++) {
23
+ if (values[index - 1] > values[index])
24
+ return false;
25
+ }
26
+ return true;
27
+ }
28
+ export function validateScriptV4(doc) {
29
+ const errors = [];
30
+ const warnings = [];
31
+ const err = (code, path, message) => errors.push({ code, path, message });
32
+ if (!isObj(doc)) {
33
+ return {
34
+ ok: false,
35
+ errors: [{ code: "not_object", path: "$", message: "script must be an object" }],
36
+ warnings,
37
+ };
38
+ }
39
+ if (doc.version !== 4)
40
+ err("version", "$.version", "version must be 4");
41
+ for (const key of ["title", "worldview", "style"]) {
42
+ if (!isStr(doc[key]))
43
+ err("field", `$.${key}`, `${key} must be a string`);
44
+ }
45
+ for (const key of ["worldview_raw", "synopsis", "logline", "theme"]) {
46
+ if (doc[key] !== undefined && !isStr(doc[key]))
47
+ err("field", `$.${key}`, `${key} must be a string`);
48
+ }
49
+ if (doc.main_characters !== undefined
50
+ && (!isArr(doc.main_characters)
51
+ || !doc.main_characters.every((item) => isObj(item) && isStr(item.name) && isStr(item.role)))) {
52
+ err("main_characters", "$.main_characters", "main_characters must contain {name, role} string records");
53
+ }
54
+ validateExtend(doc.extend, "$.extend", err);
55
+ const assetKinds = new Map();
56
+ const stateIds = new Map();
57
+ const actorNames = new Set();
58
+ const collectAssets = (list, kind, idField, nameField, path) => {
59
+ if (!isArr(list)) {
60
+ err("field", path, `${path} must be an array`);
61
+ return;
62
+ }
63
+ const ids = new Set();
64
+ list.forEach((raw, index) => {
65
+ const itemPath = `${path}[${index}]`;
66
+ if (!isObj(raw)) {
67
+ err("asset", itemPath, "asset must be an object");
68
+ return;
69
+ }
70
+ const id = raw[idField];
71
+ if (!isV4Id(kind, id)) {
72
+ err("asset_id", `${itemPath}.${idField}`, `${idField} must be ${kind} ID`);
73
+ return;
74
+ }
75
+ if (ids.has(id))
76
+ err("dup_id", `${itemPath}.${idField}`, `duplicate ${idField} ${id}`);
77
+ ids.add(id);
78
+ assetKinds.set(id, kind);
79
+ if (!isStr(raw[nameField]) || raw[nameField].trim() === "") {
80
+ err("asset_name", `${itemPath}.${nameField}`, `${nameField} must be a non-empty string`);
81
+ }
82
+ else if (kind === "actor") {
83
+ const nameKey = raw[nameField].trim().toLocaleLowerCase();
84
+ if (actorNames.has(nameKey)) {
85
+ err("dup_actor_name", `${itemPath}.${nameField}`, `duplicate actor name ${raw[nameField]}`);
86
+ }
87
+ actorNames.add(nameKey);
88
+ }
89
+ if (!isStr(raw.importance) || !IMPORTANCE_TIERS.includes(raw.importance)) {
90
+ err("importance", `${itemPath}.importance`, `importance must be ${IMPORTANCE_TIERS.join("|")}`);
91
+ }
92
+ if (kind === "actor"
93
+ && raw.role_type !== undefined
94
+ && (!isStr(raw.role_type) || !ROLE_TYPES.includes(raw.role_type))) {
95
+ err("role_type", `${itemPath}.role_type`, `role_type must be ${ROLE_TYPES.join("|")}`);
96
+ }
97
+ if (!isStr(raw.description))
98
+ err("asset_desc", `${itemPath}.description`, "description must be a string");
99
+ if (raw.aliases !== undefined
100
+ && (!isArr(raw.aliases) || !raw.aliases.every(isStr))) {
101
+ err("aliases", `${itemPath}.aliases`, "aliases must be an array of strings");
102
+ }
103
+ else if (isArr(raw.aliases) && raw.aliases.every(isStr)) {
104
+ const seenAliases = new Set();
105
+ const assetName = isStr(raw[nameField]) ? raw[nameField] : "";
106
+ raw.aliases.forEach((alias, aliasIndex) => {
107
+ if (alias === "") {
108
+ err("alias_empty", `${itemPath}.aliases[${aliasIndex}]`, "alias must not be empty");
109
+ }
110
+ if (alias === assetName) {
111
+ err("alias_equals_name", `${itemPath}.aliases[${aliasIndex}]`, "alias must differ from the asset name");
112
+ }
113
+ if (seenAliases.has(alias)) {
114
+ err("dup_alias", `${itemPath}.aliases[${aliasIndex}]`, `duplicate alias ${alias}`);
115
+ }
116
+ seenAliases.add(alias);
117
+ });
118
+ }
119
+ validateExtend(raw.extend, `${itemPath}.extend`, err);
120
+ const ownerStates = new Set();
121
+ const ownerStateNames = new Set();
122
+ let defaults = 0;
123
+ if (!isArr(raw.states) || raw.states.length === 0) {
124
+ err("states", `${itemPath}.states`, "states must be a non-empty array");
125
+ }
126
+ else {
127
+ raw.states.forEach((state, stateIndex) => {
128
+ const statePath = `${itemPath}.states[${stateIndex}]`;
129
+ if (!isObj(state)) {
130
+ err("state", statePath, "state must be an object");
131
+ return;
132
+ }
133
+ const stateId = state.state_id;
134
+ if (stateId !== "default" && !isV4Id("state", stateId)) {
135
+ err("state_id", `${statePath}.state_id`, "state_id must be default or st plus six Base58 characters");
136
+ return;
137
+ }
138
+ if (ownerStates.has(stateId))
139
+ err("dup_state", `${statePath}.state_id`, `duplicate state_id ${stateId}`);
140
+ ownerStates.add(stateId);
141
+ if (stateId === "default")
142
+ defaults++;
143
+ if (!isStr(state.state_name) || state.state_name.trim() === "") {
144
+ err("state_name", `${statePath}.state_name`, "state_name must be a non-empty string");
145
+ }
146
+ else {
147
+ if (ownerStateNames.has(state.state_name)) {
148
+ err("dup_state_name", `${statePath}.state_name`, `duplicate state_name ${state.state_name}`);
149
+ }
150
+ ownerStateNames.add(state.state_name);
151
+ }
152
+ if (!isStr(state.description))
153
+ err("state_description", `${statePath}.description`, "description must be a string");
154
+ validateExtend(state.extend, `${statePath}.extend`, err);
155
+ });
156
+ }
157
+ if (defaults !== 1) {
158
+ err("default_state", `${itemPath}.states`, `exactly one default state required, found ${defaults}`);
159
+ }
160
+ stateIds.set(id, ownerStates);
161
+ });
162
+ };
163
+ collectAssets(doc.actors, "actor", "actor_id", "actor_name", "$.actors");
164
+ collectAssets(doc.locations, "location", "location_id", "location_name", "$.locations");
165
+ collectAssets(doc.props, "prop", "prop_id", "prop_name", "$.props");
166
+ const validateStateSet = (assetId, rawStateIds, path) => {
167
+ if (!isArr(rawStateIds) || rawStateIds.length === 0 || !rawStateIds.every(isStr)) {
168
+ err("state_ids", path, "state_ids must be a non-empty array of strings");
169
+ return [];
170
+ }
171
+ const ids = rawStateIds;
172
+ const seen = new Set();
173
+ ids.forEach((stateId, index) => {
174
+ if (seen.has(stateId))
175
+ err("dup_state_ref", `${path}[${index}]`, `duplicate state_id ${stateId}`);
176
+ seen.add(stateId);
177
+ if (!stateIds.get(assetId)?.has(stateId)) {
178
+ err("state_ref", `${path}[${index}]`, `state ${stateId} not found on ${assetId}`);
179
+ }
180
+ });
181
+ if (!isSorted(ids))
182
+ err("state_ids_order", path, "state_ids must be sorted lexically");
183
+ return ids;
184
+ };
185
+ const episodeIds = new Set();
186
+ const sceneIds = new Set();
187
+ const actionIds = new Set();
188
+ if (!isArr(doc.episodes)) {
189
+ err("episodes", "$.episodes", "episodes must be an array");
190
+ }
191
+ else {
192
+ doc.episodes.forEach((episode, episodeIndex) => {
193
+ const episodePath = `$.episodes[${episodeIndex}]`;
194
+ if (!isObj(episode)) {
195
+ err("episode", episodePath, "episode must be an object");
196
+ return;
197
+ }
198
+ if (!isV4Id("episode", episode.episode_id)) {
199
+ err("episode_id", `${episodePath}.episode_id`, "episode_id must be ep plus six Base58 characters");
200
+ }
201
+ else {
202
+ if (episodeIds.has(episode.episode_id)) {
203
+ err("dup_episode_id", `${episodePath}.episode_id`, `duplicate episode_id ${episode.episode_id}`);
204
+ }
205
+ episodeIds.add(episode.episode_id);
206
+ }
207
+ for (const key of ["title", "synopsis"]) {
208
+ if (episode[key] !== undefined && !isStr(episode[key])) {
209
+ err("field", `${episodePath}.${key}`, `${key} must be a string`);
210
+ }
211
+ }
212
+ validateExtend(episode.extend, `${episodePath}.extend`, err);
213
+ if (!isArr(episode.scenes)) {
214
+ err("scenes", `${episodePath}.scenes`, "scenes must be an array");
215
+ return;
216
+ }
217
+ episode.scenes.forEach((scene, sceneIndex) => {
218
+ const scenePath = `${episodePath}.scenes[${sceneIndex}]`;
219
+ if (!isObj(scene)) {
220
+ err("scene", scenePath, "scene must be an object");
221
+ return;
222
+ }
223
+ if (!isV4Id("scene", scene.scene_id)) {
224
+ err("scene_id", `${scenePath}.scene_id`, "scene_id must be scn plus six Base58 characters");
225
+ }
226
+ else {
227
+ if (sceneIds.has(scene.scene_id)) {
228
+ err("dup_scene_id", `${scenePath}.scene_id`, `duplicate scene_id ${scene.scene_id}`);
229
+ }
230
+ sceneIds.add(scene.scene_id);
231
+ }
232
+ validateExtend(scene.extend, `${scenePath}.extend`, err);
233
+ if (scene.environment !== undefined
234
+ && (!isObj(scene.environment)
235
+ || (scene.environment.space !== undefined && !isStr(scene.environment.space))
236
+ || (scene.environment.time !== undefined && !isStr(scene.environment.time)))) {
237
+ err("environment", `${scenePath}.environment`, "environment must contain optional string space/time");
238
+ }
239
+ if (scene.location !== null) {
240
+ if (!isObj(scene.location) || !isV4Id("location", scene.location.location_id)) {
241
+ err("location", `${scenePath}.location`, "location must be null or a typed v4 location reference");
242
+ }
243
+ else {
244
+ if ("state_id" in scene.location) {
245
+ err("v3_field", `${scenePath}.location.state_id`, "Script v4 scene references use state_ids");
246
+ }
247
+ if (assetKinds.get(scene.location.location_id) !== "location") {
248
+ err("location_ref", `${scenePath}.location.location_id`, `location ${scene.location.location_id} not found`);
249
+ }
250
+ validateStateSet(scene.location.location_id, scene.location.state_ids, `${scenePath}.location.state_ids`);
251
+ }
252
+ }
253
+ const sceneActorStates = new Map();
254
+ const validateRefs = (refs, kind, idField, path) => {
255
+ if (!isArr(refs)) {
256
+ err("field", path, `${path} must be an array`);
257
+ return;
258
+ }
259
+ const seen = new Set();
260
+ refs.forEach((ref, refIndex) => {
261
+ const refPath = `${path}[${refIndex}]`;
262
+ if (!isObj(ref) || !isV4Id(kind, ref[idField])) {
263
+ err("ref", refPath, `${idField} must be a typed v4 ID`);
264
+ return;
265
+ }
266
+ const assetId = ref[idField];
267
+ if ("state_id" in ref) {
268
+ err("v3_field", `${refPath}.state_id`, "Script v4 scene references use state_ids");
269
+ }
270
+ if (seen.has(assetId))
271
+ err("dup_asset_ref", `${refPath}.${idField}`, `duplicate ${kind} ref ${assetId}`);
272
+ seen.add(assetId);
273
+ if (assetKinds.get(assetId) !== kind) {
274
+ err("asset_ref", `${refPath}.${idField}`, `${kind} ${assetId} not found`);
275
+ }
276
+ const ids = validateStateSet(assetId, ref.state_ids, `${refPath}.state_ids`);
277
+ if (kind === "actor")
278
+ sceneActorStates.set(assetId, new Set(ids));
279
+ });
280
+ };
281
+ validateRefs(scene.actors, "actor", "actor_id", `${scenePath}.actors`);
282
+ validateRefs(scene.props, "prop", "prop_id", `${scenePath}.props`);
283
+ if (!isArr(scene.actions)) {
284
+ err("actions", `${scenePath}.actions`, "actions must be an array");
285
+ return;
286
+ }
287
+ scene.actions.forEach((action, actionIndex) => {
288
+ const actionPath = `${scenePath}.actions[${actionIndex}]`;
289
+ if (!isObj(action)) {
290
+ err("action", actionPath, "action must be an object");
291
+ return;
292
+ }
293
+ if (!isV4Id("action", action.action_id)) {
294
+ err("action_id", `${actionPath}.action_id`, "action_id must be ac plus six Base58 characters");
295
+ }
296
+ else {
297
+ if (actionIds.has(action.action_id)) {
298
+ err("dup_action_id", `${actionPath}.action_id`, `duplicate action_id ${action.action_id}`);
299
+ }
300
+ actionIds.add(action.action_id);
301
+ }
302
+ if (!isStr(action.type) || !ACTION_TYPES.includes(action.type)) {
303
+ err("action_type", `${actionPath}.type`, `invalid action type ${String(action.type)}`);
304
+ }
305
+ if (!isStr(action.content))
306
+ err("content", `${actionPath}.content`, "content must be a string");
307
+ if ("emotion" in action)
308
+ err("v3_field", `${actionPath}.emotion`, "Script v4 does not allow emotion");
309
+ validateExtend(action.extend, `${actionPath}.extend`, err);
310
+ const speaking = action.type === "dialogue" || action.type === "inner_thought";
311
+ if (speaking) {
312
+ if (action.parenthetical !== undefined && !isStr(action.parenthetical)) {
313
+ err("parenthetical", `${actionPath}.parenthetical`, "parenthetical must be a string");
314
+ }
315
+ if (!isObj(action.speaker)) {
316
+ err("speaker", `${actionPath}.speaker`, "dialogue/inner_thought requires a speaker");
317
+ }
318
+ else if (isStr(action.speaker.actor_id)) {
319
+ if ("kind" in action.speaker || "label" in action.speaker) {
320
+ err("speaker_shape", `${actionPath}.speaker`, "actor speaker cannot contain non-actor speaker fields");
321
+ }
322
+ const actorId = action.speaker.actor_id;
323
+ if (!isV4Id("actor", actorId) || assetKinds.get(actorId) !== "actor") {
324
+ err("speaker_actor", `${actionPath}.speaker.actor_id`, `actor ${actorId} not found`);
325
+ }
326
+ const sceneStates = sceneActorStates.get(actorId);
327
+ if (!sceneStates) {
328
+ err("actor_not_in_scene", `${actionPath}.speaker.actor_id`, `actor ${actorId} is not referenced by this scene`);
329
+ }
330
+ if (action.speaker.state_id !== undefined
331
+ && (!isStr(action.speaker.state_id) || !sceneStates?.has(action.speaker.state_id))) {
332
+ err("speaker_state", `${actionPath}.speaker.state_id`, `speaker state ${String(action.speaker.state_id)} is not in this scene's actor state_ids`);
333
+ }
334
+ }
335
+ else if (isStr(action.speaker.kind)) {
336
+ if ("actor_id" in action.speaker || "state_id" in action.speaker) {
337
+ err("speaker_shape", `${actionPath}.speaker`, "non-actor speaker cannot contain actor speaker fields");
338
+ }
339
+ if (!NON_ACTOR_SPEAKER_KINDS.includes(action.speaker.kind)) {
340
+ err("speaker_kind", `${actionPath}.speaker.kind`, "invalid non-actor speaker kind");
341
+ }
342
+ if (action.speaker.label !== undefined && !isStr(action.speaker.label)) {
343
+ err("speaker_label", `${actionPath}.speaker.label`, "speaker label must be a string");
344
+ }
345
+ }
346
+ else {
347
+ err("speaker", `${actionPath}.speaker`, "speaker needs actor_id or kind");
348
+ }
349
+ }
350
+ else {
351
+ if ("parenthetical" in action) {
352
+ err("parenthetical_type", `${actionPath}.parenthetical`, "parenthetical only belongs to speaking actions");
353
+ }
354
+ if ("speaker" in action) {
355
+ err("speaker_type", `${actionPath}.speaker`, "speaker only belongs to speaking actions");
356
+ }
357
+ }
358
+ if (action.transition_prompt !== undefined) {
359
+ const prompt = action.transition_prompt;
360
+ if (!isObj(prompt)
361
+ || !isStr(prompt.target)
362
+ || !isStr(prompt.process)
363
+ || prompt.process === ""
364
+ || !isStr(prompt.contrast)
365
+ || prompt.contrast === "") {
366
+ err("transition_prompt", `${actionPath}.transition_prompt`, "transition_prompt requires non-empty target/process/contrast");
367
+ }
368
+ else if (!assetKinds.has(prompt.target)) {
369
+ err("transition_target", `${actionPath}.transition_prompt.target`, `asset ${prompt.target} not found`);
370
+ }
371
+ }
372
+ });
373
+ });
374
+ });
375
+ }
376
+ return { ok: errors.length === 0, errors, warnings };
377
+ }
378
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/domain/script/v4/validation.ts"],"names":[],"mappings":"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"}
@@ -22,11 +22,11 @@ function episodeNumber(file) {
22
22
  return m ? Number(m[0]) : null;
23
23
  }
24
24
  function discoveryError(message, received) {
25
- return new CliError("INGEST VIDEO DISCOVERY", message, {
25
+ return new CliError(message, {
26
26
  exitCode: EXIT_INPUT,
27
27
  errorCode: "INGEST_VIDEO_DISCOVERY",
28
- received,
29
- nextSteps: ["Name every episode file with a number, or none of them, and rerun `scriptctl ingest`."],
28
+ hint: "Name every episode file with a number, or none of them, and rerun `scriptctl ingest`.",
29
+ data: { actual: received },
30
30
  });
31
31
  }
32
32
  function episode(file, n) {
@@ -34,7 +34,10 @@ function episode(file, n) {
34
34
  }
35
35
  export function discoverEpisodes(source) {
36
36
  if (source.kind === "text") {
37
- throw new CliError("INGEST WRONG PIPELINE", "discoverEpisodes received a text source.", { exitCode: EXIT_INPUT, errorCode: "INGEST_WRONG_PIPELINE" });
37
+ throw new CliError("discoverEpisodes received a text source.", {
38
+ exitCode: EXIT_INPUT,
39
+ errorCode: "INGEST_WRONG_PIPELINE",
40
+ });
38
41
  }
39
42
  if (source.kind === "video-file")
40
43
  return [episode(source.path, 1)];
@@ -1 +1 @@
1
- {"version":3,"file":"video-discovery.js","sourceRoot":"","sources":["../../../src/infra/ingest/video-discovery.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,0CAA0C;AAE1C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAuB,MAAM,sBAAsB,CAAC;AASvE,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC;AAC1D,CAAC;AAED,gFAAgF;AAChF,kFAAkF;AAClF,uEAAuE;AACvE,SAAS,aAAa,CAAC,IAAY;IACjC,+EAA+E;IAC/E,WAAW;IACX,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,QAAkB;IACzD,OAAO,IAAI,QAAQ,CAAC,wBAAwB,EAAE,OAAO,EAAE;QACrD,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,wBAAwB;QACnC,QAAQ;QACR,SAAS,EAAE,CAAC,uFAAuF,CAAC;KACrG,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,CAAS;IACtC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,QAAQ,CAAC,uBAAuB,EAAE,0CAA0C,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACxJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,2DAA2D;IACvF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAEhE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,gEAAgE;QAChE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,cAAc,CAAC,oDAAoD,EAAE,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM,cAAc,CAAC,+CAA+C,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AAClG,CAAC"}
1
+ {"version":3,"file":"video-discovery.js","sourceRoot":"","sources":["../../../src/infra/ingest/video-discovery.ts"],"names":[],"mappings":"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"}
@@ -94,24 +94,19 @@ export function resolveOutputMode(flags) {
94
94
  export function resolveOutputModeOrThrow(flags) {
95
95
  const resolved = resolveOutputMode(flags);
96
96
  if (resolved.conflict) {
97
- throw new CliError("SCRIPT API BLOCKED: --remote conflicts with --local", "--remote and --local are mutually exclusive.", {
97
+ throw new CliError("--remote and --local are mutually exclusive.", {
98
98
  exitCode: EXIT_USAGE,
99
- required: ["exactly one of --remote (publish to the project DB) or --local (write a local store)"],
100
- received: ["--remote and --local"],
101
- nextSteps: ["Drop one of the two flags and retry."],
102
99
  errorCode: "TARGET_FLAG_CONFLICT",
100
+ hint: "Drop one of the two flags and retry.",
101
+ data: { expected: ["exactly one of --remote (publish to the project DB) or --local (write a local store)"], actual: ["--remote and --local"] },
103
102
  });
104
103
  }
105
104
  if (resolved.mode === null) {
106
- throw new CliError("SCRIPT BLOCKED: no output target", "No output target was selected, so this command has nowhere to read or write.", {
105
+ throw new CliError("No output target was selected, so this command has nowhere to read or write.", {
107
106
  exitCode: EXIT_INPUT,
108
- required: ["an explicit output target"],
109
- received: ["no --script-path, no --remote/--local, and no bound default"],
110
- nextSteps: [
111
- "Pass `--script-path <file.json>` to read/write a local script file,",
112
- "or `--remote` to read/write the project DB (`--local` for a local store).",
113
- ],
114
107
  errorCode: "SCRIPT_NO_TARGET",
108
+ hint: "Pass `--script-path <file.json>` to read/write a local script file,",
109
+ data: { expected: ["an explicit output target"], actual: ["no --script-path, no --remote/--local, and no bound default"] },
115
110
  });
116
111
  }
117
112
  return resolved.mode;
@@ -1 +1 @@
1
- {"version":3,"file":"script-output-store.js","sourceRoot":"","sources":["../../src/infra/script-output-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAiBhE,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,MAAM,CAAgB;IACtB,IAAI,CAAyB;IAC7B,OAAO,CAAU;IACjB,aAAa,CAA2B;IAEjD,YAAY,OAAe,EAAE,OAAoC,EAAE;QACjE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IAClD,CAAC;CACF;AAyFD,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAyB,EAAE,YAAoB;IACpF,IAAI,CAAC,MAAM,CAAC,kBAAkB;QAAE,OAAO;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC;AAID;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAIjC;IAIC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,UAAU,IAAI,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACnE,IAAI,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC3D,IAAI,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAEzD,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3E,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/E,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACf,2EAA2E;QAC3E,yEAAyE;QACzE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,gFAAgF;IAChF,6EAA6E;IAC7E,gFAAgF;IAChF,uEAAuE;IACvE,MAAM,MAAM,GAAG,OAAO,KAAK,EAAE,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,IAAI,MAAM,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC9E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAIxC;IACC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,QAAQ,CAChB,qDAAqD,EACrD,8CAA8C,EAC9C;YACE,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,sFAAsF,CAAC;YAClG,QAAQ,EAAE,CAAC,sBAAsB,CAAC;YAClC,SAAS,EAAE,CAAC,sCAAsC,CAAC;YACnD,SAAS,EAAE,sBAAsB;SAClC,CACF,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,QAAQ,CAChB,kCAAkC,EAClC,8EAA8E,EAC9E;YACE,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,2BAA2B,CAAC;YACvC,QAAQ,EAAE,CAAC,6DAA6D,CAAC;YACzE,SAAS,EAAE;gBACT,qEAAqE;gBACrE,2EAA2E;aAC5E;YACD,SAAS,EAAE,kBAAkB;SAC9B,CACF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"script-output-store.js","sourceRoot":"","sources":["../../src/infra/script-output-store.ts"],"names":[],"mappings":"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"}
@@ -28,11 +28,11 @@ export function assertLocalFileFingerprint(filePath, expected) {
28
28
  const current = localFileFingerprint(filePath);
29
29
  if (current === expected)
30
30
  return;
31
- throw new CliError("SCRIPT BLOCKED: local script changed", "The local script changed while the command was running.", {
31
+ throw new CliError("The local script changed while the command was running.", {
32
32
  exitCode: EXIT_INPUT,
33
33
  errorCode: "LOCAL_SCRIPT_CHANGED",
34
- received: [`loadedFingerprint=${expected ?? "<missing>"}`, `currentFingerprint=${current ?? "<missing>"}`, filePath],
35
- nextSteps: ["Read the latest local script and retry the command."],
34
+ hint: "Read the latest local script and retry the command.",
35
+ data: { actual: [`loadedFingerprint=${expected ?? "<missing>"}`, `currentFingerprint=${current ?? "<missing>"}`, filePath] },
36
36
  });
37
37
  }
38
38
  export function workingCopyPaths(rawScriptPath) {
@@ -59,11 +59,11 @@ export async function withScriptFileLock(rawScriptPath, operation) {
59
59
  });
60
60
  }
61
61
  catch (error) {
62
- throw new CliError("SCRIPT BLOCKED: working copy is busy", "Timed out waiting for the script file lock.", {
62
+ throw new CliError("Timed out waiting for the script file lock.", {
63
63
  exitCode: EXIT_RUNTIME,
64
64
  errorCode: "WORKING_COPY_LOCK_TIMEOUT",
65
- received: [paths.scriptPath, error instanceof Error ? error.message : String(error)],
66
- nextSteps: ["Wait for the other scriptctl command to finish, then retry."],
65
+ hint: "Wait for the other scriptctl command to finish, then retry.",
66
+ data: { actual: [paths.scriptPath, error instanceof Error ? error.message : String(error)] },
67
67
  });
68
68
  }
69
69
  try {
@@ -124,12 +124,11 @@ export function writeWorkingCopyMetadata(rawScriptPath, metadata) {
124
124
  atomicWriteJson(workingCopyPaths(rawScriptPath).metadataPath, metadata);
125
125
  }
126
126
  function invalidMetadata(metadataPath, reason) {
127
- return new CliError("SCRIPT BLOCKED: working copy metadata invalid", "Working copy metadata is invalid.", {
127
+ return new CliError("Working copy metadata is invalid.", {
128
128
  exitCode: EXIT_INPUT,
129
129
  errorCode: "WORKING_COPY_METADATA_INVALID",
130
- required: ["valid scriptctl working-copy metadata"],
131
- received: [metadataPath, reason],
132
- nextSteps: ["Run `scriptctl checkout --discard-local` to recreate the working copy metadata."],
130
+ hint: "Run `scriptctl checkout --discard-local` to recreate the working copy metadata.",
131
+ data: { expected: ["valid scriptctl working-copy metadata"], actual: [metadataPath, reason] },
133
132
  });
134
133
  }
135
134
  export function assertScriptUnchanged(scriptPath, expectedHash) {
@@ -138,20 +137,20 @@ export function assertScriptUnchanged(scriptPath, expectedHash) {
138
137
  current = JSON.parse(fs.readFileSync(scriptPath, "utf-8"));
139
138
  }
140
139
  catch (error) {
141
- throw new CliError("SCRIPT BLOCKED: local script changed", "The local script changed while the command was running.", {
140
+ throw new CliError("The local script changed while the command was running.", {
142
141
  exitCode: EXIT_INPUT,
143
142
  errorCode: "LOCAL_SCRIPT_CHANGED",
144
- received: [scriptPath, error instanceof Error ? error.message : String(error)],
145
- nextSteps: ["Read the latest local script and re-apply the operation."],
143
+ hint: "Read the latest local script and re-apply the operation.",
144
+ data: { actual: [scriptPath, error instanceof Error ? error.message : String(error)] },
146
145
  });
147
146
  }
148
147
  const currentHash = semanticScriptHash(current);
149
148
  if (currentHash !== expectedHash) {
150
- throw new CliError("SCRIPT BLOCKED: local script changed", "The local script changed while the command was running.", {
149
+ throw new CliError("The local script changed while the command was running.", {
151
150
  exitCode: EXIT_INPUT,
152
151
  errorCode: "LOCAL_SCRIPT_CHANGED",
153
- received: [`loadedHash=${expectedHash}`, `currentHash=${currentHash}`, scriptPath],
154
- nextSteps: ["Read the latest local script and re-apply the operation."],
152
+ hint: "Read the latest local script and re-apply the operation.",
153
+ data: { actual: [`loadedHash=${expectedHash}`, `currentHash=${currentHash}`, scriptPath] },
155
154
  });
156
155
  }
157
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"script-working-copy.js","sourceRoot":"","sources":["../../src/infra/script-working-copy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script-working-copy.js","sourceRoot":"","sources":["../../src/infra/script-working-copy.ts"],"names":[],"mappings":"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"}