videoclaw 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1452) hide show
  1. package/AGENTS.md +165 -0
  2. package/CLAUDE.md +232 -0
  3. package/LICENSE +36 -0
  4. package/README.md +737 -0
  5. package/dist/cli/args.d.ts +59 -0
  6. package/dist/cli/args.d.ts.map +1 -0
  7. package/dist/cli/args.js +279 -0
  8. package/dist/cli/args.js.map +1 -0
  9. package/dist/cli/handlers/analysis.d.ts +3 -0
  10. package/dist/cli/handlers/analysis.d.ts.map +1 -0
  11. package/dist/cli/handlers/analysis.js +111 -0
  12. package/dist/cli/handlers/analysis.js.map +1 -0
  13. package/dist/cli/handlers/audio.d.ts +25 -0
  14. package/dist/cli/handlers/audio.d.ts.map +1 -0
  15. package/dist/cli/handlers/audio.js +321 -0
  16. package/dist/cli/handlers/audio.js.map +1 -0
  17. package/dist/cli/handlers/batch.d.ts +4 -0
  18. package/dist/cli/handlers/batch.d.ts.map +1 -0
  19. package/dist/cli/handlers/batch.js +424 -0
  20. package/dist/cli/handlers/batch.js.map +1 -0
  21. package/dist/cli/handlers/candidates.d.ts +10 -0
  22. package/dist/cli/handlers/candidates.d.ts.map +1 -0
  23. package/dist/cli/handlers/candidates.js +389 -0
  24. package/dist/cli/handlers/candidates.js.map +1 -0
  25. package/dist/cli/handlers/character.d.ts +8 -0
  26. package/dist/cli/handlers/character.d.ts.map +1 -0
  27. package/dist/cli/handlers/character.js +202 -0
  28. package/dist/cli/handlers/character.js.map +1 -0
  29. package/dist/cli/handlers/clone.d.ts +5 -0
  30. package/dist/cli/handlers/clone.d.ts.map +1 -0
  31. package/dist/cli/handlers/clone.js +303 -0
  32. package/dist/cli/handlers/clone.js.map +1 -0
  33. package/dist/cli/handlers/create.d.ts +5 -0
  34. package/dist/cli/handlers/create.d.ts.map +1 -0
  35. package/dist/cli/handlers/create.js +635 -0
  36. package/dist/cli/handlers/create.js.map +1 -0
  37. package/dist/cli/handlers/execution.d.ts +5 -0
  38. package/dist/cli/handlers/execution.d.ts.map +1 -0
  39. package/dist/cli/handlers/execution.js +132 -0
  40. package/dist/cli/handlers/execution.js.map +1 -0
  41. package/dist/cli/handlers/library.d.ts +8 -0
  42. package/dist/cli/handlers/library.d.ts.map +1 -0
  43. package/dist/cli/handlers/library.js +77 -0
  44. package/dist/cli/handlers/library.js.map +1 -0
  45. package/dist/cli/handlers/media-ops.d.ts +7 -0
  46. package/dist/cli/handlers/media-ops.d.ts.map +1 -0
  47. package/dist/cli/handlers/media-ops.js +120 -0
  48. package/dist/cli/handlers/media-ops.js.map +1 -0
  49. package/dist/cli/handlers/media-production.d.ts +56 -0
  50. package/dist/cli/handlers/media-production.d.ts.map +1 -0
  51. package/dist/cli/handlers/media-production.js +673 -0
  52. package/dist/cli/handlers/media-production.js.map +1 -0
  53. package/dist/cli/handlers/motion-overlay.d.ts +10 -0
  54. package/dist/cli/handlers/motion-overlay.d.ts.map +1 -0
  55. package/dist/cli/handlers/motion-overlay.js +651 -0
  56. package/dist/cli/handlers/motion-overlay.js.map +1 -0
  57. package/dist/cli/handlers/multi-shot.d.ts +2 -0
  58. package/dist/cli/handlers/multi-shot.d.ts.map +1 -0
  59. package/dist/cli/handlers/multi-shot.js +424 -0
  60. package/dist/cli/handlers/multi-shot.js.map +1 -0
  61. package/dist/cli/handlers/project-ops.d.ts +14 -0
  62. package/dist/cli/handlers/project-ops.d.ts.map +1 -0
  63. package/dist/cli/handlers/project-ops.js +241 -0
  64. package/dist/cli/handlers/project-ops.js.map +1 -0
  65. package/dist/cli/handlers/prompt-craft.d.ts +8 -0
  66. package/dist/cli/handlers/prompt-craft.d.ts.map +1 -0
  67. package/dist/cli/handlers/prompt-craft.js +397 -0
  68. package/dist/cli/handlers/prompt-craft.js.map +1 -0
  69. package/dist/cli/handlers/provider-registration.d.ts +29 -0
  70. package/dist/cli/handlers/provider-registration.d.ts.map +1 -0
  71. package/dist/cli/handlers/provider-registration.js +225 -0
  72. package/dist/cli/handlers/provider-registration.js.map +1 -0
  73. package/dist/cli/handlers/reference-sheets.d.ts +6 -0
  74. package/dist/cli/handlers/reference-sheets.d.ts.map +1 -0
  75. package/dist/cli/handlers/reference-sheets.js +181 -0
  76. package/dist/cli/handlers/reference-sheets.js.map +1 -0
  77. package/dist/cli/handlers/reporting.d.ts +18 -0
  78. package/dist/cli/handlers/reporting.d.ts.map +1 -0
  79. package/dist/cli/handlers/reporting.js +155 -0
  80. package/dist/cli/handlers/reporting.js.map +1 -0
  81. package/dist/cli/handlers/review-portal.d.ts +8 -0
  82. package/dist/cli/handlers/review-portal.d.ts.map +1 -0
  83. package/dist/cli/handlers/review-portal.js +276 -0
  84. package/dist/cli/handlers/review-portal.js.map +1 -0
  85. package/dist/cli/handlers/show.d.ts +11 -0
  86. package/dist/cli/handlers/show.d.ts.map +1 -0
  87. package/dist/cli/handlers/show.js +136 -0
  88. package/dist/cli/handlers/show.js.map +1 -0
  89. package/dist/cli/handlers/stages.d.ts +6 -0
  90. package/dist/cli/handlers/stages.d.ts.map +1 -0
  91. package/dist/cli/handlers/stages.js +333 -0
  92. package/dist/cli/handlers/stages.js.map +1 -0
  93. package/dist/cli/handlers/studio.d.ts +2 -0
  94. package/dist/cli/handlers/studio.d.ts.map +1 -0
  95. package/dist/cli/handlers/studio.js +159 -0
  96. package/dist/cli/handlers/studio.js.map +1 -0
  97. package/dist/cli/handlers/templates.d.ts +7 -0
  98. package/dist/cli/handlers/templates.d.ts.map +1 -0
  99. package/dist/cli/handlers/templates.js +61 -0
  100. package/dist/cli/handlers/templates.js.map +1 -0
  101. package/dist/cli/provider-adapter.d.ts +3 -0
  102. package/dist/cli/provider-adapter.d.ts.map +1 -0
  103. package/dist/cli/provider-adapter.js +96 -0
  104. package/dist/cli/provider-adapter.js.map +1 -0
  105. package/dist/cli/vclaw.d.ts +15 -0
  106. package/dist/cli/vclaw.d.ts.map +1 -0
  107. package/dist/cli/vclaw.js +318 -0
  108. package/dist/cli/vclaw.js.map +1 -0
  109. package/dist/index.d.ts +79 -0
  110. package/dist/index.d.ts.map +1 -0
  111. package/dist/index.js +68 -0
  112. package/dist/index.js.map +1 -0
  113. package/dist/mcp/index.d.ts +3 -0
  114. package/dist/mcp/index.d.ts.map +1 -0
  115. package/dist/mcp/index.js +3 -0
  116. package/dist/mcp/index.js.map +1 -0
  117. package/dist/mcp/server.d.ts +27 -0
  118. package/dist/mcp/server.d.ts.map +1 -0
  119. package/dist/mcp/server.js +168 -0
  120. package/dist/mcp/server.js.map +1 -0
  121. package/dist/mcp/tools.d.ts +55 -0
  122. package/dist/mcp/tools.d.ts.map +1 -0
  123. package/dist/mcp/tools.js +80 -0
  124. package/dist/mcp/tools.js.map +1 -0
  125. package/dist/video/analyze-output.d.ts +5 -0
  126. package/dist/video/analyze-output.d.ts.map +1 -0
  127. package/dist/video/analyze-output.js +7 -0
  128. package/dist/video/analyze-output.js.map +1 -0
  129. package/dist/video/archive-project.d.ts +14 -0
  130. package/dist/video/archive-project.d.ts.map +1 -0
  131. package/dist/video/archive-project.js +41 -0
  132. package/dist/video/archive-project.js.map +1 -0
  133. package/dist/video/artifact-history.d.ts +8 -0
  134. package/dist/video/artifact-history.d.ts.map +1 -0
  135. package/dist/video/artifact-history.js +12 -0
  136. package/dist/video/artifact-history.js.map +1 -0
  137. package/dist/video/artifact-store.d.ts +8 -0
  138. package/dist/video/artifact-store.d.ts.map +1 -0
  139. package/dist/video/artifact-store.js +37 -0
  140. package/dist/video/artifact-store.js.map +1 -0
  141. package/dist/video/artifact-validation.d.ts +15 -0
  142. package/dist/video/artifact-validation.d.ts.map +1 -0
  143. package/dist/video/artifact-validation.js +287 -0
  144. package/dist/video/artifact-validation.js.map +1 -0
  145. package/dist/video/artifacts.d.ts +112 -0
  146. package/dist/video/artifacts.d.ts.map +1 -0
  147. package/dist/video/artifacts.js +31 -0
  148. package/dist/video/artifacts.js.map +1 -0
  149. package/dist/video/assemble/animate-slides.d.ts +108 -0
  150. package/dist/video/assemble/animate-slides.d.ts.map +1 -0
  151. package/dist/video/assemble/animate-slides.js +152 -0
  152. package/dist/video/assemble/animate-slides.js.map +1 -0
  153. package/dist/video/assemble/animation-styles.d.ts +21 -0
  154. package/dist/video/assemble/animation-styles.d.ts.map +1 -0
  155. package/dist/video/assemble/animation-styles.js +32 -0
  156. package/dist/video/assemble/animation-styles.js.map +1 -0
  157. package/dist/video/assemble/animation-styles.json +97 -0
  158. package/dist/video/assemble/assemble.d.ts +24 -0
  159. package/dist/video/assemble/assemble.d.ts.map +1 -0
  160. package/dist/video/assemble/assemble.js +457 -0
  161. package/dist/video/assemble/assemble.js.map +1 -0
  162. package/dist/video/assemble/audio-concat.d.ts +61 -0
  163. package/dist/video/assemble/audio-concat.d.ts.map +1 -0
  164. package/dist/video/assemble/audio-concat.js +108 -0
  165. package/dist/video/assemble/audio-concat.js.map +1 -0
  166. package/dist/video/assemble/audio-mix-plan.d.ts +84 -0
  167. package/dist/video/assemble/audio-mix-plan.d.ts.map +1 -0
  168. package/dist/video/assemble/audio-mix-plan.js +74 -0
  169. package/dist/video/assemble/audio-mix-plan.js.map +1 -0
  170. package/dist/video/assemble/audio-utils.d.ts +32 -0
  171. package/dist/video/assemble/audio-utils.d.ts.map +1 -0
  172. package/dist/video/assemble/audio-utils.js +91 -0
  173. package/dist/video/assemble/audio-utils.js.map +1 -0
  174. package/dist/video/assemble/cut-segment.d.ts +40 -0
  175. package/dist/video/assemble/cut-segment.d.ts.map +1 -0
  176. package/dist/video/assemble/cut-segment.js +77 -0
  177. package/dist/video/assemble/cut-segment.js.map +1 -0
  178. package/dist/video/assemble/ffmpeg.d.ts +91 -0
  179. package/dist/video/assemble/ffmpeg.d.ts.map +1 -0
  180. package/dist/video/assemble/ffmpeg.js +251 -0
  181. package/dist/video/assemble/ffmpeg.js.map +1 -0
  182. package/dist/video/assemble/gemini-vision-classify.d.ts +37 -0
  183. package/dist/video/assemble/gemini-vision-classify.d.ts.map +1 -0
  184. package/dist/video/assemble/gemini-vision-classify.js +123 -0
  185. package/dist/video/assemble/gemini-vision-classify.js.map +1 -0
  186. package/dist/video/assemble/index.d.ts +47 -0
  187. package/dist/video/assemble/index.d.ts.map +1 -0
  188. package/dist/video/assemble/index.js +40 -0
  189. package/dist/video/assemble/index.js.map +1 -0
  190. package/dist/video/assemble/media-qc.d.ts +44 -0
  191. package/dist/video/assemble/media-qc.d.ts.map +1 -0
  192. package/dist/video/assemble/media-qc.js +181 -0
  193. package/dist/video/assemble/media-qc.js.map +1 -0
  194. package/dist/video/assemble/music.d.ts +51 -0
  195. package/dist/video/assemble/music.d.ts.map +1 -0
  196. package/dist/video/assemble/music.js +171 -0
  197. package/dist/video/assemble/music.js.map +1 -0
  198. package/dist/video/assemble/narration-fit.d.ts +32 -0
  199. package/dist/video/assemble/narration-fit.d.ts.map +1 -0
  200. package/dist/video/assemble/narration-fit.js +59 -0
  201. package/dist/video/assemble/narration-fit.js.map +1 -0
  202. package/dist/video/assemble/overlay.d.ts +81 -0
  203. package/dist/video/assemble/overlay.d.ts.map +1 -0
  204. package/dist/video/assemble/overlay.js +141 -0
  205. package/dist/video/assemble/overlay.js.map +1 -0
  206. package/dist/video/assemble/pdf.d.ts +46 -0
  207. package/dist/video/assemble/pdf.d.ts.map +1 -0
  208. package/dist/video/assemble/pdf.js +111 -0
  209. package/dist/video/assemble/pdf.js.map +1 -0
  210. package/dist/video/assemble/qa-dialogue-lint.d.ts +56 -0
  211. package/dist/video/assemble/qa-dialogue-lint.d.ts.map +1 -0
  212. package/dist/video/assemble/qa-dialogue-lint.js +85 -0
  213. package/dist/video/assemble/qa-dialogue-lint.js.map +1 -0
  214. package/dist/video/assemble/qa-image-filter.d.ts +52 -0
  215. package/dist/video/assemble/qa-image-filter.d.ts.map +1 -0
  216. package/dist/video/assemble/qa-image-filter.js +102 -0
  217. package/dist/video/assemble/qa-image-filter.js.map +1 -0
  218. package/dist/video/assemble/qa-image-vision.d.ts +57 -0
  219. package/dist/video/assemble/qa-image-vision.d.ts.map +1 -0
  220. package/dist/video/assemble/qa-image-vision.js +96 -0
  221. package/dist/video/assemble/qa-image-vision.js.map +1 -0
  222. package/dist/video/assemble/qa-narration-vision.d.ts +53 -0
  223. package/dist/video/assemble/qa-narration-vision.d.ts.map +1 -0
  224. package/dist/video/assemble/qa-narration-vision.js +87 -0
  225. package/dist/video/assemble/qa-narration-vision.js.map +1 -0
  226. package/dist/video/assemble/qa-narration.d.ts +53 -0
  227. package/dist/video/assemble/qa-narration.d.ts.map +1 -0
  228. package/dist/video/assemble/qa-narration.js +85 -0
  229. package/dist/video/assemble/qa-narration.js.map +1 -0
  230. package/dist/video/assemble/stitch-ad.d.ts +88 -0
  231. package/dist/video/assemble/stitch-ad.d.ts.map +1 -0
  232. package/dist/video/assemble/stitch-ad.js +161 -0
  233. package/dist/video/assemble/stitch-ad.js.map +1 -0
  234. package/dist/video/assemble/stitch.d.ts +341 -0
  235. package/dist/video/assemble/stitch.d.ts.map +1 -0
  236. package/dist/video/assemble/stitch.js +607 -0
  237. package/dist/video/assemble/stitch.js.map +1 -0
  238. package/dist/video/assemble/text-card.d.ts +78 -0
  239. package/dist/video/assemble/text-card.d.ts.map +1 -0
  240. package/dist/video/assemble/text-card.js +210 -0
  241. package/dist/video/assemble/text-card.js.map +1 -0
  242. package/dist/video/assemble/title-card.d.ts +39 -0
  243. package/dist/video/assemble/title-card.d.ts.map +1 -0
  244. package/dist/video/assemble/title-card.js +127 -0
  245. package/dist/video/assemble/title-card.js.map +1 -0
  246. package/dist/video/assemble/transcript.d.ts +66 -0
  247. package/dist/video/assemble/transcript.d.ts.map +1 -0
  248. package/dist/video/assemble/transcript.js +200 -0
  249. package/dist/video/assemble/transcript.js.map +1 -0
  250. package/dist/video/assemble/tts-elevenlabs.d.ts +52 -0
  251. package/dist/video/assemble/tts-elevenlabs.d.ts.map +1 -0
  252. package/dist/video/assemble/tts-elevenlabs.js +118 -0
  253. package/dist/video/assemble/tts-elevenlabs.js.map +1 -0
  254. package/dist/video/assemble/tts.d.ts +79 -0
  255. package/dist/video/assemble/tts.d.ts.map +1 -0
  256. package/dist/video/assemble/tts.js +131 -0
  257. package/dist/video/assemble/tts.js.map +1 -0
  258. package/dist/video/assemble/types.d.ts +43 -0
  259. package/dist/video/assemble/types.d.ts.map +1 -0
  260. package/dist/video/assemble/types.js +2 -0
  261. package/dist/video/assemble/types.js.map +1 -0
  262. package/dist/video/assemble/upscale.d.ts +43 -0
  263. package/dist/video/assemble/upscale.d.ts.map +1 -0
  264. package/dist/video/assemble/upscale.js +52 -0
  265. package/dist/video/assemble/upscale.js.map +1 -0
  266. package/dist/video/asset-spec.d.ts +15 -0
  267. package/dist/video/asset-spec.d.ts.map +1 -0
  268. package/dist/video/asset-spec.js +43 -0
  269. package/dist/video/asset-spec.js.map +1 -0
  270. package/dist/video/asset-tag-lookup.d.ts +31 -0
  271. package/dist/video/asset-tag-lookup.d.ts.map +1 -0
  272. package/dist/video/asset-tag-lookup.js +45 -0
  273. package/dist/video/asset-tag-lookup.js.map +1 -0
  274. package/dist/video/atomic-write.d.ts +2 -0
  275. package/dist/video/atomic-write.d.ts.map +1 -0
  276. package/dist/video/atomic-write.js +7 -0
  277. package/dist/video/atomic-write.js.map +1 -0
  278. package/dist/video/audio-platform/native-elevenlabs-sfx.d.ts +29 -0
  279. package/dist/video/audio-platform/native-elevenlabs-sfx.d.ts.map +1 -0
  280. package/dist/video/audio-platform/native-elevenlabs-sfx.js +95 -0
  281. package/dist/video/audio-platform/native-elevenlabs-sfx.js.map +1 -0
  282. package/dist/video/audio-platform/native-elevenlabs-tts.d.ts +30 -0
  283. package/dist/video/audio-platform/native-elevenlabs-tts.d.ts.map +1 -0
  284. package/dist/video/audio-platform/native-elevenlabs-tts.js +95 -0
  285. package/dist/video/audio-platform/native-elevenlabs-tts.js.map +1 -0
  286. package/dist/video/audio-platform/native-flowmusic.d.ts +21 -0
  287. package/dist/video/audio-platform/native-flowmusic.d.ts.map +1 -0
  288. package/dist/video/audio-platform/native-flowmusic.js +137 -0
  289. package/dist/video/audio-platform/native-flowmusic.js.map +1 -0
  290. package/dist/video/audio-platform/native-gemini-tts.d.ts +26 -0
  291. package/dist/video/audio-platform/native-gemini-tts.d.ts.map +1 -0
  292. package/dist/video/audio-platform/native-gemini-tts.js +202 -0
  293. package/dist/video/audio-platform/native-gemini-tts.js.map +1 -0
  294. package/dist/video/audio-platform/native-lyria.d.ts +35 -0
  295. package/dist/video/audio-platform/native-lyria.d.ts.map +1 -0
  296. package/dist/video/audio-platform/native-lyria.js +189 -0
  297. package/dist/video/audio-platform/native-lyria.js.map +1 -0
  298. package/dist/video/audio-platform/native-lyria3.d.ts +36 -0
  299. package/dist/video/audio-platform/native-lyria3.d.ts.map +1 -0
  300. package/dist/video/audio-platform/native-lyria3.js +210 -0
  301. package/dist/video/audio-platform/native-lyria3.js.map +1 -0
  302. package/dist/video/audio-platform/registry.d.ts +82 -0
  303. package/dist/video/audio-platform/registry.d.ts.map +1 -0
  304. package/dist/video/audio-platform/registry.js +189 -0
  305. package/dist/video/audio-platform/registry.js.map +1 -0
  306. package/dist/video/audio-platform/suno-backend.d.ts +11 -0
  307. package/dist/video/audio-platform/suno-backend.d.ts.map +1 -0
  308. package/dist/video/audio-platform/suno-backend.js +33 -0
  309. package/dist/video/audio-platform/suno-backend.js.map +1 -0
  310. package/dist/video/audio-platform/types.d.ts +128 -0
  311. package/dist/video/audio-platform/types.d.ts.map +1 -0
  312. package/dist/video/audio-platform/types.js +9 -0
  313. package/dist/video/audio-platform/types.js.map +1 -0
  314. package/dist/video/batch-queue.d.ts +276 -0
  315. package/dist/video/batch-queue.d.ts.map +1 -0
  316. package/dist/video/batch-queue.js +519 -0
  317. package/dist/video/batch-queue.js.map +1 -0
  318. package/dist/video/blueprint-prompt.d.ts +37 -0
  319. package/dist/video/blueprint-prompt.d.ts.map +1 -0
  320. package/dist/video/blueprint-prompt.js +107 -0
  321. package/dist/video/blueprint-prompt.js.map +1 -0
  322. package/dist/video/brand-definition.d.ts +97 -0
  323. package/dist/video/brand-definition.d.ts.map +1 -0
  324. package/dist/video/brand-definition.js +206 -0
  325. package/dist/video/brand-definition.js.map +1 -0
  326. package/dist/video/brand-dna.d.ts +101 -0
  327. package/dist/video/brand-dna.d.ts.map +1 -0
  328. package/dist/video/brand-dna.js +370 -0
  329. package/dist/video/brand-dna.js.map +1 -0
  330. package/dist/video/brand-prompt.d.ts +13 -0
  331. package/dist/video/brand-prompt.d.ts.map +1 -0
  332. package/dist/video/brand-prompt.js +26 -0
  333. package/dist/video/brand-prompt.js.map +1 -0
  334. package/dist/video/candidate-migrate.d.ts +27 -0
  335. package/dist/video/candidate-migrate.d.ts.map +1 -0
  336. package/dist/video/candidate-migrate.js +119 -0
  337. package/dist/video/candidate-migrate.js.map +1 -0
  338. package/dist/video/category-registry.d.ts +38 -0
  339. package/dist/video/category-registry.d.ts.map +1 -0
  340. package/dist/video/category-registry.js +188 -0
  341. package/dist/video/category-registry.js.map +1 -0
  342. package/dist/video/chain-fallback.d.ts +39 -0
  343. package/dist/video/chain-fallback.d.ts.map +1 -0
  344. package/dist/video/chain-fallback.js +43 -0
  345. package/dist/video/chain-fallback.js.map +1 -0
  346. package/dist/video/character-auto-create.d.ts +72 -0
  347. package/dist/video/character-auto-create.d.ts.map +1 -0
  348. package/dist/video/character-auto-create.js +392 -0
  349. package/dist/video/character-auto-create.js.map +1 -0
  350. package/dist/video/character-consistency.d.ts +3 -0
  351. package/dist/video/character-consistency.d.ts.map +1 -0
  352. package/dist/video/character-consistency.js +69 -0
  353. package/dist/video/character-consistency.js.map +1 -0
  354. package/dist/video/characters.d.ts +44 -0
  355. package/dist/video/characters.d.ts.map +1 -0
  356. package/dist/video/characters.js +96 -0
  357. package/dist/video/characters.js.map +1 -0
  358. package/dist/video/checkpoints.d.ts +16 -0
  359. package/dist/video/checkpoints.d.ts.map +1 -0
  360. package/dist/video/checkpoints.js +29 -0
  361. package/dist/video/checkpoints.js.map +1 -0
  362. package/dist/video/cinema-profile.d.ts +57 -0
  363. package/dist/video/cinema-profile.d.ts.map +1 -0
  364. package/dist/video/cinema-profile.js +89 -0
  365. package/dist/video/cinema-profile.js.map +1 -0
  366. package/dist/video/cinematography.d.ts +299 -0
  367. package/dist/video/cinematography.d.ts.map +1 -0
  368. package/dist/video/cinematography.js +914 -0
  369. package/dist/video/cinematography.js.map +1 -0
  370. package/dist/video/cli-output.d.ts +52 -0
  371. package/dist/video/cli-output.d.ts.map +1 -0
  372. package/dist/video/cli-output.js +81 -0
  373. package/dist/video/cli-output.js.map +1 -0
  374. package/dist/video/cli-schema.d.ts +40 -0
  375. package/dist/video/cli-schema.d.ts.map +1 -0
  376. package/dist/video/cli-schema.js +447 -0
  377. package/dist/video/cli-schema.js.map +1 -0
  378. package/dist/video/cost-estimate.d.ts +37 -0
  379. package/dist/video/cost-estimate.d.ts.map +1 -0
  380. package/dist/video/cost-estimate.js +103 -0
  381. package/dist/video/cost-estimate.js.map +1 -0
  382. package/dist/video/csv-export.d.ts +8 -0
  383. package/dist/video/csv-export.d.ts.map +1 -0
  384. package/dist/video/csv-export.js +133 -0
  385. package/dist/video/csv-export.js.map +1 -0
  386. package/dist/video/dependencies.d.ts +23 -0
  387. package/dist/video/dependencies.d.ts.map +1 -0
  388. package/dist/video/dependencies.js +36 -0
  389. package/dist/video/dependencies.js.map +1 -0
  390. package/dist/video/dialogue-fit.d.ts +23 -0
  391. package/dist/video/dialogue-fit.d.ts.map +1 -0
  392. package/dist/video/dialogue-fit.js +38 -0
  393. package/dist/video/dialogue-fit.js.map +1 -0
  394. package/dist/video/dialogue.d.ts +77 -0
  395. package/dist/video/dialogue.d.ts.map +1 -0
  396. package/dist/video/dialogue.js +143 -0
  397. package/dist/video/dialogue.js.map +1 -0
  398. package/dist/video/director-defaults.d.ts +37 -0
  399. package/dist/video/director-defaults.d.ts.map +1 -0
  400. package/dist/video/director-defaults.js +383 -0
  401. package/dist/video/director-defaults.js.map +1 -0
  402. package/dist/video/director-preflight.d.ts +53 -0
  403. package/dist/video/director-preflight.d.ts.map +1 -0
  404. package/dist/video/director-preflight.js +462 -0
  405. package/dist/video/director-preflight.js.map +1 -0
  406. package/dist/video/doctor-portfolio.d.ts +43 -0
  407. package/dist/video/doctor-portfolio.d.ts.map +1 -0
  408. package/dist/video/doctor-portfolio.js +137 -0
  409. package/dist/video/doctor-portfolio.js.map +1 -0
  410. package/dist/video/doctor.d.ts +13 -0
  411. package/dist/video/doctor.d.ts.map +1 -0
  412. package/dist/video/doctor.js +449 -0
  413. package/dist/video/doctor.js.map +1 -0
  414. package/dist/video/emotion-cues.d.ts +15 -0
  415. package/dist/video/emotion-cues.d.ts.map +1 -0
  416. package/dist/video/emotion-cues.js +37 -0
  417. package/dist/video/emotion-cues.js.map +1 -0
  418. package/dist/video/environment-assets.d.ts +28 -0
  419. package/dist/video/environment-assets.d.ts.map +1 -0
  420. package/dist/video/environment-assets.js +43 -0
  421. package/dist/video/environment-assets.js.map +1 -0
  422. package/dist/video/environment-auto-create.d.ts +20 -0
  423. package/dist/video/environment-auto-create.d.ts.map +1 -0
  424. package/dist/video/environment-auto-create.js +88 -0
  425. package/dist/video/environment-auto-create.js.map +1 -0
  426. package/dist/video/errors.d.ts +35 -0
  427. package/dist/video/errors.d.ts.map +1 -0
  428. package/dist/video/errors.js +117 -0
  429. package/dist/video/errors.js.map +1 -0
  430. package/dist/video/events.d.ts +11 -0
  431. package/dist/video/events.d.ts.map +1 -0
  432. package/dist/video/events.js +32 -0
  433. package/dist/video/events.js.map +1 -0
  434. package/dist/video/execute-autochain.d.ts +65 -0
  435. package/dist/video/execute-autochain.d.ts.map +1 -0
  436. package/dist/video/execute-autochain.js +165 -0
  437. package/dist/video/execute-autochain.js.map +1 -0
  438. package/dist/video/execute.d.ts +27 -0
  439. package/dist/video/execute.d.ts.map +1 -0
  440. package/dist/video/execute.js +477 -0
  441. package/dist/video/execute.js.map +1 -0
  442. package/dist/video/execution-cancel.d.ts +11 -0
  443. package/dist/video/execution-cancel.d.ts.map +1 -0
  444. package/dist/video/execution-cancel.js +85 -0
  445. package/dist/video/execution-cancel.js.map +1 -0
  446. package/dist/video/execution-plan.d.ts +5 -0
  447. package/dist/video/execution-plan.d.ts.map +1 -0
  448. package/dist/video/execution-plan.js +145 -0
  449. package/dist/video/execution-plan.js.map +1 -0
  450. package/dist/video/execution-profile.d.ts +25 -0
  451. package/dist/video/execution-profile.d.ts.map +1 -0
  452. package/dist/video/execution-profile.js +124 -0
  453. package/dist/video/execution-profile.js.map +1 -0
  454. package/dist/video/execution-runtime.d.ts +104 -0
  455. package/dist/video/execution-runtime.d.ts.map +1 -0
  456. package/dist/video/execution-runtime.js +750 -0
  457. package/dist/video/execution-runtime.js.map +1 -0
  458. package/dist/video/execution-seed.d.ts +14 -0
  459. package/dist/video/execution-seed.d.ts.map +1 -0
  460. package/dist/video/execution-seed.js +29 -0
  461. package/dist/video/execution-seed.js.map +1 -0
  462. package/dist/video/execution-status.d.ts +12 -0
  463. package/dist/video/execution-status.d.ts.map +1 -0
  464. package/dist/video/execution-status.js +666 -0
  465. package/dist/video/execution-status.js.map +1 -0
  466. package/dist/video/filmmaking-prompts.d.ts +356 -0
  467. package/dist/video/filmmaking-prompts.d.ts.map +1 -0
  468. package/dist/video/filmmaking-prompts.js +1212 -0
  469. package/dist/video/filmmaking-prompts.js.map +1 -0
  470. package/dist/video/final-media.d.ts +17 -0
  471. package/dist/video/final-media.d.ts.map +1 -0
  472. package/dist/video/final-media.js +78 -0
  473. package/dist/video/final-media.js.map +1 -0
  474. package/dist/video/finish.d.ts +99 -0
  475. package/dist/video/finish.d.ts.map +1 -0
  476. package/dist/video/finish.js +159 -0
  477. package/dist/video/finish.js.map +1 -0
  478. package/dist/video/flow-character-library.d.ts +143 -0
  479. package/dist/video/flow-character-library.d.ts.map +1 -0
  480. package/dist/video/flow-character-library.js +211 -0
  481. package/dist/video/flow-character-library.js.map +1 -0
  482. package/dist/video/flow-markers.d.ts +107 -0
  483. package/dist/video/flow-markers.d.ts.map +1 -0
  484. package/dist/video/flow-markers.js +278 -0
  485. package/dist/video/flow-markers.js.map +1 -0
  486. package/dist/video/gemini-analyze.d.ts +44 -0
  487. package/dist/video/gemini-analyze.d.ts.map +1 -0
  488. package/dist/video/gemini-analyze.js +323 -0
  489. package/dist/video/gemini-analyze.js.map +1 -0
  490. package/dist/video/gemini-continuity.d.ts +40 -0
  491. package/dist/video/gemini-continuity.d.ts.map +1 -0
  492. package/dist/video/gemini-continuity.js +145 -0
  493. package/dist/video/gemini-continuity.js.map +1 -0
  494. package/dist/video/gemini-judge.d.ts +33 -0
  495. package/dist/video/gemini-judge.d.ts.map +1 -0
  496. package/dist/video/gemini-judge.js +218 -0
  497. package/dist/video/gemini-judge.js.map +1 -0
  498. package/dist/video/gemini-key-pool.d.ts +23 -0
  499. package/dist/video/gemini-key-pool.d.ts.map +1 -0
  500. package/dist/video/gemini-key-pool.js +107 -0
  501. package/dist/video/gemini-key-pool.js.map +1 -0
  502. package/dist/video/gen-image-flow.d.ts +187 -0
  503. package/dist/video/gen-image-flow.d.ts.map +1 -0
  504. package/dist/video/gen-image-flow.js +331 -0
  505. package/dist/video/gen-image-flow.js.map +1 -0
  506. package/dist/video/gen-image.d.ts +153 -0
  507. package/dist/video/gen-image.d.ts.map +1 -0
  508. package/dist/video/gen-image.js +263 -0
  509. package/dist/video/gen-image.js.map +1 -0
  510. package/dist/video/generation-telemetry.d.ts +60 -0
  511. package/dist/video/generation-telemetry.d.ts.map +1 -0
  512. package/dist/video/generation-telemetry.js +214 -0
  513. package/dist/video/generation-telemetry.js.map +1 -0
  514. package/dist/video/http-error-safety.d.ts +9 -0
  515. package/dist/video/http-error-safety.d.ts.map +1 -0
  516. package/dist/video/http-error-safety.js +14 -0
  517. package/dist/video/http-error-safety.js.map +1 -0
  518. package/dist/video/image-dimensions.d.ts +7 -0
  519. package/dist/video/image-dimensions.d.ts.map +1 -0
  520. package/dist/video/image-dimensions.js +54 -0
  521. package/dist/video/image-dimensions.js.map +1 -0
  522. package/dist/video/legacy-import.d.ts +11 -0
  523. package/dist/video/legacy-import.d.ts.map +1 -0
  524. package/dist/video/legacy-import.js +181 -0
  525. package/dist/video/legacy-import.js.map +1 -0
  526. package/dist/video/library-clean.d.ts +34 -0
  527. package/dist/video/library-clean.d.ts.map +1 -0
  528. package/dist/video/library-clean.js +340 -0
  529. package/dist/video/library-clean.js.map +1 -0
  530. package/dist/video/lipsync.d.ts +72 -0
  531. package/dist/video/lipsync.d.ts.map +1 -0
  532. package/dist/video/lipsync.js +136 -0
  533. package/dist/video/lipsync.js.map +1 -0
  534. package/dist/video/media-host.d.ts +41 -0
  535. package/dist/video/media-host.d.ts.map +1 -0
  536. package/dist/video/media-host.js +106 -0
  537. package/dist/video/media-host.js.map +1 -0
  538. package/dist/video/metrics.d.ts +30 -0
  539. package/dist/video/metrics.d.ts.map +1 -0
  540. package/dist/video/metrics.js +81 -0
  541. package/dist/video/metrics.js.map +1 -0
  542. package/dist/video/motion-overlay/analyze-reel.d.ts +38 -0
  543. package/dist/video/motion-overlay/analyze-reel.d.ts.map +1 -0
  544. package/dist/video/motion-overlay/analyze-reel.js +185 -0
  545. package/dist/video/motion-overlay/analyze-reel.js.map +1 -0
  546. package/dist/video/motion-overlay/animate-render.d.ts +63 -0
  547. package/dist/video/motion-overlay/animate-render.d.ts.map +1 -0
  548. package/dist/video/motion-overlay/animate-render.js +128 -0
  549. package/dist/video/motion-overlay/animate-render.js.map +1 -0
  550. package/dist/video/motion-overlay/animate.d.ts +37 -0
  551. package/dist/video/motion-overlay/animate.d.ts.map +1 -0
  552. package/dist/video/motion-overlay/animate.js +97 -0
  553. package/dist/video/motion-overlay/animate.js.map +1 -0
  554. package/dist/video/motion-overlay/avatar-host-transport.d.ts +161 -0
  555. package/dist/video/motion-overlay/avatar-host-transport.d.ts.map +1 -0
  556. package/dist/video/motion-overlay/avatar-host-transport.js +325 -0
  557. package/dist/video/motion-overlay/avatar-host-transport.js.map +1 -0
  558. package/dist/video/motion-overlay/avatar-host.d.ts +131 -0
  559. package/dist/video/motion-overlay/avatar-host.d.ts.map +1 -0
  560. package/dist/video/motion-overlay/avatar-host.js +131 -0
  561. package/dist/video/motion-overlay/avatar-host.js.map +1 -0
  562. package/dist/video/motion-overlay/compose-prompt.d.ts +48 -0
  563. package/dist/video/motion-overlay/compose-prompt.d.ts.map +1 -0
  564. package/dist/video/motion-overlay/compose-prompt.js +217 -0
  565. package/dist/video/motion-overlay/compose-prompt.js.map +1 -0
  566. package/dist/video/motion-overlay/execute.d.ts +190 -0
  567. package/dist/video/motion-overlay/execute.d.ts.map +1 -0
  568. package/dist/video/motion-overlay/execute.js +205 -0
  569. package/dist/video/motion-overlay/execute.js.map +1 -0
  570. package/dist/video/motion-overlay/flow-pack.d.ts +65 -0
  571. package/dist/video/motion-overlay/flow-pack.d.ts.map +1 -0
  572. package/dist/video/motion-overlay/flow-pack.js +178 -0
  573. package/dist/video/motion-overlay/flow-pack.js.map +1 -0
  574. package/dist/video/motion-overlay/ingest.d.ts +74 -0
  575. package/dist/video/motion-overlay/ingest.d.ts.map +1 -0
  576. package/dist/video/motion-overlay/ingest.js +172 -0
  577. package/dist/video/motion-overlay/ingest.js.map +1 -0
  578. package/dist/video/motion-overlay/motifs.d.ts +63 -0
  579. package/dist/video/motion-overlay/motifs.d.ts.map +1 -0
  580. package/dist/video/motion-overlay/motifs.js +192 -0
  581. package/dist/video/motion-overlay/motifs.js.map +1 -0
  582. package/dist/video/motion-overlay/motion-style.d.ts +56 -0
  583. package/dist/video/motion-overlay/motion-style.d.ts.map +1 -0
  584. package/dist/video/motion-overlay/motion-style.js +130 -0
  585. package/dist/video/motion-overlay/motion-style.js.map +1 -0
  586. package/dist/video/motion-overlay/plan.d.ts +49 -0
  587. package/dist/video/motion-overlay/plan.d.ts.map +1 -0
  588. package/dist/video/motion-overlay/plan.js +79 -0
  589. package/dist/video/motion-overlay/plan.js.map +1 -0
  590. package/dist/video/motion-overlay/preview.d.ts +36 -0
  591. package/dist/video/motion-overlay/preview.d.ts.map +1 -0
  592. package/dist/video/motion-overlay/preview.js +169 -0
  593. package/dist/video/motion-overlay/preview.js.map +1 -0
  594. package/dist/video/motion-overlay/render-local.d.ts +118 -0
  595. package/dist/video/motion-overlay/render-local.d.ts.map +1 -0
  596. package/dist/video/motion-overlay/render-local.js +298 -0
  597. package/dist/video/motion-overlay/render-local.js.map +1 -0
  598. package/dist/video/motion-overlay/run.d.ts +58 -0
  599. package/dist/video/motion-overlay/run.d.ts.map +1 -0
  600. package/dist/video/motion-overlay/run.js +147 -0
  601. package/dist/video/motion-overlay/run.js.map +1 -0
  602. package/dist/video/motion-overlay/slice.d.ts +29 -0
  603. package/dist/video/motion-overlay/slice.d.ts.map +1 -0
  604. package/dist/video/motion-overlay/slice.js +88 -0
  605. package/dist/video/motion-overlay/slice.js.map +1 -0
  606. package/dist/video/motion-overlay/transcribe.d.ts +49 -0
  607. package/dist/video/motion-overlay/transcribe.d.ts.map +1 -0
  608. package/dist/video/motion-overlay/transcribe.js +180 -0
  609. package/dist/video/motion-overlay/transcribe.js.map +1 -0
  610. package/dist/video/motion-overlay/types.d.ts +82 -0
  611. package/dist/video/motion-overlay/types.d.ts.map +1 -0
  612. package/dist/video/motion-overlay/types.js +12 -0
  613. package/dist/video/motion-overlay/types.js.map +1 -0
  614. package/dist/video/motion-overlay/v2v-transport.d.ts +37 -0
  615. package/dist/video/motion-overlay/v2v-transport.d.ts.map +1 -0
  616. package/dist/video/motion-overlay/v2v-transport.js +178 -0
  617. package/dist/video/motion-overlay/v2v-transport.js.map +1 -0
  618. package/dist/video/motion-overlay/write.d.ts +40 -0
  619. package/dist/video/motion-overlay/write.d.ts.map +1 -0
  620. package/dist/video/motion-overlay/write.js +113 -0
  621. package/dist/video/motion-overlay/write.js.map +1 -0
  622. package/dist/video/multi-shot-artifact.d.ts +19 -0
  623. package/dist/video/multi-shot-artifact.d.ts.map +1 -0
  624. package/dist/video/multi-shot-artifact.js +44 -0
  625. package/dist/video/multi-shot-artifact.js.map +1 -0
  626. package/dist/video/multi-shot-prompt.d.ts +99 -0
  627. package/dist/video/multi-shot-prompt.d.ts.map +1 -0
  628. package/dist/video/multi-shot-prompt.js +466 -0
  629. package/dist/video/multi-shot-prompt.js.map +1 -0
  630. package/dist/video/music-video.d.ts +110 -0
  631. package/dist/video/music-video.d.ts.map +1 -0
  632. package/dist/video/music-video.js +190 -0
  633. package/dist/video/music-video.js.map +1 -0
  634. package/dist/video/narrate.d.ts +58 -0
  635. package/dist/video/narrate.d.ts.map +1 -0
  636. package/dist/video/narrate.js +145 -0
  637. package/dist/video/narrate.js.map +1 -0
  638. package/dist/video/native-dreamina.d.ts +35 -0
  639. package/dist/video/native-dreamina.d.ts.map +1 -0
  640. package/dist/video/native-dreamina.js +532 -0
  641. package/dist/video/native-dreamina.js.map +1 -0
  642. package/dist/video/native-flow-r2v.d.ts +113 -0
  643. package/dist/video/native-flow-r2v.d.ts.map +1 -0
  644. package/dist/video/native-flow-r2v.js +223 -0
  645. package/dist/video/native-flow-r2v.js.map +1 -0
  646. package/dist/video/native-runway.d.ts +41 -0
  647. package/dist/video/native-runway.d.ts.map +1 -0
  648. package/dist/video/native-runway.js +523 -0
  649. package/dist/video/native-runway.js.map +1 -0
  650. package/dist/video/native-seedance.d.ts +74 -0
  651. package/dist/video/native-seedance.d.ts.map +1 -0
  652. package/dist/video/native-seedance.js +461 -0
  653. package/dist/video/native-seedance.js.map +1 -0
  654. package/dist/video/native-veo.d.ts +20 -0
  655. package/dist/video/native-veo.d.ts.map +1 -0
  656. package/dist/video/native-veo.js +390 -0
  657. package/dist/video/native-veo.js.map +1 -0
  658. package/dist/video/next-actions.d.ts +27 -0
  659. package/dist/video/next-actions.d.ts.map +1 -0
  660. package/dist/video/next-actions.js +201 -0
  661. package/dist/video/next-actions.js.map +1 -0
  662. package/dist/video/obsidian-export.d.ts +12 -0
  663. package/dist/video/obsidian-export.d.ts.map +1 -0
  664. package/dist/video/obsidian-export.js +285 -0
  665. package/dist/video/obsidian-export.js.map +1 -0
  666. package/dist/video/obsidian-sync.d.ts +13 -0
  667. package/dist/video/obsidian-sync.d.ts.map +1 -0
  668. package/dist/video/obsidian-sync.js +479 -0
  669. package/dist/video/obsidian-sync.js.map +1 -0
  670. package/dist/video/obsidian-vault.d.ts +8 -0
  671. package/dist/video/obsidian-vault.d.ts.map +1 -0
  672. package/dist/video/obsidian-vault.js +81 -0
  673. package/dist/video/obsidian-vault.js.map +1 -0
  674. package/dist/video/outfit-prompts.d.ts +10 -0
  675. package/dist/video/outfit-prompts.d.ts.map +1 -0
  676. package/dist/video/outfit-prompts.js +14 -0
  677. package/dist/video/outfit-prompts.js.map +1 -0
  678. package/dist/video/outpaint-keyframe.d.ts +95 -0
  679. package/dist/video/outpaint-keyframe.d.ts.map +1 -0
  680. package/dist/video/outpaint-keyframe.js +244 -0
  681. package/dist/video/outpaint-keyframe.js.map +1 -0
  682. package/dist/video/pipeline-manifest.d.ts +4 -0
  683. package/dist/video/pipeline-manifest.d.ts.map +1 -0
  684. package/dist/video/pipeline-manifest.js +13 -0
  685. package/dist/video/pipeline-manifest.js.map +1 -0
  686. package/dist/video/pipeline-manifests/director.json +46 -0
  687. package/dist/video/pipeline-manifests/storyboard.json +46 -0
  688. package/dist/video/platform-specs.d.ts +26 -0
  689. package/dist/video/platform-specs.d.ts.map +1 -0
  690. package/dist/video/platform-specs.js +34 -0
  691. package/dist/video/platform-specs.js.map +1 -0
  692. package/dist/video/playbooks.d.ts +11 -0
  693. package/dist/video/playbooks.d.ts.map +1 -0
  694. package/dist/video/playbooks.js +22 -0
  695. package/dist/video/playbooks.js.map +1 -0
  696. package/dist/video/post-production.d.ts +57 -0
  697. package/dist/video/post-production.d.ts.map +1 -0
  698. package/dist/video/post-production.js +210 -0
  699. package/dist/video/post-production.js.map +1 -0
  700. package/dist/video/preview-portal/audit.d.ts +4 -0
  701. package/dist/video/preview-portal/audit.d.ts.map +1 -0
  702. package/dist/video/preview-portal/audit.js +16 -0
  703. package/dist/video/preview-portal/audit.js.map +1 -0
  704. package/dist/video/preview-portal/discovery.d.ts +23 -0
  705. package/dist/video/preview-portal/discovery.d.ts.map +1 -0
  706. package/dist/video/preview-portal/discovery.js +733 -0
  707. package/dist/video/preview-portal/discovery.js.map +1 -0
  708. package/dist/video/preview-portal/generate.d.ts +42 -0
  709. package/dist/video/preview-portal/generate.d.ts.map +1 -0
  710. package/dist/video/preview-portal/generate.js +101 -0
  711. package/dist/video/preview-portal/generate.js.map +1 -0
  712. package/dist/video/preview-portal/index.d.ts +12 -0
  713. package/dist/video/preview-portal/index.d.ts.map +1 -0
  714. package/dist/video/preview-portal/index.js +8 -0
  715. package/dist/video/preview-portal/index.js.map +1 -0
  716. package/dist/video/preview-portal/publish.d.ts +48 -0
  717. package/dist/video/preview-portal/publish.d.ts.map +1 -0
  718. package/dist/video/preview-portal/publish.js +169 -0
  719. package/dist/video/preview-portal/publish.js.map +1 -0
  720. package/dist/video/preview-portal/render.d.ts +4 -0
  721. package/dist/video/preview-portal/render.d.ts.map +1 -0
  722. package/dist/video/preview-portal/render.js +822 -0
  723. package/dist/video/preview-portal/render.js.map +1 -0
  724. package/dist/video/preview-portal/shared-assets.d.ts +6 -0
  725. package/dist/video/preview-portal/shared-assets.d.ts.map +1 -0
  726. package/dist/video/preview-portal/shared-assets.js +452 -0
  727. package/dist/video/preview-portal/shared-assets.js.map +1 -0
  728. package/dist/video/preview-portal/templates.d.ts +4 -0
  729. package/dist/video/preview-portal/templates.d.ts.map +1 -0
  730. package/dist/video/preview-portal/templates.js +109 -0
  731. package/dist/video/preview-portal/templates.js.map +1 -0
  732. package/dist/video/preview-portal/types.d.ts +246 -0
  733. package/dist/video/preview-portal/types.d.ts.map +1 -0
  734. package/dist/video/preview-portal/types.js +28 -0
  735. package/dist/video/preview-portal/types.js.map +1 -0
  736. package/dist/video/product-references.d.ts +21 -0
  737. package/dist/video/product-references.d.ts.map +1 -0
  738. package/dist/video/product-references.js +25 -0
  739. package/dist/video/product-references.js.map +1 -0
  740. package/dist/video/project-blueprint.d.ts +178 -0
  741. package/dist/video/project-blueprint.d.ts.map +1 -0
  742. package/dist/video/project-blueprint.js +286 -0
  743. package/dist/video/project-blueprint.js.map +1 -0
  744. package/dist/video/project-index.d.ts +82 -0
  745. package/dist/video/project-index.d.ts.map +1 -0
  746. package/dist/video/project-index.js +89 -0
  747. package/dist/video/project-index.js.map +1 -0
  748. package/dist/video/projects.d.ts +3 -0
  749. package/dist/video/projects.d.ts.map +1 -0
  750. package/dist/video/projects.js +18 -0
  751. package/dist/video/projects.js.map +1 -0
  752. package/dist/video/prompt-guidance.d.ts +14 -0
  753. package/dist/video/prompt-guidance.d.ts.map +1 -0
  754. package/dist/video/prompt-guidance.js +44 -0
  755. package/dist/video/prompt-guidance.js.map +1 -0
  756. package/dist/video/prompt-library.d.ts +11 -0
  757. package/dist/video/prompt-library.d.ts.map +1 -0
  758. package/dist/video/prompt-library.js +85 -0
  759. package/dist/video/prompt-library.js.map +1 -0
  760. package/dist/video/prompt-lint.d.ts +146 -0
  761. package/dist/video/prompt-lint.d.ts.map +1 -0
  762. package/dist/video/prompt-lint.js +433 -0
  763. package/dist/video/prompt-lint.js.map +1 -0
  764. package/dist/video/prompt-quality.d.ts +29 -0
  765. package/dist/video/prompt-quality.d.ts.map +1 -0
  766. package/dist/video/prompt-quality.js +532 -0
  767. package/dist/video/prompt-quality.js.map +1 -0
  768. package/dist/video/prompt-rules.d.ts +94 -0
  769. package/dist/video/prompt-rules.d.ts.map +1 -0
  770. package/dist/video/prompt-rules.js +169 -0
  771. package/dist/video/prompt-rules.js.map +1 -0
  772. package/dist/video/provider-adapter-runner.d.ts +5 -0
  773. package/dist/video/provider-adapter-runner.d.ts.map +1 -0
  774. package/dist/video/provider-adapter-runner.js +92 -0
  775. package/dist/video/provider-adapter-runner.js.map +1 -0
  776. package/dist/video/provider-platform/index.d.ts +6 -0
  777. package/dist/video/provider-platform/index.d.ts.map +1 -0
  778. package/dist/video/provider-platform/index.js +6 -0
  779. package/dist/video/provider-platform/index.js.map +1 -0
  780. package/dist/video/provider-platform/registry.d.ts +5 -0
  781. package/dist/video/provider-platform/registry.d.ts.map +1 -0
  782. package/dist/video/provider-platform/registry.js +279 -0
  783. package/dist/video/provider-platform/registry.js.map +1 -0
  784. package/dist/video/provider-platform/route-capabilities.d.ts +133 -0
  785. package/dist/video/provider-platform/route-capabilities.d.ts.map +1 -0
  786. package/dist/video/provider-platform/route-capabilities.js +192 -0
  787. package/dist/video/provider-platform/route-capabilities.js.map +1 -0
  788. package/dist/video/provider-platform/router.d.ts +7 -0
  789. package/dist/video/provider-platform/router.d.ts.map +1 -0
  790. package/dist/video/provider-platform/router.js +150 -0
  791. package/dist/video/provider-platform/router.js.map +1 -0
  792. package/dist/video/provider-platform/security.d.ts +8 -0
  793. package/dist/video/provider-platform/security.d.ts.map +1 -0
  794. package/dist/video/provider-platform/security.js +21 -0
  795. package/dist/video/provider-platform/security.js.map +1 -0
  796. package/dist/video/provider-platform/telemetry.d.ts +24 -0
  797. package/dist/video/provider-platform/telemetry.d.ts.map +1 -0
  798. package/dist/video/provider-platform/telemetry.js +88 -0
  799. package/dist/video/provider-platform/telemetry.js.map +1 -0
  800. package/dist/video/provider-platform/types.d.ts +139 -0
  801. package/dist/video/provider-platform/types.d.ts.map +1 -0
  802. package/dist/video/provider-platform/types.js +17 -0
  803. package/dist/video/provider-platform/types.js.map +1 -0
  804. package/dist/video/provider-status.d.ts +12 -0
  805. package/dist/video/provider-status.d.ts.map +1 -0
  806. package/dist/video/provider-status.js +169 -0
  807. package/dist/video/provider-status.js.map +1 -0
  808. package/dist/video/providers/dreamina-useapi.d.ts +170 -0
  809. package/dist/video/providers/dreamina-useapi.d.ts.map +1 -0
  810. package/dist/video/providers/dreamina-useapi.js +176 -0
  811. package/dist/video/providers/dreamina-useapi.js.map +1 -0
  812. package/dist/video/providers/flowmusic-useapi.d.ts +114 -0
  813. package/dist/video/providers/flowmusic-useapi.d.ts.map +1 -0
  814. package/dist/video/providers/flowmusic-useapi.js +159 -0
  815. package/dist/video/providers/flowmusic-useapi.js.map +1 -0
  816. package/dist/video/providers/google-flow.d.ts +57 -0
  817. package/dist/video/providers/google-flow.d.ts.map +1 -0
  818. package/dist/video/providers/google-flow.js +63 -0
  819. package/dist/video/providers/google-flow.js.map +1 -0
  820. package/dist/video/providers/public-host.d.ts +40 -0
  821. package/dist/video/providers/public-host.d.ts.map +1 -0
  822. package/dist/video/providers/public-host.js +91 -0
  823. package/dist/video/providers/public-host.js.map +1 -0
  824. package/dist/video/providers/runway-useapi.d.ts +159 -0
  825. package/dist/video/providers/runway-useapi.d.ts.map +1 -0
  826. package/dist/video/providers/runway-useapi.js +200 -0
  827. package/dist/video/providers/runway-useapi.js.map +1 -0
  828. package/dist/video/providers/xskill.d.ts +108 -0
  829. package/dist/video/providers/xskill.d.ts.map +1 -0
  830. package/dist/video/providers/xskill.js +233 -0
  831. package/dist/video/providers/xskill.js.map +1 -0
  832. package/dist/video/readiness.d.ts +18 -0
  833. package/dist/video/readiness.d.ts.map +1 -0
  834. package/dist/video/readiness.js +221 -0
  835. package/dist/video/readiness.js.map +1 -0
  836. package/dist/video/reference-sheet-store.d.ts +5 -0
  837. package/dist/video/reference-sheet-store.d.ts.map +1 -0
  838. package/dist/video/reference-sheet-store.js +28 -0
  839. package/dist/video/reference-sheet-store.js.map +1 -0
  840. package/dist/video/reference-sheets.d.ts +40 -0
  841. package/dist/video/reference-sheets.d.ts.map +1 -0
  842. package/dist/video/reference-sheets.js +160 -0
  843. package/dist/video/reference-sheets.js.map +1 -0
  844. package/dist/video/remix-narrated.d.ts +12 -0
  845. package/dist/video/remix-narrated.d.ts.map +1 -0
  846. package/dist/video/remix-narrated.js +73 -0
  847. package/dist/video/remix-narrated.js.map +1 -0
  848. package/dist/video/report-diff.d.ts +89 -0
  849. package/dist/video/report-diff.d.ts.map +1 -0
  850. package/dist/video/report-diff.js +176 -0
  851. package/dist/video/report-diff.js.map +1 -0
  852. package/dist/video/report-history.d.ts +40 -0
  853. package/dist/video/report-history.d.ts.map +1 -0
  854. package/dist/video/report-history.js +74 -0
  855. package/dist/video/report-history.js.map +1 -0
  856. package/dist/video/report.d.ts +15 -0
  857. package/dist/video/report.d.ts.map +1 -0
  858. package/dist/video/report.js +21 -0
  859. package/dist/video/report.js.map +1 -0
  860. package/dist/video/review-ui.d.ts +180 -0
  861. package/dist/video/review-ui.d.ts.map +1 -0
  862. package/dist/video/review-ui.js +2008 -0
  863. package/dist/video/review-ui.js.map +1 -0
  864. package/dist/video/scene-candidate-store.d.ts +12 -0
  865. package/dist/video/scene-candidate-store.d.ts.map +1 -0
  866. package/dist/video/scene-candidate-store.js +134 -0
  867. package/dist/video/scene-candidate-store.js.map +1 -0
  868. package/dist/video/scene-candidates.d.ts +57 -0
  869. package/dist/video/scene-candidates.d.ts.map +1 -0
  870. package/dist/video/scene-candidates.js +149 -0
  871. package/dist/video/scene-candidates.js.map +1 -0
  872. package/dist/video/scene-selection-store.d.ts +5 -0
  873. package/dist/video/scene-selection-store.d.ts.map +1 -0
  874. package/dist/video/scene-selection-store.js +22 -0
  875. package/dist/video/scene-selection-store.js.map +1 -0
  876. package/dist/video/scene-selection.d.ts +83 -0
  877. package/dist/video/scene-selection.d.ts.map +1 -0
  878. package/dist/video/scene-selection.js +225 -0
  879. package/dist/video/scene-selection.js.map +1 -0
  880. package/dist/video/scheduling.d.ts +3 -0
  881. package/dist/video/scheduling.d.ts.map +1 -0
  882. package/dist/video/scheduling.js +16 -0
  883. package/dist/video/scheduling.js.map +1 -0
  884. package/dist/video/scorecard.d.ts +12 -0
  885. package/dist/video/scorecard.d.ts.map +1 -0
  886. package/dist/video/scorecard.js +68 -0
  887. package/dist/video/scorecard.js.map +1 -0
  888. package/dist/video/seedance-asset-library.d.ts +82 -0
  889. package/dist/video/seedance-asset-library.d.ts.map +1 -0
  890. package/dist/video/seedance-asset-library.js +146 -0
  891. package/dist/video/seedance-asset-library.js.map +1 -0
  892. package/dist/video/seedance-blocks.d.ts +56 -0
  893. package/dist/video/seedance-blocks.d.ts.map +1 -0
  894. package/dist/video/seedance-blocks.js +97 -0
  895. package/dist/video/seedance-blocks.js.map +1 -0
  896. package/dist/video/seedance-chain-host.d.ts +42 -0
  897. package/dist/video/seedance-chain-host.d.ts.map +1 -0
  898. package/dist/video/seedance-chain-host.js +128 -0
  899. package/dist/video/seedance-chain-host.js.map +1 -0
  900. package/dist/video/seedance-content-filter.d.ts +80 -0
  901. package/dist/video/seedance-content-filter.d.ts.map +1 -0
  902. package/dist/video/seedance-content-filter.js +293 -0
  903. package/dist/video/seedance-content-filter.js.map +1 -0
  904. package/dist/video/seedance-skill-loader.d.ts +40 -0
  905. package/dist/video/seedance-skill-loader.d.ts.map +1 -0
  906. package/dist/video/seedance-skill-loader.js +53 -0
  907. package/dist/video/seedance-skill-loader.js.map +1 -0
  908. package/dist/video/sfx.d.ts +49 -0
  909. package/dist/video/sfx.d.ts.map +1 -0
  910. package/dist/video/sfx.js +104 -0
  911. package/dist/video/sfx.js.map +1 -0
  912. package/dist/video/shot-grammar.d.ts +103 -0
  913. package/dist/video/shot-grammar.d.ts.map +1 -0
  914. package/dist/video/shot-grammar.js +286 -0
  915. package/dist/video/shot-grammar.js.map +1 -0
  916. package/dist/video/show-bible.d.ts +113 -0
  917. package/dist/video/show-bible.d.ts.map +1 -0
  918. package/dist/video/show-bible.js +140 -0
  919. package/dist/video/show-bible.js.map +1 -0
  920. package/dist/video/soundtrack.d.ts +72 -0
  921. package/dist/video/soundtrack.d.ts.map +1 -0
  922. package/dist/video/soundtrack.js +171 -0
  923. package/dist/video/soundtrack.js.map +1 -0
  924. package/dist/video/stage-guards.d.ts +4 -0
  925. package/dist/video/stage-guards.d.ts.map +1 -0
  926. package/dist/video/stage-guards.js +94 -0
  927. package/dist/video/stage-guards.js.map +1 -0
  928. package/dist/video/status.d.ts +69 -0
  929. package/dist/video/status.d.ts.map +1 -0
  930. package/dist/video/status.js +245 -0
  931. package/dist/video/status.js.map +1 -0
  932. package/dist/video/story-bible.d.ts +70 -0
  933. package/dist/video/story-bible.d.ts.map +1 -0
  934. package/dist/video/story-bible.js +181 -0
  935. package/dist/video/story-bible.js.map +1 -0
  936. package/dist/video/storyboard-grid.d.ts +28 -0
  937. package/dist/video/storyboard-grid.d.ts.map +1 -0
  938. package/dist/video/storyboard-grid.js +231 -0
  939. package/dist/video/storyboard-grid.js.map +1 -0
  940. package/dist/video/storyboard-markdown.d.ts +62 -0
  941. package/dist/video/storyboard-markdown.d.ts.map +1 -0
  942. package/dist/video/storyboard-markdown.js +332 -0
  943. package/dist/video/storyboard-markdown.js.map +1 -0
  944. package/dist/video/storyboard-still-candidates.d.ts +31 -0
  945. package/dist/video/storyboard-still-candidates.d.ts.map +1 -0
  946. package/dist/video/storyboard-still-candidates.js +57 -0
  947. package/dist/video/storyboard-still-candidates.js.map +1 -0
  948. package/dist/video/storyboard-templates.d.ts +28 -0
  949. package/dist/video/storyboard-templates.d.ts.map +1 -0
  950. package/dist/video/storyboard-templates.js +215 -0
  951. package/dist/video/storyboard-templates.js.map +1 -0
  952. package/dist/video/studio/execute.d.ts +142 -0
  953. package/dist/video/studio/execute.d.ts.map +1 -0
  954. package/dist/video/studio/execute.js +270 -0
  955. package/dist/video/studio/execute.js.map +1 -0
  956. package/dist/video/studio/planner.d.ts +3 -0
  957. package/dist/video/studio/planner.d.ts.map +1 -0
  958. package/dist/video/studio/planner.js +110 -0
  959. package/dist/video/studio/planner.js.map +1 -0
  960. package/dist/video/studio/project-context.d.ts +4 -0
  961. package/dist/video/studio/project-context.d.ts.map +1 -0
  962. package/dist/video/studio/project-context.js +20 -0
  963. package/dist/video/studio/project-context.js.map +1 -0
  964. package/dist/video/studio/recipes.d.ts +4 -0
  965. package/dist/video/studio/recipes.d.ts.map +1 -0
  966. package/dist/video/studio/recipes.js +343 -0
  967. package/dist/video/studio/recipes.js.map +1 -0
  968. package/dist/video/studio/session.d.ts +8 -0
  969. package/dist/video/studio/session.d.ts.map +1 -0
  970. package/dist/video/studio/session.js +17 -0
  971. package/dist/video/studio/session.js.map +1 -0
  972. package/dist/video/studio/types.d.ts +59 -0
  973. package/dist/video/studio/types.d.ts.map +1 -0
  974. package/dist/video/studio/types.js +2 -0
  975. package/dist/video/studio/types.js.map +1 -0
  976. package/dist/video/template-store.d.ts +65 -0
  977. package/dist/video/template-store.d.ts.map +1 -0
  978. package/dist/video/template-store.js +168 -0
  979. package/dist/video/template-store.js.map +1 -0
  980. package/dist/video/timeline.d.ts +8 -0
  981. package/dist/video/timeline.d.ts.map +1 -0
  982. package/dist/video/timeline.js +21 -0
  983. package/dist/video/timeline.js.map +1 -0
  984. package/dist/video/title-overlay.d.ts +85 -0
  985. package/dist/video/title-overlay.d.ts.map +1 -0
  986. package/dist/video/title-overlay.js +163 -0
  987. package/dist/video/title-overlay.js.map +1 -0
  988. package/dist/video/types.d.ts +403 -0
  989. package/dist/video/types.d.ts.map +1 -0
  990. package/dist/video/types.js +2 -0
  991. package/dist/video/types.js.map +1 -0
  992. package/dist/video/veo-subprocess.d.ts +27 -0
  993. package/dist/video/veo-subprocess.d.ts.map +1 -0
  994. package/dist/video/veo-subprocess.js +52 -0
  995. package/dist/video/veo-subprocess.js.map +1 -0
  996. package/dist/video/verify-env.d.ts +43 -0
  997. package/dist/video/verify-env.d.ts.map +1 -0
  998. package/dist/video/verify-env.js +156 -0
  999. package/dist/video/verify-env.js.map +1 -0
  1000. package/dist/video/verify-final.d.ts +20 -0
  1001. package/dist/video/verify-final.d.ts.map +1 -0
  1002. package/dist/video/verify-final.js +39 -0
  1003. package/dist/video/verify-final.js.map +1 -0
  1004. package/dist/video/video-context.d.ts +10 -0
  1005. package/dist/video/video-context.d.ts.map +1 -0
  1006. package/dist/video/video-context.js +74 -0
  1007. package/dist/video/video-context.js.map +1 -0
  1008. package/dist/video/vocal-map.d.ts +55 -0
  1009. package/dist/video/vocal-map.d.ts.map +1 -0
  1010. package/dist/video/vocal-map.js +107 -0
  1011. package/dist/video/vocal-map.js.map +1 -0
  1012. package/dist/video/vocal-sync-plan.d.ts +76 -0
  1013. package/dist/video/vocal-sync-plan.d.ts.map +1 -0
  1014. package/dist/video/vocal-sync-plan.js +166 -0
  1015. package/dist/video/vocal-sync-plan.js.map +1 -0
  1016. package/dist/video/voice-clone.d.ts +152 -0
  1017. package/dist/video/voice-clone.d.ts.map +1 -0
  1018. package/dist/video/voice-clone.js +267 -0
  1019. package/dist/video/voice-clone.js.map +1 -0
  1020. package/dist/video/with-retry.d.ts +67 -0
  1021. package/dist/video/with-retry.d.ts.map +1 -0
  1022. package/dist/video/with-retry.js +105 -0
  1023. package/dist/video/with-retry.js.map +1 -0
  1024. package/dist/video/workload.d.ts +20 -0
  1025. package/dist/video/workload.d.ts.map +1 -0
  1026. package/dist/video/workload.js +55 -0
  1027. package/dist/video/workload.js.map +1 -0
  1028. package/dist/video/workspace.d.ts +109 -0
  1029. package/dist/video/workspace.d.ts.map +1 -0
  1030. package/dist/video/workspace.js +132 -0
  1031. package/dist/video/workspace.js.map +1 -0
  1032. package/docs/AGENT_INTEGRATION_RESEARCH.md +123 -0
  1033. package/docs/AI_FILMMAKING_PROMPTS.md +195 -0
  1034. package/docs/ARCHITECTURE.md +257 -0
  1035. package/docs/ASSEMBLE.md +376 -0
  1036. package/docs/BRAND_AGENCY.md +63 -0
  1037. package/docs/CLAWBOT_COVERAGE_PROMPT.md +78 -0
  1038. package/docs/CLI_REFERENCE.md +2638 -0
  1039. package/docs/CONCIERGE_PROMPT.md +139 -0
  1040. package/docs/Claude Code + Higgsfield MCP = FULL Creative Agency.md +179 -0
  1041. package/docs/DEMO_RECORDING.md +61 -0
  1042. package/docs/DEPRECATION.md +79 -0
  1043. package/docs/DIAGRAMS_SOURCE.md +347 -0
  1044. package/docs/DIRECTOR_BLUEPRINT.md +94 -0
  1045. package/docs/GENERATION_TELEMETRY.md +81 -0
  1046. package/docs/IMPROVE_PROMPT.md +76 -0
  1047. package/docs/INFOGRAPHICS_PROMPT.md +83 -0
  1048. package/docs/MASTER_PLAN_ALIGNMENT.md +563 -0
  1049. package/docs/MIGRATION.md +213 -0
  1050. package/docs/MOTION_OVERLAY.md +355 -0
  1051. package/docs/OBSIDIAN.md +300 -0
  1052. package/docs/OPERATIONS.md +142 -0
  1053. package/docs/OPERATOR_HANDOFF.md +108 -0
  1054. package/docs/PRODUCTION_WORKFLOW.md +148 -0
  1055. package/docs/PROJECT_LAYOUT.md +262 -0
  1056. package/docs/PROMPT_QUALITY.md +214 -0
  1057. package/docs/PROVIDER_PLATFORM.md +195 -0
  1058. package/docs/PUBLISHING.md +175 -0
  1059. package/docs/PYTHON_PIPELINE.md +139 -0
  1060. package/docs/REFERENCE_SHEETS.md +469 -0
  1061. package/docs/REFERENCE_VIDEO_SEEDANCE_MOTION_DESIGN_WORKFLOW.md +465 -0
  1062. package/docs/RELEASE_READINESS.md +573 -0
  1063. package/docs/REVIEW_UI_STORYBOARD_WORKFLOW.md +200 -0
  1064. package/docs/SCENE_CANDIDATES.md +518 -0
  1065. package/docs/SKILLS.md +477 -0
  1066. package/docs/SKILL_COHESION_PROMPT.md +88 -0
  1067. package/docs/STORY_BIBLE.md +288 -0
  1068. package/docs/STUDIO.md +96 -0
  1069. package/docs/TEMPLATES.md +143 -0
  1070. package/docs/UNIFICATION_AUDIT.md +321 -0
  1071. package/docs/UPDATE_DOCS_PROMPT.md +78 -0
  1072. package/docs/assets/demo-quickstart.cast +13 -0
  1073. package/docs/assets/demo-quickstart.gif +0 -0
  1074. package/docs/assets/diagram-architecture.jpg +0 -0
  1075. package/docs/assets/diagram-assemble.jpg +0 -0
  1076. package/docs/assets/diagram-lifecycle.jpg +0 -0
  1077. package/docs/assets/diagram-obsidian-loop.jpg +0 -0
  1078. package/docs/assets/diagram-obsidian-vault.jpg +0 -0
  1079. package/docs/assets/diagram-routing.jpg +0 -0
  1080. package/docs/assets/diagram-skills-ecosystem.jpg +0 -0
  1081. package/docs/assets/diagram-story-bible.jpg +0 -0
  1082. package/docs/assets/diagram-studio-goals.jpg +0 -0
  1083. package/docs/assets/docsite-preview.png +0 -0
  1084. package/docs/assets/logo.jpg +0 -0
  1085. package/docs/assets/logo.png +0 -0
  1086. package/docs/preview-portal-audit.md +151 -0
  1087. package/package.json +119 -0
  1088. package/playbooks/seedance-ugc.json +32 -0
  1089. package/playbooks/veo-generic.json +26 -0
  1090. package/references/video/.fixtures/multi-shot-runway-10s.txt +9 -0
  1091. package/references/video/.fixtures/multi-shot-seedance-10s.txt +9 -0
  1092. package/references/video/.fixtures/multi-shot-valid.txt +13 -0
  1093. package/references/video/.fixtures/multi-shot-veo-8s.txt +9 -0
  1094. package/references/video/ai-director-blueprint.md +614 -0
  1095. package/references/video/camera-bible.md +294 -0
  1096. package/references/video/character-reference-sheet.md +14 -0
  1097. package/references/video/checkpoint-protocol.md +26 -0
  1098. package/references/video/clone-ad-template-workflow.md +14 -0
  1099. package/references/video/dialogue-duration-preflight.md +17 -0
  1100. package/references/video/generation-telemetry.md +18 -0
  1101. package/references/video/multi-shot-framework.md +455 -0
  1102. package/references/video/seedance-skills/01-cinematic.md +1329 -0
  1103. package/references/video/seedance-skills/02-3d-cgi.md +884 -0
  1104. package/references/video/seedance-skills/03-cartoon.md +1668 -0
  1105. package/references/video/seedance-skills/04-comic-to-video.md +1810 -0
  1106. package/references/video/seedance-skills/05-fight-scenes.md +741 -0
  1107. package/references/video/seedance-skills/06-motion-design-ad.md +1145 -0
  1108. package/references/video/seedance-skills/07-ecommerce-ad.md +928 -0
  1109. package/references/video/seedance-skills/08-anime-action.md +1145 -0
  1110. package/references/video/seedance-skills/09-product-360.md +988 -0
  1111. package/references/video/seedance-skills/10-music-video.md +1662 -0
  1112. package/references/video/seedance-skills/11-social-hook.md +1874 -0
  1113. package/references/video/seedance-skills/12-brand-story.md +1151 -0
  1114. package/references/video/seedance-skills/13-fashion-lookbook.md +1236 -0
  1115. package/references/video/seedance-skills/14-food-beverage.md +1110 -0
  1116. package/references/video/seedance-skills/15-real-estate.md +2344 -0
  1117. package/references/video/seedance-transport-payloads.md +144 -0
  1118. package/references/video/seedance-ugc-formulas.md +104 -0
  1119. package/references/video/stage-directors.md +47 -0
  1120. package/references/video/style-template-schema.md +40 -0
  1121. package/references/video/veo-prompting-guide.md +42 -0
  1122. package/schemas/video/artifacts/analyze-output.schema.json +60 -0
  1123. package/schemas/video/artifacts/assemble-report.schema.json +116 -0
  1124. package/schemas/video/artifacts/asset-manifest.schema.json +23 -0
  1125. package/schemas/video/artifacts/batch-queue-manifest.schema.json +59 -0
  1126. package/schemas/video/artifacts/brand-definition.schema.json +93 -0
  1127. package/schemas/video/artifacts/brand-dna.schema.json +55 -0
  1128. package/schemas/video/artifacts/brief.schema.json +13 -0
  1129. package/schemas/video/artifacts/clone-plan.schema.json +44 -0
  1130. package/schemas/video/artifacts/dialogue.schema.json +52 -0
  1131. package/schemas/video/artifacts/environment-assets.schema.json +30 -0
  1132. package/schemas/video/artifacts/execution-plan.schema.json +64 -0
  1133. package/schemas/video/artifacts/execution-report.schema.json +37 -0
  1134. package/schemas/video/artifacts/filmmaking-prompts.schema.json +129 -0
  1135. package/schemas/video/artifacts/flow-characters.schema.json +31 -0
  1136. package/schemas/video/artifacts/flow-voices.schema.json +30 -0
  1137. package/schemas/video/artifacts/motion-overlay-plan.schema.json +50 -0
  1138. package/schemas/video/artifacts/multi-shot-prompt.schema.json +90 -0
  1139. package/schemas/video/artifacts/music-video-config.schema.json +108 -0
  1140. package/schemas/video/artifacts/narration.schema.json +54 -0
  1141. package/schemas/video/artifacts/product-references.schema.json +29 -0
  1142. package/schemas/video/artifacts/project-blueprint.schema.json +236 -0
  1143. package/schemas/video/artifacts/publish-report.schema.json +12 -0
  1144. package/schemas/video/artifacts/reference-sheets.schema.json +85 -0
  1145. package/schemas/video/artifacts/review-report.schema.json +12 -0
  1146. package/schemas/video/artifacts/scene-candidates.schema.json +86 -0
  1147. package/schemas/video/artifacts/scene-selection.schema.json +50 -0
  1148. package/schemas/video/artifacts/seedance-assets.schema.json +31 -0
  1149. package/schemas/video/artifacts/sfx.schema.json +31 -0
  1150. package/schemas/video/artifacts/show-bible.schema.json +66 -0
  1151. package/schemas/video/artifacts/soundtrack.schema.json +39 -0
  1152. package/schemas/video/artifacts/story-bible.schema.json +131 -0
  1153. package/schemas/video/artifacts/storyboard.schema.json +58 -0
  1154. package/schemas/video/artifacts/voice-clones.schema.json +37 -0
  1155. package/schemas/video/brand-profile.schema.json +20 -0
  1156. package/schemas/video/errors.json +48 -0
  1157. package/schemas/video/pipeline-manifest.schema.json +51 -0
  1158. package/skills/README.md +113 -0
  1159. package/skills/ai-director/SKILL.md +140 -0
  1160. package/skills/ai-filmmaking/SKILL.md +239 -0
  1161. package/skills/ai-slop-cleaner/SKILL.md +114 -0
  1162. package/skills/brand-agency/SKILL.md +181 -0
  1163. package/skills/brand-presenter/SKILL.md +114 -0
  1164. package/skills/build-fix/SKILL.md +145 -0
  1165. package/skills/bunty/SKILL.md +41 -0
  1166. package/skills/catalog.json +326 -0
  1167. package/skills/character-ad/SKILL.md +154 -0
  1168. package/skills/character-creator/SKILL.md +303 -0
  1169. package/skills/character-library/README.md +12 -0
  1170. package/skills/character-library/SKILL.md +110 -0
  1171. package/skills/clawbot/SKILL.md +26 -0
  1172. package/skills/concierge/SKILL.md +183 -0
  1173. package/skills/configure-notifications/SKILL.md +286 -0
  1174. package/skills/davendra-presenter/SKILL.md +27 -0
  1175. package/skills/davendra-presenter/assets/davendra_intro_1.jpg +0 -0
  1176. package/skills/davendra-presenter/assets/davendra_intro_2.jpg +0 -0
  1177. package/skills/davendra-presenter/assets/davendra_outro_1.jpg +0 -0
  1178. package/skills/davendra-presenter/assets/davendra_outro_2.jpg +0 -0
  1179. package/skills/deep-interview/SKILL.md +358 -0
  1180. package/skills/deepsearch/SKILL.md +38 -0
  1181. package/skills/doctor/SKILL.md +200 -0
  1182. package/skills/graphify/SKILL.md +616 -0
  1183. package/skills/help/SKILL.md +200 -0
  1184. package/skills/higgsfield-generate/SKILL.md +171 -0
  1185. package/skills/improvement-run/SKILL.md +47 -0
  1186. package/skills/motion-reel/SKILL.md +102 -0
  1187. package/skills/movie-director/SKILL.md +338 -0
  1188. package/skills/multi-shot-prompt/SKILL.md +77 -0
  1189. package/skills/nex-presenter/SKILL.md +25 -0
  1190. package/skills/nex-presenter/assets/logo_manifest.json +26 -0
  1191. package/skills/nex-presenter/assets/logo_source.jpg +0 -0
  1192. package/skills/nex-presenter/assets/nex_brief_intro.mp4 +0 -0
  1193. package/skills/nex-presenter/assets/nex_intro_1.jpg +0 -0
  1194. package/skills/nex-presenter/assets/nex_intro_2.jpg +0 -0
  1195. package/skills/nex-presenter/assets/nex_outro_1.jpg +0 -0
  1196. package/skills/nex-presenter/assets/nex_outro_2.jpg +0 -0
  1197. package/skills/nex-presenter/assets/text_overlay.png +0 -0
  1198. package/skills/note/SKILL.md +62 -0
  1199. package/skills/pipeline/SKILL.md +86 -0
  1200. package/skills/review/SKILL.md +38 -0
  1201. package/skills/runway/SKILL.md +131 -0
  1202. package/skills/seedance-prompts/SKILL.md +194 -0
  1203. package/skills/skill/SKILL.md +835 -0
  1204. package/skills/skills-auditor/SKILL.md +73 -0
  1205. package/skills/studio-mode/SKILL.md +148 -0
  1206. package/skills/ugc/SKILL.md +386 -0
  1207. package/skills/ui-ux-pro-max/SKILL.md +386 -0
  1208. package/skills/video-analyze-template/SKILL.md +77 -0
  1209. package/skills/video-clone-ad/SKILL.md +67 -0
  1210. package/skills/video-framework/SKILL.md +201 -0
  1211. package/skills/video-portfolio-ops/SKILL.md +84 -0
  1212. package/skills/video-post/SKILL.md +97 -0
  1213. package/skills/video-production-handoff/SKILL.md +130 -0
  1214. package/skills/video-release-readiness/SKILL.md +93 -0
  1215. package/skills/video-replicator/SKILL.md +368 -0
  1216. package/skills/video-review-ui-qa/SKILL.md +103 -0
  1217. package/skills/video-storyboard/SKILL.md +71 -0
  1218. package/skills/video-thumbnail-lab/SKILL.md +67 -0
  1219. package/skills/web-clone/SKILL.md +366 -0
  1220. package/skills/worker/SKILL.md +106 -0
  1221. package/skills/youtube-audio/SKILL.md +114 -0
  1222. package/src/video/analyze-output.ts +10 -0
  1223. package/src/video/archive-project.ts +65 -0
  1224. package/src/video/artifact-history.ts +23 -0
  1225. package/src/video/artifact-store.ts +59 -0
  1226. package/src/video/artifact-validation.ts +268 -0
  1227. package/src/video/artifacts.ts +156 -0
  1228. package/src/video/assemble/animate-slides.ts +199 -0
  1229. package/src/video/assemble/animation-styles.json +97 -0
  1230. package/src/video/assemble/animation-styles.ts +54 -0
  1231. package/src/video/assemble/assemble.ts +547 -0
  1232. package/src/video/assemble/audio-concat.ts +165 -0
  1233. package/src/video/assemble/audio-mix-plan.ts +150 -0
  1234. package/src/video/assemble/audio-utils.ts +101 -0
  1235. package/src/video/assemble/cut-segment.ts +121 -0
  1236. package/src/video/assemble/ffmpeg.ts +333 -0
  1237. package/src/video/assemble/gemini-vision-classify.ts +153 -0
  1238. package/src/video/assemble/index.ts +247 -0
  1239. package/src/video/assemble/media-qc.ts +252 -0
  1240. package/src/video/assemble/music.ts +261 -0
  1241. package/src/video/assemble/narration-fit.ts +90 -0
  1242. package/src/video/assemble/overlay.ts +225 -0
  1243. package/src/video/assemble/pdf.ts +169 -0
  1244. package/src/video/assemble/qa-dialogue-lint.ts +129 -0
  1245. package/src/video/assemble/qa-image-filter.ts +147 -0
  1246. package/src/video/assemble/qa-image-vision.ts +154 -0
  1247. package/src/video/assemble/qa-narration-vision.ts +135 -0
  1248. package/src/video/assemble/qa-narration.ts +139 -0
  1249. package/src/video/assemble/stitch-ad.ts +222 -0
  1250. package/src/video/assemble/stitch.ts +918 -0
  1251. package/src/video/assemble/text-card.ts +285 -0
  1252. package/src/video/assemble/title-card.ts +186 -0
  1253. package/src/video/assemble/transcript.ts +240 -0
  1254. package/src/video/assemble/tts-elevenlabs.ts +182 -0
  1255. package/src/video/assemble/tts.ts +227 -0
  1256. package/src/video/assemble/types.ts +45 -0
  1257. package/src/video/assemble/upscale.ts +80 -0
  1258. package/src/video/asset-spec.ts +53 -0
  1259. package/src/video/asset-tag-lookup.ts +51 -0
  1260. package/src/video/atomic-write.ts +7 -0
  1261. package/src/video/audio-platform/native-elevenlabs-sfx.ts +128 -0
  1262. package/src/video/audio-platform/native-elevenlabs-tts.ts +119 -0
  1263. package/src/video/audio-platform/native-flowmusic.ts +167 -0
  1264. package/src/video/audio-platform/native-gemini-tts.ts +226 -0
  1265. package/src/video/audio-platform/native-lyria.ts +231 -0
  1266. package/src/video/audio-platform/native-lyria3.ts +244 -0
  1267. package/src/video/audio-platform/registry.ts +220 -0
  1268. package/src/video/audio-platform/suno-backend.ts +36 -0
  1269. package/src/video/audio-platform/types.ts +138 -0
  1270. package/src/video/batch-queue.ts +685 -0
  1271. package/src/video/blueprint-prompt.ts +118 -0
  1272. package/src/video/brand-definition.ts +287 -0
  1273. package/src/video/brand-dna.ts +478 -0
  1274. package/src/video/brand-prompt.ts +28 -0
  1275. package/src/video/candidate-migrate.ts +171 -0
  1276. package/src/video/category-registry.ts +224 -0
  1277. package/src/video/chain-fallback.ts +53 -0
  1278. package/src/video/character-auto-create.ts +547 -0
  1279. package/src/video/character-consistency.ts +85 -0
  1280. package/src/video/characters.ts +145 -0
  1281. package/src/video/checkpoints.ts +60 -0
  1282. package/src/video/cinema-profile.ts +120 -0
  1283. package/src/video/cinematography.ts +1229 -0
  1284. package/src/video/cli-output.ts +94 -0
  1285. package/src/video/cli-schema.ts +505 -0
  1286. package/src/video/cost-estimate.ts +150 -0
  1287. package/src/video/csv-export.ts +150 -0
  1288. package/src/video/dependencies.ts +64 -0
  1289. package/src/video/dialogue-fit.ts +62 -0
  1290. package/src/video/dialogue.ts +221 -0
  1291. package/src/video/director-defaults.ts +432 -0
  1292. package/src/video/director-preflight.ts +543 -0
  1293. package/src/video/doctor-portfolio.ts +197 -0
  1294. package/src/video/doctor.ts +499 -0
  1295. package/src/video/emotion-cues.ts +36 -0
  1296. package/src/video/environment-assets.ts +69 -0
  1297. package/src/video/environment-auto-create.ts +122 -0
  1298. package/src/video/errors.ts +133 -0
  1299. package/src/video/events.ts +42 -0
  1300. package/src/video/execute-autochain.ts +226 -0
  1301. package/src/video/execute.ts +569 -0
  1302. package/src/video/execution-cancel.ts +103 -0
  1303. package/src/video/execution-plan.ts +178 -0
  1304. package/src/video/execution-profile.ts +162 -0
  1305. package/src/video/execution-runtime.ts +975 -0
  1306. package/src/video/execution-seed.ts +46 -0
  1307. package/src/video/execution-status.ts +736 -0
  1308. package/src/video/filmmaking-prompts.ts +1789 -0
  1309. package/src/video/final-media.ts +118 -0
  1310. package/src/video/finish.ts +255 -0
  1311. package/src/video/flow-character-library.ts +342 -0
  1312. package/src/video/flow-markers.ts +330 -0
  1313. package/src/video/gemini-analyze.ts +387 -0
  1314. package/src/video/gemini-continuity.ts +186 -0
  1315. package/src/video/gemini-judge.ts +300 -0
  1316. package/src/video/gemini-key-pool.ts +153 -0
  1317. package/src/video/gen-image-flow.ts +491 -0
  1318. package/src/video/gen-image.ts +392 -0
  1319. package/src/video/generation-telemetry.ts +282 -0
  1320. package/src/video/http-error-safety.ts +13 -0
  1321. package/src/video/image-dimensions.ts +69 -0
  1322. package/src/video/legacy-import.ts +197 -0
  1323. package/src/video/library-clean.ts +399 -0
  1324. package/src/video/lipsync.ts +200 -0
  1325. package/src/video/media-host.ts +153 -0
  1326. package/src/video/metrics.ts +116 -0
  1327. package/src/video/motion-overlay/analyze-reel.ts +200 -0
  1328. package/src/video/motion-overlay/animate-render.ts +176 -0
  1329. package/src/video/motion-overlay/animate.ts +93 -0
  1330. package/src/video/motion-overlay/avatar-host-transport.ts +458 -0
  1331. package/src/video/motion-overlay/avatar-host.ts +238 -0
  1332. package/src/video/motion-overlay/compose-prompt.ts +247 -0
  1333. package/src/video/motion-overlay/execute.ts +355 -0
  1334. package/src/video/motion-overlay/flow-pack.ts +223 -0
  1335. package/src/video/motion-overlay/ingest.ts +210 -0
  1336. package/src/video/motion-overlay/motifs.ts +223 -0
  1337. package/src/video/motion-overlay/motion-style.ts +162 -0
  1338. package/src/video/motion-overlay/plan.ts +111 -0
  1339. package/src/video/motion-overlay/preview.ts +191 -0
  1340. package/src/video/motion-overlay/render-local.ts +441 -0
  1341. package/src/video/motion-overlay/run.ts +217 -0
  1342. package/src/video/motion-overlay/slice.ts +98 -0
  1343. package/src/video/motion-overlay/transcribe.ts +211 -0
  1344. package/src/video/motion-overlay/types.ts +89 -0
  1345. package/src/video/motion-overlay/v2v-transport.ts +209 -0
  1346. package/src/video/motion-overlay/write.ts +142 -0
  1347. package/src/video/multi-shot-artifact.ts +64 -0
  1348. package/src/video/multi-shot-prompt.ts +608 -0
  1349. package/src/video/music-video.ts +324 -0
  1350. package/src/video/narrate.ts +221 -0
  1351. package/src/video/native-dreamina.ts +638 -0
  1352. package/src/video/native-flow-r2v.ts +279 -0
  1353. package/src/video/native-runway.ts +647 -0
  1354. package/src/video/native-seedance.ts +615 -0
  1355. package/src/video/native-veo.ts +470 -0
  1356. package/src/video/next-actions.ts +247 -0
  1357. package/src/video/obsidian-export.ts +336 -0
  1358. package/src/video/obsidian-sync.ts +649 -0
  1359. package/src/video/obsidian-vault.ts +96 -0
  1360. package/src/video/outfit-prompts.ts +14 -0
  1361. package/src/video/outpaint-keyframe.ts +365 -0
  1362. package/src/video/pipeline-manifest.ts +16 -0
  1363. package/src/video/pipeline-manifests/director.json +46 -0
  1364. package/src/video/pipeline-manifests/storyboard.json +46 -0
  1365. package/src/video/platform-specs.ts +50 -0
  1366. package/src/video/playbooks.ts +34 -0
  1367. package/src/video/post-production.ts +277 -0
  1368. package/src/video/preview-portal/audit.ts +20 -0
  1369. package/src/video/preview-portal/discovery.ts +787 -0
  1370. package/src/video/preview-portal/generate.ts +138 -0
  1371. package/src/video/preview-portal/index.ts +41 -0
  1372. package/src/video/preview-portal/publish.ts +215 -0
  1373. package/src/video/preview-portal/render.ts +865 -0
  1374. package/src/video/preview-portal/shared-assets.ts +455 -0
  1375. package/src/video/preview-portal/templates.ts +112 -0
  1376. package/src/video/preview-portal/types.ts +288 -0
  1377. package/src/video/product-references.ts +43 -0
  1378. package/src/video/project-blueprint.ts +458 -0
  1379. package/src/video/project-index.ts +179 -0
  1380. package/src/video/projects.ts +18 -0
  1381. package/src/video/prompt-guidance.ts +64 -0
  1382. package/src/video/prompt-library.ts +96 -0
  1383. package/src/video/prompt-lint.ts +568 -0
  1384. package/src/video/prompt-quality.ts +635 -0
  1385. package/src/video/prompt-rules.ts +209 -0
  1386. package/src/video/provider-adapter-runner.ts +104 -0
  1387. package/src/video/provider-platform/index.ts +5 -0
  1388. package/src/video/provider-platform/registry.ts +286 -0
  1389. package/src/video/provider-platform/route-capabilities.ts +327 -0
  1390. package/src/video/provider-platform/router.ts +221 -0
  1391. package/src/video/provider-platform/security.ts +29 -0
  1392. package/src/video/provider-platform/telemetry.ts +116 -0
  1393. package/src/video/provider-platform/types.ts +192 -0
  1394. package/src/video/provider-status.ts +199 -0
  1395. package/src/video/providers/dreamina-useapi.ts +345 -0
  1396. package/src/video/providers/flowmusic-useapi.ts +252 -0
  1397. package/src/video/providers/google-flow.ts +110 -0
  1398. package/src/video/providers/public-host.ts +128 -0
  1399. package/src/video/providers/runway-useapi.ts +377 -0
  1400. package/src/video/providers/xskill.ts +304 -0
  1401. package/src/video/readiness.ts +284 -0
  1402. package/src/video/reference-sheet-store.ts +40 -0
  1403. package/src/video/reference-sheets.ts +224 -0
  1404. package/src/video/remix-narrated.ts +92 -0
  1405. package/src/video/report-diff.ts +299 -0
  1406. package/src/video/report-history.ts +122 -0
  1407. package/src/video/report.ts +35 -0
  1408. package/src/video/review-ui.ts +2495 -0
  1409. package/src/video/scene-candidate-store.ts +152 -0
  1410. package/src/video/scene-candidates.ts +195 -0
  1411. package/src/video/scene-selection-store.ts +36 -0
  1412. package/src/video/scene-selection.ts +306 -0
  1413. package/src/video/scheduling.ts +18 -0
  1414. package/src/video/scorecard.ts +90 -0
  1415. package/src/video/seedance-asset-library.ts +259 -0
  1416. package/src/video/seedance-blocks.ts +118 -0
  1417. package/src/video/seedance-chain-host.ts +152 -0
  1418. package/src/video/seedance-content-filter.ts +354 -0
  1419. package/src/video/seedance-skill-loader.ts +83 -0
  1420. package/src/video/sfx.ts +159 -0
  1421. package/src/video/shot-grammar.ts +349 -0
  1422. package/src/video/show-bible.ts +235 -0
  1423. package/src/video/soundtrack.ts +257 -0
  1424. package/src/video/stage-guards.ts +112 -0
  1425. package/src/video/status.ts +342 -0
  1426. package/src/video/story-bible.ts +302 -0
  1427. package/src/video/storyboard-grid.ts +320 -0
  1428. package/src/video/storyboard-markdown.ts +434 -0
  1429. package/src/video/storyboard-still-candidates.ts +82 -0
  1430. package/src/video/storyboard-templates.ts +249 -0
  1431. package/src/video/studio/execute.ts +401 -0
  1432. package/src/video/studio/planner.ts +114 -0
  1433. package/src/video/studio/project-context.ts +25 -0
  1434. package/src/video/studio/recipes.ts +346 -0
  1435. package/src/video/studio/session.ts +24 -0
  1436. package/src/video/studio/types.ts +76 -0
  1437. package/src/video/template-store.ts +241 -0
  1438. package/src/video/timeline.ts +32 -0
  1439. package/src/video/title-overlay.ts +234 -0
  1440. package/src/video/types.ts +465 -0
  1441. package/src/video/veo-subprocess.ts +77 -0
  1442. package/src/video/verify-env.ts +206 -0
  1443. package/src/video/verify-final.ts +65 -0
  1444. package/src/video/video-context.ts +92 -0
  1445. package/src/video/vocal-map.ts +155 -0
  1446. package/src/video/vocal-sync-plan.ts +224 -0
  1447. package/src/video/voice-clone.ts +410 -0
  1448. package/src/video/with-retry.ts +149 -0
  1449. package/src/video/workload.ts +87 -0
  1450. package/src/video/workspace.ts +255 -0
  1451. package/tmp/review-station/index.html +4194 -0
  1452. package/tsconfig.json +19 -0
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Pure motion-style registry + concept→animation metaphor map.
3
+ *
4
+ * Three styles, each a {accent, visualBlock, motionBlock} record:
5
+ * - `apple-clean` — ported verbatim from the source skill (Apple-keynote
6
+ * minimalism with tactile materiality).
7
+ * - `editorial-dark` — genericized from the source skill's "CODA Dark"
8
+ * (manifesto / punchline editorial poster aesthetic). CRITICAL: the prose
9
+ * carries NO numeric specs, hex codes, or font-family names (CRITICAL
10
+ * RULE 2 — those leak as on-screen text). The accent is a configurable
11
+ * field, never baked into the prose.
12
+ * - `knowledge-tool` — genericized from the source skill's "Brain Clone"
13
+ * (dark-academia / knowledge-graph look). Same no-specs prose discipline.
14
+ *
15
+ * The accent default lives in `MOTION_STYLES[id].accent`; `resolveStyle` lets a
16
+ * caller override it (`--accent`) or supply a brand profile (`--brand`, which
17
+ * takes precedence over `--accent`).
18
+ *
19
+ * Pure: no I/O. Deterministic.
20
+ */
21
+ /**
22
+ * Style registry. The visual/motion prose is what gets sent to Omni, so it must
23
+ * stay free of any technical metadata (CRITICAL RULE 2). The accent is held
24
+ * separately as a hex value and is resolved into a HUMAN-NAMED colour at compose
25
+ * time — it never appears as a hex string in the prompt.
26
+ */
27
+ export const MOTION_STYLES = {
28
+ // ── apple-clean — ported verbatim from the source skill ──────────────────
29
+ 'apple-clean': {
30
+ accent: '#FF5000',
31
+ visualBlock: 'Style: Apple-keynote minimalism with tactile materiality. Cards are dark frosted glass — they should feel like physical sheets of darkened glass with subtle refraction of the footage visible through them, not flat digital rectangles. Very soft rounded corners, a barely-visible hairline white edge that catches light like a real material seam, and a soft weighted drop shadow suggesting the card is floating slightly above the background. Text is clean modern white sans-serif, mostly sentence case, with category labels in uppercase. Typography itself behaves like an actor: each headline word feels deliberate, with tracking that breathes (slightly tighter on entry, settling into final spacing). The only accent colour is the configured accent — used SOLELY for the asterisk character (*) following key words, or as a thin underline below a single emphasized phrase. Never use the accent to fill or colour entire words; the accent is a beat marker, not decoration. Icons are pure white hairline outlines, never filled, never glowing. Backgrounded elements (cards no longer in focus) carry a subtle depth-of-field blur — the foreground is sharp, the background softens, like a cinematic lens.',
32
+ motionBlock: 'Motion: Slow, confident, premium — like an Apple product reveal directed with a real camera. Cards and headlines enter with a soft glide that decelerates into rest, NEVER linear motion — always settling under their own weight. Active camera movement is essential: elements use push-in and pull-out as if a slow cinematic lens is approaching and retreating. While an element holds on screen, it carries a slow gentle push-in — scaling up subtly over a beat, as if the camera is moving closer. When an element exits, it pulls back and slips into soft depth-of-field blur, shrinking slightly as it recedes. On key beats (asterisks, numbers, anchor words), a brief emphasis pulse hits the element — a quick scale up and settle that punctuates the rhythm. Idle elements carry a barely-perceptible parallax drift, suggesting the camera is never fully locked, always breathing slightly. Text reveals word by word with a small upward offset; on headline-anchor words (large dominant text), the letter tracking is slightly tight on entry and breathes outward into final spacing as the word settles — letters exhaling into place. Crossfades are smooth, outgoing elements fading while pulling back and slipping out of focus. Icons appear via stroke-on draw animation — lines drawing themselves like a pen on paper, never popping in. Kinetic typography mixes with cards: the speaker\'s anchor words appear as giant headline text dominating the frame, sometimes alone, sometimes alongside an icon — never let a take be only cards with icon labels; intersperse with at least one giant headline-anchor moment that syncs with the speaker\'s emphasis. Critical pacing principle: when the speaker pauses or breathes between sentences, the visual STOPS too — hold the current state silent and still during that beat. Silence before a reveal is more powerful than continuous animation. No bouncy springs, no whip pans, no pop-in, no constant motion filling every second. Subtle motion blur on all transforms.',
33
+ },
34
+ // ── editorial-dark — genericized from "CODA Dark" (no specs / no fonts) ───
35
+ 'editorial-dark': {
36
+ accent: '#FF5000',
37
+ visualBlock: 'Style: Editorial dark manifesto — high-contrast poster typography in motion. Cards are solid deep-black surfaces with sharp, squared corners, no rounding — an editorial, decisive feel rather than a soft product look. Typography is a bold, condensed grotesque sans-serif set in uppercase with tight tracking and a low, punchy line height, treated like a magazine cover headline. The only accent colour is the configured accent, used SOLELY for a small asterisk (*) after each headline and for a thin underline on key shapes — never to fill whole words. Icons are minimal hairline strokes in the accent on key shapes only. A weighted drop shadow gives each black card real heft so it reads as a stacked poster panel floating above the frame. The overall feeling is a printed manifesto poster brought to life: stark, confident, punchline-driven, generous negative space around a single dominant statement.',
38
+ motionBlock: 'Motion: Snappy, decisive, high-contrast — an editorial poster animated. Cards and headlines enter fast and crisp, then settle without bounce, NEVER linear motion. Headlines snap in word by word in quick succession, each word landing with a confident stop. Exits are a quick fade with a small upward drift, the panel slipping away cleanly. There is still a real camera: a subtle push-in while a statement holds, a slight pull-back on exit, and a brief emphasis pulse on the asterisk or a key number to mark the beat. Idle panels carry a barely-perceptible parallax drift. Keep the rhythm decisive and poster-like rather than soft and floaty. Kinetic typography dominates: anchor words from the speech appear as giant uppercase headlines filling the frame, sometimes alone, sometimes with one hairline icon — never a take that is only icon-labelled cards. Critical pacing principle: when the speaker pauses, the visual STOPS too — hold the current panel silent and still during that beat. Silence before a reveal lands harder than constant motion. No springs, no whip pans, no pop-in clutter.',
39
+ },
40
+ // ── knowledge-tool — genericized from "Brain Clone" (no specs / no fonts) ─
41
+ 'knowledge-tool': {
42
+ accent: '#A78BFA',
43
+ visualBlock: 'Style: Dark-academia digital meeting a knowledge-graph aesthetic — a knowledge-tool look, not generic motion graphics. Cards are deep near-black surfaces with the slightest cool blue undertone (never pure black), with very subtle hairline edges and a soft weighted shadow suggesting weight. Two typographic worlds intermix: headline anchors use a classical editorial serif — italic-capable, manuscript-like, the kind of letterforms on the cover of an old hardcover book; card labels and sublines use a clean modern sans-serif; small technical brackets and timestamps use a monospace typewriter-style face like an editor label. The only accent colour is the configured accent — a soft, calm lavender, never neon, never magenta — used SOLELY for the asterisk character (*) after key words and occasionally a thin underline. The asterisks have a slightly hand-drawn, brushy quality, like an ink stroke rather than a perfectly geometric character. The accent is a beat marker, never decoration. Icons are clean hairline outlines in soft, slightly cool off-white. Backgrounded elements carry depth-of-field blur. The composition feels like a knowledge tool: editorial magazine layout, generous negative space, considered hierarchy — not a slick product ad.',
44
+ motionBlock: 'Motion: Slow, contemplative, scholarly — directed like a documentary about a thinker\'s notebook rather than a product reveal. Cards and headlines enter with a soft glide that decelerates into rest, NEVER linear motion. Active cinematic camera: a slow push-in during a hold, as if a lens is approaching a page; a pull-out on exit where the element shrinks slightly and slips into soft depth-of-field blur; an emphasis pulse on key beats (asterisks, anchor words) — a quick scale up and settle. Idle elements carry a barely-perceptible parallax drift. The serif headline letters enter with tracking slightly tight, then breathe outward into final spacing as the word settles — letters exhaling like the word is being read aloud and considered. The brushy accent asterisk lands distinct from the word, a beat marker punctuating thought. Icons appear via stroke-on draw animation, lines forming like ink on paper. Kinetic typography mixes with cards: anchor words appear as giant serif headlines dominating the frame, sometimes alone, sometimes alongside an icon — never a take that is only cards with icon labels. Critical pacing principle: when the speaker pauses, the visual STOPS too — hold silent and still. Silence before a reveal is more powerful than continuous motion. The overall feeling: a quiet, deliberate study session, premium and considered.',
45
+ },
46
+ };
47
+ /**
48
+ * Resolve a style id + optional accent/brand overrides into a `ResolvedStyle`.
49
+ *
50
+ * Accent precedence (highest first): `brand.accent` → `accent` → style default.
51
+ * Pure: returns a fresh object; never mutates the registry.
52
+ */
53
+ export function resolveStyle(id, opts = {}) {
54
+ const def = MOTION_STYLES[id];
55
+ if (!def) {
56
+ throw new Error(`resolveStyle: unknown style "${id}"`);
57
+ }
58
+ const accent = opts.brand?.accent ?? opts.accent ?? def.accent;
59
+ return {
60
+ id,
61
+ accent,
62
+ visualBlock: def.visualBlock,
63
+ motionBlock: def.motionBlock,
64
+ };
65
+ }
66
+ /**
67
+ * Concept → animation prose.
68
+ *
69
+ * Concrete concepts (real-world objects) map to minimalist hairline-icon prose;
70
+ * abstract concepts (states/processes — AI, clones, intelligence, insight) map
71
+ * to a MATERIAL METAPHOR (particles / grids / light), never a generic hairline
72
+ * icon (which reads weak for an abstract idea). Pure — returns prose with no
73
+ * numeric specs.
74
+ */
75
+ const CONCRETE_ICONS = {
76
+ carousel: 'three staggered diagonal portrait rectangles, like a deck of slides fanned out',
77
+ slides: 'three staggered diagonal portrait rectangles, like a deck of slides fanned out',
78
+ website: 'a browser window outline with three dots in the top-left and a few horizontal content lines',
79
+ 'web page': 'a browser window outline with three dots in the top-left and a few horizontal content lines',
80
+ app: 'the hairline outline of a vertical phone with a small notch',
81
+ application: 'the hairline outline of a vertical phone with a small notch',
82
+ code: 'a window outline holding a few lines of code suggested as hairlines with varied indentation',
83
+ programming: 'a window outline holding a few lines of code suggested as hairlines with varied indentation',
84
+ chat: 'two stacked speech bubbles, one showing typing dots',
85
+ conversation: 'two stacked speech bubbles, one showing typing dots',
86
+ money: 'a currency mark inside a hairline circle',
87
+ revenue: 'a currency mark inside a hairline circle',
88
+ time: 'a clock outline with slim hands',
89
+ fast: 'a clock outline with slim hands',
90
+ data: 'a hairline bar chart with a few rising bars',
91
+ analytics: 'a hairline bar chart with a few rising bars',
92
+ vault: 'a hexagonal outline with a central dot and radial lines',
93
+ obsidian: 'a hexagonal outline with a central dot and radial lines',
94
+ };
95
+ const ABSTRACT_METAPHORS = {
96
+ ai: 'soft white particles drifting upward, slowly coalescing into a brain-like silhouette outlined in hairlines, with a subtle inner glow',
97
+ intelligence: 'soft white particles drifting upward, slowly coalescing into a brain-like silhouette outlined in hairlines, with a subtle inner glow',
98
+ thinking: 'soft white particles drifting upward, slowly coalescing into a brain-like silhouette outlined in hairlines, with a subtle inner glow',
99
+ clone: 'thin hairline lines drawing themselves one by one between scattered white dots, forming a network constellation that settles into a stable graph',
100
+ clones: 'thin hairline lines drawing themselves one by one between scattered white dots, forming a network constellation that settles into a stable graph',
101
+ sources: 'thin hairline lines drawing themselves one by one between scattered white dots, forming a network constellation that settles into a stable graph',
102
+ knowledge: 'thin hairline lines drawing themselves one by one between scattered white dots, forming a network constellation that settles into a stable graph',
103
+ insight: 'a soft warm-white bloom of light expanding outward from a central point, then settling into a clean centred headline as the light fades',
104
+ reveal: 'a soft warm-white bloom of light expanding outward from a central point, then settling into a clean centred headline as the light fades',
105
+ answer: 'a soft warm-white bloom of light expanding outward from a central point, then settling into a clean centred headline as the light fades',
106
+ agent: 'interconnected nodes with one node pulsing softly, suggesting a continuous process — gentle, not mechanical',
107
+ automation: 'interconnected nodes with one node pulsing softly, suggesting a continuous process — gentle, not mechanical',
108
+ processing: 'particles flowing into a structured grid that locks into place line by line, then settles',
109
+ analysis: 'particles flowing into a structured grid that locks into place line by line, then settles',
110
+ };
111
+ /**
112
+ * Resolve a single concept word to animation prose. Concrete → hairline icon;
113
+ * abstract → material metaphor; unknown abstract-ish words fall back to a
114
+ * generic light metaphor and unknown concrete-ish words to a generic hairline
115
+ * icon. Lookup is case-insensitive on the trimmed concept.
116
+ */
117
+ export function conceptAnimation(concept) {
118
+ const key = concept.trim().toLowerCase();
119
+ if (key in ABSTRACT_METAPHORS) {
120
+ return ABSTRACT_METAPHORS[key];
121
+ }
122
+ if (key in CONCRETE_ICONS) {
123
+ return CONCRETE_ICONS[key];
124
+ }
125
+ // Unknown: keep the concrete default (a hairline icon). Abstract concepts the
126
+ // map doesn't know about should be added rather than guessed at — a hairline
127
+ // icon is the safer generic than an over-specific metaphor.
128
+ return `a minimalist hairline icon representing "${concept.trim()}"`;
129
+ }
130
+ //# sourceMappingURL=motion-style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion-style.js","sourceRoot":"","sources":["../../../src/video/motion-overlay/motion-style.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Pure motion-overlay plan assembler.
3
+ *
4
+ * `buildMotionOverlayPlan` composes a `MotionOverlayPlan` (`schemaVersion: 1`)
5
+ * from already-computed inputs: the input probe, the resolved style, the take
6
+ * splits, each take's analysis, and each take's composed prompt. It performs NO
7
+ * I/O and NO provider/ffmpeg/STT calls — those happen upstream (transcribe,
8
+ * slice, analyze-reel, compose-prompt) and are passed in. This keeps the
9
+ * manifest shape deterministic and unit-testable.
10
+ *
11
+ * The per-take `file` / `promptFile` paths are the work-folder-relative names
12
+ * (`takes/…mp4`, `prompts/…md`) the `write.ts` emitter will produce; this module
13
+ * only names them, it does not write them.
14
+ */
15
+ import type { MotionLayout, MotionOverlayPlan, MotionStyleId, TakeAnalysis, TakeSplit } from './types.js';
16
+ export interface BuildMotionOverlayPlanArgs {
17
+ input: {
18
+ path: string;
19
+ durationSeconds: number;
20
+ width: number;
21
+ height: number;
22
+ aspect: string;
23
+ };
24
+ layout: MotionLayout;
25
+ style: MotionStyleId;
26
+ /** Resolved accent (hex or already-resolved name) recorded on the manifest. */
27
+ accent: string;
28
+ language: string;
29
+ /** Work-folder path (absolute or relative; recorded verbatim). */
30
+ workdir: string;
31
+ /** The take splits (one per output clip), in order. */
32
+ splits: TakeSplit[];
33
+ /** Per-take analysis, parallel to `splits` (keyed by index). */
34
+ analyses: TakeAnalysis[];
35
+ /** Per-take composed prompts, parallel to `splits` (keyed by index). */
36
+ prompts: string[];
37
+ }
38
+ /** Build the work-folder-relative take clip filename for a take. */
39
+ export declare function takeFileName(split: TakeSplit): string;
40
+ /** Build the work-folder-relative prompt markdown filename for a take. */
41
+ export declare function takePromptFileName(split: TakeSplit): string;
42
+ /** Shared stem, e.g. `take-01_0s-10s` (1-based index, whole-second bounds). */
43
+ export declare function takeStem(split: TakeSplit): string;
44
+ /**
45
+ * Assemble the `MotionOverlayPlan`. Pure. Throws if the analyses/prompts arrays
46
+ * don't line up with the splits (a programmer error, surfaced loudly).
47
+ */
48
+ export declare function buildMotionOverlayPlan(args: BuildMotionOverlayPlanArgs): MotionOverlayPlan;
49
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/video/motion-overlay/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EAEb,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChG,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gEAAgE;IAChE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,wEAAwE;IACxE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAErD;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAE3D;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAKjD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,iBAAiB,CA2C1F"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Pure motion-overlay plan assembler.
3
+ *
4
+ * `buildMotionOverlayPlan` composes a `MotionOverlayPlan` (`schemaVersion: 1`)
5
+ * from already-computed inputs: the input probe, the resolved style, the take
6
+ * splits, each take's analysis, and each take's composed prompt. It performs NO
7
+ * I/O and NO provider/ffmpeg/STT calls — those happen upstream (transcribe,
8
+ * slice, analyze-reel, compose-prompt) and are passed in. This keeps the
9
+ * manifest shape deterministic and unit-testable.
10
+ *
11
+ * The per-take `file` / `promptFile` paths are the work-folder-relative names
12
+ * (`takes/…mp4`, `prompts/…md`) the `write.ts` emitter will produce; this module
13
+ * only names them, it does not write them.
14
+ */
15
+ /** Build the work-folder-relative take clip filename for a take. */
16
+ export function takeFileName(split) {
17
+ return `takes/${takeStem(split)}.mp4`;
18
+ }
19
+ /** Build the work-folder-relative prompt markdown filename for a take. */
20
+ export function takePromptFileName(split) {
21
+ return `prompts/${takeStem(split)}.md`;
22
+ }
23
+ /** Shared stem, e.g. `take-01_0s-10s` (1-based index, whole-second bounds). */
24
+ export function takeStem(split) {
25
+ const n = String(split.index + 1).padStart(2, '0');
26
+ const start = Math.round(split.start);
27
+ const end = Math.round(split.end);
28
+ return `take-${n}_${start}s-${end}s`;
29
+ }
30
+ /**
31
+ * Assemble the `MotionOverlayPlan`. Pure. Throws if the analyses/prompts arrays
32
+ * don't line up with the splits (a programmer error, surfaced loudly).
33
+ */
34
+ export function buildMotionOverlayPlan(args) {
35
+ const { splits, analyses, prompts } = args;
36
+ if (analyses.length !== splits.length) {
37
+ throw new Error(`buildMotionOverlayPlan: ${splits.length} splits but ${analyses.length} analyses.`);
38
+ }
39
+ if (prompts.length !== splits.length) {
40
+ throw new Error(`buildMotionOverlayPlan: ${splits.length} splits but ${prompts.length} prompts.`);
41
+ }
42
+ const takes = splits.map((split, i) => {
43
+ const analysis = analyses[i];
44
+ if (!analysis || analysis.index !== split.index) {
45
+ throw new Error(`buildMotionOverlayPlan: analysis ${i} does not match split index ${split.index}.`);
46
+ }
47
+ const prompt = prompts[i];
48
+ return {
49
+ index: split.index,
50
+ start: split.start,
51
+ end: split.end,
52
+ durationSeconds: round(split.end - split.start),
53
+ file: takeFileName(split),
54
+ promptFile: takePromptFileName(split),
55
+ anatomy: analysis.anatomy,
56
+ prompt,
57
+ };
58
+ });
59
+ return {
60
+ schemaVersion: 1,
61
+ input: {
62
+ path: args.input.path,
63
+ durationSeconds: args.input.durationSeconds,
64
+ width: args.input.width,
65
+ height: args.input.height,
66
+ aspect: args.input.aspect,
67
+ },
68
+ layout: args.layout,
69
+ style: args.style,
70
+ accent: args.accent,
71
+ language: args.language,
72
+ workdir: args.workdir,
73
+ takes,
74
+ };
75
+ }
76
+ function round(n) {
77
+ return Math.round(n * 1000) / 1000;
78
+ }
79
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/video/motion-overlay/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA4BH,oEAAoE;AACpE,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,OAAO,SAAS,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AACxC,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IACjD,OAAO,WAAW,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AACzC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,QAAQ,CAAC,KAAgB;IACvC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,GAAG,GAAG,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAgC;IACrE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,MAAM,eAAe,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,KAAK,GAAiB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,+BAA+B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACtG,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;YAC/C,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;YACzB,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC;YACrC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;YAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;SAC1B;QACD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACrC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Motion-overlay review surface (Phase 3).
3
+ *
4
+ * Renders a finished `MotionOverlayPlan` into a standalone, self-contained
5
+ * `review/review.html` approval surface — the **contract** the operator signs
6
+ * off before any provider spend. Each take card shows:
7
+ * - the take clip filename + reel beat (anatomy),
8
+ * - the take's anatomy / span / duration,
9
+ * - the FULL composed prompt that will be sent to Omni Flash V2V verbatim.
10
+ *
11
+ * It reuses the preview-portal's `PORTAL_CSS` (including its aspect-aware media
12
+ * classes via `body[data-aspect]`) for visual consistency, but it does NOT go
13
+ * through the portal's project-discovery `render.ts` — that surface is driven by
14
+ * on-disk project assets, whereas motion-overlay renders straight from the
15
+ * deterministic plan manifest. Pure string assembly except for the single
16
+ * file write in `writeMotionOverlayReview`.
17
+ */
18
+ import type { MotionOverlayPlan } from './types.js';
19
+ export interface RenderMotionOverlayReviewResult {
20
+ /** Absolute path to the emitted review.html. */
21
+ reviewPath: string;
22
+ /** The full rendered HTML (returned for tests / callers that want it inline). */
23
+ html: string;
24
+ }
25
+ /**
26
+ * Render the plan into the review HTML string. Pure — no I/O. The aspect
27
+ * (`plan.input.aspect`) drives `body[data-aspect]` so portrait/square clips get
28
+ * tall cards via PORTAL_CSS's aspect-aware rules.
29
+ */
30
+ export declare function renderMotionOverlayReview(plan: MotionOverlayPlan): string;
31
+ /**
32
+ * Render the plan into `<workdir>/review/review.html` and return its path + html.
33
+ * Creates the `review/` dir if needed. The only side effect.
34
+ */
35
+ export declare function writeMotionOverlayReview(workdir: string, plan: MotionOverlayPlan): Promise<RenderMotionOverlayReviewResult>;
36
+ //# sourceMappingURL=preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../src/video/motion-overlay/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,+BAA+B;IAC9C,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;CACd;AAWD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAiDzE;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,+BAA+B,CAAC,CAO1C"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Motion-overlay review surface (Phase 3).
3
+ *
4
+ * Renders a finished `MotionOverlayPlan` into a standalone, self-contained
5
+ * `review/review.html` approval surface — the **contract** the operator signs
6
+ * off before any provider spend. Each take card shows:
7
+ * - the take clip filename + reel beat (anatomy),
8
+ * - the take's anatomy / span / duration,
9
+ * - the FULL composed prompt that will be sent to Omni Flash V2V verbatim.
10
+ *
11
+ * It reuses the preview-portal's `PORTAL_CSS` (including its aspect-aware media
12
+ * classes via `body[data-aspect]`) for visual consistency, but it does NOT go
13
+ * through the portal's project-discovery `render.ts` — that surface is driven by
14
+ * on-disk project assets, whereas motion-overlay renders straight from the
15
+ * deterministic plan manifest. Pure string assembly except for the single
16
+ * file write in `writeMotionOverlayReview`.
17
+ */
18
+ import { mkdir, writeFile } from 'node:fs/promises';
19
+ import { join } from 'node:path';
20
+ import { PORTAL_CSS } from '../preview-portal/shared-assets.js';
21
+ /** Human-friendly label for the reel-anatomy beat. */
22
+ const ANATOMY_LABELS = {
23
+ hook: 'Hook',
24
+ contextualize: 'Contextualize',
25
+ burst: 'Burst',
26
+ breath: 'Breath',
27
+ cta: 'CTA',
28
+ };
29
+ /**
30
+ * Render the plan into the review HTML string. Pure — no I/O. The aspect
31
+ * (`plan.input.aspect`) drives `body[data-aspect]` so portrait/square clips get
32
+ * tall cards via PORTAL_CSS's aspect-aware rules.
33
+ */
34
+ export function renderMotionOverlayReview(plan) {
35
+ const aspect = plan.input.aspect;
36
+ const takeCards = plan.takes.map((take) => renderTakeCard(take)).join('\n');
37
+ const totalDuration = plan.takes.reduce((sum, t) => sum + t.durationSeconds, 0);
38
+ return `<!DOCTYPE html>
39
+ <html lang="en">
40
+ <head>
41
+ <meta charset="utf-8">
42
+ <meta name="viewport" content="width=device-width,initial-scale=1">
43
+ <title>Motion-overlay review — ${esc(layoutTitle(plan))}</title>
44
+ <style>${PORTAL_CSS}${EXTRA_CSS}</style>
45
+ </head>
46
+ <body data-aspect="${escAttr(aspect)}">
47
+ <header class="hero">
48
+ <div class="eyebrow">motion-overlay review · approve before spend</div>
49
+ <h1>Motion-overlay plan</h1>
50
+ <p class="sub">Review each take's clip and the exact prompt that will be sent to Omni Flash V2V. This is the contract — nothing renders until you approve.</p>
51
+ </header>
52
+
53
+ <div class="stats">
54
+ <div class="stat"><div class="v">${plan.takes.length}</div><div class="l">Takes</div></div>
55
+ <div class="stat"><div class="v">${esc(plan.layout)}</div><div class="l">Layout</div></div>
56
+ <div class="stat"><div class="v">${esc(plan.style)}</div><div class="l">Style</div></div>
57
+ <div class="stat"><div class="v">${fmt(totalDuration)}s</div><div class="l">Total</div></div>
58
+ </div>
59
+
60
+ <div class="mo-meta">
61
+ <span><b>Input</b> ${esc(plan.input.path)}</span>
62
+ <span><b>Frame</b> ${plan.input.width}×${plan.input.height} (${esc(aspect)})</span>
63
+ <span><b>Accent</b> <i class="mo-swatch" style="background:${escAttr(plan.accent)}"></i>${esc(plan.accent)}</span>
64
+ <span><b>Language</b> ${esc(plan.language)}</span>
65
+ </div>
66
+
67
+ <section data-toc="Takes">
68
+ <div class="section-head">
69
+ <h2>Per-take contract</h2>
70
+ <div class="section-title">${plan.takes.length} take${plan.takes.length === 1 ? '' : 's'}</div>
71
+ <div class="section-sub">Each card is one Omni Flash V2V generation: the base clip, its reel beat, and the full composed prompt verbatim.</div>
72
+ </div>
73
+ <div class="mo-grid">
74
+ ${takeCards}
75
+ </div>
76
+ </section>
77
+
78
+ <footer>Generated by <code>vclaw video motion-overlay --preview</code>${plan.generatedAt ? ` · ${esc(plan.generatedAt)}` : ''}</footer>
79
+ </body>
80
+ </html>
81
+ `;
82
+ }
83
+ /**
84
+ * Render the plan into `<workdir>/review/review.html` and return its path + html.
85
+ * Creates the `review/` dir if needed. The only side effect.
86
+ */
87
+ export async function writeMotionOverlayReview(workdir, plan) {
88
+ const html = renderMotionOverlayReview(plan);
89
+ const reviewDir = join(workdir, 'review');
90
+ await mkdir(reviewDir, { recursive: true });
91
+ const reviewPath = join(reviewDir, 'review.html');
92
+ await writeFile(reviewPath, html, 'utf-8');
93
+ return { reviewPath, html };
94
+ }
95
+ /** Render one take card: clip filename, beat, anatomy/span, and full prompt. */
96
+ function renderTakeCard(take) {
97
+ const beat = ANATOMY_LABELS[take.anatomy] ?? take.anatomy;
98
+ const clipName = baseName(take.file);
99
+ return ` <article class="mo-card" data-card-kind="take" data-card-id="${take.index + 1}">
100
+ <div class="mo-card-head">
101
+ <span class="num">TAKE ${String(take.index + 1).padStart(2, '0')}</span>
102
+ <span class="mo-beat" data-anatomy="${escAttr(take.anatomy)}">${esc(beat)}</span>
103
+ </div>
104
+ <div class="mo-clip">
105
+ <video src="../${escAttr(take.file)}" controls preload="none"></video>
106
+ <div class="mo-clip-name">${esc(clipName)}</div>
107
+ </div>
108
+ <dl class="mo-anatomy">
109
+ <div><dt>Beat</dt><dd>${esc(beat)}</dd></div>
110
+ <div><dt>Span</dt><dd>${fmt(take.start)}s → ${fmt(take.end)}s</dd></div>
111
+ <div><dt>Duration</dt><dd>${fmt(take.durationSeconds)}s</dd></div>
112
+ <div><dt>Clip</dt><dd><code>${esc(take.file)}</code></dd></div>
113
+ </dl>
114
+ <div class="mo-prompt">
115
+ <div class="mo-prompt-label">Composed prompt (the contract)</div>
116
+ <pre>${esc(take.prompt)}</pre>
117
+ </div>
118
+ </article>`;
119
+ }
120
+ /** A short title line summarizing the plan's layout + style. */
121
+ function layoutTitle(plan) {
122
+ return `${plan.layout} / ${plan.style}`;
123
+ }
124
+ function baseName(p) {
125
+ const i = p.lastIndexOf('/');
126
+ return i >= 0 ? p.slice(i + 1) : p;
127
+ }
128
+ function fmt(seconds) {
129
+ return (Math.round(seconds * 10) / 10).toFixed(1);
130
+ }
131
+ function esc(value) {
132
+ return value
133
+ .replaceAll('&', '&amp;')
134
+ .replaceAll('<', '&lt;')
135
+ .replaceAll('>', '&gt;')
136
+ .replaceAll('"', '&quot;');
137
+ }
138
+ function escAttr(value) {
139
+ return esc(value).replaceAll("'", '&#39;');
140
+ }
141
+ /**
142
+ * Motion-overlay-specific styling layered on top of PORTAL_CSS. Cards are
143
+ * aspect-aware: the clip <video> inherits PORTAL_CSS's `.card video` aspect
144
+ * rules via the same `aspect-ratio` defaults, re-stated here for the `.mo-clip`
145
+ * scope so portrait/square plans render tall clips.
146
+ */
147
+ const EXTRA_CSS = `
148
+ .mo-meta{display:flex;gap:10px 22px;flex-wrap:wrap;align-items:center;margin:0 0 30px;color:var(--ink2);font-size:12px;font-family:ui-monospace,"SF Mono",monospace}
149
+ .mo-meta b{color:var(--ink3);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:10px;margin-right:6px}
150
+ .mo-swatch{display:inline-block;width:11px;height:11px;border-radius:50%;border:1px solid rgba(255,255,255,.25);margin-right:6px;vertical-align:middle}
151
+ .mo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
152
+ .mo-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
153
+ .mo-card-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line)}
154
+ .mo-beat{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:rgba(255,180,84,.12);border:1px solid rgba(255,180,84,.35);border-radius:999px;padding:3px 10px}
155
+ .mo-clip video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#000}
156
+ .mo-clip-name{padding:8px 16px 0;color:var(--ink3);font-family:ui-monospace,"SF Mono",monospace;font-size:11px;overflow-wrap:anywhere}
157
+ .mo-anatomy{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;padding:14px 16px;margin:0}
158
+ .mo-anatomy>div{display:flex;flex-direction:column;gap:2px}
159
+ .mo-anatomy dt{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3)}
160
+ .mo-anatomy dd{font-size:12px;color:var(--ink);margin:0;overflow-wrap:anywhere}
161
+ .mo-anatomy code{font-family:ui-monospace,"SF Mono",monospace;font-size:11px;color:var(--ink2)}
162
+ .mo-prompt{border-top:1px solid var(--line);padding:14px 16px}
163
+ .mo-prompt-label{font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
164
+ .mo-prompt pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,"SF Mono",monospace;font-size:11px;line-height:1.6;color:var(--ink2);background:#0c0c11;border:1px solid var(--line);border-radius:8px;padding:12px 14px;max-height:none}
165
+ body[data-aspect="9:16"] .mo-clip video{aspect-ratio:9/16;width:auto;max-width:100%;max-height:70vh;margin:0 auto}
166
+ body[data-aspect="1:1"] .mo-clip video{aspect-ratio:1/1}
167
+ @media(max-width:900px){.mo-grid{grid-template-columns:1fr}}
168
+ `;
169
+ //# sourceMappingURL=preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../src/video/motion-overlay/preview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { type MotifMoment } from './motifs.js';
2
+ /** One caption: the spoken text and its absolute window in the source clip. */
3
+ export interface LocalCaption {
4
+ text: string;
5
+ start: number;
6
+ end: number;
7
+ }
8
+ /**
9
+ * The three card looks, ported from the source skill's style catalog so
10
+ * `--render local --style X` actually changes the rendered overlay (previously
11
+ * only the V2V *prompt* varied by style; the local card was fixed).
12
+ * - `apple-clean` — rounded dark frosted glass, clean sans-serif sentence case.
13
+ * - `editorial-dark` — squared solid-black poster panel, bold condensed UPPERCASE.
14
+ * - `knowledge-tool` — soft cool-dark card, editorial serif, calm lavender accent.
15
+ */
16
+ export type CardVariant = 'apple-clean' | 'editorial-dark' | 'knowledge-tool';
17
+ /** Visual config for the lower-third (accent hex + small kicker label + style). */
18
+ export interface LocalRenderStyle {
19
+ accent: string;
20
+ /** Optional small kicker label above the caption (e.g. a brand). Omitted when blank. */
21
+ kicker?: string;
22
+ /** Lowercased words that get the accent colour (e.g. brand/anchor words). */
23
+ accentWords?: string[];
24
+ /** Which card look to render (default `apple-clean`). */
25
+ variant?: CardVariant;
26
+ /**
27
+ * Word-by-word reveal: only the first N words of the caption are visible; the rest
28
+ * render transparent (so the panel keeps its full size — no per-frame reflow). The
29
+ * animated renderer drives this with `revealWordCount(t)`. Omitted → all words.
30
+ */
31
+ visibleWords?: number;
32
+ }
33
+ /** Escape the five XML entities so arbitrary transcript text is SVG-safe. Pure. */
34
+ export declare function xmlEscape(text: string): string;
35
+ /**
36
+ * Word-wrap `text` to at most `maxChars` per line (greedy by words). Pure — used
37
+ * to size the panel and lay out tspans.
38
+ */
39
+ export declare function wrapWords(text: string, maxChars: number): string[];
40
+ /**
41
+ * Build the lower-third SVG for one caption. Pure & deterministic. `style.variant`
42
+ * selects a **structurally distinct** card per the source skill's catalog — a
43
+ * floating inset frosted card (apple-clean), a full-bleed near-black poster bar with
44
+ * an accent top rule and a solid accent tag (editorial-dark), or a left-anchored cool
45
+ * study card with a `[[ MONO ]]` bracket label and serif body (knowledge-tool).
46
+ */
47
+ export declare function lowerThirdSvg(caption: Pick<LocalCaption, 'text'>, dims: {
48
+ width: number;
49
+ height: number;
50
+ }, style: LocalRenderStyle): string;
51
+ /**
52
+ * Build the giant **anchor-headline** SVG — a single dominant keyword centred in
53
+ * the upper-middle of the frame, with the accent asterisk beat-marker after it
54
+ * (the source skill's signature kinetic-typography moment). Pure & deterministic.
55
+ */
56
+ export declare function anchorHeadlineSvg(word: string, dims: {
57
+ width: number;
58
+ height: number;
59
+ }, style: LocalRenderStyle): string;
60
+ /** Rasterise a lower-third SVG to a PNG buffer via sharp. Side effect (sharp). */
61
+ export declare function rasteriseCaption(svg: string): Promise<Buffer>;
62
+ /**
63
+ * Build the ffmpeg `-filter_complex` graph compositing N pre-rendered full-frame
64
+ * card PNGs (inputs 1..N; input 0 is the source video) onto the source — each
65
+ * card fades in/out and slides up 36px on entrance over its [start,end] window.
66
+ * Pure (string only).
67
+ */
68
+ export declare function buildLocalFiltergraph(cards: Array<{
69
+ start: number;
70
+ end: number;
71
+ }>): string;
72
+ /**
73
+ * Build the ffmpeg argv for the overlay composite. Pure — the source is input 0,
74
+ * each card PNG is a looped image input, the graph maps [vout] + the source audio.
75
+ */
76
+ export declare function buildLocalRenderArgs(sourceVideo: string, cardPngPaths: string[], filtergraph: string, outputPath: string): string[];
77
+ /** Runs ffmpeg with the given argv. Injectable so the orchestrator tests offline. */
78
+ export type FfmpegRunner = (args: string[]) => Promise<void>;
79
+ export interface RenderLocalDeps {
80
+ ffmpeg: FfmpegRunner;
81
+ /** Override the rasteriser (tests). Defaults to the live sharp path. */
82
+ rasterise?: (svg: string) => Promise<Buffer>;
83
+ }
84
+ /** A giant anchor-headline moment: the word + the short window it pulses on. */
85
+ export interface HeadlineMoment {
86
+ word: string;
87
+ start: number;
88
+ end: number;
89
+ }
90
+ export interface RenderLocalOptions {
91
+ sourceVideo: string;
92
+ captions: LocalCaption[];
93
+ dims: {
94
+ width: number;
95
+ height: number;
96
+ };
97
+ style: LocalRenderStyle;
98
+ /** Optional giant anchor-headline overlays, composited above the lower-thirds. */
99
+ headlines?: HeadlineMoment[];
100
+ /** Optional concept icons / stat callouts, composited in the upper third. */
101
+ motifs?: MotifMoment[];
102
+ /** Dir for the intermediate card PNGs. */
103
+ cardDir: string;
104
+ outputPath: string;
105
+ }
106
+ /** Resolve a motif into its full-frame SVG using the active style. Pure. */
107
+ export declare function motifSvg(m: MotifMoment, dims: {
108
+ width: number;
109
+ height: number;
110
+ }, style: LocalRenderStyle): string;
111
+ /**
112
+ * Render the local overlay reel: rasterise one lower-third per caption (plus any
113
+ * giant anchor-headline moments), then composite all elements onto the source with
114
+ * the fade/slide filtergraph, sorted by start time. Returns the list of card PNG
115
+ * paths written (for provenance / tests).
116
+ */
117
+ export declare function renderLocalOverlay(opts: RenderLocalOptions, deps: RenderLocalDeps): Promise<string[]>;
118
+ //# sourceMappingURL=render-local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-local.d.ts","sourceRoot":"","sources":["../../../src/video/motion-overlay/render-local.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA8B,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3E,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAuF9E,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yDAAyD;IACzD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAclE;AAoCD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EACnC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvC,KAAK,EAAE,gBAAgB,GACtB,MAAM,CAgER;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvC,KAAK,EAAE,gBAAgB,GACtB,MAAM,CAYR;AAED,kFAAkF;AAClF,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAiB1F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,EAAE,CA4BV;AAED,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,KAAK,EAAE,gBAAgB,CAAC;IACxB,kFAAkF;IAClF,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAKjH;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuB3G"}