@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,30 @@
1
+ import { programSpaceTypes } from "@hypit/program-space";
2
+ import { compositionTypes } from "@hypit/composition";
3
+ import type { VisualTrack } from "@hypit/composition";
4
+ import { sealGraphFragment } from "@hypit/elaborator";
5
+
6
+ import { typographyTrackProducers, typographyTrackTypes } from "./manifest.js";
7
+
8
+ const input = (name: string) => ({ kind: "fragment-input" as const, name });
9
+ const operation = (id: string) => ({ kind: "fragment-operation" as const, operation: id });
10
+
11
+ /** Provider-free official lowering from TypographyTrackProgram to one peer VisualTrack. */
12
+ export const typographyTrackFragment = sealGraphFragment({
13
+ inputs: [
14
+ { name: "space", type: programSpaceTypes.programSpace },
15
+ { name: "program", type: typographyTrackTypes.program },
16
+ ],
17
+ operations: [
18
+ {
19
+ id: "render",
20
+ producer: typographyTrackProducers.render,
21
+ inputs: { space: input("space"), program: input("program") },
22
+ result: { kind: "output", name: "track" },
23
+ },
24
+ ],
25
+ exports: [{
26
+ name: "track",
27
+ type: compositionTypes.visualTrack,
28
+ root: operation("render"),
29
+ }],
30
+ });
@@ -0,0 +1,11 @@
1
+ export { typographyTrackFragment } from "./fragment.js";
2
+ export { typographyTrackComponent } from "./component.js";
3
+ export { typographyTrackManifest, typographyTrackMarkupSurfaces, typographyTrackModuleRef, typographyTrackProducers, typographyTrackProgramSchema, typographyTrackTypes } from "./manifest.js";
4
+ export { appendProjectedTextItem, assertPlainTextItemSpec, bindAreaTextPlacement, bindPathTextPlacement, bindPointTextPlacement, assertTextItemSpec, assertTextMaskSpec, assertTextMotion, assertTextPlacement, assertTextStyle, assertTypographyTrackHeader, assertTypographyTrackProgramIdentity, assertTypographyTrackSet, createTypographyTrackSet, finalizeTypographyTrack, renderTypographyTrack, renderTextMaskTrack, sealTypographyTrackProgram, sealTypographyTrackHeader, sealTextItemSpec, sealPlainTextItemSpec, materializePlainTextItem, sealTextMotion, sealTextMaskSpec, sealTextPlacement, sealTextStyle, stillTextMotion } from "./program.js";
5
+ export {
6
+ decodeTypographyMotionSurface,
7
+ decodeTypographyStyleSurface,
8
+ decodeTypographyTrackSurface,
9
+ decodeTypographyMaskSurface,
10
+ } from "./surface.js";
11
+ export type * from "./types.js";
@@ -0,0 +1,556 @@
1
+ import { temporalContextAttributeVocabulary } from "@hypit/temporal-markup";
2
+ import { readFile } from "node:fs/promises";
3
+
4
+ import { narrativeDependency } from "@hypit/narrative";
5
+ import { programSpaceDependency, programSpaceTypes } from "@hypit/program-space";
6
+ import { semanticTrackDependency } from "@hypit/semantic-track";
7
+ import {
8
+ compositionDependency,
9
+ compositionTypes,
10
+ visualTextDocumentSchema,
11
+ visualTextFlowSchema,
12
+ visualTextPaintSchema,
13
+ visualTextSequenceSchema,
14
+ visualTextTypographySchema,
15
+ } from "@hypit/composition";
16
+ import {
17
+ spatialDependency,
18
+ spatialFrameSchema,
19
+ spatialPathSchema,
20
+ spatialPointSchema,
21
+ spatialTypes,
22
+ } from "@hypit/spatial";
23
+ import { VISUAL_STYLE_ENUM_VALUES_V1, VISUAL_STYLE_NAMES_V1 } from "@hypit/visual-ir";
24
+ import { mediaDependency, mediaTypes } from "@hypit/media";
25
+ import { svsRecipeType } from "@hypit/svs";
26
+ import { textDependency, textTypes } from "@hypit/text";
27
+ import type { ModuleManifest, ProducerRef, TypeRef, ValueSchema } from "@hypit/protocol";
28
+ import { temporalDependency, temporalTypes } from "@hypit/temporal";
29
+ import { temporalWindowAttributeVocabulary } from "@hypit/temporal-markup";
30
+
31
+ const previewImage = (file: string) => ({
32
+ mediaType: "image/png",
33
+ path: `preview/${file}`,
34
+ open: async () => Uint8Array.from(await readFile(new URL(`../preview/${file}`, import.meta.url))),
35
+ });
36
+
37
+ export const typographyTrackModuleRef = { name: "@hypit/typography-track", version: "1" } as const;
38
+ export const typographyTrackTypes = {
39
+ style: { module: typographyTrackModuleRef, name: "TextStyle" },
40
+ motion: { module: typographyTrackModuleRef, name: "TextMotion" },
41
+ placement: { module: typographyTrackModuleRef, name: "TextPlacement" },
42
+ program: { module: typographyTrackModuleRef, name: "TypographyTrackProgram" },
43
+ header: { module: typographyTrackModuleRef, name: "TypographyTrackHeader" },
44
+ itemSpec: { module: typographyTrackModuleRef, name: "TextItemSpec" },
45
+ plainItemSpec: { module: typographyTrackModuleRef, name: "PlainTextItemSpec" },
46
+ set: { module: typographyTrackModuleRef, name: "TypographyTrackSet" },
47
+ maskSpec: { module: typographyTrackModuleRef, name: "TextMaskSpec" },
48
+ } satisfies Record<string, TypeRef>;
49
+
50
+ export const typographyTrackProducers = {
51
+ bindPoint: { module: typographyTrackModuleRef, name: "bind-point-placement" },
52
+ bindArea: { module: typographyTrackModuleRef, name: "bind-area-placement" },
53
+ bindPath: { module: typographyTrackModuleRef, name: "bind-path-placement" },
54
+ createSet: { module: typographyTrackModuleRef, name: "create-typography-track-set" },
55
+ appendItem: { module: typographyTrackModuleRef, name: "append-text-item" },
56
+ finalize: { module: typographyTrackModuleRef, name: "finalize-typography-track" },
57
+ render: { module: typographyTrackModuleRef, name: "render-typography-track" },
58
+ renderMask: { module: typographyTrackModuleRef, name: "render-text-mask-track" },
59
+ materializePlainItem: { module: typographyTrackModuleRef, name: "materialize-plain-text-item" },
60
+ } satisfies Record<string, ProducerRef>;
61
+
62
+ const string = { kind: "string", minLength: 1 } as const;
63
+ const number = { kind: "number" } as const;
64
+ const positive = { kind: "number", minimum: 0.000001 } as const;
65
+ const integer = { kind: "number", integer: true, minimum: 0 } as const;
66
+ const positiveInteger = { kind: "number", integer: true, minimum: 1 } as const;
67
+ const signedInteger = { kind: "number", integer: true } as const;
68
+ const object = (fields: Readonly<Record<string, { readonly schema: ValueSchema; readonly optional?: boolean }>>): ValueSchema => ({ kind: "object", fields });
69
+ const enumString = (values: readonly string[]): ValueSchema => ({ kind: "string", enum: values });
70
+
71
+ const styleDeclaration: ValueSchema = { kind: "oneOf", variants: VISUAL_STYLE_NAMES_V1.map((name) => object({
72
+ name: { schema: { kind: "literal", value: name } },
73
+ value: { schema: Object.hasOwn(VISUAL_STYLE_ENUM_VALUES_V1, name)
74
+ ? { kind: "string", enum: VISUAL_STYLE_ENUM_VALUES_V1[name as keyof typeof VISUAL_STYLE_ENUM_VALUES_V1] }
75
+ : { kind: "oneOf", variants: [{ kind: "string" }, { kind: "number" }] } },
76
+ })) };
77
+ const visualKeyframe = object({
78
+ atFrame: { schema: integer },
79
+ easing: { schema: enumString(["linear", "ease-in", "ease-out", "ease-in-out"]), optional: true },
80
+ style: { schema: { kind: "array", minItems: 1, items: styleDeclaration } },
81
+ });
82
+ const visualAnimation = object({ keyframes: { schema: { kind: "array", minItems: 2, items: visualKeyframe } } });
83
+
84
+ const areaFlow = (() => {
85
+ const schema = visualTextFlowSchema;
86
+ if (schema.kind !== "object") throw new Error("Visual Text flow schema must be an object.");
87
+ const { form: _form, ...fields } = schema.fields;
88
+ return object(fields);
89
+ })();
90
+
91
+ export const textStyleSchema: ValueSchema = object({
92
+
93
+ id: { schema: string }, stackingOrder: { schema: signedInteger },
94
+ typography: { schema: visualTextTypographySchema },
95
+ paints: { schema: { kind: "array", items: visualTextPaintSchema } },
96
+ area: { schema: areaFlow },
97
+ point: { schema: object({ anchorInline: { schema: enumString(["start", "center", "end"]) }, anchorBlock: { schema: enumString(["start", "center", "end"]) } }) },
98
+ path: { schema: object({
99
+ side: { schema: enumString(["left", "right"]) }, orientation: { schema: enumString(["follow", "upright"]) },
100
+ startMarginPx: { schema: { kind: "number", minimum: 0 } }, endMarginPx: { schema: { kind: "number", minimum: 0 } },
101
+ align: { schema: enumString(["start", "center", "end"]) }, reverse: { schema: { kind: "boolean" } },
102
+ overflow: { schema: enumString(["visible", "clip"]) },
103
+ }) },
104
+ });
105
+
106
+ export const textMotionSchema: ValueSchema = object({
107
+ id: { schema: string },
108
+ item: { schema: visualAnimation, optional: true },
109
+ sequences: { schema: { kind: "array", items: visualTextSequenceSchema } },
110
+ pathMargin: { schema: object({ keyframes: { schema: { kind: "array", minItems: 2, items: object({
111
+ atFrame: { schema: integer }, startMarginPx: { schema: { kind: "number", minimum: 0 } },
112
+ easing: { schema: enumString(["linear", "ease-in", "ease-out", "ease-in-out"]), optional: true },
113
+ }) } } }), optional: true },
114
+ });
115
+
116
+ const geometry: ValueSchema = { kind: "oneOf", variants: [
117
+ object({ kind: { schema: { kind: "literal", value: "point" } }, point: { schema: spatialPointSchema } }),
118
+ object({ kind: { schema: { kind: "literal", value: "area" } }, frame: { schema: spatialFrameSchema } }),
119
+ object({ kind: { schema: { kind: "literal", value: "path" } }, path: { schema: spatialPathSchema } }),
120
+ ] };
121
+ export const textPlacementSchema: ValueSchema = object({
122
+ geometry: { schema: geometry },
123
+ });
124
+ export const textItemSpecSchema: ValueSchema = object({
125
+ id: { schema: string },
126
+ document: { schema: visualTextDocumentSchema },
127
+ });
128
+ export const plainTextItemSpecSchema: ValueSchema = object({
129
+ id: { schema: string },
130
+ });
131
+ const span = object({ startFrame: { schema: integer }, endFrameExclusive: { schema: positiveInteger } });
132
+ const item = object({
133
+ id: { schema: string }, span: { schema: span }, geometry: { schema: geometry },
134
+ document: { schema: visualTextDocumentSchema }, style: { schema: textStyleSchema }, motion: { schema: textMotionSchema },
135
+ tieBreak: { schema: string },
136
+ });
137
+ export const typographyTrackProgramSchema: ValueSchema = object({
138
+ id: { schema: string },
139
+ items: { schema: { kind: "array", minItems: 1, items: item } },
140
+ });
141
+ const typographyTrackHeaderSchema = object({ id: { schema: string } });
142
+ const typographyTrackSetSchema = object({ items: { schema: { kind: "array", items: item } } });
143
+ const textMaskSpecSchema = object({
144
+
145
+ id: { schema: string }, mode: { schema: enumString(["alpha", "luminance"]) },
146
+ materialFit: { schema: enumString(["contain", "cover", "fill"]) },
147
+ });
148
+
149
+
150
+ /** The document an item owns, written the same way inside a Point, an Area or a Path. */
151
+ const documentChildren = [
152
+ { tag: "P", cardinality: "many",
153
+ summary: "One paragraph of the item's document. It holds direct text, Span runs and Break line breaks in the order they are written, and can be drawn in a Style of its own.",
154
+ attributes: [
155
+ { name: "id", kind: "identifier", required: false, summary: "Names this paragraph inside the document; an omitted id is generated from the paragraph's position." },
156
+ { name: "style", kind: "reference", required: false, accepts: [typographyTrackTypes.style], summary: "Redraws the whole paragraph in another compiled Style, whose typography and Paint replace the item's: the paragraph is shaped with that Style's exact font and set at its size, weight and slant, and painted in its fills, outlines, glows, shadows, boxes and decorations. That Style's area, point, path and stacking-order properties are ignored here." },
157
+ ],
158
+ text: "Direct text between the nested elements is one run of the paragraph, drawn in the paragraph's own Style.",
159
+ children: [
160
+ { tag: "Span", cardinality: "many",
161
+ summary: "One run of the paragraph set apart from its neighbours, drawn in a Style, shaped under a language or laid out in a writing direction of its own.",
162
+ attributes: [
163
+ { name: "id", kind: "identifier", required: false, summary: "Names this run inside the paragraph; an omitted id is generated from the run's position." },
164
+ { name: "style", kind: "reference", required: false, accepts: [typographyTrackTypes.style], summary: "Redraws this run alone in another compiled Style, whose typography and Paint replace the paragraph's: the run is shaped with that Style's exact font and set at its size, weight and slant, and painted in its fills, outlines, glows, shadows, boxes and decorations. That Style's area, point, path and stacking-order properties are ignored here." },
165
+ { name: "language", kind: "literal", required: false, summary: "Names the language tag this run alone is shaped under." },
166
+ { name: "direction", kind: "literal", required: false, values: ["auto", "ltr", "rtl"], summary: "Decides the base writing direction of this run alone." },
167
+ ],
168
+ text: "Direct text is the run's whole content; a Span carries no nested elements and cannot be empty." },
169
+ { tag: "Break", cardinality: "many",
170
+ summary: "Breaks the line at this point and continues the same paragraph on the next one. It is written empty and takes no attributes." },
171
+ ] },
172
+ ] as const;
173
+
174
+ export const typographyTrackMarkupSurfaces = [
175
+ { name: "style", tag: "Style", mode: "structured", outputs: [typographyTrackTypes.style],
176
+ vocabulary: {
177
+ summary: "One named TextStyle: the typography and layout properties of an SVS Recipe, the exact font bytes text is shaped with, and the ordered Paint the glyphs are drawn in.",
178
+ attributes: [
179
+ { name: "id", kind: "identifier", required: true,
180
+ summary: "Names this Style, under which items and Spans reference it." },
181
+ { name: "recipe", kind: "reference", required: true, accepts: [svsRecipeType],
182
+ summary: "Chooses the Recipe that states the typography, area, point and path properties of this Style.",
183
+ recipe: [
184
+ { name: "stack-order", required: true,
185
+ summary: "Fixes where the text drawn in this Style sits in the Track's paint order." },
186
+ { name: "size", required: true,
187
+ summary: "Sets the type size in pixels, which must be positive." },
188
+ { name: "weight", required: false, fallback: "400",
189
+ summary: "Sets the font weight, as a whole number from 1 to 1000." },
190
+ { name: "font-style", required: false, fallback: "normal", values: ["normal", "italic", "oblique"],
191
+ summary: "Chooses the upright or slanted face." },
192
+ { name: "line-height", required: false, fallback: "1.2",
193
+ summary: "Sets the line box height as a multiple of the type size." },
194
+ { name: "tracking", required: false, fallback: "0",
195
+ summary: "Adds this many pixels between every pair of glyphs." },
196
+ { name: "word-spacing", required: false, fallback: "0",
197
+ summary: "Adds this many pixels to every word space." },
198
+ { name: "kerning", required: false, fallback: "auto", values: ["auto", "normal", "none"],
199
+ summary: "Decides whether the font's kerning pairs are applied." },
200
+ { name: "synthesis", required: false, fallback: "none", values: ["none", "weight", "style", "weight-style"],
201
+ summary: "Decides which of weight and slant may be synthesized when no real face carries them." },
202
+ { name: "language", required: false,
203
+ summary: "Names the language tag the text is shaped under." },
204
+ { name: "direction", required: false, fallback: "auto", values: ["auto", "ltr", "rtl"],
205
+ summary: "Decides the base writing direction of the text." },
206
+ { name: "writing-mode", required: false, fallback: "horizontal-tb", values: ["horizontal-tb", "vertical-rl", "vertical-lr"],
207
+ summary: "Decides whether lines run across the page or down it." },
208
+ { name: "baseline-shift", required: false, fallback: "0",
209
+ summary: "Raises or lowers the glyphs off their baseline, in pixels." },
210
+ { name: "vertical-align", required: false, fallback: "baseline", values: ["baseline", "super", "sub"],
211
+ summary: "Places the glyphs on the baseline or as superscript or subscript." },
212
+ { name: "tab-size", required: false, fallback: "4",
213
+ summary: "Sets how many spaces one tab advances, as a positive whole number." },
214
+ { name: "indent", required: false, fallback: "0",
215
+ summary: "Indents the first line of every paragraph, in pixels." },
216
+ { name: "paragraph-before", required: false, fallback: "0",
217
+ summary: "Adds this many pixels above every paragraph." },
218
+ { name: "paragraph-after", required: false, fallback: "0",
219
+ summary: "Adds this many pixels below every paragraph." },
220
+ { name: "transform", required: false, fallback: "none", values: ["none", "uppercase", "lowercase", "capitalize"],
221
+ summary: "Recases the text before it is shaped." },
222
+ { name: "caps", required: false, fallback: "normal", values: ["normal", "small-caps", "all-small-caps"],
223
+ summary: "Chooses the small-capital variant the font draws." },
224
+ { name: "cjk-spacing", required: false, fallback: "normal",
225
+ summary: "Decides whether automatic spacing is inserted between CJK and Latin runs, written as `normal` or `none`." },
226
+ { name: "punctuation-trim", required: false, fallback: "none",
227
+ summary: "Decides which CJK punctuation is trimmed at the line edges, written as `none`, `start`, `end`, `adjacent` or `all`." },
228
+ { name: "fill", required: false,
229
+ summary: "Paints one solid glyph fill in this color, ahead of the Paint children." },
230
+ { name: "inline-size", required: false, fallback: "fixed", values: ["hug", "fixed"],
231
+ summary: "Decides whether the text box hugs its content along the inline axis or fills its placement." },
232
+ { name: "block-size", required: false, fallback: "fixed", values: ["hug", "fixed"],
233
+ summary: "Decides whether the text box hugs its content along the block axis or fills its placement." },
234
+ { name: "padding", required: false, fallback: "0",
235
+ summary: "Insets the text from its placement edges, as one, two or four non-negative pixel values written top, right, bottom, left." },
236
+ { name: "align", required: false, fallback: "center", values: ["start", "center", "end", "justify"],
237
+ summary: "Aligns the text along the inline axis." },
238
+ { name: "block-align", required: false, fallback: "center", values: ["start", "center", "end"],
239
+ summary: "Aligns the text along the block axis." },
240
+ { name: "wrap", required: false, fallback: "word", values: ["none", "word", "grapheme"],
241
+ summary: "Decides where a line may break." },
242
+ { name: "overflow", required: false, fallback: "visible", values: ["visible", "clip", "ellipsis", "shrink"],
243
+ summary: "Decides what becomes of text that does not fit its placement." },
244
+ { name: "max-lines", required: false,
245
+ summary: "Caps the number of lines the text occupies, which only an `ellipsis` or `shrink` overflow accepts." },
246
+ { name: "minimum-scale", required: false,
247
+ summary: "Sets the smallest fraction of the type size a `shrink` overflow may reduce the text to, which that overflow requires and no other accepts." },
248
+ { name: "clip", required: false, fallback: "false", values: ["true", "false"],
249
+ summary: "Decides whether the text is clipped to its placement." },
250
+ { name: "columns", required: false, fallback: "1",
251
+ summary: "Divides the text box into this many columns." },
252
+ { name: "column-gap", required: false, fallback: "0",
253
+ summary: "Separates the columns by this many pixels." },
254
+ { name: "metric-edge", required: false, fallback: "line-box", values: ["line-box", "cap-height", "ink"],
255
+ summary: "Chooses which typographic edge the text is measured and aligned by." },
256
+ { name: "point-anchor-inline", required: false, fallback: "center", values: ["start", "center", "end"],
257
+ summary: "Anchors Point text along the inline axis of its Point." },
258
+ { name: "point-anchor-block", required: false, fallback: "center", values: ["start", "center", "end"],
259
+ summary: "Anchors Point text along the block axis of its Point." },
260
+ { name: "path-side", required: false, fallback: "left", values: ["left", "right"],
261
+ summary: "Chooses which side of the Path the glyphs sit on." },
262
+ { name: "path-orientation", required: false, fallback: "follow", values: ["follow", "upright"],
263
+ summary: "Decides whether the glyphs turn with the Path or stay upright." },
264
+ { name: "path-start-margin", required: false, fallback: "0",
265
+ summary: "Starts the text this many pixels along the Path, which must not be negative." },
266
+ { name: "path-end-margin", required: false, fallback: "0",
267
+ summary: "Ends the text this many pixels before the Path does, which must not be negative." },
268
+ { name: "path-align", required: false, fallback: "start", values: ["start", "center", "end"],
269
+ summary: "Aligns the text within the Path between its margins." },
270
+ { name: "path-reverse", required: false, fallback: "false", values: ["true", "false"],
271
+ summary: "Sets the text along the Path in the opposite direction." },
272
+ { name: "path-overflow", required: false, fallback: "visible", values: ["visible", "clip"],
273
+ summary: "Decides whether text longer than the Path is drawn or clipped." },
274
+ ] },
275
+ { name: "font", kind: "reference", required: true, accepts: [mediaTypes.fontArtifact, mediaTypes.fontStack],
276
+ summary: "Chooses the exact font bytes text is shaped with, either one face or one ordered stack of faces." },
277
+ ],
278
+ children: [
279
+ { tag: "Fill", cardinality: "many",
280
+ summary: "Fills the glyph interior with a solid color or one gradient child.",
281
+ attributes: [
282
+ { name: "color", kind: "literal", required: false, summary: "Paints the layer one solid color; omit it and the layer takes a Linear or Radial gradient child instead." },
283
+ ] },
284
+ { tag: "Stroke", cardinality: "many",
285
+ summary: "Outlines the glyphs at an exact width, inside, centred on or outside the glyph edge.",
286
+ attributes: [
287
+ { name: "color", kind: "literal", required: false, summary: "Paints the layer one solid color; omit it and the layer takes a Linear or Radial gradient child instead." },
288
+ { name: "width", kind: "literal", required: true, summary: "Sets the outline width in pixels, which must not be negative." },
289
+ { name: "placement", kind: "literal", required: true, values: ["inside", "center", "outside"], summary: "Decides which side of the glyph edge the outline sits on." },
290
+ ] },
291
+ { tag: "Shadow", cardinality: "many",
292
+ summary: "Casts one offset and blurred shadow behind the glyphs.",
293
+ attributes: [
294
+ { name: "color", kind: "literal", required: false, summary: "Paints the layer one solid color; omit it and the layer takes a Linear or Radial gradient child instead." },
295
+ { name: "x", kind: "literal", required: true, summary: "Offsets the shadow horizontally in pixels." },
296
+ { name: "y", kind: "literal", required: true, summary: "Offsets the shadow vertically in pixels." },
297
+ { name: "blur", kind: "literal", required: true, summary: "Blurs the shadow by this many pixels, which must not be negative." },
298
+ { name: "spread", kind: "literal", required: false, summary: "Grows the shadow by this many pixels before it is blurred." },
299
+ ] },
300
+ { tag: "Glow", cardinality: "many",
301
+ summary: "Spreads one blurred glow around the glyphs.",
302
+ attributes: [
303
+ { name: "color", kind: "literal", required: false, summary: "Paints the layer one solid color; omit it and the layer takes a Linear or Radial gradient child instead." },
304
+ { name: "blur", kind: "literal", required: true, summary: "Blurs the glow by this many pixels, which must not be negative." },
305
+ { name: "spread", kind: "literal", required: false, summary: "Grows the glow by this many pixels before it is blurred, and must not be negative." },
306
+ ] },
307
+ { tag: "Box", cardinality: "many",
308
+ summary: "Paints a decorated box behind the frame, content, paragraph, line, run, word or grapheme. It accepts its own gradient, BoxShadow and Tail children.",
309
+ attributes: [
310
+ { name: "target", kind: "literal", required: true, values: ["frame", "content", "paragraph", "line", "run", "word", "grapheme"], summary: "Chooses which text box the decoration is drawn behind." },
311
+ { name: "continuity", kind: "literal", required: false, values: ["isolated", "joined"], summary: "Joins adjacent boxes into one shape, which only a line, word or grapheme target allows." },
312
+ { name: "color", kind: "literal", required: false, summary: "Paints the box one solid color; omit it and the box takes a Linear or Radial gradient child instead." },
313
+ { name: "padding", kind: "literal", required: false, summary: "Insets the box from the text it sits behind, as one to four pixel values." },
314
+ { name: "radius", kind: "literal", required: false, summary: "Rounds the box corners, as one to four pixel values." },
315
+ { name: "border-color", kind: "literal", required: false, summary: "Paints the box border." },
316
+ { name: "border-width", kind: "literal", required: false, summary: "Sets the border width, as one to four pixel values." },
317
+ { name: "border-style", kind: "literal", required: false, summary: "Chooses the border style." },
318
+ ] },
319
+ { tag: "Axis", cardinality: "many",
320
+ summary: "Sets one variable-font axis to an exact value.",
321
+ attributes: [
322
+ { name: "tag", kind: "literal", required: true, summary: "Names the four-character variable-font axis." },
323
+ { name: "value", kind: "literal", required: true, summary: "Sets that axis to an exact value." },
324
+ ] },
325
+ { tag: "Feature", cardinality: "many",
326
+ summary: "Turns one OpenType feature on or off.",
327
+ attributes: [
328
+ { name: "tag", kind: "literal", required: true, summary: "Names the four-character OpenType feature." },
329
+ { name: "enabled", kind: "literal", required: true, values: ["true", "false"], summary: "Turns that feature on or off." },
330
+ ] },
331
+ { tag: "Decoration", cardinality: "many",
332
+ summary: "Draws an underline, overline or line-through in its own paint.",
333
+ attributes: [
334
+ { name: "line", kind: "literal", required: true, values: ["underline", "overline", "line-through"], summary: "Chooses which line is drawn." },
335
+ { name: "color", kind: "literal", required: false, summary: "Paints the layer one solid color; omit it and the layer takes a Linear or Radial gradient child instead." },
336
+ { name: "style", kind: "literal", required: false, values: ["solid", "double", "dotted", "dashed", "wavy"], summary: "Chooses the line style; defaults to `solid`." },
337
+ { name: "thickness", kind: "literal", required: false, summary: "Sets the line thickness in pixels, which must not be negative." },
338
+ { name: "offset", kind: "literal", required: false, summary: "Moves the line away from its default position, in pixels." },
339
+ { name: "skip-ink", kind: "literal", required: false, values: ["true", "false"], summary: "Decides whether the line breaks around descenders; defaults to `true`." },
340
+ ] },
341
+ ],
342
+ example: `<text:Style id="poster" recipe={editorial} font={exact-font}>
343
+ <text:Fill color="#f8fafc"/>
344
+ <text:Stroke color="#111827" width="3" placement="outside"/>
345
+ <text:Box target="line" continuity="isolated" color="#2563eb" padding="5 10" radius="8"/>
346
+ </text:Style>`,
347
+ notes: [
348
+ "A Style requires at least one `<Fill>` or `<Stroke>`, so that the glyphs are visible; the Paint children paint in the order they are written.",
349
+ "The Recipe is refused when it carries a property name outside the table above.",
350
+ "Every paint states itself as `color` or as one `<Linear angle>` or `<Radial x y>` child, never both; a gradient carries at least two `<Stop>` children, each requiring `offset` and `color` and accepting a normalized `opacity`, written empty and in ascending offset order.",
351
+ "`<Box>` takes `padding`, `radius` and `border-width` as one, two or four non-negative numbers, and draws a border only when `border-color` and a non-zero `border-width` are written together.",
352
+ "`<Box>` accepts `<BoxShadow>` children, which require `color` and accept `x`, `y`, `blur` and `spread`, and one `<Tail>` child, which is written empty and requires `side`, `offset`, `width`, `height` and `color`.",
353
+ "`<Axis>` and `<Feature>` are written empty, and neither repeats a `tag`.",
354
+ "One `<Decoration>` line is declared once.",
355
+ "The TextStyle Record is published under the bare `id`, and the element carries no text content.",
356
+ ],
357
+ },
358
+ },
359
+ { name: "motion", tag: "Motion", mode: "structured", outputs: [typographyTrackTypes.motion],
360
+ vocabulary: {
361
+ summary: "One named TextMotion: the keyframes an item plays as a whole, the Sequences that animate its document units, and the Path start margin over time.",
362
+ attributes: [
363
+ { name: "id", kind: "identifier", required: true,
364
+ summary: "Names this Motion, under which items reference it." },
365
+ ],
366
+ children: [
367
+ { tag: "ItemKeyframe", cardinality: "many",
368
+ summary: "Fixes the transform, opacity, blur, color or clip of the whole item at one frame.",
369
+ attributes: [
370
+ { name: "at", kind: "literal", required: true, summary: "Lands this keyframe on an exact frame of the item's window." },
371
+ { name: "easing", kind: "literal", required: false, summary: "Decides how the value travels into this keyframe." },
372
+ { name: "x", kind: "literal", required: false, summary: "Translates the item horizontally, in pixels." },
373
+ { name: "y", kind: "literal", required: false, summary: "Translates the item vertically, in pixels." },
374
+ { name: "scale", kind: "literal", required: false, summary: "Scales the item uniformly; defaults to `1`." },
375
+ { name: "rotate", kind: "literal", required: false, summary: "Rotates the item, in degrees." },
376
+ { name: "skew-x", kind: "literal", required: false, summary: "Skews the item horizontally, in degrees." },
377
+ { name: "skew-y", kind: "literal", required: false, summary: "Skews the item vertically, in degrees." },
378
+ { name: "opacity", kind: "literal", required: false, summary: "Sets the item's opacity at this keyframe." },
379
+ { name: "blur", kind: "literal", required: false, summary: "Blurs the item by this radius in pixels." },
380
+ { name: "color", kind: "literal", required: false, summary: "Sets the glyph color at this keyframe." },
381
+ { name: "clip-top", kind: "literal", required: false, summary: "Insets the top edge of the reveal rectangle, as a percentage." },
382
+ { name: "clip-right", kind: "literal", required: false, summary: "Insets the right edge of the reveal rectangle, as a percentage." },
383
+ { name: "clip-bottom", kind: "literal", required: false, summary: "Insets the bottom edge of the reveal rectangle, as a percentage." },
384
+ { name: "clip-left", kind: "literal", required: false, summary: "Insets the left edge of the reveal rectangle, as a percentage." },
385
+ ] },
386
+ { tag: "Sequence", cardinality: "many",
387
+ summary: "Animates a range of paragraphs, lines, runs, words or graphemes one after another. It carries its own Keyframe children.",
388
+ attributes: [
389
+ { name: "id", kind: "identifier", required: true, summary: "Names this Sequence inside the Motion." },
390
+ { name: "unit", kind: "literal", required: true, summary: "Chooses the document unit one animation instance covers." },
391
+ { name: "start-index", kind: "literal", required: true, summary: "Fixes the first unit index the Sequence covers." },
392
+ { name: "end-index", kind: "literal", required: true, summary: "Fixes the exclusive last unit index the Sequence covers." },
393
+ { name: "duration-frames", kind: "literal", required: true, summary: "Sets how long one unit's animation lasts." },
394
+ { name: "order", kind: "literal", required: false, summary: "Decides the order the units animate in; defaults to `forward`." },
395
+ { name: "start-frame", kind: "literal", required: false, summary: "Lands the first unit's animation on this frame; defaults to `0`." },
396
+ { name: "stagger-frames", kind: "literal", required: false, summary: "Delays each unit behind the one before it; defaults to `0`." },
397
+ { name: "cycles", kind: "literal", required: false, summary: "Repeats one unit's animation this many times; defaults to `1`." },
398
+ { name: "seed", kind: "literal", required: false, summary: "Fixes the draw a `random` order makes." },
399
+ ] },
400
+ { tag: "PathKeyframe", cardinality: "many",
401
+ summary: "Fixes the start margin of Path text at one frame, moving the text along its Path.",
402
+ attributes: [
403
+ { name: "at", kind: "literal", required: true, summary: "Lands this keyframe on an exact frame of the item's window." },
404
+ { name: "margin", kind: "literal", required: true, summary: "Sets how far along the Path the text begins, in pixels." },
405
+ { name: "easing", kind: "literal", required: false, values: ["linear", "ease-in", "ease-out", "ease-in-out"], summary: "Decides how the margin travels into this keyframe." },
406
+ ] },
407
+ ],
408
+ example: `<text:Motion id="arrive">
409
+ <text:ItemKeyframe at="0" y="24" opacity="0"/>
410
+ <text:ItemKeyframe at="150" y="0" opacity="1"/>
411
+ <text:Sequence id="words" unit="word" start-index="0" end-index="2" duration-frames="12" stagger-frames="3">
412
+ <text:Keyframe at="0" opacity="0"/>
413
+ <text:Keyframe at="1" opacity="1"/>
414
+ </text:Sequence>
415
+ </text:Motion>`,
416
+ notes: [
417
+ "An `<ItemKeyframe>` is written empty, and it and a `<Keyframe>` alike must animate at least one of `x`, `y`, `scale`, `rotate`, `skew-x`, `skew-y`, `opacity`, `blur`, `color` or a `clip-` inset.",
418
+ "An item animation and a Path margin animation each need at least two keyframes.",
419
+ "A `<Sequence>` accepts only `<Keyframe>` children and carries at least two of them; a `<Keyframe>` takes the same attributes as an `<ItemKeyframe>`, with `at` read as the progress from 0 to 1 through one unit.",
420
+ "The TextMotion Record is published under the bare `id`, and the element carries no text content.",
421
+ ],
422
+ },
423
+ },
424
+ { name: "track", tag: "Track", mode: "structured", outputs: [typographyTrackTypes.header, typographyTrackTypes.itemSpec, typographyTrackTypes.plainItemSpec, typographyTrackTypes.motion, typographyTrackTypes.set, typographyTrackTypes.placement, temporalTypes.instantSpec, temporalTypes.windowSpec, temporalTypes.instant, temporalTypes.window, typographyTrackTypes.program, compositionTypes.visualTrack],
425
+ vocabulary: {
426
+ summary: "One Typography Track: independently placed and timed text items on a shared ProgramSpace, lowered to one addressable TypographyTrackProgram and one peer VisualTrack.",
427
+ appearance: "Text alone on an otherwise empty Canvas: the glyphs, plus whatever Paint the Style puts around them — fills, outlines, glows, shadows and rounded, bordered, optionally tailed boxes drawn behind the frame, paragraph, line, run, word or grapheme. Each item holds its own region of the Canvas: a Point item is one unwrapped block that hugs its text and hangs off a single coordinate by its inline and block anchors, an Area item flows and wraps inside a rectangle under its own alignment, columns, clipping and overflow, and a Path item strings the glyphs along a curve, on one side of it, turning with it or standing upright. Items switch on and off at their own frame windows and overlap in the stacking order their Styles declare, so titles, labels and captions can occupy different corners at once and outlast or outlive one another. While an item is on screen it plays its Motion: the whole block translating, scaling, rotating, skewing, fading, blurring, recoloring or wiping open from an edge, and its paragraphs, lines, runs, words or graphemes arriving one behind another in a staggered run.",
428
+ preview: previewImage("Track.png"),
429
+ attributes: [
430
+ { name: "id", kind: "identifier", required: true,
431
+ summary: "Names this Track and prefixes the identity of every item spec it seals." },
432
+ ...temporalContextAttributeVocabulary,
433
+ ],
434
+ children: [
435
+ { tag: "Point", cardinality: "many",
436
+ summary: "One text item anchored at a SpatialPoint. It owns its own document, written as direct text or as P children.",
437
+ attributes: [
438
+ { name: "id", kind: "identifier", required: true, summary: "Names this item and the spec the Track seals for it." },
439
+ { name: "placement", kind: "reference", required: true, accepts: [spatialTypes.point], summary: "Anchors the item at this Point." },
440
+ { name: "style", kind: "reference", required: true, accepts: [typographyTrackTypes.style], summary: "Chooses the compiled Style the item is drawn in." },
441
+ { name: "motion", kind: "reference", required: false, accepts: [typographyTrackTypes.motion], summary: "Chooses the Motion the item plays; the Track supplies a still Motion otherwise." },
442
+ { name: "content", kind: "reference", required: false, accepts: [textTypes.text], summary: "Reads an ordinary graph Text as one plain run, which requires the item to be written empty." },
443
+ ...temporalWindowAttributeVocabulary,
444
+ ],
445
+ children: documentChildren,
446
+ text: "Direct text is the item's whole document, read as one paragraph." },
447
+ { tag: "Area", cardinality: "many",
448
+ summary: "One text item flowed inside a SpatialFrame. It owns its own document, written as direct text or as P children.",
449
+ attributes: [
450
+ { name: "id", kind: "identifier", required: true, summary: "Names this item and the spec the Track seals for it." },
451
+ { name: "placement", kind: "reference", required: true, accepts: [spatialTypes.frame], summary: "Flows the item inside this Frame." },
452
+ { name: "style", kind: "reference", required: true, accepts: [typographyTrackTypes.style], summary: "Chooses the compiled Style the item is drawn in." },
453
+ { name: "motion", kind: "reference", required: false, accepts: [typographyTrackTypes.motion], summary: "Chooses the Motion the item plays; the Track supplies a still Motion otherwise." },
454
+ { name: "content", kind: "reference", required: false, accepts: [textTypes.text], summary: "Reads an ordinary graph Text as one plain run, which requires the item to be written empty." },
455
+ ...temporalWindowAttributeVocabulary,
456
+ ],
457
+ children: documentChildren,
458
+ text: "Direct text is the item's whole document, read as one paragraph." },
459
+ { tag: "Path", cardinality: "many",
460
+ summary: "One text item set along a SpatialPath. It owns its own document, written as direct text or as P children.",
461
+ attributes: [
462
+ { name: "id", kind: "identifier", required: true, summary: "Names this item and the spec the Track seals for it." },
463
+ { name: "placement", kind: "reference", required: true, accepts: [spatialTypes.path], summary: "Sets the item along this Path." },
464
+ { name: "style", kind: "reference", required: true, accepts: [typographyTrackTypes.style], summary: "Chooses the compiled Style the item is drawn in." },
465
+ { name: "motion", kind: "reference", required: false, accepts: [typographyTrackTypes.motion], summary: "Chooses the Motion the item plays; the Track supplies a still Motion otherwise." },
466
+ { name: "content", kind: "reference", required: false, accepts: [textTypes.text], summary: "Reads an ordinary graph Text as one plain run, which requires the item to be written empty." },
467
+ ...temporalWindowAttributeVocabulary,
468
+ ],
469
+ children: documentChildren,
470
+ text: "Direct text is the item's whole document, read as one paragraph." },
471
+ ],
472
+ ports: [
473
+ { name: "program", type: typographyTrackTypes.program,
474
+ summary: "The sealed TypographyTrackProgram, which a Mask consumes." },
475
+ { name: "track", type: compositionTypes.visualTrack,
476
+ summary: "The rendered text, an ordinary peer VisualTrack." },
477
+ ],
478
+ example: `<text:Track id="titles" semantic={speech.semantic}>
479
+ <text:Area id="title" placement={title-frame} style={title-style} during="program">
480
+ EDIT MEANING, NOT TIMELINES
481
+ </text:Area>
482
+ <text:Area id="standfirst" placement={standfirst-frame} style={body-style} during="program">
483
+ <text:P>Edit meaning,<text:Break/>not <text:Span style={accent-serif}>timelines</text:Span>.</text:P>
484
+ </text:Area>
485
+ </text:Track>`,
486
+ notes: [
487
+ "A Track requires at least one `<Point>`, `<Area>` or `<Path>` and accepts no text content of its own.",
488
+ "An item states exactly one window form: `during`, `at` with `for`, `until` with `for`, or `start` with `end`. Bind selection, segment and/or moment only when the start/end expressions use them; different endpoints can use different bindings.",
489
+ "A point expression is `program.start`, `program.end`, `selection.start`, `selection.end`, `segment.start`, `segment.end` or `moment.cue`, each optionally offset by `+` or `-` and a duration, or a bare duration read as an absolute position.",
490
+ "An item written without `content` owns its own document: direct text becomes one paragraph, and `<P>` children carry rich runs instead; a document mixes neither `<P>` children with direct text nor direct text with nested elements.",
491
+ "Neither a `<P>` nor a `<Span>` may be empty, and a `style` on either must name a Style Record authored in this Source or imported from another, because its typography and Paint are copied into the document as the item is decoded.",
492
+ ],
493
+ },
494
+ },
495
+ { name: "mask", tag: "Mask", mode: "structured", outputs: [typographyTrackTypes.maskSpec, compositionTypes.visualTrack],
496
+ vocabulary: {
497
+ summary: "Cuts one owned Surface to the shape of one authored TypographyTrackProgram and publishes the result as a peer VisualTrack.",
498
+ appearance: "The words of the authored Text Program filled with a picture: each item's letterforms are cut out of the material Surface, and every pixel outside the glyphs is transparent. Only the glyph shapes carry across — the Style's own fills, outlines and boxes are not drawn — so what reads on screen is one horizontal line of type per item, set at the padding and inline and block alignment of its Frame, with the material scaled to contain, cover or fill that Frame behind it. Items appear and vanish on the same frames as the Text Program they take their shape from, and each plays that item's whole-item Motion, so the picture-filled type translates, scales, rotates, fades, blurs or wipes as one piece.",
499
+ preview: previewImage("Mask.png"),
500
+ attributes: [
501
+ { name: "id", kind: "identifier", required: true,
502
+ summary: "Names this Mask, under which its VisualTrack is published." },
503
+ ...temporalContextAttributeVocabulary,
504
+ { name: "text", kind: "reference", required: true, accepts: [typographyTrackTypes.program],
505
+ summary: "Chooses the authored Text Program whose items give the mask its shape and timing." },
506
+ { name: "material", kind: "reference", required: true, accepts: [mediaTypes.compositableSurface],
507
+ summary: "Chooses the Surface shown through the text." },
508
+ { name: "mode", kind: "literal", required: false, values: ["alpha", "luminance"],
509
+ summary: "Whether the text masks by coverage or by brightness; defaults to `alpha`." },
510
+ { name: "fit", kind: "literal", required: false, values: ["contain", "cover", "fill"],
511
+ summary: "How the material occupies each masked item; defaults to `cover`." },
512
+ ],
513
+ ports: [
514
+ { name: "track", type: compositionTypes.visualTrack,
515
+ summary: "The masked picture, an ordinary peer VisualTrack." },
516
+ ],
517
+ example: `<text:Mask id="masked-titles" semantic={speech.semantic} text={mask-shape.program} material={material}/>`,
518
+ notes: [
519
+ "A Mask is written empty and accepts no children.",
520
+ "The material must be a still Surface; a timed material is refused and materializes through an independent package.",
521
+ "Every item of the Text Program must be one Area holding one unstyled paragraph, without Sequence motion, and drawn in a Style that is fixed in both axes, unwrapped, single-column, horizontally written, undecorated, without `ellipsis` or `shrink` overflow, and whose weight and style match its primary exact font without synthesis; anything else is refused.",
522
+ ],
523
+ },
524
+ },
525
+ ] as const;
526
+
527
+
528
+ export const typographyTrackManifest: ModuleManifest = {
529
+ format: "hypit.module@1",
530
+ name: typographyTrackModuleRef.name,
531
+ version: typographyTrackModuleRef.version,
532
+ dependencies: [narrativeDependency, programSpaceDependency, semanticTrackDependency, spatialDependency, mediaDependency, compositionDependency, textDependency, temporalDependency],
533
+ types: [
534
+ { name: typographyTrackTypes.style.name },
535
+ { name: typographyTrackTypes.motion.name },
536
+ { name: typographyTrackTypes.placement.name },
537
+ { name: typographyTrackTypes.program.name },
538
+ { name: typographyTrackTypes.header.name },
539
+ { name: typographyTrackTypes.itemSpec.name },
540
+ { name: typographyTrackTypes.plainItemSpec.name },
541
+ { name: typographyTrackTypes.set.name },
542
+ { name: typographyTrackTypes.maskSpec.name },
543
+ ],
544
+ capabilities: [],
545
+ producers: [
546
+ { name: typographyTrackProducers.materializePlainItem.name, inputs: [{ name: "spec", type: typographyTrackTypes.plainItemSpec }, { name: "content", type: textTypes.text }], outputs: [{ name: "spec", type: typographyTrackTypes.itemSpec }], needs: [] },
547
+ { name: typographyTrackProducers.bindPoint.name, inputs: [{ name: "point", type: spatialTypes.point }], outputs: [{ name: "placement", type: typographyTrackTypes.placement }], needs: [] },
548
+ { name: typographyTrackProducers.bindArea.name, inputs: [{ name: "frame", type: spatialTypes.frame }], outputs: [{ name: "placement", type: typographyTrackTypes.placement }], needs: [] },
549
+ { name: typographyTrackProducers.bindPath.name, inputs: [{ name: "path", type: spatialTypes.path }], outputs: [{ name: "placement", type: typographyTrackTypes.placement }], needs: [] },
550
+ { name: typographyTrackProducers.createSet.name, inputs: [], outputs: [{ name: "set", type: typographyTrackTypes.set }], needs: [] },
551
+ { name: typographyTrackProducers.appendItem.name, inputs: [{ name: "set", type: typographyTrackTypes.set }, { name: "header", type: typographyTrackTypes.header }, { name: "space", type: programSpaceTypes.programSpace }, { name: "placement", type: typographyTrackTypes.placement }, { name: "spec", type: typographyTrackTypes.itemSpec }, { name: "style", type: typographyTrackTypes.style }, { name: "motion", type: typographyTrackTypes.motion }, { name: "window", type: temporalTypes.window }], outputs: [{ name: "set", type: typographyTrackTypes.set }], needs: [] },
552
+ { name: typographyTrackProducers.finalize.name, inputs: [{ name: "header", type: typographyTrackTypes.header }, { name: "set", type: typographyTrackTypes.set }], outputs: [{ name: "program", type: typographyTrackTypes.program }], needs: [] },
553
+ { name: typographyTrackProducers.render.name, inputs: [{ name: "space", type: programSpaceTypes.programSpace }, { name: "program", type: typographyTrackTypes.program }], outputs: [{ name: "track", type: compositionTypes.visualTrack }], needs: [] },
554
+ { name: typographyTrackProducers.renderMask.name, inputs: [{ name: "space", type: programSpaceTypes.programSpace }, { name: "program", type: typographyTrackTypes.program }, { name: "material", type: mediaTypes.compositableSurface }, { name: "spec", type: typographyTrackTypes.maskSpec }], outputs: [{ name: "track", type: compositionTypes.visualTrack }], needs: [] },
555
+ ],
556
+ };