@hypit/hypit 0.0.1 → 0.1.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 (961) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +142 -0
  3. package/bin/hypit.mjs +46 -0
  4. package/dist/public/artifact.d.ts +75 -0
  5. package/dist/public/author-kit.d.ts +559 -0
  6. package/dist/public/browser-capture.d.ts +56 -0
  7. package/dist/public/caption.d.ts +751 -0
  8. package/dist/public/composition.d.ts +672 -0
  9. package/dist/public/endpoint-kit.d.ts +366 -0
  10. package/dist/public/generation.d.ts +591 -0
  11. package/dist/public/hyperframes.d.ts +774 -0
  12. package/dist/public/media.d.ts +708 -0
  13. package/dist/public/model-kit.d.ts +523 -0
  14. package/dist/public/narrative.d.ts +315 -0
  15. package/dist/public/program-space.d.ts +193 -0
  16. package/dist/public/runtime-kit.d.ts +427 -0
  17. package/dist/public/semantic-track.d.ts +418 -0
  18. package/dist/public/spatial.d.ts +1193 -0
  19. package/dist/public/speech.d.ts +391 -0
  20. package/dist/public/studio-adapter.d.ts +686 -0
  21. package/dist/public/svs.d.ts +311 -0
  22. package/dist/public/temporal-markup.d.ts +343 -0
  23. package/dist/public/temporal.d.ts +497 -0
  24. package/dist/public/text.d.ts +817 -0
  25. package/dist/public/visual-ir.d.ts +98 -0
  26. package/docs/public/hypit-logo-dark.svg +36 -0
  27. package/docs/public/hypit-logo-light.svg +38 -0
  28. package/examples/README.md +24 -0
  29. package/examples/minimal-author-package/README.md +18 -0
  30. package/examples/minimal-author-package/packages/example-component/README.md +44 -0
  31. package/examples/minimal-author-package/packages/example-component/package.json +27 -0
  32. package/examples/minimal-author-package/packages/example-component/preview/Box.png +0 -0
  33. package/examples/minimal-author-package/packages/example-component/preview/build.svrun +6 -0
  34. package/examples/minimal-author-package/packages/example-component/preview/preview.svml +47 -0
  35. package/examples/minimal-author-package/packages/example-component/preview/recipes.svs +8 -0
  36. package/examples/minimal-author-package/packages/example-component/src/activation.ts +10 -0
  37. package/examples/minimal-author-package/packages/example-component/src/component.ts +44 -0
  38. package/examples/minimal-author-package/packages/example-component/src/fragment.ts +32 -0
  39. package/examples/minimal-author-package/packages/example-component/src/index.ts +6 -0
  40. package/examples/minimal-author-package/packages/example-component/src/manifest.ts +82 -0
  41. package/examples/minimal-author-package/packages/example-component/src/style.ts +13 -0
  42. package/examples/minimal-author-package/packages/example-component/src/surface.ts +41 -0
  43. package/examples/minimal-author-package/packages/example-component/src/temporal.ts +6 -0
  44. package/examples/minimal-author-package/packages/example-component/tsconfig.json +18 -0
  45. package/examples/semantic-composition/README.md +35 -0
  46. package/examples/semantic-composition/chat.svml +25 -0
  47. package/examples/semantic-composition/chat.svrun +6 -0
  48. package/examples/semantic-composition/chat.svs +4 -0
  49. package/examples/semantic-composition/hypit.runtime.json +8 -0
  50. package/examples/semantic-composition/packages/chat-scene/README.md +29 -0
  51. package/examples/semantic-composition/packages/chat-scene/package.json +11 -0
  52. package/examples/semantic-composition/packages/chat-scene/src/activation.ts +112 -0
  53. package/examples/semantic-composition/packages/chat-scene/src/render.ts +64 -0
  54. package/examples/semantic-composition/packages/chat-scene/tsconfig.json +18 -0
  55. package/examples/semantic-composition/packages/responsive-explainer/README.md +45 -0
  56. package/examples/semantic-composition/packages/responsive-explainer/package.json +11 -0
  57. package/examples/semantic-composition/packages/responsive-explainer/src/activation.ts +90 -0
  58. package/examples/semantic-composition/packages/responsive-explainer/src/render.ts +68 -0
  59. package/examples/semantic-composition/packages/responsive-explainer/tsconfig.json +18 -0
  60. package/package.json +263 -5
  61. package/packages/artifact/README.md +10 -0
  62. package/packages/artifact/package.json +16 -0
  63. package/packages/artifact/src/activation.ts +8 -0
  64. package/packages/artifact/src/index.ts +24 -0
  65. package/packages/audio-track/README.md +43 -0
  66. package/packages/audio-track/package.json +36 -0
  67. package/packages/audio-track/src/activation.ts +20 -0
  68. package/packages/audio-track/src/component.ts +40 -0
  69. package/packages/audio-track/src/fragment.ts +63 -0
  70. package/packages/audio-track/src/index.ts +7 -0
  71. package/packages/audio-track/src/manifest.ts +151 -0
  72. package/packages/audio-track/src/program.ts +254 -0
  73. package/packages/audio-track/src/surface.ts +187 -0
  74. package/packages/audio-track/src/types.ts +62 -0
  75. package/packages/audio-track-studio/README.md +3 -0
  76. package/packages/audio-track-studio/package.json +14 -0
  77. package/packages/audio-track-studio/src/activation.ts +7 -0
  78. package/packages/audio-track-studio/src/index.ts +72 -0
  79. package/packages/author-kit/README.md +31 -0
  80. package/packages/author-kit/package.json +16 -0
  81. package/packages/author-kit/src/index.ts +59 -0
  82. package/packages/background-removal/README.md +29 -0
  83. package/packages/background-removal/package.json +16 -0
  84. package/packages/background-removal/src/activation.ts +18 -0
  85. package/packages/background-removal/src/component.ts +32 -0
  86. package/packages/background-removal/src/fragment.ts +18 -0
  87. package/packages/background-removal/src/index.ts +6 -0
  88. package/packages/background-removal/src/manifest.ts +45 -0
  89. package/packages/background-removal/src/program.ts +19 -0
  90. package/packages/background-removal/src/surface.ts +27 -0
  91. package/packages/background-removal/src/types.ts +5 -0
  92. package/packages/browser-capture/README.md +82 -0
  93. package/packages/browser-capture/package.json +15 -0
  94. package/packages/browser-capture/src/browser.ts +19 -0
  95. package/packages/browser-capture/src/index.ts +198 -0
  96. package/packages/build-result/package.json +13 -0
  97. package/packages/build-result/src/decode.ts +286 -0
  98. package/packages/build-result/src/index.ts +25 -0
  99. package/packages/build-result/src/store.ts +505 -0
  100. package/packages/build-result/src/types.ts +354 -0
  101. package/packages/build-result/src/writer.ts +184 -0
  102. package/packages/build-result-fs/README.md +29 -0
  103. package/packages/build-result-fs/package.json +17 -0
  104. package/packages/build-result-fs/src/activation.ts +62 -0
  105. package/packages/build-result-fs/src/index.ts +1 -0
  106. package/packages/build-result-kit/README.md +10 -0
  107. package/packages/build-result-kit/package.json +15 -0
  108. package/packages/build-result-kit/src/index.ts +144 -0
  109. package/packages/build-result-s3/README.md +49 -0
  110. package/packages/build-result-s3/package.json +19 -0
  111. package/packages/build-result-s3/src/activation.ts +71 -0
  112. package/packages/build-result-s3/src/client.ts +254 -0
  113. package/packages/build-result-s3/src/index.ts +4 -0
  114. package/packages/build-result-s3/src/repository.ts +361 -0
  115. package/packages/caption/README.md +77 -0
  116. package/packages/caption/package.json +28 -0
  117. package/packages/caption/src/activation.ts +17 -0
  118. package/packages/caption/src/component.ts +38 -0
  119. package/packages/caption/src/display.ts +111 -0
  120. package/packages/caption/src/error.ts +9 -0
  121. package/packages/caption/src/fragment.ts +26 -0
  122. package/packages/caption/src/index.ts +33 -0
  123. package/packages/caption/src/manifest.ts +97 -0
  124. package/packages/caption/src/style.ts +170 -0
  125. package/packages/caption/src/surface.ts +96 -0
  126. package/packages/caption/src/temporalize.ts +124 -0
  127. package/packages/caption/src/types.ts +71 -0
  128. package/packages/caption-fine/README.md +108 -0
  129. package/packages/caption-fine/package.json +30 -0
  130. package/packages/caption-fine/preview/Track.png +0 -0
  131. package/packages/caption-fine/src/activation.ts +32 -0
  132. package/packages/caption-fine/src/component.ts +58 -0
  133. package/packages/caption-fine/src/fragment.ts +112 -0
  134. package/packages/caption-fine/src/index.ts +19 -0
  135. package/packages/caption-fine/src/manifest.ts +383 -0
  136. package/packages/caption-fine/src/recipe.ts +120 -0
  137. package/packages/caption-fine/src/render.ts +1133 -0
  138. package/packages/caption-fine/src/schedule.ts +126 -0
  139. package/packages/caption-fine/src/spacing.ts +69 -0
  140. package/packages/caption-fine/src/style.ts +370 -0
  141. package/packages/caption-fine/src/surface.ts +152 -0
  142. package/packages/caption-fine/src/types.ts +191 -0
  143. package/packages/caption-fine-studio/README.md +3 -0
  144. package/packages/caption-fine-studio/package.json +15 -0
  145. package/packages/caption-fine-studio/src/activation.ts +7 -0
  146. package/packages/caption-fine-studio/src/index.ts +163 -0
  147. package/packages/cli/README.md +51 -0
  148. package/packages/cli/package.json +33 -0
  149. package/packages/cli/src/arguments.ts +605 -0
  150. package/packages/cli/src/build-planning.ts +460 -0
  151. package/packages/cli/src/command.ts +202 -0
  152. package/packages/cli/src/commands/environment.ts +391 -0
  153. package/packages/cli/src/commands/execution.ts +321 -0
  154. package/packages/cli/src/commands/results.ts +187 -0
  155. package/packages/cli/src/commands/types.ts +9 -0
  156. package/packages/cli/src/distribution.ts +74 -0
  157. package/packages/cli/src/index.ts +30 -0
  158. package/packages/cli/src/machine-view.ts +28 -0
  159. package/packages/cli/src/main.ts +654 -0
  160. package/packages/cli/src/oauth.ts +228 -0
  161. package/packages/cli/src/observation.ts +203 -0
  162. package/packages/cli/src/output.ts +1007 -0
  163. package/packages/cli/src/paths.ts +7 -0
  164. package/packages/cli/src/project-context.ts +38 -0
  165. package/packages/cli/src/reachability.ts +91 -0
  166. package/packages/cli/src/result-export.ts +148 -0
  167. package/packages/cli/src/result-query.ts +46 -0
  168. package/packages/cli/src/run-file.ts +186 -0
  169. package/packages/cli/src/runtime-port.ts +13 -0
  170. package/packages/cli/src/runtime-selection.ts +94 -0
  171. package/packages/cli/src/runtime-view.ts +15 -0
  172. package/packages/cli/src/source-discovery.ts +150 -0
  173. package/packages/cli/src/source-packages.ts +91 -0
  174. package/packages/cli/src/view.ts +228 -0
  175. package/packages/comment-sticker/README.md +41 -0
  176. package/packages/comment-sticker/package.json +29 -0
  177. package/packages/comment-sticker/preview/Track.png +0 -0
  178. package/packages/comment-sticker/src/activation.ts +32 -0
  179. package/packages/comment-sticker/src/author.ts +148 -0
  180. package/packages/comment-sticker/src/component.ts +97 -0
  181. package/packages/comment-sticker/src/fragment.ts +124 -0
  182. package/packages/comment-sticker/src/index.ts +8 -0
  183. package/packages/comment-sticker/src/manifest.ts +373 -0
  184. package/packages/comment-sticker/src/program.ts +610 -0
  185. package/packages/comment-sticker/src/surface.ts +172 -0
  186. package/packages/comment-sticker/src/types.ts +109 -0
  187. package/packages/comment-sticker-studio/README.md +3 -0
  188. package/packages/comment-sticker-studio/package.json +14 -0
  189. package/packages/comment-sticker-studio/src/activation.ts +7 -0
  190. package/packages/comment-sticker-studio/src/index.ts +132 -0
  191. package/packages/compiler-markup-node/README.md +12 -0
  192. package/packages/compiler-markup-node/package.json +22 -0
  193. package/packages/compiler-markup-node/src/index.ts +59 -0
  194. package/packages/compiler-node/README.md +60 -0
  195. package/packages/compiler-node/package.json +25 -0
  196. package/packages/compiler-node/src/compiler.ts +207 -0
  197. package/packages/compiler-node/src/error.ts +11 -0
  198. package/packages/compiler-node/src/graph-query.ts +51 -0
  199. package/packages/compiler-node/src/index.ts +27 -0
  200. package/packages/compiler-node/src/modules.ts +107 -0
  201. package/packages/compiler-node/src/run.ts +355 -0
  202. package/packages/component-kit/README.md +97 -0
  203. package/packages/component-kit/package.json +13 -0
  204. package/packages/component-kit/src/index.ts +155 -0
  205. package/packages/composition/README.md +53 -0
  206. package/packages/composition/package.json +29 -0
  207. package/packages/composition/src/activation.ts +3 -0
  208. package/packages/composition/src/component.ts +10 -0
  209. package/packages/composition/src/index.ts +18 -0
  210. package/packages/composition/src/manifest.ts +13 -0
  211. package/packages/composition/src/schema.ts +194 -0
  212. package/packages/composition/src/track.ts +1403 -0
  213. package/packages/core/README.md +22 -0
  214. package/packages/core/package.json +13 -0
  215. package/packages/core/src/error.ts +12 -0
  216. package/packages/core/src/graph.ts +341 -0
  217. package/packages/core/src/index.ts +32 -0
  218. package/packages/core/src/link.ts +240 -0
  219. package/packages/core/src/machine.ts +60 -0
  220. package/packages/core/src/plan.ts +504 -0
  221. package/packages/core/src/reducer.ts +428 -0
  222. package/packages/core/src/reference.ts +25 -0
  223. package/packages/core/src/slice.ts +108 -0
  224. package/packages/credential-store-env/README.md +11 -0
  225. package/packages/credential-store-env/package.json +17 -0
  226. package/packages/credential-store-env/src/activation.ts +25 -0
  227. package/packages/credential-store-env/src/index.ts +23 -0
  228. package/packages/credential-store-os/README.md +13 -0
  229. package/packages/credential-store-os/package.json +22 -0
  230. package/packages/credential-store-os/runtime/windows-credential.ps1 +59 -0
  231. package/packages/credential-store-os/src/activation.ts +32 -0
  232. package/packages/credential-store-os/src/index.ts +2 -0
  233. package/packages/credential-store-os/src/store.ts +196 -0
  234. package/packages/deck-track/README.md +52 -0
  235. package/packages/deck-track/package.json +35 -0
  236. package/packages/deck-track/preview/DepthStack.png +0 -0
  237. package/packages/deck-track/src/activation.ts +32 -0
  238. package/packages/deck-track/src/author.ts +217 -0
  239. package/packages/deck-track/src/component.ts +86 -0
  240. package/packages/deck-track/src/fragment.ts +148 -0
  241. package/packages/deck-track/src/index.ts +16 -0
  242. package/packages/deck-track/src/lower.ts +370 -0
  243. package/packages/deck-track/src/manifest.ts +438 -0
  244. package/packages/deck-track/src/program.ts +367 -0
  245. package/packages/deck-track/src/surface.ts +286 -0
  246. package/packages/deck-track/src/types.ts +119 -0
  247. package/packages/deck-track-studio/README.md +3 -0
  248. package/packages/deck-track-studio/package.json +14 -0
  249. package/packages/deck-track-studio/src/activation.ts +7 -0
  250. package/packages/deck-track-studio/src/index.ts +134 -0
  251. package/packages/driver-node/README.md +23 -0
  252. package/packages/driver-node/package.json +18 -0
  253. package/packages/driver-node/src/driver.ts +616 -0
  254. package/packages/driver-node/src/index.ts +10 -0
  255. package/packages/driver-node/src/planning.ts +67 -0
  256. package/packages/driver-node/src/registry.ts +234 -0
  257. package/packages/driver-node/src/resources.ts +36 -0
  258. package/packages/driver-node/src/types.ts +69 -0
  259. package/packages/elaborator/README.md +74 -0
  260. package/packages/elaborator/package.json +16 -0
  261. package/packages/elaborator/src/author.ts +308 -0
  262. package/packages/elaborator/src/fragment.ts +505 -0
  263. package/packages/elaborator/src/frontend-facet.ts +30 -0
  264. package/packages/elaborator/src/index.ts +78 -0
  265. package/packages/elaborator/src/source.ts +608 -0
  266. package/packages/endpoint-kit/README.md +111 -0
  267. package/packages/endpoint-kit/package.json +14 -0
  268. package/packages/endpoint-kit/src/index.ts +488 -0
  269. package/packages/estimate/README.md +32 -0
  270. package/packages/estimate/package.json +20 -0
  271. package/packages/estimate/src/activation.ts +11 -0
  272. package/packages/estimate/src/index.ts +16 -0
  273. package/packages/estimate/src/manifest.ts +34 -0
  274. package/packages/estimate/src/policy.ts +70 -0
  275. package/packages/estimate/src/program.ts +196 -0
  276. package/packages/estimate/src/types.ts +15 -0
  277. package/packages/film/README.md +49 -0
  278. package/packages/film/package.json +34 -0
  279. package/packages/film/src/activation.ts +16 -0
  280. package/packages/film/src/component.ts +61 -0
  281. package/packages/film/src/fragment.ts +83 -0
  282. package/packages/film/src/index.ts +11 -0
  283. package/packages/film/src/manifest.ts +152 -0
  284. package/packages/film/src/program.ts +110 -0
  285. package/packages/film/src/recipe.ts +24 -0
  286. package/packages/film/src/surface.ts +146 -0
  287. package/packages/film/src/types.ts +26 -0
  288. package/packages/film-studio/package.json +16 -0
  289. package/packages/film-studio/src/activation.ts +8 -0
  290. package/packages/film-studio/src/index.ts +17 -0
  291. package/packages/fonts-open/README.md +77 -0
  292. package/packages/fonts-open/package.json +130 -0
  293. package/packages/fonts-open/src/activation.ts +30 -0
  294. package/packages/fonts-open/src/catalog.ts +317 -0
  295. package/packages/fonts-open/src/index.ts +13 -0
  296. package/packages/fonts-open/src/manifest.ts +83 -0
  297. package/packages/fonts-open/src/surface.ts +239 -0
  298. package/packages/generation/README.md +19 -0
  299. package/packages/generation/package.json +23 -0
  300. package/packages/generation/src/activation.ts +9 -0
  301. package/packages/generation/src/component.ts +77 -0
  302. package/packages/generation/src/identity.ts +80 -0
  303. package/packages/generation/src/index.ts +79 -0
  304. package/packages/generation/src/manifest.ts +65 -0
  305. package/packages/generation/src/mapping.ts +231 -0
  306. package/packages/generation/src/ports.ts +222 -0
  307. package/packages/generation/src/request.ts +427 -0
  308. package/packages/generation/src/schema.ts +62 -0
  309. package/packages/generation/src/types.ts +17 -0
  310. package/packages/gpt-image/README.md +54 -0
  311. package/packages/gpt-image/package.json +34 -0
  312. package/packages/gpt-image/src/activation.ts +39 -0
  313. package/packages/gpt-image/src/fragment.ts +101 -0
  314. package/packages/gpt-image/src/index.ts +203 -0
  315. package/packages/gpt-image/src/surface.ts +194 -0
  316. package/packages/gpt-image-kits/README.md +44 -0
  317. package/packages/gpt-image-kits/kits/phone-ugc-v1.svs +34 -0
  318. package/packages/gpt-image-kits/package.json +15 -0
  319. package/packages/grok-imagine/README.md +21 -0
  320. package/packages/grok-imagine/package.json +21 -0
  321. package/packages/grok-imagine/src/activation.ts +29 -0
  322. package/packages/grok-imagine/src/index.ts +174 -0
  323. package/packages/grok-imagine/src/surface.ts +149 -0
  324. package/packages/host/README.md +5 -0
  325. package/packages/host/package.json +10 -0
  326. package/packages/host/src/facet.ts +6 -0
  327. package/packages/host/src/frontend.ts +56 -0
  328. package/packages/host/src/index.ts +9 -0
  329. package/packages/hyperframes/README.md +69 -0
  330. package/packages/hyperframes/package.json +36 -0
  331. package/packages/hyperframes/src/activation.ts +8 -0
  332. package/packages/hyperframes/src/browser-program.ts +79 -0
  333. package/packages/hyperframes/src/component.ts +32 -0
  334. package/packages/hyperframes/src/document.ts +827 -0
  335. package/packages/hyperframes/src/fragment.ts +32 -0
  336. package/packages/hyperframes/src/index.ts +13 -0
  337. package/packages/hyperframes/src/manifest.ts +67 -0
  338. package/packages/hyperframes/src/project.ts +118 -0
  339. package/packages/hyperframes/src/text.ts +1179 -0
  340. package/packages/hyperframes/src/types.ts +38 -0
  341. package/packages/image-compose/README.md +25 -0
  342. package/packages/image-compose/package.json +18 -0
  343. package/packages/image-compose/src/activation.ts +21 -0
  344. package/packages/image-compose/src/component.ts +100 -0
  345. package/packages/image-compose/src/fragment.ts +54 -0
  346. package/packages/image-compose/src/index.ts +10 -0
  347. package/packages/image-compose/src/manifest.ts +119 -0
  348. package/packages/image-compose/src/program.ts +75 -0
  349. package/packages/image-compose/src/surface.ts +83 -0
  350. package/packages/image-compose/src/types.ts +22 -0
  351. package/packages/image-transform/README.md +29 -0
  352. package/packages/image-transform/package.json +21 -0
  353. package/packages/image-transform/src/activation.ts +33 -0
  354. package/packages/image-transform/src/component.ts +67 -0
  355. package/packages/image-transform/src/fragment.ts +25 -0
  356. package/packages/image-transform/src/index.ts +13 -0
  357. package/packages/image-transform/src/manifest.ts +209 -0
  358. package/packages/image-transform/src/program.ts +23 -0
  359. package/packages/image-transform/src/surface.ts +216 -0
  360. package/packages/image-transform/src/types.ts +20 -0
  361. package/packages/interview-emoji-reveal/README.md +39 -0
  362. package/packages/interview-emoji-reveal/package.json +23 -0
  363. package/packages/interview-emoji-reveal/preview/Track.png +0 -0
  364. package/packages/interview-emoji-reveal/src/activation.ts +14 -0
  365. package/packages/interview-emoji-reveal/src/component.ts +45 -0
  366. package/packages/interview-emoji-reveal/src/fragment.ts +62 -0
  367. package/packages/interview-emoji-reveal/src/index.ts +16 -0
  368. package/packages/interview-emoji-reveal/src/manifest.ts +174 -0
  369. package/packages/interview-emoji-reveal/src/program.ts +242 -0
  370. package/packages/interview-emoji-reveal/src/style.ts +47 -0
  371. package/packages/interview-emoji-reveal/src/surface.ts +110 -0
  372. package/packages/interview-emoji-reveal/src/types.ts +52 -0
  373. package/packages/markup/README.md +81 -0
  374. package/packages/markup/package.json +16 -0
  375. package/packages/markup/src/element.ts +39 -0
  376. package/packages/markup/src/error.ts +20 -0
  377. package/packages/markup/src/frontend.ts +518 -0
  378. package/packages/markup/src/host-facet.ts +115 -0
  379. package/packages/markup/src/index.ts +25 -0
  380. package/packages/markup/src/registry.ts +83 -0
  381. package/packages/markup/src/syntax.ts +271 -0
  382. package/packages/markup/src/types.ts +246 -0
  383. package/packages/media/README.md +37 -0
  384. package/packages/media/package.json +19 -0
  385. package/packages/media/src/activation.ts +38 -0
  386. package/packages/media/src/component.ts +16 -0
  387. package/packages/media/src/frame-range.ts +33 -0
  388. package/packages/media/src/identity.ts +227 -0
  389. package/packages/media/src/index.ts +15 -0
  390. package/packages/media/src/manifest.ts +122 -0
  391. package/packages/media/src/render.ts +140 -0
  392. package/packages/media/src/schema.ts +69 -0
  393. package/packages/media/src/surface.ts +150 -0
  394. package/packages/media/src/types.ts +121 -0
  395. package/packages/media-execution/README.md +28 -0
  396. package/packages/media-execution/package.json +17 -0
  397. package/packages/media-execution/src/execute.ts +1322 -0
  398. package/packages/media-execution/src/index.ts +16 -0
  399. package/packages/media-execution/src/probe.ts +315 -0
  400. package/packages/media-execution/src/surface.ts +286 -0
  401. package/packages/media-execution/src/toolchain.ts +81 -0
  402. package/packages/media-execution/src/webp.ts +200 -0
  403. package/packages/media-pipeline/README.md +113 -0
  404. package/packages/media-pipeline/package.json +27 -0
  405. package/packages/media-pipeline/src/activation.ts +47 -0
  406. package/packages/media-pipeline/src/audio-plan.ts +113 -0
  407. package/packages/media-pipeline/src/component.ts +373 -0
  408. package/packages/media-pipeline/src/fragment.ts +167 -0
  409. package/packages/media-pipeline/src/index.ts +46 -0
  410. package/packages/media-pipeline/src/manifest.ts +653 -0
  411. package/packages/media-pipeline/src/operations.ts +248 -0
  412. package/packages/media-pipeline/src/selection.ts +110 -0
  413. package/packages/media-pipeline/src/surface.ts +389 -0
  414. package/packages/media-pipeline/src/types.ts +175 -0
  415. package/packages/media-track/README.md +197 -0
  416. package/packages/media-track/package.json +29 -0
  417. package/packages/media-track/preview/Track.png +0 -0
  418. package/packages/media-track/preview/build.svrun +5 -0
  419. package/packages/media-track/preview/flush.png +0 -0
  420. package/packages/media-track/preview/preview.svml +47 -0
  421. package/packages/media-track/preview/recipes.svs +23 -0
  422. package/packages/media-track/preview/rounded.png +0 -0
  423. package/packages/media-track/src/activation.ts +20 -0
  424. package/packages/media-track/src/author.ts +317 -0
  425. package/packages/media-track/src/component.ts +162 -0
  426. package/packages/media-track/src/fragment.ts +57 -0
  427. package/packages/media-track/src/index.ts +65 -0
  428. package/packages/media-track/src/layers.ts +308 -0
  429. package/packages/media-track/src/lower.ts +335 -0
  430. package/packages/media-track/src/manifest.ts +624 -0
  431. package/packages/media-track/src/motion.ts +387 -0
  432. package/packages/media-track/src/performance.ts +37 -0
  433. package/packages/media-track/src/presentation.ts +35 -0
  434. package/packages/media-track/src/program.ts +565 -0
  435. package/packages/media-track/src/sampling.ts +118 -0
  436. package/packages/media-track/src/sequence.ts +403 -0
  437. package/packages/media-track/src/sounds.ts +71 -0
  438. package/packages/media-track/src/surface.ts +668 -0
  439. package/packages/media-track/src/types.ts +311 -0
  440. package/packages/media-track-studio/README.md +3 -0
  441. package/packages/media-track-studio/package.json +15 -0
  442. package/packages/media-track-studio/src/activation.ts +7 -0
  443. package/packages/media-track-studio/src/index.ts +235 -0
  444. package/packages/mimo-speech/README.md +33 -0
  445. package/packages/mimo-speech/package.json +21 -0
  446. package/packages/mimo-speech/src/activation.ts +32 -0
  447. package/packages/mimo-speech/src/fragment.ts +11 -0
  448. package/packages/mimo-speech/src/index.ts +160 -0
  449. package/packages/mimo-speech/src/surface.ts +193 -0
  450. package/packages/minimax-h3/README.md +21 -0
  451. package/packages/minimax-h3/package.json +21 -0
  452. package/packages/minimax-h3/src/activation.ts +14 -0
  453. package/packages/minimax-h3/src/index.ts +188 -0
  454. package/packages/minimax-h3/src/surface.ts +87 -0
  455. package/packages/model-kit/README.md +52 -0
  456. package/packages/model-kit/package.json +19 -0
  457. package/packages/model-kit/src/index.ts +728 -0
  458. package/packages/nano-banana/README.md +23 -0
  459. package/packages/nano-banana/package.json +21 -0
  460. package/packages/nano-banana/src/activation.ts +14 -0
  461. package/packages/nano-banana/src/index.ts +172 -0
  462. package/packages/nano-banana/src/surface.ts +120 -0
  463. package/packages/narrative/README.md +7 -0
  464. package/packages/narrative/package.json +17 -0
  465. package/packages/narrative/src/activation.ts +7 -0
  466. package/packages/narrative/src/component.ts +33 -0
  467. package/packages/narrative/src/identity.ts +131 -0
  468. package/packages/narrative/src/index.ts +11 -0
  469. package/packages/narrative/src/manifest.ts +30 -0
  470. package/packages/narrative/src/schema.ts +89 -0
  471. package/packages/narrative/src/types.ts +141 -0
  472. package/packages/package-loader-node/README.md +23 -0
  473. package/packages/package-loader-node/package.json +15 -0
  474. package/packages/package-loader-node/src/contribution.ts +97 -0
  475. package/packages/package-loader-node/src/distribution-resolution.ts +146 -0
  476. package/packages/package-loader-node/src/index.ts +27 -0
  477. package/packages/package-loader-node/src/loader.ts +301 -0
  478. package/packages/package-loader-node/src/location.ts +279 -0
  479. package/packages/package-loader-node/src/types.ts +60 -0
  480. package/packages/program-space/README.md +20 -0
  481. package/packages/program-space/package.json +17 -0
  482. package/packages/program-space/src/activation.ts +19 -0
  483. package/packages/program-space/src/index.ts +107 -0
  484. package/packages/program-space/src/surface.ts +55 -0
  485. package/packages/protocol/README.md +11 -0
  486. package/packages/protocol/package.json +10 -0
  487. package/packages/protocol/src/build-id.ts +52 -0
  488. package/packages/protocol/src/build.ts +265 -0
  489. package/packages/protocol/src/canonical.ts +37 -0
  490. package/packages/protocol/src/error.ts +11 -0
  491. package/packages/protocol/src/identity.ts +59 -0
  492. package/packages/protocol/src/index.ts +9 -0
  493. package/packages/protocol/src/module.ts +67 -0
  494. package/packages/protocol/src/value.ts +88 -0
  495. package/packages/provider-hyperframes-aws-lambda/README.md +30 -0
  496. package/packages/provider-hyperframes-aws-lambda/package.json +30 -0
  497. package/packages/provider-hyperframes-aws-lambda/src/activation.ts +97 -0
  498. package/packages/provider-hyperframes-aws-lambda/src/client.ts +114 -0
  499. package/packages/provider-hyperframes-aws-lambda/src/index.ts +21 -0
  500. package/packages/provider-hyperframes-aws-lambda/src/provider.ts +522 -0
  501. package/packages/provider-hyperframes-local/README.md +129 -0
  502. package/packages/provider-hyperframes-local/package.json +34 -0
  503. package/packages/provider-hyperframes-local/src/activation.ts +107 -0
  504. package/packages/provider-hyperframes-local/src/capture-process.ts +110 -0
  505. package/packages/provider-hyperframes-local/src/capture-worker.ts +17 -0
  506. package/packages/provider-hyperframes-local/src/capture.ts +184 -0
  507. package/packages/provider-hyperframes-local/src/index.ts +10 -0
  508. package/packages/provider-hyperframes-local/src/options.ts +19 -0
  509. package/packages/provider-hyperframes-local/src/output.ts +73 -0
  510. package/packages/provider-hyperframes-local/src/process.ts +83 -0
  511. package/packages/provider-hyperframes-local/src/program.ts +58 -0
  512. package/packages/provider-hyperframes-local/src/provider.ts +62 -0
  513. package/packages/provider-hyperframes-local/src/render.ts +114 -0
  514. package/packages/provider-hyperframes-local/src/sampling.ts +89 -0
  515. package/packages/provider-hypihub/README.md +143 -0
  516. package/packages/provider-hypihub/package.json +26 -0
  517. package/packages/provider-hypihub/src/activation.ts +91 -0
  518. package/packages/provider-hypihub/src/index.ts +2 -0
  519. package/packages/provider-hypihub/src/mapping.ts +145 -0
  520. package/packages/provider-hypihub/src/oauth.ts +113 -0
  521. package/packages/provider-hypihub/src/provider.ts +566 -0
  522. package/packages/provider-hypihub/src/routes.ts +134 -0
  523. package/packages/provider-hypihub/src/upload.ts +402 -0
  524. package/packages/provider-image-opencv-local/README.md +16 -0
  525. package/packages/provider-image-opencv-local/package.json +27 -0
  526. package/packages/provider-image-opencv-local/runtime/raster_execute.py +299 -0
  527. package/packages/provider-image-opencv-local/src/activation.ts +61 -0
  528. package/packages/provider-image-opencv-local/src/deployment.ts +68 -0
  529. package/packages/provider-image-opencv-local/src/index.ts +2 -0
  530. package/packages/provider-image-opencv-local/src/program.ts +60 -0
  531. package/packages/provider-image-opencv-local/src/provider.ts +155 -0
  532. package/packages/provider-kie/README.md +134 -0
  533. package/packages/provider-kie/package.json +43 -0
  534. package/packages/provider-kie/src/activation.ts +71 -0
  535. package/packages/provider-kie/src/index.ts +10 -0
  536. package/packages/provider-kie/src/mapping.ts +182 -0
  537. package/packages/provider-kie/src/provider.ts +657 -0
  538. package/packages/provider-kie/src/routes.ts +150 -0
  539. package/packages/provider-media-local/README.md +58 -0
  540. package/packages/provider-media-local/package.json +28 -0
  541. package/packages/provider-media-local/src/activation.ts +65 -0
  542. package/packages/provider-media-local/src/index.ts +2 -0
  543. package/packages/provider-media-local/src/program.ts +19 -0
  544. package/packages/provider-media-local/src/provider.ts +150 -0
  545. package/packages/provider-whisperx-local/README.md +44 -0
  546. package/packages/provider-whisperx-local/package.json +27 -0
  547. package/packages/provider-whisperx-local/src/activation.ts +93 -0
  548. package/packages/provider-whisperx-local/src/index.ts +5 -0
  549. package/packages/provider-whisperx-local/src/program.ts +157 -0
  550. package/packages/provider-whisperx-local/src/provider.ts +191 -0
  551. package/packages/provider-xiaomi-mimo/README.md +32 -0
  552. package/packages/provider-xiaomi-mimo/package.json +24 -0
  553. package/packages/provider-xiaomi-mimo/src/activation.ts +57 -0
  554. package/packages/provider-xiaomi-mimo/src/index.ts +5 -0
  555. package/packages/provider-xiaomi-mimo/src/provider.ts +214 -0
  556. package/packages/ranking/README.md +67 -0
  557. package/packages/ranking/package.json +33 -0
  558. package/packages/ranking/preview/Column.svg +29 -0
  559. package/packages/ranking/preview/TierBoard.png +0 -0
  560. package/packages/ranking/preview/TierBoard.svg +36 -0
  561. package/packages/ranking/preview/TopThree.png +0 -0
  562. package/packages/ranking/src/activation.ts +38 -0
  563. package/packages/ranking/src/component.ts +271 -0
  564. package/packages/ranking/src/fragment.ts +206 -0
  565. package/packages/ranking/src/index.ts +26 -0
  566. package/packages/ranking/src/manifest.ts +807 -0
  567. package/packages/ranking/src/render.ts +698 -0
  568. package/packages/ranking/src/schedule.ts +895 -0
  569. package/packages/ranking/src/style.ts +272 -0
  570. package/packages/ranking/src/surface.ts +322 -0
  571. package/packages/ranking/src/tier.ts +176 -0
  572. package/packages/ranking/src/types.ts +277 -0
  573. package/packages/ranking-studio/README.md +3 -0
  574. package/packages/ranking-studio/package.json +14 -0
  575. package/packages/ranking-studio/src/activation.ts +7 -0
  576. package/packages/ranking-studio/src/index.ts +255 -0
  577. package/packages/raster/README.md +7 -0
  578. package/packages/raster/package.json +14 -0
  579. package/packages/raster/src/activation.ts +7 -0
  580. package/packages/raster/src/index.ts +7 -0
  581. package/packages/raster/src/manifest.ts +14 -0
  582. package/packages/raster/src/program.ts +128 -0
  583. package/packages/raster/src/schema.ts +53 -0
  584. package/packages/raster/src/types.ts +61 -0
  585. package/packages/render-hyperframes/README.md +58 -0
  586. package/packages/render-hyperframes/package.json +33 -0
  587. package/packages/render-hyperframes/src/activation.ts +18 -0
  588. package/packages/render-hyperframes/src/component.ts +37 -0
  589. package/packages/render-hyperframes/src/fragment.ts +73 -0
  590. package/packages/render-hyperframes/src/index.ts +6 -0
  591. package/packages/render-hyperframes/src/manifest.ts +100 -0
  592. package/packages/render-hyperframes/src/product.ts +29 -0
  593. package/packages/render-hyperframes/src/surface.ts +65 -0
  594. package/packages/resource-store-fs/README.md +13 -0
  595. package/packages/resource-store-fs/package.json +14 -0
  596. package/packages/resource-store-fs/src/index.ts +2 -0
  597. package/packages/resource-store-fs/src/store.ts +154 -0
  598. package/packages/resource-store-s3/README.md +15 -0
  599. package/packages/resource-store-s3/package.json +15 -0
  600. package/packages/resource-store-s3/src/client.ts +138 -0
  601. package/packages/resource-store-s3/src/index.ts +10 -0
  602. package/packages/resource-store-s3/src/store.ts +258 -0
  603. package/packages/run/README.md +23 -0
  604. package/packages/run/package.json +16 -0
  605. package/packages/run/src/candidate.ts +33 -0
  606. package/packages/run/src/facet.ts +59 -0
  607. package/packages/run/src/frontend-facet.ts +23 -0
  608. package/packages/run/src/frontend.ts +62 -0
  609. package/packages/run/src/graph.ts +65 -0
  610. package/packages/run/src/index.ts +33 -0
  611. package/packages/run/src/registry.ts +24 -0
  612. package/packages/run/src/resolve.ts +213 -0
  613. package/packages/run/src/types.ts +147 -0
  614. package/packages/run-markup/README.md +60 -0
  615. package/packages/run-markup/package.json +22 -0
  616. package/packages/run-markup/src/activation.ts +10 -0
  617. package/packages/run-markup/src/frontend.ts +16 -0
  618. package/packages/run-markup/src/index.ts +5 -0
  619. package/packages/run-markup/src/syntax.ts +304 -0
  620. package/packages/runtime/README.md +39 -0
  621. package/packages/runtime/package.json +15 -0
  622. package/packages/runtime/src/capacity.ts +51 -0
  623. package/packages/runtime/src/catalog.ts +30 -0
  624. package/packages/runtime/src/credentials.ts +124 -0
  625. package/packages/runtime/src/environment.ts +6 -0
  626. package/packages/runtime/src/execution.ts +125 -0
  627. package/packages/runtime/src/index.ts +24 -0
  628. package/packages/runtime/src/operations.ts +99 -0
  629. package/packages/runtime/src/scheduler.ts +281 -0
  630. package/packages/runtime/src/submission.ts +24 -0
  631. package/packages/runtime/src/types.ts +157 -0
  632. package/packages/runtime-host-node/README.md +25 -0
  633. package/packages/runtime-host-node/package.json +19 -0
  634. package/packages/runtime-host-node/src/index.ts +421 -0
  635. package/packages/runtime-host-node/src/packages.ts +158 -0
  636. package/packages/runtime-kit/README.md +42 -0
  637. package/packages/runtime-kit/package.json +16 -0
  638. package/packages/runtime-kit/src/index.ts +307 -0
  639. package/packages/runtime-kit/src/request-deadline.ts +17 -0
  640. package/packages/runtime-local/README.md +119 -0
  641. package/packages/runtime-local/package.json +33 -0
  642. package/packages/runtime-local/src/actions.ts +20 -0
  643. package/packages/runtime-local/src/config.ts +1229 -0
  644. package/packages/runtime-local/src/control.ts +120 -0
  645. package/packages/runtime-local/src/credentials.ts +61 -0
  646. package/packages/runtime-local/src/host.ts +174 -0
  647. package/packages/runtime-local/src/index.ts +36 -0
  648. package/packages/runtime-local/src/process-control.ts +59 -0
  649. package/packages/runtime-local/src/process-logs.ts +33 -0
  650. package/packages/runtime-local/src/programs.ts +441 -0
  651. package/packages/runtime-local/src/result-writer.ts +246 -0
  652. package/packages/runtime-local/src/runtime.ts +342 -0
  653. package/packages/runtime-local/src/types.ts +100 -0
  654. package/packages/runtime-local/src/worker-process.ts +343 -0
  655. package/packages/runtime-local/src/worker.ts +449 -0
  656. package/packages/screen-overlay/README.md +17 -0
  657. package/packages/screen-overlay/package.json +31 -0
  658. package/packages/screen-overlay/preview/Track.png +0 -0
  659. package/packages/screen-overlay/src/activation.ts +15 -0
  660. package/packages/screen-overlay/src/component.ts +20 -0
  661. package/packages/screen-overlay/src/fragment.ts +40 -0
  662. package/packages/screen-overlay/src/index.ts +7 -0
  663. package/packages/screen-overlay/src/manifest.ts +305 -0
  664. package/packages/screen-overlay/src/program.ts +321 -0
  665. package/packages/screen-overlay/src/surface.ts +90 -0
  666. package/packages/screen-overlay/src/types.ts +69 -0
  667. package/packages/screen-overlay-studio/README.md +3 -0
  668. package/packages/screen-overlay-studio/package.json +14 -0
  669. package/packages/screen-overlay-studio/src/activation.ts +7 -0
  670. package/packages/screen-overlay-studio/src/index.ts +80 -0
  671. package/packages/script/README.md +137 -0
  672. package/packages/script/package.json +22 -0
  673. package/packages/script/src/activation.ts +20 -0
  674. package/packages/script/src/edit.ts +174 -0
  675. package/packages/script/src/error.ts +13 -0
  676. package/packages/script/src/format.ts +83 -0
  677. package/packages/script/src/index.ts +20 -0
  678. package/packages/script/src/lexical.ts +133 -0
  679. package/packages/script/src/manifest.ts +95 -0
  680. package/packages/script/src/narrative.ts +232 -0
  681. package/packages/script/src/parser.ts +850 -0
  682. package/packages/script/src/surface.ts +132 -0
  683. package/packages/script/src/types.ts +125 -0
  684. package/packages/script-studio/package.json +13 -0
  685. package/packages/script-studio/src/activation.ts +8 -0
  686. package/packages/script-studio/src/index.ts +61 -0
  687. package/packages/seedance/README.md +19 -0
  688. package/packages/seedance/package.json +22 -0
  689. package/packages/seedance/src/activation.ts +38 -0
  690. package/packages/seedance/src/fragment.ts +46 -0
  691. package/packages/seedance/src/index.ts +329 -0
  692. package/packages/seedance/src/surface.ts +355 -0
  693. package/packages/seedance-kits/README.md +153 -0
  694. package/packages/seedance-kits/kits/broll-v1.svs +52 -0
  695. package/packages/seedance-kits/kits/call-v1.svs +55 -0
  696. package/packages/seedance-kits/kits/camera-reference-v1.svs +9 -0
  697. package/packages/seedance-kits/kits/motion-reference-v1.svs +9 -0
  698. package/packages/seedance-kits/kits/podcast-v1.svs +55 -0
  699. package/packages/seedance-kits/kits/speaker-v1.svs +136 -0
  700. package/packages/seedance-kits/kits/street-interview-v1.svs +49 -0
  701. package/packages/seedance-kits/package.json +24 -0
  702. package/packages/seedream/README.md +21 -0
  703. package/packages/seedream/package.json +21 -0
  704. package/packages/seedream/src/activation.ts +12 -0
  705. package/packages/seedream/src/index.ts +162 -0
  706. package/packages/seedream/src/surface.ts +84 -0
  707. package/packages/semantic-take-adjust/package.json +21 -0
  708. package/packages/semantic-take-adjust/src/activation.ts +22 -0
  709. package/packages/semantic-take-adjust/src/component.ts +31 -0
  710. package/packages/semantic-take-adjust/src/fragment.ts +24 -0
  711. package/packages/semantic-take-adjust/src/index.ts +12 -0
  712. package/packages/semantic-take-adjust/src/manifest.ts +57 -0
  713. package/packages/semantic-take-adjust/src/program.ts +49 -0
  714. package/packages/semantic-take-adjust/src/surface.ts +96 -0
  715. package/packages/semantic-take-adjust/src/types.ts +9 -0
  716. package/packages/semantic-track/README.md +21 -0
  717. package/packages/semantic-track/package.json +22 -0
  718. package/packages/semantic-track/src/activation.ts +8 -0
  719. package/packages/semantic-track/src/component.ts +24 -0
  720. package/packages/semantic-track/src/identity.ts +58 -0
  721. package/packages/semantic-track/src/index.ts +6 -0
  722. package/packages/semantic-track/src/location.ts +81 -0
  723. package/packages/semantic-track/src/manifest.ts +38 -0
  724. package/packages/semantic-track/src/projection.ts +71 -0
  725. package/packages/semantic-track/src/types.ts +26 -0
  726. package/packages/source/README.md +13 -0
  727. package/packages/source/package.json +13 -0
  728. package/packages/source/src/header.ts +80 -0
  729. package/packages/source/src/index.ts +17 -0
  730. package/packages/source/src/unit.ts +38 -0
  731. package/packages/spatial/README.md +77 -0
  732. package/packages/spatial/package.json +24 -0
  733. package/packages/spatial/src/activation.ts +43 -0
  734. package/packages/spatial/src/author.ts +59 -0
  735. package/packages/spatial/src/component.ts +45 -0
  736. package/packages/spatial/src/fragment.ts +36 -0
  737. package/packages/spatial/src/geometry.ts +238 -0
  738. package/packages/spatial/src/index.ts +37 -0
  739. package/packages/spatial/src/manifest.ts +341 -0
  740. package/packages/spatial/src/region-timeline.ts +69 -0
  741. package/packages/spatial/src/schema.ts +47 -0
  742. package/packages/spatial/src/surface.ts +319 -0
  743. package/packages/spatial/src/types.ts +101 -0
  744. package/packages/speech/README.md +16 -0
  745. package/packages/speech/package.json +19 -0
  746. package/packages/speech/src/activation.ts +7 -0
  747. package/packages/speech/src/component.ts +43 -0
  748. package/packages/speech/src/identity.ts +73 -0
  749. package/packages/speech/src/index.ts +6 -0
  750. package/packages/speech/src/manifest.ts +30 -0
  751. package/packages/speech/src/materialize.ts +103 -0
  752. package/packages/speech/src/schema.ts +42 -0
  753. package/packages/speech/src/types.ts +54 -0
  754. package/packages/speech-alignment/README.md +29 -0
  755. package/packages/speech-alignment/package.json +25 -0
  756. package/packages/speech-alignment/src/activation.ts +8 -0
  757. package/packages/speech-alignment/src/align.ts +235 -0
  758. package/packages/speech-alignment/src/component.ts +37 -0
  759. package/packages/speech-alignment/src/error.ts +9 -0
  760. package/packages/speech-alignment/src/index.ts +7 -0
  761. package/packages/speech-alignment/src/local.ts +64 -0
  762. package/packages/speech-alignment/src/locate.ts +473 -0
  763. package/packages/speech-alignment/src/manifest.ts +37 -0
  764. package/packages/speech-alignment/src/normalize.ts +79 -0
  765. package/packages/speech-alignment/src/types.ts +30 -0
  766. package/packages/speech-evidence/README.md +3 -0
  767. package/packages/speech-evidence/package.json +16 -0
  768. package/packages/speech-evidence/src/activation.ts +3 -0
  769. package/packages/speech-evidence/src/index.ts +102 -0
  770. package/packages/speech-track/README.md +51 -0
  771. package/packages/speech-track/package.json +28 -0
  772. package/packages/speech-track/preview/Track.png +0 -0
  773. package/packages/speech-track/src/activation.ts +19 -0
  774. package/packages/speech-track/src/component.ts +45 -0
  775. package/packages/speech-track/src/fragment.ts +74 -0
  776. package/packages/speech-track/src/index.ts +7 -0
  777. package/packages/speech-track/src/manifest.ts +73 -0
  778. package/packages/speech-track/src/program.ts +64 -0
  779. package/packages/speech-track/src/surface.ts +35 -0
  780. package/packages/speech-track/src/types.ts +6 -0
  781. package/packages/speech-track-studio/README.md +3 -0
  782. package/packages/speech-track-studio/package.json +14 -0
  783. package/packages/speech-track-studio/src/activation.ts +7 -0
  784. package/packages/speech-track-studio/src/index.ts +40 -0
  785. package/packages/store-sqlite/README.md +14 -0
  786. package/packages/store-sqlite/package.json +18 -0
  787. package/packages/store-sqlite/src/index.ts +2 -0
  788. package/packages/store-sqlite/src/store.ts +1101 -0
  789. package/packages/studio/README.md +125 -0
  790. package/packages/studio/index.html +10 -0
  791. package/packages/studio/package.json +50 -0
  792. package/packages/studio/src/build-library.ts +281 -0
  793. package/packages/studio/src/companion-assembly.ts +39 -0
  794. package/packages/studio/src/compile.ts +166 -0
  795. package/packages/studio/src/domain.ts +139 -0
  796. package/packages/studio/src/execute.ts +57 -0
  797. package/packages/studio/src/fallback-companions.ts +98 -0
  798. package/packages/studio/src/observe.ts +202 -0
  799. package/packages/studio/src/parameter-values.ts +81 -0
  800. package/packages/studio/src/parameters.ts +550 -0
  801. package/packages/studio/src/preview/render.ts +51 -0
  802. package/packages/studio/src/preview/runtime-shim.ts +184 -0
  803. package/packages/studio/src/programme.ts +276 -0
  804. package/packages/studio/src/run.ts +85 -0
  805. package/packages/studio/src/server.ts +725 -0
  806. package/packages/studio/src/session.ts +111 -0
  807. package/packages/studio/src/shared.ts +315 -0
  808. package/packages/studio/src/snapshot.ts +454 -0
  809. package/packages/studio/src/source-transaction.ts +57 -0
  810. package/packages/studio/src/storyboard.ts +133 -0
  811. package/packages/studio/src/studio-preflight.ts +198 -0
  812. package/packages/studio/src/studio-registry.ts +406 -0
  813. package/packages/studio/src/studio-trace.ts +136 -0
  814. package/packages/studio/src/style.css +1525 -0
  815. package/packages/studio/src/surface-preview.ts +35 -0
  816. package/packages/studio/src/temporal-graph.ts +227 -0
  817. package/packages/studio/src/ui/code.ts +450 -0
  818. package/packages/studio/src/ui/icons.ts +51 -0
  819. package/packages/studio/src/ui/library.ts +378 -0
  820. package/packages/studio/src/ui/main.ts +1001 -0
  821. package/packages/studio/src/ui/markers.ts +152 -0
  822. package/packages/studio/src/ui/material-preview.ts +176 -0
  823. package/packages/studio/src/ui/overlay.ts +144 -0
  824. package/packages/studio/src/ui/resize.ts +74 -0
  825. package/packages/studio/src/ui/selection.ts +178 -0
  826. package/packages/studio/src/ui/stage.ts +231 -0
  827. package/packages/studio/src/ui/syntax.ts +195 -0
  828. package/packages/studio/src/ui/timeline.ts +1041 -0
  829. package/packages/studio/src/ui/writeback.ts +10 -0
  830. package/packages/studio/src/ui/zoom.ts +129 -0
  831. package/packages/studio/start.ts +143 -0
  832. package/packages/studio-adapter/README.md +186 -0
  833. package/packages/studio-adapter/package.json +14 -0
  834. package/packages/studio-adapter/src/index.ts +850 -0
  835. package/packages/svs/README.md +37 -0
  836. package/packages/svs/package.json +21 -0
  837. package/packages/svs/src/activation.ts +11 -0
  838. package/packages/svs/src/format.ts +16 -0
  839. package/packages/svs/src/frontend.ts +33 -0
  840. package/packages/svs/src/index.ts +5 -0
  841. package/packages/svs/src/manifest.ts +17 -0
  842. package/packages/svs/src/parser.ts +279 -0
  843. package/packages/svs/src/types.ts +26 -0
  844. package/packages/temporal/README.md +31 -0
  845. package/packages/temporal/package.json +20 -0
  846. package/packages/temporal/src/activation.ts +9 -0
  847. package/packages/temporal/src/component.ts +68 -0
  848. package/packages/temporal/src/index.ts +110 -0
  849. package/packages/temporal/src/location.ts +67 -0
  850. package/packages/temporal/src/projection.ts +280 -0
  851. package/packages/temporal/src/rational.ts +80 -0
  852. package/packages/temporal/src/sample.ts +43 -0
  853. package/packages/temporal/src/schedule.ts +52 -0
  854. package/packages/temporal/src/types.ts +124 -0
  855. package/packages/temporal-markup/README.md +75 -0
  856. package/packages/temporal-markup/package.json +18 -0
  857. package/packages/temporal-markup/src/index.ts +537 -0
  858. package/packages/temporal-markup/src/space.ts +59 -0
  859. package/packages/text/README.md +59 -0
  860. package/packages/text/package.json +21 -0
  861. package/packages/text/src/activation.ts +33 -0
  862. package/packages/text/src/component.ts +72 -0
  863. package/packages/text/src/fragment.ts +57 -0
  864. package/packages/text/src/frontend.ts +39 -0
  865. package/packages/text/src/index.ts +27 -0
  866. package/packages/text/src/manifest.ts +170 -0
  867. package/packages/text/src/program.ts +418 -0
  868. package/packages/text/src/surface.ts +212 -0
  869. package/packages/text/src/svs.ts +189 -0
  870. package/packages/text/src/types.ts +82 -0
  871. package/packages/transport-aws-lambda/README.md +20 -0
  872. package/packages/transport-aws-lambda/package.json +14 -0
  873. package/packages/transport-aws-lambda/src/index.ts +131 -0
  874. package/packages/typography-track/README.md +50 -0
  875. package/packages/typography-track/package.json +34 -0
  876. package/packages/typography-track/preview/Mask.png +0 -0
  877. package/packages/typography-track/preview/Track.png +0 -0
  878. package/packages/typography-track/src/activation.ts +36 -0
  879. package/packages/typography-track/src/component.ts +93 -0
  880. package/packages/typography-track/src/fragment.ts +30 -0
  881. package/packages/typography-track/src/index.ts +11 -0
  882. package/packages/typography-track/src/manifest.ts +556 -0
  883. package/packages/typography-track/src/program.ts +622 -0
  884. package/packages/typography-track/src/surface.ts +842 -0
  885. package/packages/typography-track/src/types.ts +109 -0
  886. package/packages/typography-track-studio/README.md +3 -0
  887. package/packages/typography-track-studio/package.json +14 -0
  888. package/packages/typography-track-studio/src/activation.ts +7 -0
  889. package/packages/typography-track-studio/src/index.ts +116 -0
  890. package/packages/validation/README.md +11 -0
  891. package/packages/validation/package.json +15 -0
  892. package/packages/validation/src/index.ts +100 -0
  893. package/packages/video-cli/README.md +181 -0
  894. package/packages/video-cli/package.json +37 -0
  895. package/packages/video-cli/src/capture.ts +174 -0
  896. package/packages/video-cli/src/cli.ts +109 -0
  897. package/packages/video-cli/src/compiler.ts +32 -0
  898. package/packages/video-cli/src/creation.ts +449 -0
  899. package/packages/video-cli/src/distribution.ts +88 -0
  900. package/packages/video-cli/src/index.ts +50 -0
  901. package/packages/video-cli/src/media.ts +701 -0
  902. package/packages/video-cli/src/package-selection.ts +34 -0
  903. package/packages/video-cli/src/process.ts +71 -0
  904. package/packages/video-cli/src/studio-distribution.ts +19 -0
  905. package/packages/video-cli/src/transcript.ts +71 -0
  906. package/packages/video-cli/src/vocabulary.ts +386 -0
  907. package/packages/visual-ir/README.md +36 -0
  908. package/packages/visual-ir/package.json +16 -0
  909. package/packages/visual-ir/src/activation.ts +3 -0
  910. package/packages/visual-ir/src/index.ts +7 -0
  911. package/packages/visual-ir/src/style.ts +222 -0
  912. package/packages/volcengine-matting/README.md +89 -0
  913. package/packages/volcengine-matting/package.json +16 -0
  914. package/packages/volcengine-matting/src/activation.ts +13 -0
  915. package/packages/volcengine-matting/src/index.ts +45 -0
  916. package/packages/volcengine-matting/src/surface.ts +48 -0
  917. package/packages/whisperx/README.md +34 -0
  918. package/packages/whisperx/package.json +28 -0
  919. package/packages/whisperx/src/activation.ts +18 -0
  920. package/packages/whisperx/src/component.ts +64 -0
  921. package/packages/whisperx/src/evidence.ts +69 -0
  922. package/packages/whisperx/src/fragment.ts +76 -0
  923. package/packages/whisperx/src/index.ts +14 -0
  924. package/packages/whisperx/src/manifest.ts +92 -0
  925. package/packages/whisperx/src/surface.ts +90 -0
  926. package/packages/whisperx/src/transcript.ts +97 -0
  927. package/packages/whisperx/src/types.ts +9 -0
  928. package/packages/workspace/README.md +4 -0
  929. package/packages/workspace/package.json +14 -0
  930. package/packages/workspace/src/index.ts +38 -0
  931. package/packages/workspace-fs-node/README.md +13 -0
  932. package/packages/workspace-fs-node/package.json +15 -0
  933. package/packages/workspace-fs-node/src/index.ts +6 -0
  934. package/packages/workspace-fs-node/src/workspace.ts +226 -0
  935. package/packages/yt-dlp/README.md +31 -0
  936. package/packages/yt-dlp/package.json +10 -0
  937. package/packages/yt-dlp/src/download.ts +104 -0
  938. package/packages/yt-dlp/src/index.ts +1 -0
  939. package/services/image-opencv/README.md +33 -0
  940. package/services/image-opencv/package.json +14 -0
  941. package/services/image-opencv/pyproject.toml +13 -0
  942. package/services/image-opencv/uv.lock +56 -0
  943. package/services/whisperx/README.md +82 -0
  944. package/services/whisperx/package.json +15 -0
  945. package/services/whisperx/pyproject.toml +26 -0
  946. package/services/whisperx/src/hypit_whisperx_service/__init__.py +6 -0
  947. package/services/whisperx/src/hypit_whisperx_service/__main__.py +29 -0
  948. package/services/whisperx/src/hypit_whisperx_service/application.py +88 -0
  949. package/services/whisperx/src/hypit_whisperx_service/audio.py +66 -0
  950. package/services/whisperx/src/hypit_whisperx_service/check.py +35 -0
  951. package/services/whisperx/src/hypit_whisperx_service/config.py +81 -0
  952. package/services/whisperx/src/hypit_whisperx_service/engine.py +173 -0
  953. package/services/whisperx/src/hypit_whisperx_service/prepare.py +19 -0
  954. package/services/whisperx/src/hypit_whisperx_service/resources.py +41 -0
  955. package/services/whisperx/src/hypit_whisperx_service/server.py +101 -0
  956. package/services/whisperx/uv.lock +3381 -0
  957. package/services/yt-dlp/README.md +19 -0
  958. package/services/yt-dlp/package.json +14 -0
  959. package/services/yt-dlp/pyproject.toml +13 -0
  960. package/services/yt-dlp/uv.lock +23 -0
  961. package/index.js +0 -1
@@ -0,0 +1,197 @@
1
+ # `@hypit/media-track`
2
+
3
+ The Track Surface accepts `semantic={speech.semantic}` or `space={animation}`. Semantic context
4
+ resolves Script Selections and Moments; authored space supports clock-based animation. Shared `at`
5
+ inputs accept a Moment or a time such as `2s`; `at` with `for` produces a Window where required.
6
+ `Performance` still needs `semantic`, which supplies its ordered prepared footage.
7
+
8
+ Place images, prepared video or compositable surfaces over the semantic timeline. B-roll is a common
9
+ use: the picture can illustrate a phrase while the A-roll's speech continues. Performance presents the semantic material as a full picture, inset or cutout.
10
+ Media Items own independently timed pictures;
11
+ a Sequence owns one visual slot whose Members replace each other through Handoffs.
12
+
13
+ The Markup Track takes `canvas` and a time source (`semantic` or `space`). Its Surface projects
14
+ authored Selections, Moments, Segments or clock expressions into Windows and Instants. The component
15
+ consumes those projected times with Frames, media and appearance; its Fragment receives ProgramSpace.
16
+
17
+ Moving media enters after [normalization](../media-pipeline/README.md), with the intended streams and
18
+ frame clock already selected. Still images use their actual intrinsic Extent. Placement, fitting,
19
+ sampling and motion remain separate authored choices.
20
+
21
+ ## Display a semantic performance
22
+
23
+ ```svml
24
+ <media:Track id="performance" semantic={speech.semantic} canvas={canvas}>
25
+ <media:Performance during="program" frame={layout.full}
26
+ appearance={look.performance}/>
27
+ </media:Track>
28
+ ```
29
+
30
+ `Performance` displays the prepared material in its enclosing Track's `semantic` input. `during`
31
+ selects the whole program, a Segment or a Selection; the other Window forms work as usual. One
32
+ Performance can span any number of Takes. Each plays at its original program position: if a Take
33
+ begins at program second 5, a Window from seconds 7 to 10 shows source seconds 2 to 5. An audio-only
34
+ interval contributes no picture. The presentation shares one frame, appearance and lifecycle across
35
+ Take boundaries.
36
+
37
+ Its appearance Recipe needs `stack-order` and can set fit, crop anchors, opacity, filters, clipping,
38
+ padding, border, shadow and frame paint. `motion` moves the framed presentation, and `Sampling`
39
+ children transform the fitted picture over the complete selected Window, without restarting at
40
+ Take boundaries. `Sound` children attach prepared effects to its entrance or exit. Its original
41
+ sound is independently available as `speech.audio` for Film. Use an Item with direct `media` for
42
+ independent playback or source trim; Performance preserves the semantic assembly's source timing.
43
+
44
+ ```svml
45
+ <media:Performance during={story.segment.explanation} frame={layout.full}
46
+ appearance={look.performance}>
47
+ <media:Sampling at="start" zoom="1"/>
48
+ <media:Sampling at="end" zoom="1.08"/>
49
+ </media:Performance>
50
+ ```
51
+
52
+ This excerpt belongs inside the same Media Track. Its selected passage determines the appearance
53
+ interval, while the two Sampling keys direct a gradual push-in inside the unchanged Frame.
54
+
55
+ For a fixed card, full picture, circle or cutout this is ordinary Media presentation. If video and
56
+ graphics must resize, mask or move together, write a project component that owns that relationship.
57
+ `projectSemanticMedia` supplies the same material spans to its drawing function. The component can
58
+ use a browser program from `@hypit/hypit/hyperframes` while Caption and independent overlays remain peers.
59
+
60
+ ## Place the frame, then fit its contents
61
+
62
+ An Item or Sequence owns an outer destination `frame`. Each sampled source has a fitted content
63
+ rectangle calculated from its intrinsic extent and its fit Recipe. Border and padding reduce the
64
+ fitting area inside the outer Frame. Source dimensions stay factual; the calculated rectangle can
65
+ be smaller or larger than the fitting area.
66
+
67
+ [Spatial](../spatial/README.md#destination-and-fitted-content) owns the seven fit modes, the two
68
+ alignment points, pixel offsets and bounded/free placement. `frame-x` / `frame-y` are alignment
69
+ fractions in that fitting area. Move the whole visual by changing the `frame` reference; choose
70
+ which part of the picture is visible through the fit and content alignment.
71
+
72
+ The appearance Recipe separates the outer presentation from the sampled picture:
73
+
74
+ | Properties | What they affect |
75
+ | --- | --- |
76
+ | `stack-order` | Absolute visual stacking of the Item or Sequence; required |
77
+ | `clip` | Outer clipping: `frame` (default), `rounded`, or `none` |
78
+ | `radius` | Pixel radius when `clip: rounded`; half a square Frame's side gives a circle |
79
+ | `padding` | Fitting inset, as quoted pixel values: `"12"`, `"8 12"`, or `"8 12 16 12"` |
80
+ | `border-width`, `border-style`, `border-color` | Border inside the outer Frame; a positive width requires a color |
81
+ | `shadows` | Frame shadows, as quoted `x y blur spread color` entries separated by semicolons |
82
+ | `frame-paint` | Solid or gradient backing behind the content |
83
+ | `fit`, alignment and fit offsets | The scaled source's rectangle |
84
+ | `opacity`, `blur`, `brightness`, `contrast`, `saturation` | The sampled picture, independently of frame decoration |
85
+
86
+ For example, this is a rounded card with an inset picture and a painted backing:
87
+
88
+ ```svs
89
+ media.card {
90
+ stack-order: 40;
91
+ fit: contain;
92
+ clip: rounded;
93
+ radius: 24;
94
+ padding: "12";
95
+ border-width: 2;
96
+ border-color: #B9A88B;
97
+ frame-paint: #25332D;
98
+ shadows: "0 8 20 0 #00000055";
99
+ }
100
+ ```
101
+
102
+ The outer size includes the border; border and padding both reduce the fitting area. The clip
103
+ follows the outer Frame, so a smaller contained picture may retain square corners inside a rounded
104
+ card. A rounded picture with a flush edge uses a Frame matching its displayed aspect. `clip: none`
105
+ allows source overflow; fitting alone supplies no mask. An authored spatial Path can be bound to
106
+ an Item or Sequence with `clip={path}` in place of the Recipe's clip choice. Path coordinates are in
107
+ Canvas pixels.
108
+
109
+ A `motion` Recipe transforms the framed unit, including its backing and decoration. `Sampling`
110
+ transforms the fitted source inside it, around the source rectangle's center. It accepts `zoom`,
111
+ pixel `x` / `y`, degree `rotate`, and `easing`, at `start`, `end`, or intermediate percentages. Supply
112
+ keys spanning start to end. Sampling runs after fitting and is not constrained by `fit-constraint`;
113
+ a deliberate pan or rotation may reveal the backing or lower layers.
114
+
115
+ ## Author Items and replacement Sequences
116
+
117
+ These excerpts assume the imports, named assets, normalized media, Frames, Extents, Script,
118
+ SemanticTrack and Recipes are already declared:
119
+
120
+ ```svml
121
+ <media-track:Track id="coverage" semantic={speech.semantic} canvas={vertical}>
122
+ <media-track:Item image={photo} extent={photo-extent} frame={full-frame}
123
+ during={story.selection.example} appearance={recipes.media.still}/>
124
+ <media-track:Item media={clip-media.media} frame={full-frame}
125
+ during={story.selection.proof} appearance={recipes.media.clip}/>
126
+ </media-track:Track>
127
+ ```
128
+
129
+ One Item selects exactly one direct source form (`image` + `extent`, prepared `media`, or `surface`)
130
+ or declares ordered `Paint`/`Layer` children. The current Surface has no raw `video` attribute.
131
+ Appearance owns stack order, fit, clipping and source sampling; a `motion` Recipe owns lifecycle
132
+ movement. `Sampling` children can move the sampled content inside the Frame independently.
133
+
134
+ ```svml
135
+ <media-track:Track id="cards" semantic={speech.semantic} canvas={vertical}>
136
+ <media-track:Sequence id="steps" frame={card-frame} appearance={recipes.media.card}
137
+ until={story.selection.demo} until-boundary="end">
138
+ <media-track:Member id="one" image={first} extent={card-extent}
139
+ at={story.moment.first}/>
140
+ <media-track:Member id="two" image={second} extent={card-extent}
141
+ at={story.moment.second}/>
142
+ <media-track:Handoff id="one-two" from="one" transition={recipes.transition.cards}/>
143
+ </media-track:Sequence>
144
+ </media-track:Track>
145
+ ```
146
+
147
+ Members have ordered activation Instants; the next activation ends the preceding logical phase,
148
+ and the Sequence has an explicit terminal Instant. Each adjacent pair needs a Handoff, including
149
+ an explicit `cut` when no blended transition is intended. `from` names the outgoing Member; its
150
+ successor is the incoming Member. A Handoff's duration and boundary ratio place the visual transition
151
+ around that logical boundary without moving the semantic event.
152
+
153
+ For layered content, `Paint` and `Layer` children draw in Source order inside the shared Frame. Give
154
+ each Layer its own fit/sample Recipe. A Member appearance override selects its source fit, sampling
155
+ and frame paint; the Sequence still owns the outer Frame, clip, padding, border, shadow, motion and
156
+ stack order. Separate Items supply independently placed Frames.
157
+
158
+ An Item or Member can select audio using `source-audio`: `content` for its direct source, or a child
159
+ Layer id for layered content. This is opt-in. `Sound` can instead attach normalized audio to Item
160
+ `at="enter"` / `at="exit"`, or to a Sequence `handoff="one-two"`. The Track publishes `.visual` and
161
+ `.program`, plus `.audio` when sound is present; Film must include the desired peer outputs.
162
+
163
+ ## Item windows and source playback
164
+
165
+ The Item's projected Window determines when it is active in the program. A timed sample's Recipe
166
+ separately controls which source frames it occupies there. `playback` defaults to `once-start`:
167
+
168
+ | Value | Source occupancy inside the Window |
169
+ | --- | --- |
170
+ | `once-start` | Play at native rate from the source start. Truncate if the Window is shorter; draw no source after it ends if the Window is longer. |
171
+ | `once-end` | Align native playback to the Window end. Use the source tail if the Window is shorter; leave the initial excess unoccupied if longer. |
172
+ | `hold-start` | Play from the start, then hold the last source frame over any remaining Window. |
173
+ | `hold-end` | Align playback to the end, holding the first source frame over any initial excess. |
174
+ | `loop-start` / `loop-end` | Repeat at native rate, aligning the loop phase to the start or end. |
175
+ | `stretch` | Retime the selected source range across the full Window. |
176
+
177
+ `trim-start` and `trim-end` are a pair of integer source-frame boundaries, with an exclusive end.
178
+ Omit both to use the full source. The playback rules apply to the trimmed range when present.
179
+ For `stretch`, the source-frame advance is `sourceLength / targetLength`. For native playback, moving
180
+ media has already been normalized to ProgramSpace's frame rate, so one program frame advances one
181
+ source frame. These are source sampling choices; they do not move a Selection's semantic boundaries.
182
+
183
+ A two-second Item can use the beginning of a four-second generated clip without requesting a
184
+ model-invalid two-second generation. Conversely, an Item active longer than its source must choose
185
+ whether a return to the layer below, a hold, a loop or retiming is intended. No mode is universally
186
+ correct for B-roll. Extending a Window with `once-start` does not extend the underlying video.
187
+
188
+ Durationless still images refuse `playback`, `trim-start` and `trim-end`. Their spatial placement and
189
+ Item Window are sufficient. A static B-roll picture does not need conversion to a generated clip.
190
+
191
+ Visual and source-audio projections remain separate. Selecting source audio applies the corresponding
192
+ sampling policy to that audio; a held visual frame does not synthesize held sound. A silent B-roll
193
+ layer can cover a speaking Track while the latter's audio continues unchanged.
194
+
195
+ For adjacent semantic Items that should have no uncovered pause, author touching Selection boundaries
196
+ using Script affinity. Also inspect opacity transitions and source exhaustion: touching Windows alone
197
+ do not guarantee opaque visual coverage.
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@hypit/media-track",
3
+ "version": "0.0.0-dev",
4
+ "license": "SEE LICENSE IN LICENSE",
5
+ "private": true,
6
+ "type": "module",
7
+ "exports": {
8
+ ".": "./src/index.ts"
9
+ },
10
+ "hypit": {
11
+ "activation": "./src/activation.ts"
12
+ },
13
+ "dependencies": {
14
+ "@hypit/artifact": "workspace:*",
15
+ "@hypit/component-kit": "workspace:*",
16
+ "@hypit/composition": "workspace:*",
17
+ "@hypit/elaborator": "workspace:*",
18
+ "@hypit/media": "workspace:*",
19
+ "@hypit/narrative": "workspace:*",
20
+ "@hypit/program-space": "workspace:*",
21
+ "@hypit/protocol": "workspace:*",
22
+ "@hypit/semantic-track": "workspace:*",
23
+ "@hypit/spatial": "workspace:*",
24
+ "@hypit/svs": "workspace:*",
25
+ "@hypit/markup": "workspace:*",
26
+ "@hypit/temporal": "workspace:*",
27
+ "@hypit/temporal-markup": "workspace:*"
28
+ }
29
+ }
@@ -0,0 +1,5 @@
1
+ <?svml using="@hypit/run-markup@1"?>
2
+ <svrun version="1">
3
+ <author source="./preview.svml"/>
4
+ <target output="final.video"/>
5
+ </svrun>
@@ -0,0 +1,47 @@
1
+ <?svml using="@hypit/markup@1"?>
2
+ <!-- A wordless catalogue composition using this package's two sample graphics.
3
+ The samples are the displayed content. Their frame treatments demonstrate fit,
4
+ padding, clipping and motion; build.svrun renders the same composition. -->
5
+ <svml>
6
+ <import from="@hypit/script@1"/>
7
+ <import as="media" from="@hypit/media@1"/>
8
+ <import as="pipeline" from="@hypit/media-pipeline@1"/>
9
+ <import as="speech" from="@hypit/speech-track@1"/>
10
+ <import as="whisperx" from="@hypit/whisperx@1"/>
11
+ <import as="media-track" from="@hypit/media-track@1"/>
12
+ <import as="space" from="@hypit/spatial@1"/>
13
+ <import as="program" from="@hypit/program-space@1"/>
14
+ <import as="film" from="@hypit/film@1"/>
15
+ <import as="render" from="@hypit/render-hyperframes@1"/>
16
+ <import as="recipes" source="./recipes.svs"/>
17
+
18
+ <script id="story"><empty></empty></script>
19
+ <space:Canvas id="vertical" width="720" height="1280"/>
20
+ <program:Clock id="clock" frame-rate="30"/>
21
+ <space:Frame id="full" within={vertical} left="0%" top="0%" right="100%" bottom="100%"/>
22
+ <space:Frame id="card-a" within={vertical}
23
+ left="8%" top="16%" right="92%" bottom="46%"/>
24
+ <space:Frame id="card-b" within={vertical}
25
+ left="12%" top="52%" right="88%" bottom="78%"/>
26
+ <space:Extent id="picture-size" width="640" height="360"/>
27
+ <media:Image id="picture-a" src="./rounded.png"/>
28
+ <media:Image id="picture-b" src="./flush.png"/>
29
+
30
+ <pipeline:StillVideo id="duration" source={picture-a} duration="5" clock={clock}/>
31
+ <pipeline:Normalize id="duration-media" source={duration.video} clock={clock}
32
+ video="primary-moving" audio="none" span-authority="video"/>
33
+ <whisperx:SemanticTake id="showcase-time" narrative={story}
34
+ segment={story.segment.empty} media={duration-media.media}/>
35
+ <speech:Track id="speech"><speech:Take source={showcase-time.take}/></speech:Track>
36
+
37
+ <media-track:Track id="showcase" semantic={speech.semantic} canvas={vertical}>
38
+ <media-track:Item id="rounded-card" image={picture-a} extent={picture-size} during="program"
39
+ frame={card-a} appearance={recipes.media.card} motion={recipes.motion.card}/>
40
+ <media-track:Item id="flush-card" image={picture-b} extent={picture-size} during="program"
41
+ frame={card-b} appearance={recipes.media.wide} motion={recipes.motion.card}/>
42
+ </media-track:Track>
43
+ <film:Film id="main" canvas={vertical} semantic={speech.semantic} appearance={recipes.film.vertical}>
44
+ <film:Track source={showcase.visual}/>
45
+ </film:Film>
46
+ <render:Video id="final" composition={main.composition} semantic={speech.semantic}/>
47
+ </svml>
@@ -0,0 +1,23 @@
1
+ <?svml using="@hypit/svs@1"?>
2
+
3
+ <sheet version="1">
4
+ media.performance { stack-order: 0; fit: cover; }
5
+ film.vertical { background: #09090B; }
6
+
7
+ /* Rounded and padded, so the painted content box is visibly inset from the
8
+ Placement Frame Studio draws as a guide. */
9
+ media.card {
10
+ stack-order: 40; fit: cover;
11
+ frame-paint: #16161d; clip: rounded; radius: 24; padding: 12 12;
12
+ }
13
+ /* Square and flush, for contrast with media.card. */
14
+ media.wide {
15
+ stack-order: 41; fit: cover;
16
+ frame-paint: #1d1620; clip: frame;
17
+ border-width: 2; border-color: #ee7b6255;
18
+ }
19
+ motion.card {
20
+ enter: slide; enter-frames: 5; enter-direction: up; enter-easing: ease-out;
21
+ exit: fade; exit-frames: 5; exit-easing: ease-in;
22
+ }
23
+ </sheet>
@@ -0,0 +1,20 @@
1
+ import { createMarkupSurfaceHostFacet } from "@hypit/markup";
2
+ import {
3
+ decodeMediaTrackSurface,
4
+ mediaTrackComponent,
5
+ mediaTrackManifest,
6
+ mediaTrackModuleRef,
7
+ mediaTrackMarkupSurfaces,
8
+ } from "./index.js";
9
+
10
+ export const hypitPackage = {
11
+ format: "hypit.node-package@1" as const,
12
+ modules: [{ manifest: mediaTrackManifest }],
13
+ components: [mediaTrackComponent],
14
+ hostFacets: [createMarkupSurfaceHostFacet({
15
+ module: mediaTrackModuleRef,
16
+ declaration: mediaTrackMarkupSurfaces.find((item) => item.name === "track")!,
17
+ handler: decodeMediaTrackSurface,
18
+ })],
19
+ };
20
+ export default hypitPackage;
@@ -0,0 +1,317 @@
1
+ import type { SvsRecipe } from "@hypit/svs";
2
+ import { decodeContentFitProperties } from "@hypit/spatial";
3
+ import type { ContentFit } from "@hypit/spatial";
4
+
5
+ import {
6
+ sealMediaPaintLayerSpec,
7
+ sealMediaSampleLayerSpec,
8
+ } from "./layers.js";
9
+ import { sealMediaItemSpec } from "./program.js";
10
+ import { sealMediaHandoffSpec, sealMediaSequenceSpec } from "./sequence.js";
11
+ import type {
12
+ MediaFramePresentation,
13
+ MediaHandoffSpec,
14
+ MediaItemSpec,
15
+ MediaLifecycleMotion,
16
+ MediaPaint,
17
+ MediaPaintLayerSpec,
18
+ MediaSampleLayerSpec,
19
+ MediaSampleAppearance,
20
+ MediaSequenceSpec,
21
+ MediaVisualOccupancy,
22
+ MediaVisualTrim,
23
+ } from "./types.js";
24
+
25
+ function fail(recipe: SvsRecipe, message: string): never {
26
+ throw new Error(`Media Recipe ${recipe.path} ${message}`);
27
+ }
28
+
29
+ function optionalNumber(recipe: SvsRecipe, name: string): number | undefined {
30
+ const value = recipe.properties[name];
31
+ if (value === undefined) return undefined;
32
+ if (typeof value !== "number" || !Number.isFinite(value)) fail(recipe, `${name} must be a finite number.`);
33
+ return value;
34
+ }
35
+
36
+ function number(recipe: SvsRecipe, name: string, fallback?: number): number {
37
+ const value = optionalNumber(recipe, name);
38
+ if (value === undefined && fallback !== undefined) return fallback;
39
+ if (value === undefined) fail(recipe, `requires ${name}.`);
40
+ return value;
41
+ }
42
+
43
+ function optionalString(recipe: SvsRecipe, name: string): string | undefined {
44
+ const value = recipe.properties[name];
45
+ if (value === undefined) return undefined;
46
+ if (typeof value !== "string" || value.trim().length === 0) fail(recipe, `${name} must be text.`);
47
+ return value.trim();
48
+ }
49
+
50
+ function string(recipe: SvsRecipe, name: string, fallback?: string): string {
51
+ const value = optionalString(recipe, name);
52
+ if (value === undefined && fallback !== undefined) return fallback;
53
+ if (value === undefined) fail(recipe, `requires ${name}.`);
54
+ return value;
55
+ }
56
+
57
+ function oneOf<T extends string>(recipe: SvsRecipe, name: string, values: readonly T[], fallback?: T): T {
58
+ const value = optionalString(recipe, name);
59
+ if (value === undefined && fallback !== undefined) return fallback;
60
+ if (value === undefined || !values.includes(value as T)) fail(recipe, `${name} must be ${values.join(" | ")}.`);
61
+ return value as T;
62
+ }
63
+
64
+ function assertKeys(recipe: SvsRecipe, allowed: readonly string[]): void {
65
+ const unknown = Object.keys(recipe.properties).filter((name) => !allowed.includes(name));
66
+ if (unknown.length > 0) fail(recipe, `does not accept ${unknown.join(", ")}.`);
67
+ }
68
+
69
+ function scalarList(recipe: SvsRecipe, name: string, allowed: readonly number[]): number[] {
70
+ const source = optionalString(recipe, name);
71
+ if (source === undefined) return [];
72
+ const values = source.split(/\s+/u).map(Number);
73
+ if (!allowed.includes(values.length) || values.some((value) => !Number.isFinite(value))) {
74
+ fail(recipe, `${name} requires ${allowed.join(" or ")} finite numbers.`);
75
+ }
76
+ return values;
77
+ }
78
+
79
+ function padding(recipe: SvsRecipe): MediaFramePresentation["padding"] {
80
+ const values = scalarList(recipe, "padding", [1, 2, 4]);
81
+ if (values.length === 0) return { topPx: 0, rightPx: 0, bottomPx: 0, leftPx: 0 };
82
+ if (values.length === 1) return { topPx: values[0]!, rightPx: values[0]!, bottomPx: values[0]!, leftPx: values[0]! };
83
+ if (values.length === 2) return { topPx: values[0]!, rightPx: values[1]!, bottomPx: values[0]!, leftPx: values[1]! };
84
+ return { topPx: values[0]!, rightPx: values[1]!, bottomPx: values[2]!, leftPx: values[3]! };
85
+ }
86
+
87
+ function gradientStops(recipe: SvsRecipe, source: string): readonly { readonly offset: number; readonly color: string }[] {
88
+ const stops = source.split(",").map((entry) => {
89
+ const match = /^(.+?)@((?:0(?:\.\d+)?)|(?:1(?:\.0+)?))$/u.exec(entry.trim());
90
+ if (match === null) fail(recipe, "gradient stops must be color@offset inside [0,1].");
91
+ return { color: match[1]!.trim(), offset: Number(match[2]) };
92
+ });
93
+ if (stops.length < 2) fail(recipe, "gradient requires at least two stops.");
94
+ return stops;
95
+ }
96
+
97
+ function paint(recipe: SvsRecipe, property = "paint"): MediaPaint {
98
+ const source = string(recipe, property);
99
+ const linear = /^linear\(([-+]?\d+(?:\.\d+)?);(.+)\)$/u.exec(source);
100
+ if (linear !== null) {
101
+ return { kind: "linear-gradient", angleDeg: Number(linear[1]), stops: gradientStops(recipe, linear[2]!) };
102
+ }
103
+ const radial = /^radial\(((?:0(?:\.\d+)?)|(?:1(?:\.0+)?)),((?:0(?:\.\d+)?)|(?:1(?:\.0+)?));(.+)\)$/u.exec(source);
104
+ if (radial !== null) {
105
+ return { kind: "radial-gradient", center: { x: Number(radial[1]), y: Number(radial[2]) }, stops: gradientStops(recipe, radial[3]!) };
106
+ }
107
+ return { kind: "solid", color: source };
108
+ }
109
+
110
+ function shadows(recipe: SvsRecipe): MediaFramePresentation["shadows"] {
111
+ const source = optionalString(recipe, "shadows");
112
+ if (source === undefined || source === "none") return [];
113
+ return source.split(";").map((entry) => {
114
+ const match = /^([-+]?\d+(?:\.\d+)?)\s+([-+]?\d+(?:\.\d+)?)\s+(\d+(?:\.\d+)?)\s+([-+]?\d+(?:\.\d+)?)\s+(.+)$/u.exec(entry.trim());
115
+ if (match === null) fail(recipe, "shadows entries require x y blur spread color.");
116
+ return {
117
+ offsetX: Number(match[1]), offsetY: Number(match[2]), blurPx: Number(match[3]),
118
+ spreadPx: Number(match[4]), color: match[5]!.trim(),
119
+ };
120
+ });
121
+ }
122
+
123
+ const FIT_KEYS = ["fit", "frame-x", "frame-y", "content-x", "content-y", "fit-offset-x", "fit-offset-y", "fit-constraint"] as const;
124
+ const SAMPLE_KEYS = ["opacity", "blur", "brightness", "contrast", "saturation", "playback", "trim-start", "trim-end"] as const;
125
+ const FRAME_KEYS = ["stack-order", "clip", "radius", "padding", "border-width", "border-style", "border-color", "shadows", "frame-paint"] as const;
126
+ const MOTION_KEYS = ["enter", "enter-frames", "enter-easing", "enter-direction", "enter-amount", "enter-origin", "sustain", "exit", "exit-frames", "exit-easing", "exit-direction", "exit-amount", "exit-origin"] as const;
127
+
128
+ export function decodeMediaFit(recipe: SvsRecipe): ContentFit {
129
+ return decodeContentFitProperties(recipe.properties, `Media Recipe ${recipe.path}`);
130
+ }
131
+
132
+ function occupancy(recipe: SvsRecipe): MediaVisualOccupancy {
133
+ switch (oneOf(recipe, "playback", ["once-start", "once-end", "hold-start", "hold-end", "loop-start", "loop-end", "stretch"] as const, "once-start")) {
134
+ case "once-start": return { mode: "once", align: "start" };
135
+ case "once-end": return { mode: "once", align: "end" };
136
+ case "hold-start": return { mode: "hold", align: "start" };
137
+ case "hold-end": return { mode: "hold", align: "end" };
138
+ case "loop-start": return { mode: "loop", align: "start" };
139
+ case "loop-end": return { mode: "loop", align: "end" };
140
+ case "stretch": return { mode: "stretch" };
141
+ }
142
+ }
143
+
144
+ function trim(recipe: SvsRecipe): MediaVisualTrim | undefined {
145
+ const startFrame = optionalNumber(recipe, "trim-start");
146
+ const endFrameExclusive = optionalNumber(recipe, "trim-end");
147
+ if (startFrame === undefined && endFrameExclusive === undefined) return undefined;
148
+ if (
149
+ startFrame === undefined
150
+ || endFrameExclusive === undefined
151
+ || !Number.isSafeInteger(startFrame)
152
+ || !Number.isSafeInteger(endFrameExclusive)
153
+ ) {
154
+ fail(recipe, "trim-start and trim-end must both be integer frames.");
155
+ }
156
+ return { startFrame, endFrameExclusive };
157
+ }
158
+
159
+ export function decodeMediaSampleSpec(
160
+ recipe: SvsRecipe,
161
+ id: string,
162
+ sourceKind: "still" | "timed" | "surface",
163
+ samplingMotion?: MediaSampleLayerSpec["samplingMotion"],
164
+ combinedItemAppearance = false,
165
+ ): MediaSampleLayerSpec {
166
+ assertKeys(recipe, [...FIT_KEYS, ...SAMPLE_KEYS, ...(combinedItemAppearance ? FRAME_KEYS : [])]);
167
+ const hasTimedProperties = recipe.properties.playback !== undefined
168
+ || recipe.properties["trim-start"] !== undefined
169
+ || recipe.properties["trim-end"] !== undefined;
170
+ if (sourceKind === "still" && hasTimedProperties) {
171
+ fail(recipe, "cannot apply playback or trim to durationless still material.");
172
+ }
173
+ const timed = sourceKind === "timed" || (sourceKind === "surface" && hasTimedProperties);
174
+ const sourceTrim = timed ? trim(recipe) : undefined;
175
+ return sealMediaSampleLayerSpec({
176
+
177
+ id,
178
+ ...(timed ? { occupancy: occupancy(recipe), ...(sourceTrim === undefined ? {} : { trim: sourceTrim }) } : {}),
179
+ appearance: decodeMediaSampleAppearance(recipe),
180
+ ...(samplingMotion === undefined ? {} : { samplingMotion }),
181
+ });
182
+ }
183
+
184
+ /** Decode visual-only sample styling without choosing playback or source trim. */
185
+ export function decodeMediaSampleAppearance(recipe: SvsRecipe): MediaSampleAppearance {
186
+ return {
187
+ opacity: number(recipe, "opacity", 1),
188
+ filter: {
189
+ blurPx: number(recipe, "blur", 0), brightness: number(recipe, "brightness", 1),
190
+ contrast: number(recipe, "contrast", 1), saturation: number(recipe, "saturation", 1),
191
+ },
192
+ };
193
+ }
194
+
195
+ function edge(recipe: SvsRecipe, prefix: "enter" | "exit"): MediaLifecycleMotion["enter"] {
196
+ const operator = optionalString(recipe, prefix);
197
+ if (operator === undefined || operator === "none") return undefined;
198
+ const allowed = ["fade", "slide", "scale", "pop", "bounce", "blur-reveal", "wipe", "flip", "spin"] as const;
199
+ if (!allowed.includes(operator as typeof allowed[number])) fail(recipe, `${prefix} operator is invalid.`);
200
+ const direction = optionalString(recipe, `${prefix}-direction`);
201
+ const origin = optionalString(recipe, `${prefix}-origin`);
202
+ return {
203
+ operator: operator as typeof allowed[number],
204
+ durationFrames: number(recipe, `${prefix}-frames`),
205
+ easing: oneOf(recipe, `${prefix}-easing`, ["linear", "ease-in", "ease-out", "ease-in-out"] as const, "ease-in-out"),
206
+ ...(direction === undefined ? {} : { direction: oneOf(recipe, `${prefix}-direction`, ["left", "right", "up", "down"] as const) }),
207
+ ...(origin === undefined ? {} : { origin: oneOf(recipe, `${prefix}-origin`, ["outside-canvas"] as const) }),
208
+ ...(optionalNumber(recipe, `${prefix}-amount`) === undefined ? {} : { amount: number(recipe, `${prefix}-amount`) }),
209
+ };
210
+ }
211
+
212
+ function sustain(recipe: SvsRecipe): MediaLifecycleMotion["sustain"] {
213
+ const source = optionalString(recipe, "sustain");
214
+ if (source === undefined || source === "none") return [];
215
+ return source.split(",").map((entry) => {
216
+ const match = /^(float|breathe|pulse|wobble|shake|drift)\s+([-+]?\d+(?:\.\d+)?)\s+([1-9]\d*)(?:\s+(left|right|up|down))?$/u.exec(entry.trim());
217
+ if (match === null) fail(recipe, "sustain entries require operator amount cycles [direction].");
218
+ return {
219
+ operator: match[1] as MediaLifecycleMotion["sustain"][number]["operator"],
220
+ amount: Number(match[2]), cycles: Number(match[3]),
221
+ ...(match[4] === undefined ? {} : { direction: match[4] as "left" | "right" | "up" | "down" }),
222
+ };
223
+ });
224
+ }
225
+
226
+ export function decodeMediaMotion(recipe: SvsRecipe | undefined): MediaLifecycleMotion {
227
+ if (recipe === undefined) return { sustain: [] };
228
+ assertKeys(recipe, MOTION_KEYS);
229
+ const enter = edge(recipe, "enter");
230
+ const exit = edge(recipe, "exit");
231
+ return {
232
+ ...(enter === undefined ? {} : { enter }),
233
+ sustain: sustain(recipe),
234
+ ...(exit === undefined ? {} : { exit }),
235
+ };
236
+ }
237
+
238
+ export function decodeMediaPresentation(recipe: SvsRecipe): MediaFramePresentation {
239
+ const clip = oneOf(recipe, "clip", ["none", "frame", "rounded"] as const, "frame");
240
+ const borderWidth = number(recipe, "border-width", 0);
241
+ return {
242
+ clip: clip === "rounded" ? { kind: "rounded", radiusPx: number(recipe, "radius", 0) } : { kind: clip },
243
+ padding: padding(recipe),
244
+ ...(borderWidth === 0 ? {} : { border: {
245
+ widthPx: borderWidth,
246
+ style: oneOf(recipe, "border-style", ["solid", "dashed", "dotted"] as const, "solid"),
247
+ color: string(recipe, "border-color"),
248
+ } }),
249
+ shadows: shadows(recipe),
250
+ };
251
+ }
252
+
253
+ export function decodeMediaItemSpec(
254
+ recipe: SvsRecipe,
255
+ input: Pick<MediaItemSpec, "id"> & {
256
+ readonly motion: MediaLifecycleMotion;
257
+ readonly sourceAudio?: MediaItemSpec["sourceAudio"];
258
+ },
259
+ ): MediaItemSpec {
260
+ assertKeys(recipe, [...FIT_KEYS, ...SAMPLE_KEYS, ...FRAME_KEYS]);
261
+ return sealMediaItemSpec({
262
+
263
+ id: input.id,
264
+ presentation: decodeMediaPresentation(recipe),
265
+ motion: input.motion,
266
+ stackingOrder: number(recipe, "stack-order"),
267
+ ...(input.sourceAudio === undefined ? {} : { sourceAudio: input.sourceAudio }),
268
+ });
269
+ }
270
+
271
+ export function decodeMediaFramePaint(recipe: SvsRecipe, id: string): MediaPaintLayerSpec | undefined {
272
+ const source = optionalString(recipe, "frame-paint");
273
+ if (source === undefined || source === "transparent") return undefined;
274
+ const adapted: SvsRecipe = { ...recipe, properties: { paint: source } };
275
+ return sealMediaPaintLayerSpec({ id, paint: paint(adapted), opacity: 1 });
276
+ }
277
+
278
+ export function decodeMediaPaintSpec(recipe: SvsRecipe, id: string): MediaPaintLayerSpec {
279
+ assertKeys(recipe, ["paint", "opacity"]);
280
+ return sealMediaPaintLayerSpec({
281
+ id, paint: paint(recipe), opacity: number(recipe, "opacity", 1),
282
+ });
283
+ }
284
+
285
+ export function decodeMediaHandoffSpec(
286
+ recipe: SvsRecipe,
287
+ id: string,
288
+ fromMemberId: string,
289
+ toMemberId: string,
290
+ ): MediaHandoffSpec {
291
+ assertKeys(recipe, ["operator", "duration-frames", "boundary-ratio", "direction", "audio"]);
292
+ const operator = oneOf(recipe, "operator", ["cut", "crossfade", "push", "wipe", "cover", "page-turn"] as const);
293
+ const direction = optionalString(recipe, "direction");
294
+ return sealMediaHandoffSpec({
295
+ id, fromMemberId, toMemberId, operator,
296
+ durationFrames: number(recipe, "duration-frames"),
297
+ boundaryRatio: number(recipe, "boundary-ratio", 0.5),
298
+ ...(direction === undefined ? {} : { direction: oneOf(recipe, "direction", ["left", "right", "up", "down"] as const) }),
299
+ audio: oneOf(recipe, "audio", ["cut", "crossfade"] as const, "cut"),
300
+ });
301
+ }
302
+
303
+ export function decodeMediaSequenceSpec(
304
+ recipe: SvsRecipe,
305
+ id: string,
306
+ motion: MediaLifecycleMotion,
307
+ handoffs: readonly MediaHandoffSpec[],
308
+ ): MediaSequenceSpec {
309
+ assertKeys(recipe, [...FIT_KEYS, ...SAMPLE_KEYS, ...FRAME_KEYS]);
310
+ return sealMediaSequenceSpec({
311
+ id,
312
+ presentation: decodeMediaPresentation(recipe), motion,
313
+ stackingOrder: number(recipe, "stack-order"), handoffs,
314
+ });
315
+ }
316
+
317
+ export const mediaAppearanceKeys = { fit: FIT_KEYS, sample: SAMPLE_KEYS, frame: FRAME_KEYS, motion: MOTION_KEYS } as const;