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,162 @@
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
+ import type { MotionStyleId, ResolvedStyle } from './types.js';
23
+
24
+ export interface MotionStyleDef {
25
+ accent: string; // default accent hex for this style
26
+ visualBlock: string; // prose — NO px/ms/hex/font-name/easing tokens
27
+ motionBlock: string; // prose — NO px/ms/hex/font-name/easing tokens
28
+ }
29
+
30
+ /**
31
+ * Style registry. The visual/motion prose is what gets sent to Omni, so it must
32
+ * stay free of any technical metadata (CRITICAL RULE 2). The accent is held
33
+ * separately as a hex value and is resolved into a HUMAN-NAMED colour at compose
34
+ * time — it never appears as a hex string in the prompt.
35
+ */
36
+ export const MOTION_STYLES: Record<MotionStyleId, MotionStyleDef> = {
37
+ // ── apple-clean — ported verbatim from the source skill ──────────────────
38
+ 'apple-clean': {
39
+ accent: '#FF5000',
40
+ visualBlock:
41
+ '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.',
42
+ motionBlock:
43
+ '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.',
44
+ },
45
+
46
+ // ── editorial-dark — genericized from "CODA Dark" (no specs / no fonts) ───
47
+ 'editorial-dark': {
48
+ accent: '#FF5000',
49
+ visualBlock:
50
+ '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.',
51
+ motionBlock:
52
+ '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.',
53
+ },
54
+
55
+ // ── knowledge-tool — genericized from "Brain Clone" (no specs / no fonts) ─
56
+ 'knowledge-tool': {
57
+ accent: '#A78BFA',
58
+ visualBlock:
59
+ '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.',
60
+ motionBlock:
61
+ '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.',
62
+ },
63
+ };
64
+
65
+ export interface ResolveStyleOptions {
66
+ /** Override the style's default accent (e.g. `--accent #00AAFF`). */
67
+ accent?: string;
68
+ /** Brand profile: its accent wins over both the style default AND `accent`. */
69
+ brand?: { accent?: string };
70
+ }
71
+
72
+ /**
73
+ * Resolve a style id + optional accent/brand overrides into a `ResolvedStyle`.
74
+ *
75
+ * Accent precedence (highest first): `brand.accent` → `accent` → style default.
76
+ * Pure: returns a fresh object; never mutates the registry.
77
+ */
78
+ export function resolveStyle(id: MotionStyleId, opts: ResolveStyleOptions = {}): ResolvedStyle {
79
+ const def = MOTION_STYLES[id];
80
+ if (!def) {
81
+ throw new Error(`resolveStyle: unknown style "${id}"`);
82
+ }
83
+ const accent = opts.brand?.accent ?? opts.accent ?? def.accent;
84
+ return {
85
+ id,
86
+ accent,
87
+ visualBlock: def.visualBlock,
88
+ motionBlock: def.motionBlock,
89
+ };
90
+ }
91
+
92
+ /**
93
+ * Concept → animation prose.
94
+ *
95
+ * Concrete concepts (real-world objects) map to minimalist hairline-icon prose;
96
+ * abstract concepts (states/processes — AI, clones, intelligence, insight) map
97
+ * to a MATERIAL METAPHOR (particles / grids / light), never a generic hairline
98
+ * icon (which reads weak for an abstract idea). Pure — returns prose with no
99
+ * numeric specs.
100
+ */
101
+ const CONCRETE_ICONS: Record<string, string> = {
102
+ carousel: 'three staggered diagonal portrait rectangles, like a deck of slides fanned out',
103
+ slides: 'three staggered diagonal portrait rectangles, like a deck of slides fanned out',
104
+ website: 'a browser window outline with three dots in the top-left and a few horizontal content lines',
105
+ 'web page': 'a browser window outline with three dots in the top-left and a few horizontal content lines',
106
+ app: 'the hairline outline of a vertical phone with a small notch',
107
+ application: 'the hairline outline of a vertical phone with a small notch',
108
+ code: 'a window outline holding a few lines of code suggested as hairlines with varied indentation',
109
+ programming: 'a window outline holding a few lines of code suggested as hairlines with varied indentation',
110
+ chat: 'two stacked speech bubbles, one showing typing dots',
111
+ conversation: 'two stacked speech bubbles, one showing typing dots',
112
+ money: 'a currency mark inside a hairline circle',
113
+ revenue: 'a currency mark inside a hairline circle',
114
+ time: 'a clock outline with slim hands',
115
+ fast: 'a clock outline with slim hands',
116
+ data: 'a hairline bar chart with a few rising bars',
117
+ analytics: 'a hairline bar chart with a few rising bars',
118
+ vault: 'a hexagonal outline with a central dot and radial lines',
119
+ obsidian: 'a hexagonal outline with a central dot and radial lines',
120
+ };
121
+
122
+ const ABSTRACT_METAPHORS: Record<string, string> = {
123
+ ai: 'soft white particles drifting upward, slowly coalescing into a brain-like silhouette outlined in hairlines, with a subtle inner glow',
124
+ intelligence:
125
+ 'soft white particles drifting upward, slowly coalescing into a brain-like silhouette outlined in hairlines, with a subtle inner glow',
126
+ thinking:
127
+ 'soft white particles drifting upward, slowly coalescing into a brain-like silhouette outlined in hairlines, with a subtle inner glow',
128
+ clone: 'thin hairline lines drawing themselves one by one between scattered white dots, forming a network constellation that settles into a stable graph',
129
+ clones:
130
+ 'thin hairline lines drawing themselves one by one between scattered white dots, forming a network constellation that settles into a stable graph',
131
+ sources:
132
+ 'thin hairline lines drawing themselves one by one between scattered white dots, forming a network constellation that settles into a stable graph',
133
+ knowledge:
134
+ 'thin hairline lines drawing themselves one by one between scattered white dots, forming a network constellation that settles into a stable graph',
135
+ 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',
136
+ 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',
137
+ 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',
138
+ agent: 'interconnected nodes with one node pulsing softly, suggesting a continuous process — gentle, not mechanical',
139
+ automation: 'interconnected nodes with one node pulsing softly, suggesting a continuous process — gentle, not mechanical',
140
+ processing: 'particles flowing into a structured grid that locks into place line by line, then settles',
141
+ analysis: 'particles flowing into a structured grid that locks into place line by line, then settles',
142
+ };
143
+
144
+ /**
145
+ * Resolve a single concept word to animation prose. Concrete → hairline icon;
146
+ * abstract → material metaphor; unknown abstract-ish words fall back to a
147
+ * generic light metaphor and unknown concrete-ish words to a generic hairline
148
+ * icon. Lookup is case-insensitive on the trimmed concept.
149
+ */
150
+ export function conceptAnimation(concept: string): string {
151
+ const key = concept.trim().toLowerCase();
152
+ if (key in ABSTRACT_METAPHORS) {
153
+ return ABSTRACT_METAPHORS[key];
154
+ }
155
+ if (key in CONCRETE_ICONS) {
156
+ return CONCRETE_ICONS[key];
157
+ }
158
+ // Unknown: keep the concrete default (a hairline icon). Abstract concepts the
159
+ // map doesn't know about should be added rather than guessed at — a hairline
160
+ // icon is the safer generic than an over-specific metaphor.
161
+ return `a minimalist hairline icon representing "${concept.trim()}"`;
162
+ }
@@ -0,0 +1,111 @@
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
+
16
+ import type {
17
+ MotionLayout,
18
+ MotionOverlayPlan,
19
+ MotionStyleId,
20
+ MotionTake,
21
+ TakeAnalysis,
22
+ TakeSplit,
23
+ } from './types.js';
24
+
25
+ export interface BuildMotionOverlayPlanArgs {
26
+ input: { path: string; durationSeconds: number; width: number; height: number; aspect: string };
27
+ layout: MotionLayout;
28
+ style: MotionStyleId;
29
+ /** Resolved accent (hex or already-resolved name) recorded on the manifest. */
30
+ accent: string;
31
+ language: string;
32
+ /** Work-folder path (absolute or relative; recorded verbatim). */
33
+ workdir: string;
34
+ /** The take splits (one per output clip), in order. */
35
+ splits: TakeSplit[];
36
+ /** Per-take analysis, parallel to `splits` (keyed by index). */
37
+ analyses: TakeAnalysis[];
38
+ /** Per-take composed prompts, parallel to `splits` (keyed by index). */
39
+ prompts: string[];
40
+ }
41
+
42
+ /** Build the work-folder-relative take clip filename for a take. */
43
+ export function takeFileName(split: TakeSplit): string {
44
+ return `takes/${takeStem(split)}.mp4`;
45
+ }
46
+
47
+ /** Build the work-folder-relative prompt markdown filename for a take. */
48
+ export function takePromptFileName(split: TakeSplit): string {
49
+ return `prompts/${takeStem(split)}.md`;
50
+ }
51
+
52
+ /** Shared stem, e.g. `take-01_0s-10s` (1-based index, whole-second bounds). */
53
+ export function takeStem(split: TakeSplit): string {
54
+ const n = String(split.index + 1).padStart(2, '0');
55
+ const start = Math.round(split.start);
56
+ const end = Math.round(split.end);
57
+ return `take-${n}_${start}s-${end}s`;
58
+ }
59
+
60
+ /**
61
+ * Assemble the `MotionOverlayPlan`. Pure. Throws if the analyses/prompts arrays
62
+ * don't line up with the splits (a programmer error, surfaced loudly).
63
+ */
64
+ export function buildMotionOverlayPlan(args: BuildMotionOverlayPlanArgs): MotionOverlayPlan {
65
+ const { splits, analyses, prompts } = args;
66
+ if (analyses.length !== splits.length) {
67
+ throw new Error(`buildMotionOverlayPlan: ${splits.length} splits but ${analyses.length} analyses.`);
68
+ }
69
+ if (prompts.length !== splits.length) {
70
+ throw new Error(`buildMotionOverlayPlan: ${splits.length} splits but ${prompts.length} prompts.`);
71
+ }
72
+
73
+ const takes: MotionTake[] = splits.map((split, i) => {
74
+ const analysis = analyses[i];
75
+ if (!analysis || analysis.index !== split.index) {
76
+ throw new Error(`buildMotionOverlayPlan: analysis ${i} does not match split index ${split.index}.`);
77
+ }
78
+ const prompt = prompts[i];
79
+ return {
80
+ index: split.index,
81
+ start: split.start,
82
+ end: split.end,
83
+ durationSeconds: round(split.end - split.start),
84
+ file: takeFileName(split),
85
+ promptFile: takePromptFileName(split),
86
+ anatomy: analysis.anatomy,
87
+ prompt,
88
+ };
89
+ });
90
+
91
+ return {
92
+ schemaVersion: 1,
93
+ input: {
94
+ path: args.input.path,
95
+ durationSeconds: args.input.durationSeconds,
96
+ width: args.input.width,
97
+ height: args.input.height,
98
+ aspect: args.input.aspect,
99
+ },
100
+ layout: args.layout,
101
+ style: args.style,
102
+ accent: args.accent,
103
+ language: args.language,
104
+ workdir: args.workdir,
105
+ takes,
106
+ };
107
+ }
108
+
109
+ function round(n: number): number {
110
+ return Math.round(n * 1000) / 1000;
111
+ }
@@ -0,0 +1,191 @@
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
+
19
+ import { mkdir, writeFile } from 'node:fs/promises';
20
+ import { join } from 'node:path';
21
+ import { PORTAL_CSS } from '../preview-portal/shared-assets.js';
22
+ import type { MotionOverlayPlan, MotionTake } from './types.js';
23
+
24
+ export interface RenderMotionOverlayReviewResult {
25
+ /** Absolute path to the emitted review.html. */
26
+ reviewPath: string;
27
+ /** The full rendered HTML (returned for tests / callers that want it inline). */
28
+ html: string;
29
+ }
30
+
31
+ /** Human-friendly label for the reel-anatomy beat. */
32
+ const ANATOMY_LABELS: Record<string, string> = {
33
+ hook: 'Hook',
34
+ contextualize: 'Contextualize',
35
+ burst: 'Burst',
36
+ breath: 'Breath',
37
+ cta: 'CTA',
38
+ };
39
+
40
+ /**
41
+ * Render the plan into the review HTML string. Pure — no I/O. The aspect
42
+ * (`plan.input.aspect`) drives `body[data-aspect]` so portrait/square clips get
43
+ * tall cards via PORTAL_CSS's aspect-aware rules.
44
+ */
45
+ export function renderMotionOverlayReview(plan: MotionOverlayPlan): string {
46
+ const aspect = plan.input.aspect;
47
+ const takeCards = plan.takes.map((take) => renderTakeCard(take)).join('\n');
48
+ const totalDuration = plan.takes.reduce((sum, t) => sum + t.durationSeconds, 0);
49
+
50
+ return `<!DOCTYPE html>
51
+ <html lang="en">
52
+ <head>
53
+ <meta charset="utf-8">
54
+ <meta name="viewport" content="width=device-width,initial-scale=1">
55
+ <title>Motion-overlay review — ${esc(layoutTitle(plan))}</title>
56
+ <style>${PORTAL_CSS}${EXTRA_CSS}</style>
57
+ </head>
58
+ <body data-aspect="${escAttr(aspect)}">
59
+ <header class="hero">
60
+ <div class="eyebrow">motion-overlay review · approve before spend</div>
61
+ <h1>Motion-overlay plan</h1>
62
+ <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>
63
+ </header>
64
+
65
+ <div class="stats">
66
+ <div class="stat"><div class="v">${plan.takes.length}</div><div class="l">Takes</div></div>
67
+ <div class="stat"><div class="v">${esc(plan.layout)}</div><div class="l">Layout</div></div>
68
+ <div class="stat"><div class="v">${esc(plan.style)}</div><div class="l">Style</div></div>
69
+ <div class="stat"><div class="v">${fmt(totalDuration)}s</div><div class="l">Total</div></div>
70
+ </div>
71
+
72
+ <div class="mo-meta">
73
+ <span><b>Input</b> ${esc(plan.input.path)}</span>
74
+ <span><b>Frame</b> ${plan.input.width}×${plan.input.height} (${esc(aspect)})</span>
75
+ <span><b>Accent</b> <i class="mo-swatch" style="background:${escAttr(plan.accent)}"></i>${esc(plan.accent)}</span>
76
+ <span><b>Language</b> ${esc(plan.language)}</span>
77
+ </div>
78
+
79
+ <section data-toc="Takes">
80
+ <div class="section-head">
81
+ <h2>Per-take contract</h2>
82
+ <div class="section-title">${plan.takes.length} take${plan.takes.length === 1 ? '' : 's'}</div>
83
+ <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>
84
+ </div>
85
+ <div class="mo-grid">
86
+ ${takeCards}
87
+ </div>
88
+ </section>
89
+
90
+ <footer>Generated by <code>vclaw video motion-overlay --preview</code>${plan.generatedAt ? ` · ${esc(plan.generatedAt)}` : ''}</footer>
91
+ </body>
92
+ </html>
93
+ `;
94
+ }
95
+
96
+ /**
97
+ * Render the plan into `<workdir>/review/review.html` and return its path + html.
98
+ * Creates the `review/` dir if needed. The only side effect.
99
+ */
100
+ export async function writeMotionOverlayReview(
101
+ workdir: string,
102
+ plan: MotionOverlayPlan,
103
+ ): Promise<RenderMotionOverlayReviewResult> {
104
+ const html = renderMotionOverlayReview(plan);
105
+ const reviewDir = join(workdir, 'review');
106
+ await mkdir(reviewDir, { recursive: true });
107
+ const reviewPath = join(reviewDir, 'review.html');
108
+ await writeFile(reviewPath, html, 'utf-8');
109
+ return { reviewPath, html };
110
+ }
111
+
112
+ /** Render one take card: clip filename, beat, anatomy/span, and full prompt. */
113
+ function renderTakeCard(take: MotionTake): string {
114
+ const beat = ANATOMY_LABELS[take.anatomy] ?? take.anatomy;
115
+ const clipName = baseName(take.file);
116
+ return ` <article class="mo-card" data-card-kind="take" data-card-id="${take.index + 1}">
117
+ <div class="mo-card-head">
118
+ <span class="num">TAKE ${String(take.index + 1).padStart(2, '0')}</span>
119
+ <span class="mo-beat" data-anatomy="${escAttr(take.anatomy)}">${esc(beat)}</span>
120
+ </div>
121
+ <div class="mo-clip">
122
+ <video src="../${escAttr(take.file)}" controls preload="none"></video>
123
+ <div class="mo-clip-name">${esc(clipName)}</div>
124
+ </div>
125
+ <dl class="mo-anatomy">
126
+ <div><dt>Beat</dt><dd>${esc(beat)}</dd></div>
127
+ <div><dt>Span</dt><dd>${fmt(take.start)}s → ${fmt(take.end)}s</dd></div>
128
+ <div><dt>Duration</dt><dd>${fmt(take.durationSeconds)}s</dd></div>
129
+ <div><dt>Clip</dt><dd><code>${esc(take.file)}</code></dd></div>
130
+ </dl>
131
+ <div class="mo-prompt">
132
+ <div class="mo-prompt-label">Composed prompt (the contract)</div>
133
+ <pre>${esc(take.prompt)}</pre>
134
+ </div>
135
+ </article>`;
136
+ }
137
+
138
+ /** A short title line summarizing the plan's layout + style. */
139
+ function layoutTitle(plan: MotionOverlayPlan): string {
140
+ return `${plan.layout} / ${plan.style}`;
141
+ }
142
+
143
+ function baseName(p: string): string {
144
+ const i = p.lastIndexOf('/');
145
+ return i >= 0 ? p.slice(i + 1) : p;
146
+ }
147
+
148
+ function fmt(seconds: number): string {
149
+ return (Math.round(seconds * 10) / 10).toFixed(1);
150
+ }
151
+
152
+ function esc(value: string): string {
153
+ return value
154
+ .replaceAll('&', '&amp;')
155
+ .replaceAll('<', '&lt;')
156
+ .replaceAll('>', '&gt;')
157
+ .replaceAll('"', '&quot;');
158
+ }
159
+
160
+ function escAttr(value: string): string {
161
+ return esc(value).replaceAll("'", '&#39;');
162
+ }
163
+
164
+ /**
165
+ * Motion-overlay-specific styling layered on top of PORTAL_CSS. Cards are
166
+ * aspect-aware: the clip <video> inherits PORTAL_CSS's `.card video` aspect
167
+ * rules via the same `aspect-ratio` defaults, re-stated here for the `.mo-clip`
168
+ * scope so portrait/square plans render tall clips.
169
+ */
170
+ const EXTRA_CSS = `
171
+ .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}
172
+ .mo-meta b{color:var(--ink3);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:10px;margin-right:6px}
173
+ .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}
174
+ .mo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
175
+ .mo-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
176
+ .mo-card-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line)}
177
+ .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}
178
+ .mo-clip video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#000}
179
+ .mo-clip-name{padding:8px 16px 0;color:var(--ink3);font-family:ui-monospace,"SF Mono",monospace;font-size:11px;overflow-wrap:anywhere}
180
+ .mo-anatomy{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;padding:14px 16px;margin:0}
181
+ .mo-anatomy>div{display:flex;flex-direction:column;gap:2px}
182
+ .mo-anatomy dt{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3)}
183
+ .mo-anatomy dd{font-size:12px;color:var(--ink);margin:0;overflow-wrap:anywhere}
184
+ .mo-anatomy code{font-family:ui-monospace,"SF Mono",monospace;font-size:11px;color:var(--ink2)}
185
+ .mo-prompt{border-top:1px solid var(--line);padding:14px 16px}
186
+ .mo-prompt-label{font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
187
+ .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}
188
+ body[data-aspect="9:16"] .mo-clip video{aspect-ratio:9/16;width:auto;max-width:100%;max-height:70vh;margin:0 auto}
189
+ body[data-aspect="1:1"] .mo-clip video{aspect-ratio:1/1}
190
+ @media(max-width:900px){.mo-grid{grid-template-columns:1fr}}
191
+ `;