@aswless_854771076/ai_short_studio_cli 0.1.98 → 0.1.100

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 (405) hide show
  1. package/README.md +15 -313
  2. package/dist/base-command.d.ts +0 -6
  3. package/dist/base-command.js +1 -39
  4. package/dist/client/api-client.js +2 -19
  5. package/dist/commands/auth/login.d.ts +1 -2
  6. package/dist/commands/auth/login.js +2 -5
  7. package/dist/commands/auth/logout.d.ts +0 -1
  8. package/dist/commands/auth/signup.d.ts +0 -1
  9. package/dist/commands/auth/status.d.ts +0 -1
  10. package/dist/commands/canvas/apply.d.ts +0 -1
  11. package/dist/commands/canvas/asset/get.d.ts +0 -1
  12. package/dist/commands/canvas/asset/list.d.ts +0 -1
  13. package/dist/commands/canvas/asset/select.d.ts +1 -3
  14. package/dist/commands/canvas/asset/select.js +3 -22
  15. package/dist/commands/canvas/asset/upload.d.ts +0 -14
  16. package/dist/commands/canvas/asset/upload.js +3 -43
  17. package/dist/commands/canvas/continuity/analyze.d.ts +0 -1
  18. package/dist/commands/canvas/edge/connect.d.ts +0 -1
  19. package/dist/commands/canvas/edge/disconnect.d.ts +0 -1
  20. package/dist/commands/canvas/edge/list.d.ts +0 -1
  21. package/dist/commands/canvas/edge/list.js +1 -4
  22. package/dist/commands/canvas/episode/create.d.ts +0 -1
  23. package/dist/commands/canvas/episode/list.d.ts +0 -1
  24. package/dist/commands/canvas/folder/copy-cross-project.d.ts +0 -1
  25. package/dist/commands/canvas/folder/create.d.ts +0 -1
  26. package/dist/commands/canvas/folder/delete.d.ts +0 -1
  27. package/dist/commands/canvas/folder/list.d.ts +0 -1
  28. package/dist/commands/canvas/folder/move.d.ts +0 -1
  29. package/dist/commands/canvas/folder/rename.d.ts +0 -1
  30. package/dist/commands/canvas/folder/restore.d.ts +0 -1
  31. package/dist/commands/canvas/get.d.ts +0 -1
  32. package/dist/commands/canvas/inspect.d.ts +0 -1
  33. package/dist/commands/canvas/node/add.d.ts +1 -1
  34. package/dist/commands/canvas/node/add.js +2 -2
  35. package/dist/commands/canvas/node/delete.d.ts +0 -1
  36. package/dist/commands/canvas/node/edit-resource.d.ts +0 -2
  37. package/dist/commands/canvas/node/edit-resource.js +1 -9
  38. package/dist/commands/canvas/node/edit-shot.d.ts +0 -1
  39. package/dist/commands/canvas/node/get.d.ts +0 -1
  40. package/dist/commands/canvas/node/list.d.ts +0 -5
  41. package/dist/commands/canvas/node/list.js +2 -43
  42. package/dist/commands/canvas/node/run.d.ts +0 -15
  43. package/dist/commands/canvas/node/run.js +6 -142
  44. package/dist/commands/canvas/node/types.d.ts +0 -1
  45. package/dist/commands/canvas/node/update-many.d.ts +0 -1
  46. package/dist/commands/canvas/node/update.d.ts +0 -1
  47. package/dist/commands/canvas/settings/get.d.ts +0 -1
  48. package/dist/commands/canvas/settings/set.d.ts +0 -24
  49. package/dist/commands/canvas/settings/set.js +1 -60
  50. package/dist/commands/config/get.d.ts +0 -1
  51. package/dist/commands/config/set.d.ts +0 -2
  52. package/dist/commands/config/set.js +2 -55
  53. package/dist/commands/preflight.d.ts +0 -1
  54. package/dist/commands/preflight.js +1 -9
  55. package/dist/commands/project/create.d.ts +0 -1
  56. package/dist/commands/project/delete.d.ts +0 -1
  57. package/dist/commands/project/get.d.ts +0 -1
  58. package/dist/commands/project/list.d.ts +0 -1
  59. package/dist/commands/project/update.d.ts +0 -1
  60. package/dist/commands/skill/install.d.ts +0 -1
  61. package/dist/commands/skill/install.js +0 -1
  62. package/dist/commands/skill/path.d.ts +0 -1
  63. package/dist/commands/skill/path.js +0 -1
  64. package/dist/commands/skill/status.d.ts +0 -1
  65. package/dist/commands/skill/status.js +0 -1
  66. package/dist/commands/task/cancel.d.ts +0 -1
  67. package/dist/commands/task/get.d.ts +0 -1
  68. package/dist/commands/task/wait.d.ts +0 -2
  69. package/dist/commands/task/wait.js +1 -6
  70. package/dist/domain/vvicat-api.d.ts +3 -63
  71. package/dist/domain/vvicat-api.js +9 -74
  72. package/dist/output/formatter.d.ts +0 -11
  73. package/dist/output/formatter.js +0 -20
  74. package/dist/preflight.d.ts +0 -1
  75. package/dist/preflight.js +1 -14
  76. package/dist/skill/command-flags.js +4 -7
  77. package/dist/skill/skill-manager.d.ts +2 -75
  78. package/dist/skill/skill-manager.js +15 -60
  79. package/package.json +3 -4
  80. package/scripts/postinstall.mjs +12 -7
  81. package/skills/using-vvicat-ai-short-studio-cli/SKILL.md +67 -27
  82. package/skills/using-vvicat-ai-short-studio-cli/references/commands/canvas.md +4 -3
  83. package/skills/using-vvicat-ai-short-studio-cli/references/commands/project.md +2 -26
  84. package/skills/using-vvicat-ai-short-studio-cli/references/commands.md +2 -2
  85. package/skills/using-vvicat-ai-short-studio-cli/references/editing-delivery.md +1 -1
  86. package/skills/using-vvicat-ai-short-studio-cli/references/h3-video-delivery.md +1 -1
  87. package/skills/using-vvicat-ai-short-studio-cli/references/humanizer/humanizer.md +9 -0
  88. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/SKILL.md +447 -0
  89. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/brief.md +93 -0
  90. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/project-files.md +246 -0
  91. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/reference-video.md +266 -0
  92. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/script-and-time.md +253 -0
  93. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/transformations.md +141 -0
  94. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/distribution.md +176 -0
  95. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/local-tools.md +411 -0
  96. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/model-and-provider.md +275 -0
  97. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/profile.md +286 -0
  98. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/asset-and-shot-preproduction.md +193 -0
  99. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/b-roll.md +94 -0
  100. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/caption-tracking.md +125 -0
  101. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/captions.md +252 -0
  102. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/conversation-images.md +218 -0
  103. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/h3-base-prompt-writing.md +222 -0
  104. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/h3-reference-prompt-writing.md +341 -0
  105. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/image-direction.md +123 -0
  106. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/generated-dependencies.md +38 -0
  107. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/graphic-compositions.md +85 -0
  108. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/h3-prompt-writing.md +54 -0
  109. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/image-direction.md +95 -0
  110. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/motion-graphics.md +68 -0
  111. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/recreation-policy.md +51 -0
  112. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/screen-demonstrations.md +51 -0
  113. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/shot-production-contracts.md +161 -0
  114. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/sound-mix.md +76 -0
  115. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/video-direction.md +433 -0
  116. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/voice-and-performance.md +224 -0
  117. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/voice-direction.md +99 -0
  118. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/narration-led-demo.md +87 -0
  119. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/presenter-led-explainer.md +160 -0
  120. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/ranking-listicle.md +71 -0
  121. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/reference-recreation-canvas.md +8 -0
  122. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/short-drama-workflow.md +165 -0
  123. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/short-drama.md +88 -0
  124. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/street-interview.md +92 -0
  125. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/talking-head.md +82 -0
  126. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/two-person-podcast.md +101 -0
  127. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/index.md +77 -0
  128. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/audio-presentation.md +49 -0
  129. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/authoring.md +228 -0
  130. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/browser-capture.md +112 -0
  131. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/builds.md +330 -0
  132. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/caption-authoring.md +156 -0
  133. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/caption-presentation.md +66 -0
  134. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-design.md +217 -0
  135. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-sharing.md +150 -0
  136. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-visuals.md +152 -0
  137. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/detail.svrun +8 -0
  138. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/direction.svs +14 -0
  139. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/look.svs +6 -0
  140. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/material.svrun +5 -0
  141. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/production.svml +73 -0
  142. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/production.svrun +5 -0
  143. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/visuals.ts +62 -0
  144. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/fonts-and-text.md +138 -0
  145. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/image-operations.md +102 -0
  146. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/index.md +73 -0
  147. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/media-presentation.md +111 -0
  148. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/media.md +246 -0
  149. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/performance.md +114 -0
  150. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/prompt-kits.md +165 -0
  151. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/rendering.md +141 -0
  152. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/review.md +211 -0
  153. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/runs.md +151 -0
  154. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/script-syntax.md +236 -0
  155. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/snapshots.md +90 -0
  156. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/sound.md +75 -0
  157. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/source-syntax.md +163 -0
  158. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/spatial.md +189 -0
  159. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/studio-companions.md +186 -0
  160. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/studio.md +249 -0
  161. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/system.md +169 -0
  162. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/timeline.md +74 -0
  163. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/timing.md +96 -0
  164. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/track-authoring.md +215 -0
  165. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/tracks.md +67 -0
  166. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/video-downloads.md +47 -0
  167. package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/vocabulary.md +119 -0
  168. package/skills/using-vvicat-ai-short-studio-cli/references/project-and-canvas.md +1 -1
  169. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/README.md +11 -0
  170. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/SKILL.md +102 -0
  171. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/art-styles.json +585 -0
  172. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-images.md +11 -0
  173. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-profiles/character-profile-output.schema.json +99 -0
  174. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-profiles.md +7 -0
  175. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-drama-art-style.md +9 -0
  176. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-prop-assets.md +11 -0
  177. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-scene-assets.md +13 -0
  178. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/manage-drama-art-styles.md +9 -0
  179. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/manage-drama-assets.md +9 -0
  180. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/analyze-drama-source/prompts/source_analysis.en.txt +24 -0
  181. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/analyze-drama-source/prompts/source_analysis.zh.txt +24 -0
  182. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_acting_direction.en.txt +61 -0
  183. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_acting_direction.zh.txt +79 -0
  184. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_cinematographer.en.txt +101 -0
  185. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_cinematographer.zh.txt +150 -0
  186. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_detail.en.txt +114 -0
  187. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_detail.zh.txt +89 -0
  188. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_plan.en.txt +114 -0
  189. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_plan.zh.txt +389 -0
  190. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/professional_storyboard.en.txt +40 -0
  191. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/professional_storyboard.zh.txt +40 -0
  192. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/define-drama-brief/prompts/drama_brief.en.txt +24 -0
  193. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/define-drama-brief/prompts/drama_brief.zh.txt +24 -0
  194. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_description.en.txt +19 -0
  195. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_description.zh.txt +19 -0
  196. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_recommend.en.txt +26 -0
  197. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_recommend.zh.txt +26 -0
  198. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/music_track_design.en.txt +33 -0
  199. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/music_track_design.zh.txt +33 -0
  200. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/voice_analysis.en.txt +36 -0
  201. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/voice_analysis.zh.txt +36 -0
  202. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-bible/prompts/ai_story_expand.en.txt +33 -0
  203. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-bible/prompts/ai_story_expand.zh.txt +33 -0
  204. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/agent_character_visual.en.txt +26 -0
  205. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/agent_character_visual.zh.txt +26 -0
  206. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_asset_sheet.en.txt +21 -0
  207. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_asset_sheet.zh.txt +21 -0
  208. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_create.en.txt +12 -0
  209. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_create.zh.txt +12 -0
  210. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_description_update.en.txt +13 -0
  211. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_description_update.zh.txt +13 -0
  212. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_image_to_description.en.txt +11 -0
  213. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_image_to_description.zh.txt +11 -0
  214. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_modify.en.txt +15 -0
  215. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_modify.zh.txt +15 -0
  216. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_regenerate.en.txt +14 -0
  217. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_regenerate.zh.txt +14 -0
  218. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-profiles/prompts/agent_character_profile.en.txt +50 -0
  219. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-profiles/prompts/agent_character_profile.zh.txt +50 -0
  220. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/art_style_decision.en.txt +18 -0
  221. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/art_style_decision.zh.txt +18 -0
  222. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/config_generation.en.txt +67 -0
  223. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/config_generation.zh.txt +67 -0
  224. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_description_update.en.txt +14 -0
  225. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_description_update.zh.txt +14 -0
  226. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_generate.en.txt +16 -0
  227. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_generate.zh.txt +16 -0
  228. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/select_prop.en.txt +17 -0
  229. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/select_prop.zh.txt +17 -0
  230. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_create.en.txt +11 -0
  231. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_create.zh.txt +11 -0
  232. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_description_update.en.txt +14 -0
  233. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_description_update.zh.txt +14 -0
  234. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_modify.en.txt +13 -0
  235. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_modify.zh.txt +13 -0
  236. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_regenerate.en.txt +12 -0
  237. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_regenerate.zh.txt +12 -0
  238. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/scene_asset_sheet.en.txt +19 -0
  239. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/scene_asset_sheet.zh.txt +19 -0
  240. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/select_location.en.txt +18 -0
  241. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/select_location.zh.txt +17 -0
  242. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_enhance.en.txt +29 -0
  243. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_enhance.zh.txt +29 -0
  244. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_image.en.txt +77 -0
  245. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_image.zh.txt +77 -0
  246. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_storyboard_image.en.txt +109 -0
  247. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_storyboard_image.zh.txt +109 -0
  248. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/ideate-drama-from-market/prompts/market_inspiration.en.txt +23 -0
  249. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/ideate-drama-from-market/prompts/market_inspiration.zh.txt +23 -0
  250. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/outline-drama-series/prompts/episode_split.en.txt +42 -0
  251. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/outline-drama-series/prompts/episode_split.zh.txt +42 -0
  252. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-assets/prompts/asset_analysis.en.txt +55 -0
  253. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-assets/prompts/asset_analysis.zh.txt +55 -0
  254. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-production/prompts/production_plan.en.txt +49 -0
  255. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-production/prompts/production_plan.zh.txt +52 -0
  256. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-shot-continuity/prompts/continuity_plan.en.txt +37 -0
  257. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-shot-continuity/prompts/continuity_plan.zh.txt +37 -0
  258. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/review-drama-script/prompts/review_drama_script.en.txt +28 -0
  259. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/review-drama-script/prompts/review_drama_script.zh.txt +28 -0
  260. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_analysis.en.txt +57 -0
  261. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_analysis.zh.txt +169 -0
  262. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_generate.en.txt +64 -0
  263. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_generate.zh.txt +117 -0
  264. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_storyboard_insert.en.txt +34 -0
  265. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_storyboard_insert.zh.txt +34 -0
  266. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/storyboard_edit.en.txt +18 -0
  267. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/storyboard_edit.zh.txt +13 -0
  268. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/2d_to_live_action.en.txt +7 -0
  269. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/2d_to_live_action.zh.txt +7 -0
  270. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/image_prompt_modify.en.txt +28 -0
  271. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/image_prompt_modify.zh.txt +42 -0
  272. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-director-book/prompts/director_book.en.txt +35 -0
  273. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-director-book/prompts/director_book.zh.txt +35 -0
  274. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/agent_clip.en.txt +21 -0
  275. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/agent_clip.zh.txt +21 -0
  276. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/screenplay_conversion.en.txt +39 -0
  277. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/screenplay_conversion.zh.txt +39 -0
  278. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/h3_video.en.txt +49 -0
  279. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/h3_video.zh.txt +48 -0
  280. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_grid_video.en.txt +51 -0
  281. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_grid_video.zh.txt +51 -0
  282. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_storyboard_video.en.txt +50 -0
  283. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_storyboard_video.zh.txt +50 -0
  284. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/seedance2_video.en.txt +48 -0
  285. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/seedance2_video.zh.txt +46 -0
  286. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/plan-drama-assets.md +7 -0
  287. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/codex-contracts.md +14 -0
  288. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/comfly-provider.md +12 -0
  289. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/controlled-vocabulary.json +115 -0
  290. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/analyze-drama-source.md +7 -0
  291. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/define-drama-brief.md +8 -0
  292. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/design-drama-bible.md +5 -0
  293. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/humanizer.md +9 -0
  294. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/outline-drama-series.md +5 -0
  295. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/short-drama.md +13 -0
  296. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/write-drama-director-book.md +6 -0
  297. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/write-drama-episode.md +6 -0
  298. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/director-composition.md +794 -0
  299. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/edit-deliver-drama.md +5 -0
  300. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/edit-drama-timeline.md +22 -0
  301. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/remotion-best-practices.md +12 -0
  302. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing-workflow.md +56 -0
  303. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/feature-completeness.md +111 -0
  304. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/configure-generation-providers.md +17 -0
  305. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/design-drama-audio.md +11 -0
  306. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/drama-generation-service.md +13 -0
  307. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/generate-drama-videos.md +9 -0
  308. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/generate-storyboard-images.md +11 -0
  309. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/monitor-drama-tasks.md +15 -0
  310. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/transform-drama-media.md +9 -0
  311. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/write-drama-video-prompts.md +50 -0
  312. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market/market-report.schema.json +46 -0
  313. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market/methodology.md +24 -0
  314. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market.md +47 -0
  315. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/ideate-drama-from-market/market-inspiration.schema.json +109 -0
  316. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/ideate-drama-from-market.md +15 -0
  317. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/module-map.json +595 -0
  318. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/music-catalog-providers.md +16 -0
  319. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/manage-drama-projects.md +11 -0
  320. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/orchestrate-short-drama.md +20 -0
  321. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/recover-drama-pipeline.md +5 -0
  322. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/short-drama-skill-index.md +29 -0
  323. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/use-short-drama-studio.md +15 -0
  324. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/pipeline.md +85 -0
  325. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/project-spec-v1.md +217 -0
  326. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/prompt-skill-index.md +62 -0
  327. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/recreation/publish-drama-references/litterbox.md +5 -0
  328. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/review/review-drama-script.md +7 -0
  329. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/review/review-drama-shots.md +39 -0
  330. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/runninghub-provider.md +33 -0
  331. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/starrouter-provider.md +53 -0
  332. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/build-drama-storyboard.md +13 -0
  333. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/design-fight-video.md +19 -0
  334. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/action-previz.md +39 -0
  335. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/direction-contract.md +96 -0
  336. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/weapons-vfx.md +23 -0
  337. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz.md +15 -0
  338. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/generate-blender-previz.md +20 -0
  339. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/plan-drama-production.md +21 -0
  340. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/plan-shot-continuity.md +15 -0
  341. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/revise-drama-storyboards.md +5 -0
  342. package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/usage-guide.md +107 -0
  343. package/skills/using-vvicat-ai-short-studio-cli/references/special-workflows.md +2 -8
  344. package/skills/using-vvicat-ai-short-studio-cli/references/troubleshooting.md +0 -1
  345. package/dist/auth/login-provider.d.ts +0 -2
  346. package/dist/auth/login-provider.js +0 -3
  347. package/dist/commands/canvas/node/quote.d.ts +0 -17
  348. package/dist/commands/canvas/node/quote.js +0 -13
  349. package/dist/commands/config/ai-provider/capabilities.d.ts +0 -60
  350. package/dist/commands/config/ai-provider/capabilities.js +0 -124
  351. package/dist/commands/config/ai-provider/get.d.ts +0 -22
  352. package/dist/commands/config/ai-provider/get.js +0 -21
  353. package/dist/commands/config/ai-provider/list.d.ts +0 -21
  354. package/dist/commands/config/ai-provider/list.js +0 -19
  355. package/dist/commands/config/ai-provider/models.d.ts +0 -22
  356. package/dist/commands/config/ai-provider/models.js +0 -21
  357. package/dist/commands/config/ai-provider/set.d.ts +0 -41
  358. package/dist/commands/config/ai-provider/set.js +0 -65
  359. package/dist/commands/config/ai-provider/test.d.ts +0 -25
  360. package/dist/commands/config/ai-provider/test.js +0 -24
  361. package/dist/commands/project/provider/get.d.ts +0 -15
  362. package/dist/commands/project/provider/get.js +0 -12
  363. package/dist/commands/project/provider/set.d.ts +0 -16
  364. package/dist/commands/project/provider/set.js +0 -18
  365. package/dist/commands/project/provider/test.d.ts +0 -15
  366. package/dist/commands/project/provider/test.js +0 -12
  367. package/dist/domain/ai-provider-capabilities.d.ts +0 -109
  368. package/dist/domain/ai-provider-capabilities.js +0 -180
  369. package/dist/domain/ai-provider-command-helpers.d.ts +0 -27
  370. package/dist/domain/ai-provider-command-helpers.js +0 -55
  371. package/skills/using-vvicat-ai-short-studio-cli/references/b-roll-and-screen.md +0 -9
  372. package/skills/using-vvicat-ai-short-studio-cli/references/caption-and-graphics-direction.md +0 -11
  373. package/skills/using-vvicat-ai-short-studio-cli/references/composition-and-shot-review.md +0 -17
  374. package/skills/using-vvicat-ai-short-studio-cli/references/craft-index.md +0 -20
  375. package/skills/using-vvicat-ai-short-studio-cli/references/drama-canvas.md +0 -19
  376. package/skills/using-vvicat-ai-short-studio-cli/references/format-relationships.md +0 -15
  377. package/skills/using-vvicat-ai-short-studio-cli/references/h3-prompts.md +0 -7
  378. package/skills/using-vvicat-ai-short-studio-cli/references/image-and-reference-direction.md +0 -9
  379. package/skills/using-vvicat-ai-short-studio-cli/references/licensed-music.md +0 -9
  380. package/skills/using-vvicat-ai-short-studio-cli/references/licenses/oh-my-short-drama-MIT.txt +0 -21
  381. package/skills/using-vvicat-ai-short-studio-cli/references/licenses/short-drama-MIT.txt +0 -21
  382. package/skills/using-vvicat-ai-short-studio-cli/references/media-provenance-and-review.md +0 -22
  383. package/skills/using-vvicat-ai-short-studio-cli/references/paid-plan.md +0 -7
  384. package/skills/using-vvicat-ai-short-studio-cli/references/production-specialties.md +0 -25
  385. package/skills/using-vvicat-ai-short-studio-cli/references/recreation.md +0 -21
  386. package/skills/using-vvicat-ai-short-studio-cli/references/reference-analysis-and-timing.md +0 -19
  387. package/skills/using-vvicat-ai-short-studio-cli/references/remotion-editing.md +0 -18
  388. package/skills/using-vvicat-ai-short-studio-cli/references/shot-production.md +0 -9
  389. package/skills/using-vvicat-ai-short-studio-cli/references/sound-and-captions.md +0 -7
  390. package/skills/using-vvicat-ai-short-studio-cli/references/sources.md +0 -6
  391. package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/canvas-production.md +0 -9
  392. package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/guide.md +0 -7
  393. package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/index.md +0 -13
  394. package/skills/using-vvicat-ai-short-studio-cli/references/video-and-performance-direction.md +0 -9
  395. package/skills/using-vvicat-ai-short-studio-cli/references/voice-and-sound-direction.md +0 -9
  396. package/skills/using-vvicat-ai-short-studio-cli/references/writing-polish.md +0 -15
  397. /package/skills/using-vvicat-ai-short-studio-cli/references/{licenses/humanizer-MIT.txt → short-drama/assets/modules/humanizer/LICENSE} +0 -0
  398. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/compliance-checklist.md +0 -0
  399. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/genre-guide.md +0 -0
  400. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/hook-design.md +0 -0
  401. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/opening-rules.md +0 -0
  402. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/paywall-design.md +0 -0
  403. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/rhythm-curve.md +0 -0
  404. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/satisfaction-matrix.md +0 -0
  405. /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/villain-design.md +0 -0
@@ -0,0 +1,217 @@
1
+ # Designing a good component
2
+
3
+ Read this when deciding how to organize a picture, a transition or a recurring visual system.
4
+ Design it with the taste of a director and the care of someone who will use it in a real composition.
5
+ A useful component makes a particular idea legible and keeps its behavior understandable within the
6
+ production. Its author interface can be as small as the work requires.
7
+
8
+ [Graphic composition](../playbooks/craft/graphic-compositions.md) owns visual hierarchy;
9
+ [motion graphics](../playbooks/craft/motion-graphics.md) owns changes in the picture over time;
10
+ [Track authoring](track-authoring.md) owns the implementation. A new Caption family also draws on
11
+ [Caption craft](../playbooks/craft/captions.md) and [Caption authoring](caption-authoring.md).
12
+
13
+ ## Find the relationship worth giving a name
14
+
15
+ Start with the viewer's experience: a comparison becomes clear, an answer resolves a question, a
16
+ ranking accumulates, or a phrase lands with particular emphasis. Explain what appears, why it appears
17
+ there, what changes, and what the viewer should retain afterward. That explanation suggests both
18
+ the visual design and the component boundary.
19
+
20
+ Existing components are useful expressions of familiar relationships. Use one when its behavior
21
+ fits, or define a project component for the role this work needs. Its content and timing can vary
22
+ while the relationship remains clear. A new component can combine existing helpers with its own
23
+ drawing and animation; ordinary authoring includes both using and extending that vocabulary.
24
+
25
+ A board whose rows share layout and persistent state benefits from one component. An independent
26
+ photo and title can remain peer Tracks. An object that survives several camera cuts keeps the same
27
+ authored identity while its state develops. Let shared behavior define the unit.
28
+
29
+ A performance moving from full screen into a side viewport and a diagram filling the released space
30
+ can share one component. It owns their relative layout, overlap, masking and coordinated motion.
31
+ A-roll supplies the performed passage; visual ownership follows the behavior being designed.
32
+ Existing footage can use [Performance Styles](performance.md); independent assets use Media. A
33
+ one-off scene is a useful component too. Caption and independent overlays can remain separate.
34
+
35
+ Decompose a scene further where its parts have meaningful independent responsibilities. Keep
36
+ coordinated geometry, state and transitions together where that makes their behavior clear. Internal
37
+ functions and subcomponents can organize this code without each becoming another Track or package.
38
+ The useful division preserves the relationship through change; more layers alone do not improve it.
39
+
40
+ ## Separate responsibility, parameters and reuse
41
+
42
+ Adaptive composition introduces structure where it makes the work easier to understand and direct.
43
+ A boundary gives a responsibility an owner; a parameter expresses a choice supplied from outside
44
+ that owner; reuse preserves a relationship across uses. These decisions serve different needs.
45
+
46
+ | Decision | What justifies it |
47
+ | --- | --- |
48
+ | Independent organization | A distinct visual responsibility, lifetime or behavior benefits from its own owner. Parts sharing geometry, state or motion can stay together. |
49
+ | Parameterization | The production needs an external choice: an asset, a spoken trigger, a placement or a setting the author will actually adjust. |
50
+ | Reusable design | Actual uses share a relationship or treatment. Share that behavior and generalize only the variation those uses need. |
51
+
52
+ An author input is not a requirement to publish a package or provide a Studio control. A shared
53
+ internal function is not necessarily another Track. Numeric and qualitative choices use the same
54
+ criterion: does an external dependency or a useful directing decision belong here? A color, mood,
55
+ layout mode or easing name does not deserve a public parameter merely because it could vary.
56
+
57
+ One-off effects can be independently organized with fixed designs. A future edit may appropriately
58
+ change their implementation. Consider likely revisions to reveal tangled responsibilities or useful
59
+ inputs, rather than treating every possible edit as a parameter to implement in advance. Even repeated
60
+ use can share the same fixed treatment. Interface breadth and reuse count do not measure component quality.
61
+
62
+ For example, a backdrop and an editor demonstration have different jobs and can be organized
63
+ separately. The editor can keep its button sizes, panel spacing, illustrative labels and pointer paths
64
+ inside its implementation. Its pointer, dragged image and target slot share geometry and belong
65
+ together. Supply the actual assets and speech-linked events through author inputs; expose Caption
66
+ placement or color when those are useful adjustments. This gives the piece clear structure without
67
+ turning the illustrated editor into configurable editing software.
68
+
69
+ Choose peer Tracks for independently composed contributions, internal parts for a coordinated scene,
70
+ and ordinary modules for code organization. These boundaries need not coincide with parameter or
71
+ package boundaries. Splitting files helps maintenance; a named Track around a whole passage gives
72
+ it occupancy. Judge both by whether they clarify the actual responsibilities. The spoken outline
73
+ supplies timing context: several passages may develop one object, and one passage may contain
74
+ several independent objects. Sharing a Moment does not by itself require a shared Track.
75
+
76
+ ## Keep implementation changes local
77
+
78
+ Use the work's revisions to check its boundaries: a change to one visual responsibility should
79
+ remain with its owner, while a shared change should flow through a shared dependency. When an edit
80
+ requires reconstructing the same decision across several scenes, consolidate that decision's source.
81
+ The aim is to make the relationship explicit, whether its owner is a fixed implementation or an author input.
82
+
83
+ A useful revision question is: if delivery pauses before the result, which event should move and
84
+ which local design should stay? Inspect the input that carries that event rather than counting how
85
+ many parameters the component exposes. If the work needs a qualitatively different relationship,
86
+ change its implementation or define a new component instead of accumulating speculative mode flags.
87
+
88
+ Keep revisions local as the scene grows. Separate independently edited scene bodies, styling and
89
+ frame evaluation into ordinary source modules while sharing their actual mechanics. A palette,
90
+ typing function or media-sampling helper can be an ordinary project dependency; it needs no Surface
91
+ or Track of its own. A shared package becomes useful when several components really use it.
92
+ Source connects selected assets, semantic events and the component's external choices; these modules
93
+ own their realization, including any fixed design specific to this piece.
94
+
95
+ Derive related geometry from one layout. A pointer's destination should come from the target it
96
+ clicks; an attached badge should follow its pointer; two presentations of one playing source should
97
+ share their sampling. Then revising a layout changes its dependent motion with it.
98
+
99
+ Choose visual grouping and timing independently. A combined scene can respond to spoken Moments;
100
+ separate Tracks can share an authored event. What belongs together on the canvas does not decide
101
+ what gives that behavior its time.
102
+
103
+ Fine Caption similarly offers reusable flowing text, while a custom Caption family can own a new
104
+ relationship among words and graphics. Both consume Script wording and semantic timing. Shared
105
+ behavior can keep these visuals together; [Caption authoring](caption-authoring.md) explains the
106
+ specialized text inputs and the same freedom to compose.
107
+
108
+ Give a reusable scene the prepared performance, its outer Window and the Moment that changes its
109
+ layout through the Timeline and shared temporal projections. Replacing a product or rewriting the
110
+ Script then changes content and semantic anchors while preserving the behavior. The final frame
111
+ positions come from the placed Takes.
112
+
113
+ The repository's [video examples](https://github.com/hypit-ai/hypit/tree/main/examples) show different
114
+ applications: a persistent ranking board, related podcast views, a shared interview encounter and
115
+ coordinated explainer scenes. Trace why a behavior has its owner, what drives its time, and which
116
+ inputs a changed brief would replace. Their notes explain those choices; the scene lists are each
117
+ production's design. In the explainer, scenes retain fixed internal details while Script events,
118
+ Caption and presenter framing remain independently authored.
119
+ For that whole-work relationship, read [Presenter-led visual explainers](../playbooks/formats/presenter-led-explainer.md).
120
+ The [explainer's craft notes](https://github.com/hypit-ai/hypit/blob/main/examples/complex-explainer/productions/explainer/CRAFT-NOTES.md)
121
+ trace concrete revisions back to their design decisions and source owners.
122
+
123
+ ## Let meaning drive the behavior
124
+
125
+ Prefer Script Selections, Moments and Segments for events that respond to the argument or performance.
126
+ The Surface projects them through the accepted Timeline; the component consumes the resulting
127
+ Windows or Instants. A different delivery can then move the event while preserving its purpose.
128
+ Explicit time remains useful for an authored lead, a short entrance or another clock-based decision.
129
+ In a pure MG piece, name the events that carry its meaning and direct their reading rhythm. A useful
130
+ component accepts resolved Instants or Windows so the same reveal can follow a Script Moment or an
131
+ authored time. Keep message content and its trigger together in Source; repeated children can each
132
+ have their own trigger. Use semantic examples first for speech-led roles, showing how a new performance
133
+ preserves the relationship. [Authored animation](rendering.md#compose-an-authored-animation) covers
134
+ the film clock when there is no performance.
135
+
136
+ A semantic outer Window alone does not establish the timing of its internal events. In a drag-and-drop
137
+ scene, selecting a picture, dropping it into an editor and revealing the result may answer three
138
+ different phrases. Give those actions their own semantic inputs. Placing them at fixed seconds or
139
+ at 20%, 50% and 80% of the outer Window preserves neither their identities nor their relationship
140
+ to unevenly changed speech.
141
+
142
+ The Surface can accept an outer Selection and separate Moments for those events, projecting each
143
+ through Timeline. The implementation derives movement between the resulting events and keeps its
144
+ pointer path, button geometry, click rebound and decoration local. A movement that simply unfolds
145
+ inside one authored event interval may use normalized progress there; it needs no marker for every
146
+ animation key. Meaningful event location and the designed duration/shape of motion are different choices.
147
+
148
+ Choose the temporal input from what the component does. A picture covering an explanation occupies
149
+ its Selection. An answer revealed on a word can remain visible after that word ends. A ranking item
150
+ may move during a reveal Window and stay in its settled row afterward. The board's outer lifetime,
151
+ the trigger and the resulting state each have a clear meaning.
152
+
153
+ Direct motion through that relationship. Arrival draws attention, settling establishes a new state,
154
+ replacement makes a change readable, and departure releases space for the next idea. Choose how much
155
+ time each needs relative to the meaning it carries. When an authored interval changes length, decide
156
+ which part follows that interval and which part keeps its own readable duration. Document that choice.
157
+
158
+ One authored event can also coordinate peer Tracks: a reveal, sound and flash can use the same
159
+ Moment. A shared event is enough when each contribution already has a useful independent component.
160
+ [Track authoring](track-authoring.md#keep-selection-projection-and-consumption-distinct) explains the
161
+ projection and consumption boundary in detail.
162
+
163
+ ## Expose the choices the work needs
164
+
165
+ A good parameter earns its place by enabling a useful directing choice or connecting a real dependency.
166
+ Keep Script wording and semantic anchors connected to their existing owners, and supplied media
167
+ explicitly wired. Illustrative text, decorative geometry and purpose-built animation may remain local
168
+ to a one-off scene. A fixed design is complete when it serves the piece; adding controls is a separate
169
+ decision. If a label later needs repeated variation, promote that choice to an input then.
170
+
171
+ For the inputs that matter, sketch their Source use before implementing them. Related authored visual
172
+ choices can form a Style or Recipe. A comparison may need labels, images and a reveal relationship;
173
+ its internal layout can derive from those few inputs. One meaningful control can coordinate many
174
+ details while preserving a designed whole. Semantic triggers remain valuable even for a scene used
175
+ once: they connect its behavior to the actual performance without exposing every animation detail.
176
+
177
+ When reuse is needed, support the actual variation: longer names, another product or a different
178
+ number of rows. A new visual relationship may deserve another component.
179
+ [Caption craft](../playbooks/craft/captions.md#caption-families-styles-and-parameters) illustrates
180
+ family, Style and parameter choices for a commonly reused role.
181
+
182
+ ## Design the component in its frame
183
+
184
+ Judge it beside the presenter, coverage, Caption and other graphics it will share the picture with.
185
+ Give the eye a clear entry point, useful grouping and a settled state that remains readable. The
186
+ component's local palette, density and motion should support the whole composition's hierarchy.
187
+
188
+ Use the chosen Frame to express placement and derive the internal layout from it. Decide how real
189
+ text and media occupy that space: what wraps, what crops, what scales, and what stays aligned. A useful
190
+ fixed layout can suit the present work; expose placement or size when the composition needs to direct
191
+ them externally. Let a genuinely unsupported configuration produce an actionable explanation of the
192
+ content or space that needs changing.
193
+ [Spatial layout](spatial.md) owns fitting and coordinate relationships; [Fonts and text](fonts-and-text.md)
194
+ owns text resources and placement.
195
+
196
+ Look at the important states in the actual composition: before the reveal, during the change, after
197
+ it settles, and when the system leaves. A preview with representative content can answer hierarchy,
198
+ readability, collisions and timing together. Make the correction at its owner: a semantic anchor,
199
+ the chosen Recipe, the component's behavior or the visual idea itself. Reuse the production's media
200
+ while refining those relationships.
201
+
202
+ ## Make the idea easy to use and revise
203
+
204
+ Give the component vocabulary and an example that show its purpose, required inputs, public outputs
205
+ and the meaning of its timing. For persistent state, explain what remains after activation. A preview
206
+ should reveal the behavior that makes someone choose this component, with useful default content.
207
+
208
+ For a production the user will explore in Studio, make its useful objects recognizable: a board's
209
+ lifetime, a row's reveal, a Caption Cue's actual Style. Watching and understanding the work are useful
210
+ on their own; a read-only scene with a clear identity can be complete. Expose controls for the real
211
+ adjustments the user needs, such as Caption position and color, through the existing author inputs.
212
+ An empty parameter panel alone is no reason to widen the component interface.
213
+ [Companion authoring](studio-companions.md) owns those bindings.
214
+
215
+ For an existing example, read the installed `@hypit/ranking` README and the part of its implementation
216
+ that answers the current question. It connects semantic reveals, settled state, layout and editor
217
+ entities. Carry the relevant relationship into the project component's own design.
@@ -0,0 +1,150 @@
1
+ # Sharing a project package
2
+
3
+ Read this when someone else needs a project component, Prompt Kit, Model, or Provider.
4
+
5
+ Creating a component and distributing it answer different questions. Create the component when the
6
+ work needs its visual role, semantic behavior or interaction. Distribution begins when its owner
7
+ wants another project or person to use the same package. Its component model and ownership stay the
8
+ same across that boundary.
9
+
10
+ ## Share the package that owns the component
11
+
12
+ A component normally begins under the video project's `packages/` directory. Give it an owner-scoped name,
13
+ such as `@studio/score-strip`. Sharing it means giving the other project that package's code, assets,
14
+ and usage instructions. Neither author nor consumer needs a Hypit repository checkout.
15
+
16
+ Keep the same name when distributing it. The Source import names its logical Module ABI:
17
+
18
+ ```xml
19
+ <import as="score" from="@studio/score-strip@1"/>
20
+ ```
21
+
22
+ Here `@1` names the logical Module ABI used by the Source. The package manager separately records
23
+ the physical npm release, such as `1.2.0`. Updating that package release does not by itself change
24
+ the logical import. Follow the package's actual published vocabulary for its author interface.
25
+
26
+ ## Publish for repeated distribution
27
+
28
+ For stable reuse across projects, publish a versioned package under its owner's npm scope or private
29
+ registry when that owner chooses distribution. For a public scoped package, the publication command is:
30
+
31
+ ```bash
32
+ npm publish --access public
33
+ ```
34
+
35
+ Consumers install the selected release with their usual package manager:
36
+
37
+ ```bash
38
+ npm install --save-exact @studio/score-strip@1.2.0
39
+ # or
40
+ pnpm add --save-exact @studio/score-strip@1.2.0
41
+ ```
42
+
43
+ The project lockfile records the installed dependency tree. Updates are explicit package-manager
44
+ operations; Builds use the selected installed code. A missing package is an installation problem.
45
+ Select the intended new release in the consumer project, inspect its changed vocabulary where
46
+ relevant, check the actual Source/Run and review the changed behavior. New Builds load that selected
47
+ implementation; restart an existing Studio session to load package-code changes. Reuse compatible
48
+ media through Run Candidates while recomputing the component being revised. The package's own
49
+ release notes describe any required author changes; no Build upgrades or migrates it automatically.
50
+
51
+ ## Send a tarball to another person
52
+
53
+ For an explicit direct handoff or development check, build the package and run `npm pack` in its directory. A TypeScript package
54
+ compiles to JavaScript; a JavaScript package may already have executable files. Its `prepack` script
55
+ can perform the build. For example:
56
+
57
+ ```bash
58
+ cd packages/score-strip
59
+ npm pack
60
+ ```
61
+
62
+ For `@studio/score-strip` version `1.2.0`, npm creates `studio-score-strip-1.2.0.tgz`. Send that file.
63
+ This route needs no registry account or publication. The consumer can keep it under the video
64
+ project's `vendor/` directory and install it from that project:
65
+
66
+ ```bash
67
+ npm install ./vendor/studio-score-strip-1.2.0.tgz
68
+ ```
69
+
70
+ Keep the tarball with the project while its dependency points to that file, along with `package.json`
71
+ and the lockfile. Source imports select author contributions; Runtime Profile entries select Provider
72
+ contributions. To send the next release, give it a new package version, create a new tarball, and
73
+ install that file explicitly.
74
+
75
+ ## Make a public release discoverable
76
+
77
+ People can find a public component through its npm page, source repository, or a community link.
78
+ Ordinary package metadata makes those existing discovery surfaces useful. For example, add fields
79
+ like these to the package that already owns the component:
80
+
81
+ ```json
82
+ {
83
+ "description": "A speech-timed score strip for Hypit videos.",
84
+ "keywords": ["hypit", "hypit-author-package", "scoreboard"],
85
+ "repository": {
86
+ "type": "git",
87
+ "url": "git+https://github.com/studio/score-strip.git"
88
+ },
89
+ "license": "MIT"
90
+ }
91
+ ```
92
+
93
+ The description and keywords help npm search; they do not define the component ABI. The README should
94
+ show the visual role, a copyable Source import and element example, the package's public outputs, and
95
+ the selected Hypit release used to check it. Include the Surface poster and, when motion or state is
96
+ central to the idea, a short representative clip or animation. The source repository, publisher,
97
+ license and selected release give a recipient the facts needed to choose whether to install it.
98
+
99
+ After installation, inspect the package's own declarations:
100
+
101
+ ```bash
102
+ hypit vocabulary @studio/score-strip
103
+ ```
104
+
105
+ That output explains the installed release's Surfaces and vocabulary. npm or the selected private
106
+ registry remains the authority for package bytes and versions; the project lockfile records the
107
+ consumer's exact choice.
108
+
109
+ ## Adapt the package under its owner's identity
110
+
111
+ Ordinary changes to words, media, timing, palette or exposed parameters remain in the consuming
112
+ project's Source and Recipes. When someone changes the reusable mechanics or public behavior, the
113
+ fork can take that owner's package scope and Module identity, subject to the original license. The
114
+ new package is then installed, versioned and imported through the same mechanism as any other shared
115
+ component.
116
+
117
+ ## Include what the recipient needs
118
+
119
+ The package's `files` and `exports` should include its built activation, runtime code, preview assets,
120
+ and any Sources or templates exposed by its vocabulary. `hypit.activation` points to the shipped
121
+ JavaScript entry. Declare third-party runtime dependencies in `dependencies`. Include a README with
122
+ an actual Source example, the public outputs, any companion or asset requirements, and the Hypit
123
+ release used to check it. Inspect the tarball contents with `npm pack --dry-run`.
124
+
125
+ An executable Author Package develops against `@hypit/hypit/author-kit` and the relevant `@hypit/hypit/*` domain
126
+ subpaths, with `@hypit/hypit` as a development dependency. Its release contains its own code and assets;
127
+ the active Hypit Distribution supplies the framework APIs when loading it. Check the package from a
128
+ separate consumer project so local source links do not conceal omitted files or dependencies.
129
+
130
+ Package code runs as trusted JavaScript in the host process. The recipient chooses which package and
131
+ release to install.
132
+
133
+ ## Data packages remain data
134
+
135
+ A Prompt Kit can export an `.svs` Source through ordinary package `exports` without activation code:
136
+
137
+ ```xml
138
+ <import as="ugc" source="@studio/image-kits/phone-ugc-v1"/>
139
+ ```
140
+
141
+ That reads the selected package data. The same packing, installation, versioning, and file-completeness
142
+ rules apply. [Project handoff](../creation/project-files.md#hand-over-an-editable-production) explains
143
+ sharing the Sources, Runs, assets and Results needed to continue a video on another machine.
144
+
145
+ ## Official Distribution ownership is a separate decision
146
+
147
+ A package maintained in the official Hypit Distribution becomes part of Hypit's product and release
148
+ surface. A proposal for that ownership begins with an issue that explains the shared production need
149
+ and maintenance boundary. Community reuse remains under the package owner's own releases, independent
150
+ of that product decision.
@@ -0,0 +1,152 @@
1
+ # Drawing a component
2
+
3
+ Read this while implementing a project component's rendered output. [Track authoring](track-authoring.md)
4
+ owns its author interface, temporal inputs and state behavior. [Spatial layout](spatial.md) explains
5
+ the incoming geometry; [Studio](studio.md) explains an optional Companion.
6
+
7
+ ## From program to visible Track
8
+
9
+ A component's drawing output describes what appears, where it appears and how it changes over its
10
+ visible lifetime. For a reveal card, those decisions become a box and text, a destination Frame,
11
+ an entrance animation and the interval for which the answer remains visible.
12
+
13
+ A component can first compute a domain program, such as a list of answers and their reveal times.
14
+ Its drawing Producer receives that program, Timeline, Frames, Style and explicit assets, then
15
+ returns a VisualTrack. A simple component can produce the Track directly when no separate program
16
+ would help its behavior or editing.
17
+
18
+ The public representation has these parts:
19
+
20
+ | Part | What it means |
21
+ | --- | --- |
22
+ | Track | Named picture contribution belonging to one Timeline |
23
+ | Present | An independently timed and stacked appearance |
24
+ | `span` | Program frames from `startFrame` through the frame before `endFrameExclusive` |
25
+ | `stacking` | Absolute paint order among Presents; higher order appears above lower order |
26
+ | Elements | One rooted tree of boxes, text, media, masks, compositable surfaces or renderer programs |
27
+ | Animation | Keyframes relative to the containing Present's start |
28
+
29
+ Use several Presents when items have separate lifetimes or stacking positions. A persistent board
30
+ can keep its settled rows visible while later rows enter. Its domain program decides those spans
31
+ and states; the drawing output makes them explicit.
32
+
33
+ Track grouping is an authoring boundary; each Present has its own paint order among the film's
34
+ appearances. Its element tree supplies local layout and compositing scope. Use that tree or a browser
35
+ program for content that moves, clips or changes layout together. The final DOM follows these owned
36
+ visual relationships rather than the nesting of tags in Source.
37
+
38
+ ## A working drawing function
39
+
40
+ [visuals.ts](examples/visuals.ts) contains `renderCard`, a complete pure drawing function using
41
+ `sealVisualTrack` from `@hypit/hypit/composition`. It receives a projected span and a resolved Frame,
42
+ draws a colored box with exact-font text, and optionally fades in relative to the Present's start.
43
+ Its colors, size, padding, layer and entrance duration are supplied by the caller. These drawing-function
44
+ arguments need not all become Surface parameters: the owning component can supply its fixed design
45
+ and expose only the inputs the production needs.
46
+
47
+ The root uses Canvas coordinates. The text child uses the root's local coordinates, so padding is
48
+ added once. When a component computes child geometry in Canvas space, subtract the parent's origin
49
+ before writing child `left` and `top`.
50
+ Element `order` values are distinct within the Present; `stacking.order` separately places that
51
+ whole Present among the composition's other appearances.
52
+
53
+ The function is the drawing part of a package. Connect it to a Producer with matching typed inputs,
54
+ then publish the Track through the Fragment and Surface as described in
55
+ [Track authoring](track-authoring.md#connect-the-implementation-at-its-real-boundaries). Surface outputs
56
+ map the Fragment's export name to a public Source name such as `answers.track`.
57
+
58
+ Use `programSpaceFrameCount` from `@hypit/hypit/program-space` for the full program's frame count and
59
+ `assertVisualTrackIdentity(track, space)` to check a produced Track against that space. Direct seeking
60
+ and range rendering evaluate the same declared keyframes at the requested frame.
61
+
62
+ ## Elements, fonts and other assets
63
+
64
+ `box` provides a container or painted shape. `text`, `text-flow` and `path-text` carry text and exact
65
+ font resources. `image` and `video` reference their media artifacts. A `mask` names owned mask and
66
+ content children in the same Present. The installed vocabulary queries expose their value shapes:
67
+
68
+ ```bash
69
+ hypit vocabulary --visual visual-track
70
+ hypit vocabulary --visual text
71
+ ```
72
+
73
+ Visual styles and Motion use the installed CSS-shaped property vocabulary; query the relevant visual
74
+ shapes above for their supported values. Motion uses frame-indexed keyframes. Media sampling separately
75
+ describes which source frame to show at each part of a Present; it is needed for timed video playback,
76
+ trims, loops and holds. Existing Media Track is useful when that is the whole role.
77
+
78
+ Carry asset and font references through declared inputs. Source assets can be resolved at the
79
+ Surface's asset boundary; generated media remains a graph reference until its Producer runs.
80
+ The drawing function receives those values. For a visual preparation that reads bytes or invokes an
81
+ external tool, use its preparation capability and pass the resulting material into drawing.
82
+
83
+ ## Compose externally prepared pixels
84
+
85
+ A `surface` element accepts a CompositableSurfaceRef: prepared pixels with explicit extent, color,
86
+ alpha and, for animation, frame information. This is useful when the component uses a raster or
87
+ animated asset produced by another tool. Its preparation determines the pixels; the Track determines
88
+ placement, sampling and lifetime.
89
+
90
+ For an effect that transforms an image, pass that image as an explicit input to the effect's
91
+ preparation. For a local mask, own the mask and content in the same element tree. These relationships
92
+ make the required materials available both in Studio and in a render of any selected interval.
93
+
94
+ ## Compose video and graphics in one browser program
95
+
96
+ When a scene's video viewport and graphics share motion or layout, one component can draw them
97
+ together. `browserProgram` from `@hypit/hypit/hyperframes` creates a `program` element's payload. Its HTML
98
+ owns the local structure; CSS supplies layout, stacking, masks, filters and blending; optional
99
+ `setup(root, data)` code returns `render(localFrame)`. This function sets the complete state at that
100
+ frame synchronously. A range render may start in the middle, so compute state from the frame and authored inputs.
101
+
102
+ Prepare stable structure in `setup`: locate elements, construct geometry and retain reusable drawing
103
+ objects there. Paint static procedural textures once their resources are ready.
104
+ Let `render(localFrame)` update the state that changes with time. This supports both
105
+ fast repeated capture and direct seeking. A program is sampled within its Present's lifetime;
106
+ outside it, the renderer may retain the boundary pose. Re-entry and repeated active seeks must
107
+ produce the complete requested state, including when an image became ready since the last call.
108
+
109
+ Repeated browser-program instances share one document's HTML/SVG ID space even though their CSS
110
+ is scoped. For SVG masks, gradients or filters, derive each required ID from `root.id` in `setup`
111
+ and update its references together. The installed `@hypit/hyperframes` README owns the browser-program
112
+ API and resource-loading behavior.
113
+
114
+ For a depth or material effect, choose the representation that carries its visible behavior:
115
+ CSS can tilt a panel, while a deforming textured surface may warrant mesh geometry and Canvas or
116
+ WebGL drawing. Keep that implementation inside the project component; give Source the useful
117
+ material, amplitude or timing choices rather than the renderer's internal construction.
118
+
119
+ For shared opacity or a filter, put the affected content under the element that owns the treatment.
120
+ A translucent panel can use backdrop filtering; its painted position and browser compositing scope
121
+ determine which background it affects. A transition can own both participating pictures and their
122
+ handoff. Choose the scope from the visible relationship, keeping independently useful contributions
123
+ as peer Presents. These are ordinary composition choices within the same rendering path.
124
+
125
+ Use ordinary typed children for prepared video, images and exact-font text. A `{{child-id}}` slot in
126
+ the HTML places each direct child exactly once. These children retain their declared resources,
127
+ video sampling and font handling while participating in the program's HTML layout. Extra artifacts
128
+ used by the program belong in its `artifacts` list; `hyperframesResourceUri` supplies their resource
129
+ URLs. The rendering environment materializes those references.
130
+
131
+ For a placed performance, `projectTimelineMedia(timeline, window.span)` from
132
+ `@hypit/hypit/timeline` returns each intersecting Take's prepared media, program span and source
133
+ span. Subtract the containing Present's start to obtain Present-local video sampling intervals
134
+ (when that Present uses the outer Window as its span, subtract the Window start). Preserve
135
+ the returned source offset: moving or reframing a video changes its presentation while playback
136
+ continues from the same place. A separate Sound presentation can continue the existing audio in Film.
137
+
138
+ Project each independently meaningful event before rendering. Convert its program frame to the
139
+ containing Present's local frame once, then animate relative to that event. Keep source sampling
140
+ based on the returned source span; neither the event's local offset nor the viewport's movement
141
+ replaces it. [Component design](component-design.md#let-meaning-drive-the-behavior) distinguishes these
142
+ inputs from internal motion details.
143
+
144
+ A reusable scene might expose `during={story.selection.explanation}` for its lifetime and
145
+ `reveal={story.moment.demonstrate}` for its layout change. The Surface projects these independently;
146
+ the Producer receives a Window and an Instant. The installed Distribution's
147
+ `examples/semantic-composition/packages/responsive-explainer` shows this complete package: video
148
+ moves from full screen to a side viewport while a diagram enters, with Caption available as a peer.
149
+
150
+ The program format belongs to the renderer package. `hypit.browser-program@1` runs in the
151
+ HyperFrames browser; another renderer implements the formats it supports. Core still schedules
152
+ ordinary Needs and has no knowledge of scenes, video windows or browser layout.
@@ -0,0 +1,8 @@
1
+ <?svml using="@hypit/run-markup@1"?>
2
+ <svrun version="1">
3
+ <author source="./production.svml"/>
4
+ <target output="detail.video"/>
5
+ <!-- Replace the Build id with the Result containing this production's Take. -->
6
+ <build-record id="kept-take" build="bld_..." output="opening-semantic.take"/>
7
+ <satisfy output="opening-semantic.take" candidate="kept-take"/>
8
+ </svrun>
@@ -0,0 +1,14 @@
1
+ <?svml using="@hypit/text/svs@1"?>
2
+ <sheet version="1" id="performance">
3
+ text-template.performance { separator: paragraph; }
4
+ text-template.performance.block.direction {
5
+ kind: slot;
6
+ order: 10;
7
+ slot: direction;
8
+ }
9
+ text-template.performance.block.dialogue {
10
+ kind: slot;
11
+ order: 20;
12
+ slot: dialogue;
13
+ }
14
+ </sheet>
@@ -0,0 +1,6 @@
1
+ <?svml using="@hypit/svs@1"?>
2
+ <sheet version="1">
3
+ media.performance { stack-order: 0; fit: cover; }
4
+ text.title { size: 54; weight: 700; stack-order: 20; }
5
+ film.main { background: #18212A; }
6
+ </sheet>
@@ -0,0 +1,5 @@
1
+ <?svml using="@hypit/run-markup@1"?>
2
+ <svrun version="1">
3
+ <author source="./production.svml"/>
4
+ <target output="opening-semantic.take"/>
5
+ </svrun>
@@ -0,0 +1,73 @@
1
+ <?svml using="@hypit/markup@1"?>
2
+ <svml>
3
+ <import as="sound" from="@hypit/sound@1"/>
4
+ <import as="performance" from="@hypit/performance@1"/>
5
+ <import from="@hypit/script@1"/>
6
+ <import as="text" from="@hypit/text@1"/>
7
+ <import as="seedance" from="@hypit/seedance@1"/>
8
+ <import as="pipeline" from="@hypit/media-pipeline@1"/>
9
+ <import as="whisperx" from="@hypit/whisperx@1"/>
10
+ <import as="time" from="@hypit/timeline-author@1"/>
11
+ <import as="space" from="@hypit/spatial@1"/>
12
+ <import as="program" from="@hypit/program-space@1"/>
13
+ <import as="fonts" from="@hypit/fonts-open@1"/>
14
+ <import as="typo" from="@hypit/typography-track@1"/>
15
+ <import as="film" from="@hypit/film@1"/>
16
+ <import as="render" from="@hypit/render-hyperframes@1"/>
17
+ <import as="look" source="./look.svs"/>
18
+ <import as="kit" source="./direction.svs"/>
19
+
20
+ <script id="story">
21
+ <opening><HOST>Here is @{proof}the useful part.@{/proof}</opening>
22
+ </script>
23
+ <space:Canvas id="canvas" width="720" height="1280"/>
24
+ <program:Clock id="clock" frame-rate="30"/>
25
+ <space:Frame id="full" within={canvas}
26
+ left="0%" top="0%" right="100%" bottom="100%"/>
27
+ <space:Frame id="title-frame" within={canvas}
28
+ left="8%" top="12%" right="92%" bottom="30%"/>
29
+
30
+ <text:Value id="direction">
31
+ A close, naturally lit phone-video view of a presenter in a workshop.
32
+ HOST is the presenter, speaking to the camera with relaxed confidence.
33
+ </text:Value>
34
+ <text:Render id="prompt" template={kit.performance}>
35
+ <text:Set name="direction" text={direction}/>
36
+ <text:Set name="dialogue" text={story.segment.opening.dialogue}/>
37
+ </text:Render>
38
+ <seedance:TextVideo id="performance" model="mini" prompt={prompt}
39
+ duration="5" aspect-ratio="9:16" generate-audio="true"/>
40
+ <pipeline:Normalize id="performance-media" source={performance.video} clock={clock}
41
+ video="primary-moving" audio="default" span-authority="video"/>
42
+ <whisperx:SemanticTake id="opening-semantic" narrative={story}
43
+ segment={story.segment.opening} media={performance-media.media} language="en"/>
44
+ <time:Timeline id="speech" clock={clock}>
45
+ <time:Take source={opening-semantic.take}/>
46
+ </time:Timeline>
47
+
48
+ <sound:Style id="speech-sound-style"/>
49
+ <sound:Track id="speech-sound" timeline={speech.timeline}>
50
+ <sound:Use style={speech-sound-style}/>
51
+ </sound:Track>
52
+ <performance:Style id="speech-picture-style" frame={full} appearance={look.media.performance}/>
53
+ <performance:Track id="speech-picture" timeline={speech.timeline} canvas={canvas}>
54
+ <performance:Use style={speech-picture-style} during="program"/>
55
+ </performance:Track>
56
+
57
+ <fonts:Stack id="title-font" family="inter" weight="700" style="normal" emoji="color"/>
58
+ <typo:Style id="title-style" recipe={look.text.title} font={title-font}>
59
+ <typo:Fill color="#F1E7D8"/>
60
+ </typo:Style>
61
+ <typo:Track id="titles" timeline={speech.timeline}>
62
+ <typo:Area id="proof-label" placement={title-frame} style={title-style}
63
+ during={story.selection.proof}>The useful part</typo:Area>
64
+ </typo:Track>
65
+ <film:Film id="main" canvas={canvas} timeline={speech.timeline} appearance={look.film.main}>
66
+ <film:Track source={speech-picture.visual}/>
67
+ <film:Track source={speech-sound.audio}/>
68
+ <film:Track source={titles.track}/>
69
+ </film:Film>
70
+ <render:Video id="final" composition={main.composition} timeline={speech.timeline}/>
71
+ <render:Video id="detail" composition={main.composition} timeline={speech.timeline}
72
+ start-frame="30" end-frame-exclusive="90"/>
73
+ </svml>
@@ -0,0 +1,5 @@
1
+ <?svml using="@hypit/run-markup@1"?>
2
+ <svrun version="1">
3
+ <author source="./production.svml"/>
4
+ <target output="final.video"/>
5
+ </svrun>