@lingjingai/scriptctl 0.34.0 → 0.36.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 (375) hide show
  1. package/README.md +30 -5
  2. package/changes/0.35.0.md +22 -0
  3. package/changes/0.36.0.md +22 -0
  4. package/changes/unreleased.md +3 -5
  5. package/dist/cli.d.ts +2 -1
  6. package/dist/cli.js +56 -128
  7. package/dist/cli.js.map +1 -1
  8. package/dist/common.d.ts +0 -16
  9. package/dist/common.js +2 -342
  10. package/dist/common.js.map +1 -1
  11. package/dist/domain/ingest/apply-plan.d.ts +23 -0
  12. package/dist/domain/ingest/apply-plan.js +210 -0
  13. package/dist/domain/ingest/apply-plan.js.map +1 -0
  14. package/dist/domain/ingest/assembler.d.ts +57 -0
  15. package/dist/domain/ingest/assembler.js +181 -0
  16. package/dist/domain/ingest/assembler.js.map +1 -0
  17. package/dist/domain/ingest/chunker.d.ts +9 -0
  18. package/dist/domain/ingest/chunker.js +38 -0
  19. package/dist/domain/ingest/chunker.js.map +1 -0
  20. package/dist/domain/ingest/evidence.d.ts +5 -0
  21. package/dist/domain/ingest/evidence.js +66 -0
  22. package/dist/domain/ingest/evidence.js.map +1 -0
  23. package/dist/domain/ingest/govern.d.ts +3 -0
  24. package/dist/domain/ingest/govern.js +127 -0
  25. package/dist/domain/ingest/govern.js.map +1 -0
  26. package/dist/domain/ingest/jsonl-parser.d.ts +6 -0
  27. package/dist/domain/ingest/jsonl-parser.js +187 -0
  28. package/dist/domain/ingest/jsonl-parser.js.map +1 -0
  29. package/dist/domain/ingest/markdown-parser.d.ts +6 -0
  30. package/dist/domain/ingest/markdown-parser.js +186 -0
  31. package/dist/domain/ingest/markdown-parser.js.map +1 -0
  32. package/dist/domain/ingest/records.d.ts +71 -0
  33. package/dist/domain/ingest/records.js +9 -0
  34. package/dist/domain/ingest/records.js.map +1 -0
  35. package/dist/domain/ingest/renumber.d.ts +14 -0
  36. package/dist/domain/ingest/renumber.js +130 -0
  37. package/dist/domain/ingest/renumber.js.map +1 -0
  38. package/dist/domain/ingest/script-v3.d.ts +94 -0
  39. package/dist/domain/ingest/script-v3.js +7 -0
  40. package/dist/domain/ingest/script-v3.js.map +1 -0
  41. package/dist/domain/ingest/state-reconcile.d.ts +11 -0
  42. package/dist/domain/ingest/state-reconcile.js +90 -0
  43. package/dist/domain/ingest/state-reconcile.js.map +1 -0
  44. package/dist/domain/ingest/validation.d.ts +11 -0
  45. package/dist/domain/ingest/validation.js +168 -0
  46. package/dist/domain/ingest/validation.js.map +1 -0
  47. package/dist/domain/ingest/video-aggregate.d.ts +23 -0
  48. package/dist/domain/ingest/video-aggregate.js +89 -0
  49. package/dist/domain/ingest/video-aggregate.js.map +1 -0
  50. package/dist/domain/ingest/video-apply.d.ts +37 -0
  51. package/dist/domain/ingest/video-apply.js +236 -0
  52. package/dist/domain/ingest/video-apply.js.map +1 -0
  53. package/dist/domain/ingest/video-md-parser.d.ts +2 -0
  54. package/dist/domain/ingest/video-md-parser.js +233 -0
  55. package/dist/domain/ingest/video-md-parser.js.map +1 -0
  56. package/dist/domain/ingest/video-records.d.ts +56 -0
  57. package/dist/domain/ingest/video-records.js +9 -0
  58. package/dist/domain/ingest/video-records.js.map +1 -0
  59. package/dist/domain/loom/index.d.ts +2 -1
  60. package/dist/domain/loom/index.js +12 -10
  61. package/dist/domain/loom/index.js.map +1 -1
  62. package/dist/domain/loom/types.d.ts +3 -2
  63. package/dist/domain/script/lookups.d.ts +3 -2
  64. package/dist/domain/script/lookups.js +25 -8
  65. package/dist/domain/script/lookups.js.map +1 -1
  66. package/dist/domain/script/patch/apply.js +2 -2
  67. package/dist/domain/script/patch/apply.js.map +1 -1
  68. package/dist/domain/script/patch/helpers.d.ts +3 -7
  69. package/dist/domain/script/patch/helpers.js +23 -96
  70. package/dist/domain/script/patch/helpers.js.map +1 -1
  71. package/dist/domain/script/patch/ops-action.d.ts +0 -2
  72. package/dist/domain/script/patch/ops-action.js +34 -100
  73. package/dist/domain/script/patch/ops-action.js.map +1 -1
  74. package/dist/domain/script/patch/ops-asset.d.ts +1 -0
  75. package/dist/domain/script/patch/ops-asset.js +102 -155
  76. package/dist/domain/script/patch/ops-asset.js.map +1 -1
  77. package/dist/domain/script/patch/ops-dialogue.d.ts +1 -4
  78. package/dist/domain/script/patch/ops-dialogue.js +43 -220
  79. package/dist/domain/script/patch/ops-dialogue.js.map +1 -1
  80. package/dist/domain/script/patch/ops-extend.js +8 -2
  81. package/dist/domain/script/patch/ops-extend.js.map +1 -1
  82. package/dist/domain/script/patch/ops-meta.js.map +1 -1
  83. package/dist/domain/script/patch/ops-scene.js +26 -39
  84. package/dist/domain/script/patch/ops-scene.js.map +1 -1
  85. package/dist/domain/script/patch/ops-state.d.ts +3 -3
  86. package/dist/domain/script/patch/ops-state.js +33 -49
  87. package/dist/domain/script/patch/ops-state.js.map +1 -1
  88. package/dist/domain/script/patch/registry.js +9 -13
  89. package/dist/domain/script/patch/registry.js.map +1 -1
  90. package/dist/domain/script/refs.js +23 -111
  91. package/dist/domain/script/refs.js.map +1 -1
  92. package/dist/domain/script/scene-refs.d.ts +3 -0
  93. package/dist/domain/script/scene-refs.js +35 -0
  94. package/dist/domain/script/scene-refs.js.map +1 -0
  95. package/dist/domain/script/schema.js +17 -21
  96. package/dist/domain/script/schema.js.map +1 -1
  97. package/dist/domain/script/text-util.d.ts +7 -0
  98. package/dist/domain/script/text-util.js +91 -0
  99. package/dist/domain/script/text-util.js.map +1 -0
  100. package/dist/help-text.js +145 -414
  101. package/dist/help-text.js.map +1 -1
  102. package/dist/infra/converters.js +1 -1
  103. package/dist/infra/converters.js.map +1 -1
  104. package/dist/infra/episode-title.d.ts +4 -0
  105. package/dist/infra/episode-title.js +129 -0
  106. package/dist/infra/episode-title.js.map +1 -0
  107. package/dist/infra/ingest/review-renderer.d.ts +1 -0
  108. package/dist/infra/ingest/review-renderer.js +431 -0
  109. package/dist/infra/ingest/review-renderer.js.map +1 -0
  110. package/dist/infra/ingest/source-resolver.d.ts +21 -0
  111. package/dist/infra/ingest/source-resolver.js +51 -0
  112. package/dist/infra/ingest/source-resolver.js.map +1 -0
  113. package/dist/infra/ingest/text-reader.d.ts +3 -0
  114. package/dist/infra/ingest/text-reader.js +27 -0
  115. package/dist/infra/ingest/text-reader.js.map +1 -0
  116. package/dist/infra/ingest/video-discovery.d.ts +8 -0
  117. package/dist/infra/ingest/video-discovery.js +60 -0
  118. package/dist/infra/ingest/video-discovery.js.map +1 -0
  119. package/dist/infra/ingest/workspace-store.d.ts +18 -0
  120. package/dist/infra/ingest/workspace-store.js +70 -0
  121. package/dist/infra/ingest/workspace-store.js.map +1 -0
  122. package/dist/infra/llm/anthropic-model.d.ts +11 -0
  123. package/dist/infra/llm/anthropic-model.js +109 -0
  124. package/dist/infra/llm/anthropic-model.js.map +1 -0
  125. package/dist/infra/llm/gemini-upload.d.ts +9 -0
  126. package/dist/infra/llm/gemini-upload.js +94 -0
  127. package/dist/infra/llm/gemini-upload.js.map +1 -0
  128. package/dist/infra/llm/gemini-video-model.d.ts +47 -0
  129. package/dist/infra/llm/gemini-video-model.js +167 -0
  130. package/dist/infra/llm/gemini-video-model.js.map +1 -0
  131. package/dist/infra/llm/openai-compatible-model.d.ts +13 -0
  132. package/dist/infra/llm/openai-compatible-model.js +143 -0
  133. package/dist/infra/llm/openai-compatible-model.js.map +1 -0
  134. package/dist/infra/llm/proxy.d.ts +1 -0
  135. package/dist/infra/llm/proxy.js +30 -0
  136. package/dist/infra/llm/proxy.js.map +1 -0
  137. package/dist/infra/llm/retry.d.ts +5 -0
  138. package/dist/infra/llm/retry.js +20 -0
  139. package/dist/infra/llm/retry.js.map +1 -0
  140. package/dist/llm/composition.d.ts +5 -0
  141. package/dist/llm/composition.js +5 -0
  142. package/dist/llm/composition.js.map +1 -0
  143. package/dist/llm/config.d.ts +26 -0
  144. package/dist/llm/config.js +201 -0
  145. package/dist/llm/config.js.map +1 -0
  146. package/dist/llm/registry.d.ts +44 -0
  147. package/dist/llm/registry.js +48 -0
  148. package/dist/llm/registry.js.map +1 -0
  149. package/dist/llm/router.d.ts +23 -0
  150. package/dist/llm/router.js +0 -0
  151. package/dist/llm/router.js.map +1 -0
  152. package/dist/llm/tasks/ingest/asset-curate.d.ts +13 -0
  153. package/dist/llm/tasks/ingest/asset-curate.js +45 -0
  154. package/dist/llm/tasks/ingest/asset-curate.js.map +1 -0
  155. package/dist/llm/tasks/ingest/asset-extract.d.ts +12 -0
  156. package/dist/llm/tasks/ingest/asset-extract.js +51 -0
  157. package/dist/llm/tasks/ingest/asset-extract.js.map +1 -0
  158. package/dist/llm/tasks/ingest/asset-govern.d.ts +22 -0
  159. package/dist/llm/tasks/ingest/asset-govern.js +143 -0
  160. package/dist/llm/tasks/ingest/asset-govern.js.map +1 -0
  161. package/dist/llm/tasks/ingest/mention-resolve.d.ts +9 -0
  162. package/dist/llm/tasks/ingest/mention-resolve.js +39 -0
  163. package/dist/llm/tasks/ingest/mention-resolve.js.map +1 -0
  164. package/dist/llm/tasks/ingest/plot-speaker.d.ts +11 -0
  165. package/dist/llm/tasks/ingest/plot-speaker.js +72 -0
  166. package/dist/llm/tasks/ingest/plot-speaker.js.map +1 -0
  167. package/dist/llm/tasks/ingest/roster-merge.d.ts +46 -0
  168. package/dist/llm/tasks/ingest/roster-merge.js +235 -0
  169. package/dist/llm/tasks/ingest/roster-merge.js.map +1 -0
  170. package/dist/llm/tasks/ingest/state-merge.d.ts +10 -0
  171. package/dist/llm/tasks/ingest/state-merge.js +84 -0
  172. package/dist/llm/tasks/ingest/state-merge.js.map +1 -0
  173. package/dist/llm/tasks/ingest/state-reconcile.d.ts +8 -0
  174. package/dist/llm/tasks/ingest/state-reconcile.js +44 -0
  175. package/dist/llm/tasks/ingest/state-reconcile.js.map +1 -0
  176. package/dist/llm/tasks/ingest/text-normalize.d.ts +10 -0
  177. package/dist/llm/tasks/ingest/text-normalize.js +89 -0
  178. package/dist/llm/tasks/ingest/text-normalize.js.map +1 -0
  179. package/dist/llm/tasks/ingest/video-correct.d.ts +30 -0
  180. package/dist/llm/tasks/ingest/video-correct.js +144 -0
  181. package/dist/llm/tasks/ingest/video-correct.js.map +1 -0
  182. package/dist/llm/tasks/ingest/video-transcribe.d.ts +4 -0
  183. package/dist/llm/tasks/ingest/video-transcribe.js +105 -0
  184. package/dist/llm/tasks/ingest/video-transcribe.js.map +1 -0
  185. package/dist/llm/tasks/schemas.d.ts +5 -0
  186. package/dist/llm/tasks/schemas.js +107 -0
  187. package/dist/llm/tasks/schemas.js.map +1 -0
  188. package/dist/llm/types.d.ts +97 -0
  189. package/dist/llm/types.js +13 -0
  190. package/dist/llm/types.js.map +1 -0
  191. package/dist/usecases/doctor.d.ts +1 -1
  192. package/dist/usecases/doctor.js +36 -9
  193. package/dist/usecases/doctor.js.map +1 -1
  194. package/dist/usecases/ingest/command.d.ts +5 -0
  195. package/dist/usecases/ingest/command.js +57 -0
  196. package/dist/usecases/ingest/command.js.map +1 -0
  197. package/dist/usecases/ingest/fanout.d.ts +10 -0
  198. package/dist/usecases/ingest/fanout.js +23 -0
  199. package/dist/usecases/ingest/fanout.js.map +1 -0
  200. package/dist/usecases/ingest/pass4-mention-resolve.d.ts +11 -0
  201. package/dist/usecases/ingest/pass4-mention-resolve.js +52 -0
  202. package/dist/usecases/ingest/pass4-mention-resolve.js.map +1 -0
  203. package/dist/usecases/ingest/pass5-extract.d.ts +7 -0
  204. package/dist/usecases/ingest/pass5-extract.js +50 -0
  205. package/dist/usecases/ingest/pass5-extract.js.map +1 -0
  206. package/dist/usecases/ingest/pass5-govern.d.ts +13 -0
  207. package/dist/usecases/ingest/pass5-govern.js +155 -0
  208. package/dist/usecases/ingest/pass5-govern.js.map +1 -0
  209. package/dist/usecases/ingest/pipeline.d.ts +28 -0
  210. package/dist/usecases/ingest/pipeline.js +144 -0
  211. package/dist/usecases/ingest/pipeline.js.map +1 -0
  212. package/dist/usecases/ingest/publish-command.d.ts +4 -0
  213. package/dist/usecases/ingest/publish-command.js +77 -0
  214. package/dist/usecases/ingest/publish-command.js.map +1 -0
  215. package/dist/usecases/ingest/status.d.ts +39 -0
  216. package/dist/usecases/ingest/status.js +155 -0
  217. package/dist/usecases/ingest/status.js.map +1 -0
  218. package/dist/usecases/ingest/video-pass3.d.ts +26 -0
  219. package/dist/usecases/ingest/video-pass3.js +0 -0
  220. package/dist/usecases/ingest/video-pass3.js.map +1 -0
  221. package/dist/usecases/ingest/video-pipeline.d.ts +32 -0
  222. package/dist/usecases/ingest/video-pipeline.js +202 -0
  223. package/dist/usecases/ingest/video-pipeline.js.map +1 -0
  224. package/dist/usecases/ingest/view-command.d.ts +4 -0
  225. package/dist/usecases/ingest/view-command.js +51 -0
  226. package/dist/usecases/ingest/view-command.js.map +1 -0
  227. package/dist/usecases/script/actions.js +2 -2
  228. package/dist/usecases/script/actions.js.map +1 -1
  229. package/dist/usecases/script/actor.js.map +1 -1
  230. package/dist/usecases/script/actors.js +1 -0
  231. package/dist/usecases/script/actors.js.map +1 -1
  232. package/dist/usecases/script/add-actor.js.map +1 -1
  233. package/dist/usecases/script/add-episode.js.map +1 -1
  234. package/dist/usecases/script/add-location.js.map +1 -1
  235. package/dist/usecases/script/add-prop.js.map +1 -1
  236. package/dist/usecases/script/alias.js.map +1 -1
  237. package/dist/usecases/script/assets.js +2 -1
  238. package/dist/usecases/script/assets.js.map +1 -1
  239. package/dist/usecases/script/context.js.map +1 -1
  240. package/dist/usecases/script/create.js +3 -6
  241. package/dist/usecases/script/create.js.map +1 -1
  242. package/dist/usecases/script/delete.js.map +1 -1
  243. package/dist/usecases/script/describe.js.map +1 -1
  244. package/dist/usecases/script/dialogue.js +6 -13
  245. package/dist/usecases/script/dialogue.js.map +1 -1
  246. package/dist/usecases/script/do.js +1 -1
  247. package/dist/usecases/script/do.js.map +1 -1
  248. package/dist/usecases/script/episodes.js.map +1 -1
  249. package/dist/usecases/script/{add-speaker.d.ts → importance.d.ts} +1 -1
  250. package/dist/usecases/script/importance.js +17 -0
  251. package/dist/usecases/script/importance.js.map +1 -0
  252. package/dist/usecases/script/insert.js.map +1 -1
  253. package/dist/usecases/script/issues.js.map +1 -1
  254. package/dist/usecases/script/lib.d.ts +19 -6
  255. package/dist/usecases/script/lib.js +173 -99
  256. package/dist/usecases/script/lib.js.map +1 -1
  257. package/dist/usecases/script/locations.js +1 -0
  258. package/dist/usecases/script/locations.js.map +1 -1
  259. package/dist/usecases/script/merge.js.map +1 -1
  260. package/dist/usecases/script/move.js.map +1 -1
  261. package/dist/usecases/script/props.js +1 -0
  262. package/dist/usecases/script/props.js.map +1 -1
  263. package/dist/usecases/script/refs.js.map +1 -1
  264. package/dist/usecases/script/rename.js.map +1 -1
  265. package/dist/usecases/script/replace.js.map +1 -1
  266. package/dist/usecases/script/role.js.map +1 -1
  267. package/dist/usecases/script/scenes.js +8 -15
  268. package/dist/usecases/script/scenes.js.map +1 -1
  269. package/dist/usecases/script/script-patch.js +1 -1
  270. package/dist/usecases/script/script-patch.js.map +1 -1
  271. package/dist/usecases/script/script-validate.js +1 -1
  272. package/dist/usecases/script/script-validate.js.map +1 -1
  273. package/dist/usecases/script/session.d.ts +4 -4
  274. package/dist/usecases/script/session.js +57 -78
  275. package/dist/usecases/script/session.js.map +1 -1
  276. package/dist/usecases/script/split.js.map +1 -1
  277. package/dist/usecases/script/state-add.js.map +1 -1
  278. package/dist/usecases/script/state-delete.js.map +1 -1
  279. package/dist/usecases/script/state-rename.js.map +1 -1
  280. package/dist/usecases/script/states.js +58 -13
  281. package/dist/usecases/script/states.js.map +1 -1
  282. package/dist/usecases/script/summary.js +8 -0
  283. package/dist/usecases/script/summary.js.map +1 -1
  284. package/dist/usecases/script/synopsis-generate.d.ts +4 -5
  285. package/dist/usecases/script/synopsis-generate.js +30 -46
  286. package/dist/usecases/script/synopsis-generate.js.map +1 -1
  287. package/dist/usecases/script/transition.js.map +1 -1
  288. package/dist/usecases/script/type.js.map +1 -1
  289. package/dist/usecases/script/worldview.js.map +1 -1
  290. package/package.json +11 -3
  291. package/scripts/install-skill.mjs +120 -0
  292. package/skills/scriptctl/SKILL.md +293 -0
  293. package/skills/scriptctl/references/atomic-write-workflow.md +117 -0
  294. package/skills/scriptctl/references/ingest-workflow.md +85 -0
  295. package/skills/scriptctl/references/state-reference-repair.md +59 -0
  296. package/dist/domain/direct/runner.d.ts +0 -25
  297. package/dist/domain/direct/runner.js +0 -88
  298. package/dist/domain/direct/runner.js.map +0 -1
  299. package/dist/domain/direct/stage.d.ts +0 -108
  300. package/dist/domain/direct/stage.js +0 -134
  301. package/dist/domain/direct/stage.js.map +0 -1
  302. package/dist/domain/direct/stages/asset-curation.d.ts +0 -2
  303. package/dist/domain/direct/stages/asset-curation.js +0 -10
  304. package/dist/domain/direct/stages/asset-curation.js.map +0 -1
  305. package/dist/domain/direct/stages/batch-extract.d.ts +0 -2
  306. package/dist/domain/direct/stages/batch-extract.js +0 -12
  307. package/dist/domain/direct/stages/batch-extract.js.map +0 -1
  308. package/dist/domain/direct/stages/batch-plan.d.ts +0 -2
  309. package/dist/domain/direct/stages/batch-plan.js +0 -9
  310. package/dist/domain/direct/stages/batch-plan.js.map +0 -1
  311. package/dist/domain/direct/stages/episode-merge.d.ts +0 -2
  312. package/dist/domain/direct/stages/episode-merge.js +0 -11
  313. package/dist/domain/direct/stages/episode-merge.js.map +0 -1
  314. package/dist/domain/direct/stages/episode-plan.d.ts +0 -2
  315. package/dist/domain/direct/stages/episode-plan.js +0 -9
  316. package/dist/domain/direct/stages/episode-plan.js.map +0 -1
  317. package/dist/domain/direct/stages/episode-synopsis.d.ts +0 -2
  318. package/dist/domain/direct/stages/episode-synopsis.js +0 -12
  319. package/dist/domain/direct/stages/episode-synopsis.js.map +0 -1
  320. package/dist/domain/direct/stages/episode-titles.d.ts +0 -2
  321. package/dist/domain/direct/stages/episode-titles.js +0 -12
  322. package/dist/domain/direct/stages/episode-titles.js.map +0 -1
  323. package/dist/domain/direct/stages/index.d.ts +0 -19
  324. package/dist/domain/direct/stages/index.js +0 -41
  325. package/dist/domain/direct/stages/index.js.map +0 -1
  326. package/dist/domain/direct/stages/metadata.d.ts +0 -2
  327. package/dist/domain/direct/stages/metadata.js +0 -11
  328. package/dist/domain/direct/stages/metadata.js.map +0 -1
  329. package/dist/domain/direct/stages/script-merge.d.ts +0 -2
  330. package/dist/domain/direct/stages/script-merge.js +0 -15
  331. package/dist/domain/direct/stages/script-merge.js.map +0 -1
  332. package/dist/domain/direct/stages/script-synopsis.d.ts +0 -2
  333. package/dist/domain/direct/stages/script-synopsis.js +0 -12
  334. package/dist/domain/direct/stages/script-synopsis.js.map +0 -1
  335. package/dist/domain/direct/stages/source-prepare.d.ts +0 -2
  336. package/dist/domain/direct/stages/source-prepare.js +0 -9
  337. package/dist/domain/direct/stages/source-prepare.js.map +0 -1
  338. package/dist/domain/direct/stages/state-binding.d.ts +0 -2
  339. package/dist/domain/direct/stages/state-binding.js +0 -9
  340. package/dist/domain/direct/stages/state-binding.js.map +0 -1
  341. package/dist/domain/direct/stages/state-curation.d.ts +0 -2
  342. package/dist/domain/direct/stages/state-curation.js +0 -10
  343. package/dist/domain/direct/stages/state-curation.js.map +0 -1
  344. package/dist/domain/direct/stages/validate.d.ts +0 -2
  345. package/dist/domain/direct/stages/validate.js +0 -10
  346. package/dist/domain/direct/stages/validate.js.map +0 -1
  347. package/dist/domain/direct-core.d.ts +0 -313
  348. package/dist/domain/direct-core.js +0 -8516
  349. package/dist/domain/direct-core.js.map +0 -1
  350. package/dist/domain/script/validate.d.ts +0 -22
  351. package/dist/domain/script/validate.js +0 -997
  352. package/dist/domain/script/validate.js.map +0 -1
  353. package/dist/infra/providers.d.ts +0 -97
  354. package/dist/infra/providers.js +0 -1396
  355. package/dist/infra/providers.js.map +0 -1
  356. package/dist/usecases/direct.d.ts +0 -27
  357. package/dist/usecases/direct.js +0 -4172
  358. package/dist/usecases/direct.js.map +0 -1
  359. package/dist/usecases/parse.d.ts +0 -15
  360. package/dist/usecases/parse.js +0 -429
  361. package/dist/usecases/parse.js.map +0 -1
  362. package/dist/usecases/script/add-speaker.js +0 -22
  363. package/dist/usecases/script/add-speaker.js.map +0 -1
  364. package/dist/usecases/script/export.d.ts +0 -3
  365. package/dist/usecases/script/export.js +0 -111
  366. package/dist/usecases/script/export.js.map +0 -1
  367. package/dist/usecases/script/overlap.d.ts +0 -3
  368. package/dist/usecases/script/overlap.js +0 -21
  369. package/dist/usecases/script/overlap.js.map +0 -1
  370. package/dist/usecases/script/speakers.d.ts +0 -3
  371. package/dist/usecases/script/speakers.js +0 -28
  372. package/dist/usecases/script/speakers.js.map +0 -1
  373. package/dist/usecases/script/state-change.d.ts +0 -3
  374. package/dist/usecases/script/state-change.js +0 -24
  375. package/dist/usecases/script/state-change.js.map +0 -1
@@ -1,88 +0,0 @@
1
- import { CliError, EXIT_USAGE } from "../../common.js";
2
- import { stageRunStateName } from "./stage.js";
3
- import { STAGES, stageByName, stageNames } from "./stages/index.js";
4
- // Stages that mutate the in-memory script but rely on a LATER stage to persist
5
- // it: in a full init the script-synopsis stage is the single write point for
6
- // script.initial.json. When one of these runs standalone via `direct run`, no
7
- // later stage follows, so runOne must persist the result or the mutation is
8
- // silently lost (e.g. `direct run metadata` would update asset_metadata.json but
9
- // leave the stale script on disk). script-synopsis writes the script itself and
10
- // validate is read-only, so neither is listed.
11
- const SCRIPT_PERSISTING_STAGES = new Set(["script-merge", "asset-curation", "state-curation", "state-binding", "metadata"]);
12
- // Whether a stage can be skipped because its single output artifact is already
13
- // present and valid. Stages with `output: null` (per-unit / always-recompute)
14
- // are never skipped wholesale — they manage their own reuse internally.
15
- function isStageSatisfied(stage, ctx) {
16
- if (stage.output === null)
17
- return false;
18
- return ctx.ws.readJsonSafe(stage.output) !== null;
19
- }
20
- /**
21
- * Run the pipeline in order. A stage whose output artifact already exists and
22
- * validates is skipped (resume), unless `force` is set or it isn't in `only`.
23
- * Stages with `output: null` always run (they decide their own per-unit reuse).
24
- *
25
- * The StageIncomplete sentinel (raised by episode-synopsis when some episode
26
- * still has unextracted batches) is NOT swallowed — it propagates so the
27
- * orchestrator can emit the INIT INCOMPLETE report + EXIT_RUNTIME, exactly as
28
- * the former god-command did with its early return.
29
- */
30
- export async function runStages(ctx, stages = STAGES, opts = {}) {
31
- ctx.ws.ensure();
32
- // script-synopsis is the natural write point for script.initial.json. If it will
33
- // run later in THIS invocation it persists the cumulative script once at the end,
34
- // so the per-stage hook below would only duplicate that write (and flush partial
35
- // pre-synopsis artifacts). Only persist per-stage when synopsis is NOT in this run
36
- // (a single-stage `direct run metadata` / runOne path), so the mutation isn't lost.
37
- const synopsisPersistsLater = stages.some((s) => s.name === "script-synopsis" && (!opts.only || opts.only.has("script-synopsis")));
38
- const persistScriptAfterStages = opts.persistScriptAfterStages ?? true;
39
- for (const stage of stages) {
40
- if (opts.only && !opts.only.has(stage.name))
41
- continue;
42
- if (!opts.force && isStageSatisfied(stage, ctx)) {
43
- ctx.emitProgress(stage.name, "success");
44
- ctx.timing.record({
45
- name: stageRunStateName(stage.name),
46
- category: "stage",
47
- status: "skipped",
48
- startedAtMs: Date.now(),
49
- finishedAtMs: Date.now(),
50
- });
51
- continue;
52
- }
53
- const previousBypassInternalCaches = ctx.state.bypassInternalCaches;
54
- ctx.state.bypassInternalCaches = Boolean(opts.bypassInternalCaches);
55
- try {
56
- await ctx.timing.span({ name: stageRunStateName(stage.name), category: "stage" }, () => stage.run(ctx));
57
- }
58
- finally {
59
- ctx.state.bypassInternalCaches = previousBypassInternalCaches;
60
- }
61
- if (persistScriptAfterStages && !synopsisPersistsLater && SCRIPT_PERSISTING_STAGES.has(stage.name) && ctx.state.script) {
62
- ctx.ws.writeJson("script.initial.json", ctx.state.script);
63
- }
64
- }
65
- }
66
- /**
67
- * Run exactly one stage by name against an existing workspace. Each stage
68
- * rehydrates the prior artifacts it needs from disk (ensure* helpers), so a
69
- * single step can run standalone — `direct run metadata` re-extracts metadata
70
- * for a workspace whose script.initial.json already exists, etc.
71
- */
72
- export async function runOne(ctx, stageName) {
73
- const stage = stageByName(stageName);
74
- if (!stage) {
75
- throw new CliError("DIRECT RUN BLOCKED: unknown stage", `Unknown stage "${stageName}".`, {
76
- exitCode: EXIT_USAGE,
77
- required: [`one of: ${stageNames().join(", ")}`],
78
- received: [stageName],
79
- nextSteps: ["Pass a valid stage name to `direct run`."],
80
- });
81
- }
82
- // Delegate to runStages so the single post-stage persist hook (and any future
83
- // shared behaviour) applies identically to the standalone path — `direct run
84
- // <stage> --force` and the non-force `runStages({only})` path must not diverge.
85
- await runStages(ctx, [stage], { force: true, bypassInternalCaches: true });
86
- return stage;
87
- }
88
- //# sourceMappingURL=runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/domain/direct/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpE,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,iFAAiF;AACjF,gFAAgF;AAChF,+CAA+C;AAC/C,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;AAkB5H,+EAA+E;AAC/E,8EAA8E;AAC9E,wEAAwE;AACxE,SAAS,gBAAgB,CAAC,KAAY,EAAE,GAAiB;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAiB,EAAE,SAA2B,MAAM,EAAE,OAAyB,EAAE;IAC/G,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;IAChB,iFAAiF;IACjF,kFAAkF;IAClF,iFAAiF;IACjF,mFAAmF;IACnF,oFAAoF;IACpF,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CACxF,CAAC;IACF,MAAM,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC;IACvE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACtD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACxC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;gBACvB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;aACzB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,4BAA4B,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACpE,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpE,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1G,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,4BAA4B,CAAC;QAChE,CAAC;QACD,IAAI,wBAAwB,IAAI,CAAC,qBAAqB,IAAI,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvH,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,qBAAqB,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAiB,EAAE,SAAiB;IAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,mCAAmC,EAAE,kBAAkB,SAAS,IAAI,EAAE;YACvF,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,CAAC,WAAW,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,SAAS,EAAE,CAAC,0CAA0C,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IACD,8EAA8E;IAC9E,6EAA6E;IAC7E,gFAAgF;IAChF,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,108 +0,0 @@
1
- import type { ProviderLike } from "../direct-core.js";
2
- export type Dict = Record<string, unknown>;
3
- export type StageName = "source-prepare" | "episode-plan" | "episode-titles" | "batch-plan" | "batch-extract" | "episode-merge" | "episode-synopsis" | "script-merge" | "asset-curation" | "state-curation" | "state-binding" | "metadata" | "script-synopsis" | "validate";
4
- export declare function stageRunStateName(stage: StageName): string;
5
- export declare class Workspace {
6
- readonly root: string;
7
- readonly dir: string;
8
- constructor(root: string);
9
- ensure(): void;
10
- pathOf(name: string): string;
11
- rootPathOf(name: string): string;
12
- has(name: string): boolean;
13
- hasRoot(name: string): boolean;
14
- readJson<T = Dict>(name: string): T;
15
- readJsonOr<T = Dict>(name: string, fallback: T): T;
16
- readJsonSafe<T = Dict>(name: string): T | null;
17
- writeJson(name: string, data: unknown): void;
18
- readText(name: string): string;
19
- readRootText(name: string): string;
20
- mkdir(name: string): string;
21
- delete(name: string): void;
22
- }
23
- export interface DirectRunOptions {
24
- source: string;
25
- workspace: string;
26
- providerName: string;
27
- model: string;
28
- concurrency: number;
29
- batchMode: string;
30
- batchTargetLines: number;
31
- batchMaxChars: number;
32
- batchMinLines: number;
33
- selEpisodes: Set<number>;
34
- selBatches: Set<string>;
35
- retryErrors: boolean;
36
- runAll: boolean;
37
- skipSummary: boolean;
38
- skipMetadata: boolean;
39
- resummarize: boolean;
40
- summaryThresholdChars: number;
41
- }
42
- export interface DirectRunState {
43
- manifest: Dict | null;
44
- episodePlan: Dict | null;
45
- batchPlan: Dict | null;
46
- sourceText: string;
47
- projectName: string;
48
- titleDegraded: number[];
49
- pending: Dict[];
50
- reusedBatchCount: number;
51
- stickyErrorCount: number;
52
- changedEpisodes: Set<number>;
53
- doneBatches: number;
54
- erroredBatches: number;
55
- totalEpisodes: number;
56
- totalBatches: number;
57
- mergedResults: Dict[];
58
- incompleteEpisodes: number[];
59
- summaryDegradedEpisodes: number[];
60
- summaryFullDegraded: boolean;
61
- summaryDegradeReason: string;
62
- script: Dict | null;
63
- assetNormalization: Dict | null;
64
- bypassInternalCaches: boolean;
65
- validation: Dict | null;
66
- }
67
- export declare function emptyRunState(): DirectRunState;
68
- export declare class StageIncomplete extends Error {
69
- constructor(message?: string);
70
- }
71
- export interface StageContext {
72
- ws: Workspace;
73
- options: DirectRunOptions;
74
- state: DirectRunState;
75
- provider(): ProviderLike;
76
- timing: DirectTimingRecorder;
77
- emitProgress: ProgressEmitter;
78
- updateRunState(updates: Dict): void;
79
- }
80
- export type DirectTimingStatus = "success" | "error" | "skipped";
81
- export type DirectTimingCategory = "stage" | "substage" | "chunk" | "repair" | "branch";
82
- export interface DirectTimingSpanOptions {
83
- name: string;
84
- category: DirectTimingCategory;
85
- parent?: string;
86
- metadata?: Dict;
87
- }
88
- export interface DirectTimingRecordOptions extends DirectTimingSpanOptions {
89
- status: DirectTimingStatus;
90
- startedAtMs: number;
91
- finishedAtMs: number;
92
- error?: string;
93
- }
94
- export interface DirectTimingRecorder {
95
- reset(command: string): void;
96
- span<T>(options: DirectTimingSpanOptions, run: () => Promise<T> | T): Promise<T>;
97
- record(options: DirectTimingRecordOptions): void;
98
- flush(): void;
99
- }
100
- export interface Stage {
101
- readonly name: StageName;
102
- readonly output: string | null;
103
- run(ctx: StageContext): Promise<void>;
104
- }
105
- export interface ProgressEmitter {
106
- (stage: StageName, status?: "running" | "success" | "warning" | "skipped" | "error" | "pending"): void;
107
- }
108
- export type ProviderFactory = () => ProviderLike;
@@ -1,134 +0,0 @@
1
- import * as fs from "node:fs";
2
- import * as path from "node:path";
3
- import { deletePath, directDir, exists, readJson, readText, writeJson, } from "../../common.js";
4
- // run_state.json carries the snake_case stage names that `direct status` and
5
- // emitInitProgress already key on; keep them as the persisted identity so the
6
- // status table is byte-compatible with the pre-refactor pipeline.
7
- export function stageRunStateName(stage) {
8
- switch (stage) {
9
- case "source-prepare": return "source_prepare";
10
- case "episode-plan": return "episode_plan";
11
- case "episode-titles": return "episode_titles";
12
- case "batch-plan": return "batch_plan";
13
- case "batch-extract": return "batch_extract";
14
- case "episode-merge": return "episode_merge";
15
- case "episode-synopsis": return "episode_synopsis";
16
- case "script-merge": return "script_merge";
17
- case "asset-curation": return "asset_curation";
18
- case "state-curation": return "state_curation";
19
- case "state-binding": return "state_binding";
20
- case "metadata": return "metadata_extract";
21
- case "script-synopsis": return "script_synopsis";
22
- case "validate": return "validate";
23
- }
24
- }
25
- // ---------------------------------------------------------------------------
26
- // Workspace — typed, atomic artifact IO over the direct workspace directory.
27
- // Wraps common.ts's DEFAULT_STORE writes (tmp file + rename), so a crash mid-
28
- // write can never leave a torn artifact. Sole owner of the `*_results/`,
29
- // `script.initial.json`, `run_state.json` on-disk layout used by the pipeline.
30
- // ---------------------------------------------------------------------------
31
- export class Workspace {
32
- root;
33
- dir;
34
- constructor(root) {
35
- this.root = root;
36
- this.dir = directDir(root);
37
- }
38
- ensure() {
39
- fs.mkdirSync(this.dir, { recursive: true });
40
- }
41
- // Absolute path of an artifact under the direct dir (e.g. "episode_plan.json"
42
- // or "batch_results"). Relative segments are joined onto the direct dir.
43
- pathOf(name) {
44
- return path.join(this.dir, name);
45
- }
46
- // Absolute path of a file relative to the workspace ROOT (e.g. "source.txt",
47
- // which lives beside the direct dir, not inside it).
48
- rootPathOf(name) {
49
- return path.join(this.root, name);
50
- }
51
- has(name) {
52
- return exists(this.pathOf(name));
53
- }
54
- hasRoot(name) {
55
- return exists(this.rootPathOf(name));
56
- }
57
- readJson(name) {
58
- return readJson(this.pathOf(name));
59
- }
60
- readJsonOr(name, fallback) {
61
- return this.has(name) ? this.readJson(name) : fallback;
62
- }
63
- // Read but never throw on a malformed/absent artifact — returns null so a
64
- // stage can treat "present but corrupt" the same as "missing" (self-heal).
65
- readJsonSafe(name) {
66
- if (!this.has(name))
67
- return null;
68
- try {
69
- return this.readJson(name);
70
- }
71
- catch {
72
- return null;
73
- }
74
- }
75
- // Atomic write (tmp + rename, via DEFAULT_STORE.writeJson). Creates the parent
76
- // dir if needed so a stage never has to mkdir its own results dir.
77
- writeJson(name, data) {
78
- fs.mkdirSync(path.dirname(this.pathOf(name)), { recursive: true });
79
- writeJson(this.pathOf(name), data);
80
- }
81
- readText(name) {
82
- return readText(this.pathOf(name));
83
- }
84
- readRootText(name) {
85
- return readText(this.rootPathOf(name));
86
- }
87
- mkdir(name) {
88
- const p = this.pathOf(name);
89
- fs.mkdirSync(p, { recursive: true });
90
- return p;
91
- }
92
- delete(name) {
93
- const p = this.pathOf(name);
94
- if (exists(p))
95
- deletePath(p);
96
- }
97
- }
98
- export function emptyRunState() {
99
- return {
100
- manifest: null,
101
- episodePlan: null,
102
- batchPlan: null,
103
- sourceText: "",
104
- projectName: "",
105
- titleDegraded: [],
106
- pending: [],
107
- reusedBatchCount: 0,
108
- stickyErrorCount: 0,
109
- changedEpisodes: new Set(),
110
- doneBatches: 0,
111
- erroredBatches: 0,
112
- totalEpisodes: 0,
113
- totalBatches: 0,
114
- mergedResults: [],
115
- incompleteEpisodes: [],
116
- summaryDegradedEpisodes: [],
117
- summaryFullDegraded: false,
118
- summaryDegradeReason: "",
119
- script: null,
120
- assetNormalization: null,
121
- bypassInternalCaches: false,
122
- validation: null,
123
- };
124
- }
125
- // Sentinel a stage throws to abort the run with an "incomplete" (not "failed")
126
- // outcome — the batch-extract → episode-merge path uses it when some episode
127
- // still has unextracted batches, which is a resumable non-error stop.
128
- export class StageIncomplete extends Error {
129
- constructor(message = "stage incomplete") {
130
- super(message);
131
- this.name = "StageIncomplete";
132
- }
133
- }
134
- //# sourceMappingURL=stage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stage.js","sourceRoot":"","sources":["../../../src/domain/direct/stage.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const assetCurationStage: Stage;
@@ -1,10 +0,0 @@
1
- import { stageAssetCuration } from "../../../usecases/direct.js";
2
- // Provider first emits name-only grouping expressions, then compact curation
3
- // expressions; deterministic code parses and applies both to ctx.state.script
4
- // (or script.initial.json). Writes: asset_grouping.json, asset_curation.json.
5
- export const assetCurationStage = {
6
- name: "asset-curation",
7
- output: "asset_curation.json",
8
- run: (ctx) => stageAssetCuration(ctx),
9
- };
10
- //# sourceMappingURL=asset-curation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asset-curation.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/asset-curation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAU;IACvC,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,qBAAqB;IAC7B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC;CACtC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const batchExtractStage: Stage;
@@ -1,12 +0,0 @@
1
- import { stageBatchExtract } from "../../../usecases/direct.js";
2
- // LLM-extract each batch concurrently, persisting per-batch result/error files
3
- // (the resume unit). Reads: source.txt + episode_plan.json + batch_plan.json.
4
- // Writes: batch_results/<key>.json|.error.json. `output: null` — completion is
5
- // per-batch, not a single artifact, so the runner never skips it wholesale;
6
- // reuse is decided per batch inside the stage (classifyBatch).
7
- export const batchExtractStage = {
8
- name: "batch-extract",
9
- output: null,
10
- run: (ctx) => stageBatchExtract(ctx),
11
- };
12
- //# sourceMappingURL=batch-extract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch-extract.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/batch-extract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAU;IACtC,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;CACrC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const batchPlanStage: Stage;
@@ -1,9 +0,0 @@
1
- import { stageBatchPlan } from "../../../usecases/direct.js";
2
- // Split each episode into natural extraction batches (deterministic). Reads:
3
- // source.txt + episode_plan.json. Writes: batch_plan.json.
4
- export const batchPlanStage = {
5
- name: "batch-plan",
6
- output: "batch_plan.json",
7
- run: (ctx) => stageBatchPlan(ctx),
8
- };
9
- //# sourceMappingURL=batch-plan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch-plan.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/batch-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,6EAA6E;AAC7E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAU;IACnC,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,iBAAiB;IACzB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC;CAClC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const episodeMergeStage: Stage;
@@ -1,11 +0,0 @@
1
- import { stageEpisodeMerge } from "../../../usecases/direct.js";
2
- // Merge each episode's batch results into one episode result (deterministic).
3
- // Reads: batch_results/ + plans. Writes: in-memory merged results carried on
4
- // ctx.state (persisted by the episode-synopsis stage, matching the god-command
5
- // order). `output: null` — the persisted artifact is written by the next stage.
6
- export const episodeMergeStage = {
7
- name: "episode-merge",
8
- output: null,
9
- run: (ctx) => stageEpisodeMerge(ctx),
10
- };
11
- //# sourceMappingURL=episode-merge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"episode-merge.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/episode-merge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,8EAA8E;AAC9E,6EAA6E;AAC7E,+EAA+E;AAC/E,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAU;IACtC,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;CACrC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const episodePlanStage: Stage;
@@ -1,9 +0,0 @@
1
- import { stageEpisodePlan } from "../../../usecases/direct.js";
2
- // Split source.txt into episodes (deterministic). Reads: source.txt. Writes:
3
- // episode_plan.json.
4
- export const episodePlanStage = {
5
- name: "episode-plan",
6
- output: "episode_plan.json",
7
- run: (ctx) => stageEpisodePlan(ctx),
8
- };
9
- //# sourceMappingURL=episode-plan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"episode-plan.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/episode-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,6EAA6E;AAC7E,qBAAqB;AACrB,MAAM,CAAC,MAAM,gBAAgB,GAAU;IACrC,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,mBAAmB;IAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC;CACpC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const episodeSynopsisStage: Stage;
@@ -1,12 +0,0 @@
1
- import { stageEpisodeSynopsis } from "../../../usecases/direct.js";
2
- // Resolve each episode's synopsis (reduce-1: passthrough / reuse / skip / LLM
3
- // stitch) then persist episode_results/ep_NNN.json. Reads: merged results +
4
- // prior persisted syn. Writes: episode_results/*.json. Also raises the resumable
5
- // "incomplete" stop when an episode still has unextracted batches. `output: null`
6
- // — completion is per-episode, decided inside the stage.
7
- export const episodeSynopsisStage = {
8
- name: "episode-synopsis",
9
- output: null,
10
- run: (ctx) => stageEpisodeSynopsis(ctx),
11
- };
12
- //# sourceMappingURL=episode-synopsis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"episode-synopsis.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/episode-synopsis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,8EAA8E;AAC9E,4EAA4E;AAC5E,iFAAiF;AACjF,kFAAkF;AAClF,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAU;IACzC,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC;CACxC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const episodeTitlesStage: Stage;
@@ -1,12 +0,0 @@
1
- import { stageEpisodeTitles } from "../../../usecases/direct.js";
2
- // LLM-enrich the plan's missing episode titles (soft-degrade to deterministic
3
- // titles). Reads: source.txt + episode_plan.json. Writes: episode_plan.json
4
- // (titles filled in place). `output: null` — the plan artifact already exists
5
- // from episode-plan, so completion isn't captured by file presence; the runner
6
- // never skips titles wholesale.
7
- export const episodeTitlesStage = {
8
- name: "episode-titles",
9
- output: null,
10
- run: (ctx) => stageEpisodeTitles(ctx),
11
- };
12
- //# sourceMappingURL=episode-titles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"episode-titles.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/episode-titles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,+EAA+E;AAC/E,gCAAgC;AAChC,MAAM,CAAC,MAAM,kBAAkB,GAAU;IACvC,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC;CACtC,CAAC"}
@@ -1,19 +0,0 @@
1
- import type { Stage, StageName } from "../stage.js";
2
- import { sourcePrepareStage } from "./source-prepare.js";
3
- import { episodePlanStage } from "./episode-plan.js";
4
- import { episodeTitlesStage } from "./episode-titles.js";
5
- import { batchPlanStage } from "./batch-plan.js";
6
- import { batchExtractStage } from "./batch-extract.js";
7
- import { episodeMergeStage } from "./episode-merge.js";
8
- import { episodeSynopsisStage } from "./episode-synopsis.js";
9
- import { scriptMergeStage } from "./script-merge.js";
10
- import { assetCurationStage } from "./asset-curation.js";
11
- import { stateCurationStage } from "./state-curation.js";
12
- import { stateBindingStage } from "./state-binding.js";
13
- import { metadataStage } from "./metadata.js";
14
- import { scriptSynopsisStage } from "./script-synopsis.js";
15
- import { validateStage } from "./validate.js";
16
- export declare const STAGES: readonly Stage[];
17
- export declare function stageByName(name: string): Stage | undefined;
18
- export declare function stageNames(): StageName[];
19
- export { sourcePrepareStage, episodePlanStage, episodeTitlesStage, batchPlanStage, batchExtractStage, episodeMergeStage, episodeSynopsisStage, scriptMergeStage, assetCurationStage, stateCurationStage, stateBindingStage, metadataStage, scriptSynopsisStage, validateStage, };
@@ -1,41 +0,0 @@
1
- import { sourcePrepareStage } from "./source-prepare.js";
2
- import { episodePlanStage } from "./episode-plan.js";
3
- import { episodeTitlesStage } from "./episode-titles.js";
4
- import { batchPlanStage } from "./batch-plan.js";
5
- import { batchExtractStage } from "./batch-extract.js";
6
- import { episodeMergeStage } from "./episode-merge.js";
7
- import { episodeSynopsisStage } from "./episode-synopsis.js";
8
- import { scriptMergeStage } from "./script-merge.js";
9
- import { assetCurationStage } from "./asset-curation.js";
10
- import { stateCurationStage } from "./state-curation.js";
11
- import { stateBindingStage } from "./state-binding.js";
12
- import { metadataStage } from "./metadata.js";
13
- import { scriptSynopsisStage } from "./script-synopsis.js";
14
- import { validateStage } from "./validate.js";
15
- // The full direct pipeline, in execution order. This is the single source of
16
- // truth for stage ordering — runStages walks it, runOne indexes into it, and
17
- // `direct run <stage>` validates against it.
18
- export const STAGES = [
19
- sourcePrepareStage,
20
- episodePlanStage,
21
- episodeTitlesStage,
22
- batchPlanStage,
23
- batchExtractStage,
24
- episodeMergeStage,
25
- episodeSynopsisStage,
26
- scriptMergeStage,
27
- assetCurationStage,
28
- stateCurationStage,
29
- stateBindingStage,
30
- metadataStage,
31
- scriptSynopsisStage,
32
- validateStage,
33
- ];
34
- export function stageByName(name) {
35
- return STAGES.find((s) => s.name === name);
36
- }
37
- export function stageNames() {
38
- return STAGES.map((s) => s.name);
39
- }
40
- export { sourcePrepareStage, episodePlanStage, episodeTitlesStage, batchPlanStage, batchExtractStage, episodeMergeStage, episodeSynopsisStage, scriptMergeStage, assetCurationStage, stateCurationStage, stateBindingStage, metadataStage, scriptSynopsisStage, validateStage, };
41
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,6EAA6E;AAC7E,6EAA6E;AAC7E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAqB;IACtC,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;IACb,mBAAmB;IACnB,aAAa;CACd,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const metadataStage: Stage;
@@ -1,11 +0,0 @@
1
- import { stageMetadata } from "../../../usecases/direct.js";
2
- // LLM metadata extraction (worldview / role_type / asset descriptions), applied
3
- // onto the script. Honors --skip-metadata. Reads: source.txt + ctx.state.script.
4
- // Writes: asset_metadata.json (+ mutates the in-memory script). `output: null` —
5
- // --skip-metadata deletes the artifact, so file presence isn't a skip signal.
6
- export const metadataStage = {
7
- name: "metadata",
8
- output: null,
9
- run: (ctx) => stageMetadata(ctx),
10
- };
11
- //# sourceMappingURL=metadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;CACjC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const scriptMergeStage: Stage;
@@ -1,15 +0,0 @@
1
- import { stageScriptMerge } from "../../../usecases/direct.js";
2
- // Merge all episode results into one script + asset normalization report
3
- // (deterministic). Reads: episode_results/. Writes: ctx.state.script (persisted
4
- // later by script-synopsis) + asset_normalization.json. `output: null` — the
5
- // script must be re-derived from episode_results on EVERY run (a reused or
6
- // edited batch changes its episode result, which has to flow back into the
7
- // script), so this stage is never skipped on artifact presence. Presence of
8
- // asset_normalization.json is therefore NOT a completion signal; script.initial
9
- // .json is written later by script-synopsis, matching the god-command order.
10
- export const scriptMergeStage = {
11
- name: "script-merge",
12
- output: null,
13
- run: (ctx) => stageScriptMerge(ctx),
14
- };
15
- //# sourceMappingURL=script-merge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"script-merge.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/script-merge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,yEAAyE;AACzE,gFAAgF;AAChF,6EAA6E;AAC7E,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAU;IACrC,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC;CACpC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const scriptSynopsisStage: Stage;
@@ -1,12 +0,0 @@
1
- import { stageScriptSynopsis } from "../../../usecases/direct.js";
2
- // Whole-script overview (reduce-2): synopsis/theme/logline/style/main_characters,
3
- // soft-degrading on provider failure. Persists script.initial.json (the write
4
- // point inherited from the god-command). Reads: ctx.state.script. Writes:
5
- // synopsis.json + script.initial.json. `output: null` — degraded/skip outcomes
6
- // mean presence of script.initial.json isn't a clean skip signal.
7
- export const scriptSynopsisStage = {
8
- name: "script-synopsis",
9
- output: null,
10
- run: (ctx) => stageScriptSynopsis(ctx),
11
- };
12
- //# sourceMappingURL=script-synopsis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"script-synopsis.js","sourceRoot":"","sources":["../../../../src/domain/direct/stages/script-synopsis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,kFAAkF;AAClF,8EAA8E;AAC9E,0EAA0E;AAC1E,+EAA+E;AAC/E,kEAAkE;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAU;IACxC,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC;CACvC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Stage } from "../stage.js";
2
- export declare const sourcePrepareStage: Stage;