@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,81 @@
1
+ import { execFile } from "node:child_process";
2
+
3
+ export type MediaToolchainState =
4
+ | { readonly state: "ready"; readonly ffprobeVersion: string; readonly ffmpegVersion?: string }
5
+ | { readonly state: "down" | "mismatch"; readonly detail: string };
6
+
7
+ const REQUIRED_ENCODERS = ["aac", "libx264", "pcm_s16le"] as const;
8
+ const REQUIRED_FILTERS = [
9
+ "aformat", "amix", "aresample", "asetpts", "atempo", "atrim",
10
+ "loop", "pad", "scale", "select", "setpts", "setsar", "trim",
11
+ ] as const;
12
+
13
+ function run(executable: string, args: readonly string[]): Promise<{ ok: boolean; output: string }> {
14
+ return new Promise((resolve) => {
15
+ execFile(executable, [...args], {
16
+ timeout: 15_000,
17
+ shell: false,
18
+ windowsHide: true,
19
+ maxBuffer: 4 * 1024 * 1024,
20
+ }, (error, stdout, stderr) => {
21
+ resolve(error === null
22
+ ? { ok: true, output: stdout.trim() }
23
+ : { ok: false, output: (stderr.trim() || error.message).split("\n").at(-1) ?? "" });
24
+ });
25
+ });
26
+ }
27
+
28
+ function firstLine(value: string): string {
29
+ return value.split(/\r?\n/u, 1)[0]?.trim() ?? "";
30
+ }
31
+
32
+ function missingNames(output: string, required: readonly string[]): readonly string[] {
33
+ return required.filter((name) => !new RegExp(`(?:^|\\s)${name.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&")}(?:\\s|$)`, "mu")
34
+ .test(output));
35
+ }
36
+
37
+ /**
38
+ * Compatibility probe for a deployment-owned FFmpeg toolchain. It deliberately
39
+ * checks the commands the shared execution body uses instead of requiring one
40
+ * blessed version number. A managed distribution may pin binaries separately;
41
+ * a custom installation remains valid when it supplies the same capability.
42
+ */
43
+ export async function probeMediaToolchain(options: {
44
+ readonly ffprobePath: string;
45
+ readonly ffmpegPath?: string;
46
+ }): Promise<MediaToolchainState> {
47
+ const probeVersion = await run(options.ffprobePath, ["-version"]);
48
+ if (!probeVersion.ok) {
49
+ return { state: "down", detail: `${options.ffprobePath} is unavailable: ${probeVersion.output}` };
50
+ }
51
+ const ffprobeVersion = firstLine(probeVersion.output);
52
+ if (ffprobeVersion.length === 0) return { state: "mismatch", detail: "ffprobe returned no version" };
53
+ if (options.ffmpegPath === undefined) return { state: "ready", ffprobeVersion };
54
+
55
+ const [ffmpegVersionResult, encoders, filters] = await Promise.all([
56
+ run(options.ffmpegPath, ["-version"]),
57
+ run(options.ffmpegPath, ["-hide_banner", "-encoders"]),
58
+ run(options.ffmpegPath, ["-hide_banner", "-filters"]),
59
+ ]);
60
+ if (!ffmpegVersionResult.ok) {
61
+ return { state: "down", detail: `${options.ffmpegPath} is unavailable: ${ffmpegVersionResult.output}` };
62
+ }
63
+ if (!encoders.ok || !filters.ok) {
64
+ return { state: "mismatch", detail: "ffmpeg could not enumerate its encoders and filters" };
65
+ }
66
+ const missingEncoders = missingNames(encoders.output, REQUIRED_ENCODERS);
67
+ const missingFilters = missingNames(filters.output, REQUIRED_FILTERS);
68
+ if (missingEncoders.length > 0 || missingFilters.length > 0) {
69
+ return {
70
+ state: "mismatch",
71
+ detail: [
72
+ missingEncoders.length === 0 ? "" : `missing encoders ${missingEncoders.join(", ")}`,
73
+ missingFilters.length === 0 ? "" : `missing filters ${missingFilters.join(", ")}`,
74
+ ].filter(Boolean).join("; "),
75
+ };
76
+ }
77
+ const ffmpegVersion = firstLine(ffmpegVersionResult.output);
78
+ return ffmpegVersion.length === 0
79
+ ? { state: "mismatch", detail: "ffmpeg returned no version" }
80
+ : { state: "ready", ffprobeVersion, ffmpegVersion };
81
+ }
@@ -0,0 +1,200 @@
1
+ export type AnimatedWebpFrame = {
2
+ readonly x: number;
3
+ readonly y: number;
4
+ readonly width: number;
5
+ readonly height: number;
6
+ readonly durationMs: number;
7
+ readonly disposeToBackground: boolean;
8
+ readonly blend: boolean;
9
+ readonly image: Uint8Array;
10
+ };
11
+
12
+ export type AnimatedWebp = {
13
+ readonly width: number;
14
+ readonly height: number;
15
+ readonly background: readonly [number, number, number, number];
16
+ readonly loopCount: number;
17
+ readonly frames: readonly AnimatedWebpFrame[];
18
+ };
19
+
20
+ function ascii(bytes: Uint8Array, start: number, length: number): string {
21
+ return String.fromCharCode(...bytes.subarray(start, start + length));
22
+ }
23
+
24
+ function u24(bytes: Uint8Array, offset: number): number {
25
+ return bytes[offset]! | bytes[offset + 1]! << 8 | bytes[offset + 2]! << 16;
26
+ }
27
+
28
+ function u32(bytes: Uint8Array, offset: number): number {
29
+ return new DataView(bytes.buffer, bytes.byteOffset + offset, 4).getUint32(0, true);
30
+ }
31
+
32
+ function chunk(id: string, payload: Uint8Array): Uint8Array {
33
+ const result = new Uint8Array(8 + payload.byteLength + (payload.byteLength & 1));
34
+ for (let index = 0; index < 4; index += 1) result[index] = id.charCodeAt(index);
35
+ new DataView(result.buffer).setUint32(4, payload.byteLength, true);
36
+ result.set(payload, 8);
37
+ return result;
38
+ }
39
+
40
+ function riff(chunks: readonly Uint8Array[]): Uint8Array {
41
+ const payloadBytes = chunks.reduce((sum, value) => sum + value.byteLength, 0);
42
+ const result = new Uint8Array(12 + payloadBytes);
43
+ result.set([0x52, 0x49, 0x46, 0x46], 0);
44
+ new DataView(result.buffer).setUint32(4, 4 + payloadBytes, true);
45
+ result.set([0x57, 0x45, 0x42, 0x50], 8);
46
+ let offset = 12;
47
+ for (const value of chunks) {
48
+ result.set(value, offset);
49
+ offset += value.byteLength;
50
+ }
51
+ return result;
52
+ }
53
+
54
+ function frameImage(payload: Uint8Array, width: number, height: number): Uint8Array {
55
+ const chunks: Uint8Array[] = [];
56
+ let offset = 0;
57
+ let hasAlpha = false;
58
+ while (offset + 8 <= payload.byteLength) {
59
+ const id = ascii(payload, offset, 4);
60
+ const size = u32(payload, offset + 4);
61
+ const end = offset + 8 + size;
62
+ if (end > payload.byteLength) throw new Error("Animated WebP frame chunk is truncated");
63
+ if (id === "ALPH") hasAlpha = true;
64
+ if (id === "ALPH" || id === "VP8 " || id === "VP8L") {
65
+ chunks.push(chunk(id, payload.subarray(offset + 8, end)));
66
+ }
67
+ offset = end + (size & 1);
68
+ }
69
+ if (!chunks.some((value) => ascii(value, 0, 4) === "VP8 " || ascii(value, 0, 4) === "VP8L")) {
70
+ throw new Error("Animated WebP frame has no image payload");
71
+ }
72
+ if (hasAlpha && chunks.some((value) => ascii(value, 0, 4) === "VP8 ")) {
73
+ const extended = new Uint8Array(10);
74
+ extended[0] = 0x10;
75
+ const widthMinusOne = width - 1;
76
+ const heightMinusOne = height - 1;
77
+ extended[4] = widthMinusOne & 0xff;
78
+ extended[5] = widthMinusOne >> 8 & 0xff;
79
+ extended[6] = widthMinusOne >> 16 & 0xff;
80
+ extended[7] = heightMinusOne & 0xff;
81
+ extended[8] = heightMinusOne >> 8 & 0xff;
82
+ extended[9] = heightMinusOne >> 16 & 0xff;
83
+ chunks.unshift(chunk("VP8X", extended));
84
+ }
85
+ return riff(chunks);
86
+ }
87
+
88
+ /** Parse only the animated WebP container facts FFmpeg currently cannot expose. */
89
+ export function parseAnimatedWebp(bytes: Uint8Array): AnimatedWebp | undefined {
90
+ if (bytes.byteLength < 12 || ascii(bytes, 0, 4) !== "RIFF" || ascii(bytes, 8, 4) !== "WEBP") return undefined;
91
+ const declaredEnd = 8 + u32(bytes, 4);
92
+ if (declaredEnd > bytes.byteLength || declaredEnd < 12) throw new Error("WebP RIFF size is invalid");
93
+ let width: number | undefined;
94
+ let height: number | undefined;
95
+ let background: readonly [number, number, number, number] = [0, 0, 0, 0];
96
+ let loopCount = 0;
97
+ const frames: AnimatedWebpFrame[] = [];
98
+ let offset = 12;
99
+ while (offset + 8 <= declaredEnd) {
100
+ const id = ascii(bytes, offset, 4);
101
+ const size = u32(bytes, offset + 4);
102
+ const start = offset + 8;
103
+ const end = start + size;
104
+ if (end > declaredEnd) throw new Error(`WebP ${id} chunk is truncated`);
105
+ const payload = bytes.subarray(start, end);
106
+ if (id === "VP8X") {
107
+ if (size !== 10) throw new Error("WebP VP8X chunk is invalid");
108
+ width = u24(payload, 4) + 1;
109
+ height = u24(payload, 7) + 1;
110
+ } else if (id === "ANIM") {
111
+ if (size !== 6) throw new Error("WebP ANIM chunk is invalid");
112
+ background = [payload[2]!, payload[1]!, payload[0]!, payload[3]!];
113
+ loopCount = payload[4]! | payload[5]! << 8;
114
+ } else if (id === "ANMF") {
115
+ if (size < 16) throw new Error("WebP ANMF chunk is invalid");
116
+ const frameWidth = u24(payload, 6) + 1;
117
+ const frameHeight = u24(payload, 9) + 1;
118
+ const durationMs = u24(payload, 12);
119
+ if (durationMs < 1) throw new Error("Animated WebP frame duration must be positive");
120
+ frames.push({
121
+ x: u24(payload, 0) * 2,
122
+ y: u24(payload, 3) * 2,
123
+ width: frameWidth,
124
+ height: frameHeight,
125
+ durationMs,
126
+ disposeToBackground: (payload[15]! & 1) !== 0,
127
+ blend: (payload[15]! & 2) === 0,
128
+ image: frameImage(payload.subarray(16), frameWidth, frameHeight),
129
+ });
130
+ }
131
+ offset = end + (size & 1);
132
+ }
133
+ if (frames.length === 0) return undefined;
134
+ if (width === undefined || height === undefined) throw new Error("Animated WebP has no canvas size");
135
+ if (frames.some((frame) => frame.x + frame.width > width! || frame.y + frame.height > height!)) {
136
+ throw new Error("Animated WebP frame escapes its canvas");
137
+ }
138
+ return { width, height, background, loopCount, frames };
139
+ }
140
+
141
+ function clear(canvas: Uint8Array, animation: AnimatedWebp, frame: AnimatedWebpFrame): void {
142
+ for (let y = frame.y; y < frame.y + frame.height; y += 1) {
143
+ for (let x = frame.x; x < frame.x + frame.width; x += 1) {
144
+ const target = (y * animation.width + x) * 4;
145
+ canvas.set(animation.background, target);
146
+ }
147
+ }
148
+ }
149
+
150
+ function blendPixel(canvas: Uint8Array, target: number, source: Uint8Array, sourceOffset: number): void {
151
+ const sourceAlpha = source[sourceOffset + 3]!;
152
+ if (sourceAlpha === 255) {
153
+ canvas.set(source.subarray(sourceOffset, sourceOffset + 4), target);
154
+ return;
155
+ }
156
+ if (sourceAlpha === 0) return;
157
+ const destinationAlpha = canvas[target + 3]!;
158
+ const inverse = 255 - sourceAlpha;
159
+ const outputAlpha255 = sourceAlpha * 255 + destinationAlpha * inverse;
160
+ for (let channel = 0; channel < 3; channel += 1) {
161
+ const numerator = source[sourceOffset + channel]! * sourceAlpha * 255
162
+ + canvas[target + channel]! * destinationAlpha * inverse;
163
+ canvas[target + channel] = Math.round(numerator / outputAlpha255);
164
+ }
165
+ canvas[target + 3] = Math.round(outputAlpha255 / 255);
166
+ }
167
+
168
+ export function compositeAnimatedWebpFrame(
169
+ canvas: Uint8Array,
170
+ animation: AnimatedWebp,
171
+ frame: AnimatedWebpFrame,
172
+ decoded: Uint8Array,
173
+ ): Uint8Array {
174
+ if (decoded.byteLength !== frame.width * frame.height * 4) {
175
+ throw new Error("Decoded WebP frame dimensions differ from the container");
176
+ }
177
+ for (let y = 0; y < frame.height; y += 1) {
178
+ for (let x = 0; x < frame.width; x += 1) {
179
+ const source = (y * frame.width + x) * 4;
180
+ const target = ((frame.y + y) * animation.width + frame.x + x) * 4;
181
+ if (frame.blend) blendPixel(canvas, target, decoded, source);
182
+ else canvas.set(decoded.subarray(source, source + 4), target);
183
+ }
184
+ }
185
+ const snapshot = canvas.slice();
186
+ if (frame.disposeToBackground) clear(canvas, animation, frame);
187
+ return snapshot;
188
+ }
189
+
190
+ export function createAnimatedWebpCanvas(animation: AnimatedWebp): Uint8Array {
191
+ const canvas = new Uint8Array(animation.width * animation.height * 4);
192
+ for (let offset = 0; offset < canvas.byteLength; offset += 4) canvas.set(animation.background, offset);
193
+ return canvas;
194
+ }
195
+
196
+ export function pamRgba(width: number, height: number, rgba: Uint8Array): Uint8Array {
197
+ if (rgba.byteLength !== width * height * 4) throw new Error("PAM frame byte count is invalid");
198
+ const header = Buffer.from(`P7\nWIDTH ${width}\nHEIGHT ${height}\nDEPTH 4\nMAXVAL 255\nTUPLTYPE RGB_ALPHA\nENDHDR\n`, "ascii");
199
+ return Buffer.concat([header, rgba]);
200
+ }
@@ -0,0 +1,113 @@
1
+ # `@hypit/media-pipeline`
2
+
3
+ Provider-neutral media execution vocabulary. Ingestion contributes one ordinary finite Fragment:
4
+
5
+ ```text
6
+ BlobArtifact
7
+ -> inspect-media Need
8
+ -> MediaInspection
9
+ -> deterministic stream selection
10
+ -> MediaStreamSelection
11
+ -> normalize-media Need
12
+ -> SynchronizedMedia
13
+ ```
14
+
15
+ `MediaInspection` enumerates every container stream. The default moving-video policy excludes
16
+ `attached_pic` streams, prefers one declared default, accepts one unambiguous remaining candidate,
17
+ and otherwise fails closed. An explicit stream index is available when the author module genuinely
18
+ knows which alternate stream it wants.
19
+
20
+ Selecting embedded audio is a media fact only. This package never assigns Script meaning. A later
21
+ speech alignment component binds one normalized Take to one authored Segment.
22
+
23
+ The current normalization profile uses one source presentation origin, a requested rational video frame
24
+ rate, and a 48 kHz stereo PCM render stem. It preserves input level: loudness/mastering remains a
25
+ separate author policy. Its public `SynchronizedMedia` waist carries only the common frame domain,
26
+ optional visual Artifact plus intrinsic extent, and optional audio Artifact. Stream indexes,
27
+ authority choice and the trim/pad ledger remain in Selection and execution instead of travelling
28
+ through every consumer.
29
+
30
+ Normalization preserves transparency in the selected visual stream. The executing Provider owns
31
+ the intermediate encoding; both opaque and transparent pictures use the same SynchronizedMedia
32
+ value. A later SemanticTake adds Script timing while retaining that prepared media. A visual
33
+ overlay can instead enter Media Track directly.
34
+
35
+ This package is the shared execution vocabulary. Speech authoring makes the boundary explicit:
36
+ `<pipeline:Normalize>` produces one `SynchronizedMedia`, then a speech provider and deterministic
37
+ alignment produce one `SemanticTake`. Media Track consumes that prepared value; it never owns an
38
+ implicit visual-only normalization policy.
39
+
40
+ The frame clock is a separate program fact and can be shared by every Normalize and Speech Track:
41
+
42
+ ```svml
43
+ <program:Clock id="clock" frame-rate="30"/>
44
+ <pipeline:Normalize id="shot-media" source={shot.video}
45
+ recipe={recipes.media.aroll} clock={clock}/>
46
+ ```
47
+
48
+ An SVS recipe may centralize the stream policy (`video`, `audio` and `span-authority`); it does not
49
+ hide the Normalize graph node or turn multiple sources into one opaque batch operation.
50
+
51
+ A still image becomes ordinary video before it enters that waist:
52
+
53
+ ```svml
54
+ <media:StillVideo id="opening-still" source={opening-head.image}
55
+ duration="6" clock={clock}/>
56
+ <pipeline:Normalize id="opening-media" source={opening-still.video}
57
+ video="primary-moving" audio="none" span-authority="video" clock={clock}/>
58
+ ```
59
+
60
+ Several images spread over one literal duration the same way, each held for its share of the frames:
61
+
62
+ ```svml
63
+ <media:StillVideo id="kitchen-stills" duration="6" clock={clock}>
64
+ <media:Still source={counter.image}/>
65
+ <media:Still source={basil.image} weight="2"/>
66
+ <media:Still source={board.image}/>
67
+ </media:StillVideo>
68
+ ```
69
+
70
+ `StillVideo` returns a video-only MP4 `BlobArtifact`, not `SynchronizedMedia`. The Surface publishes the
71
+ duration and the weights as Records; `plan-still-video` divides the whole frame count among the
72
+ pictures (every picture holds at least one frame, the rest go by weight with leftovers to the largest
73
+ remainders, earlier first), `bind-still-video-source` attaches each picture in authored order, and
74
+ encoding is one `render-still-video` Need. Pictures of different sizes are fitted into the first one's
75
+ frame and letterboxed. Inspection and normalization remain the same explicit steps used by imported
76
+ or generated moving video. The resulting Blob is ordinary time-bearing visual media. Its later role
77
+ comes entirely from the downstream Source relationships; StillVideo itself owns only the authored
78
+ images, duration and frame clock.
79
+
80
+ The package also exposes the one-picture Run Fragment `still-video`. It takes `duration`, `clock`,
81
+ `layout` and `source-0`. A Run can select its `video` export as a Candidate through `satisfy`.
82
+
83
+ Four ordinary author operations reuse that same inspection/execution boundary:
84
+
85
+ ```xml
86
+ <pipeline:Normalize id="shot-media" source={shot.video}
87
+ video="primary-moving" audio="default" span-authority="video" clock={clock}/>
88
+ <media:Transform id="prepared" source={shot-media.media}>
89
+ <media:Trim tail="0.25s"/>
90
+ <media:Retime rate="1.05" pitch="preserve"/>
91
+ </media:Transform>
92
+
93
+ <media:ExtractAudio id="voice-reference" source={prepared.video} audio="default"/>
94
+ <media:ExtractFrame id="continuity" source={prepared.video} video="primary-moving" at="last"/>
95
+ ```
96
+
97
+ Every result is an ordinary `BlobArtifact`. Audio extraction emits a deterministic 48 kHz stereo PCM
98
+ WAV but makes no `SemanticTake`, speaker or alignment claim; it can therefore feed a later model
99
+ reference port directly. Frame extraction supports `first`, `last`, `frame:<index>` and
100
+ `time:<seconds>`. Transform operations are ordered author meaning and never an arbitrary FFmpeg string.
101
+
102
+ The same package also owns two provider-neutral media completion plans/capabilities:
103
+
104
+ ```text
105
+ Composition -> pure AudioProgramPlan -> render-timeline-audio Need -> TimelineAudio
106
+ RenderedVisual + TimelineAudio -> mux-program-media Need -> MuxedMedia
107
+ ```
108
+
109
+ Compiling an `AudioProgramPlan` is ordinary deterministic code. Reading Artifact bytes, decoding,
110
+ resampling, mixing, encoding or muxing is never a Producer shortcut: it is an explicit Provider
111
+ Need. The plan fixes exact 48 kHz sample boundaries, gain/fade/playback parameters and the absence
112
+ of hidden normalization/limiting. The local FFmpeg and AWS Lambda Providers consume the same shared
113
+ execution body and return the same public contracts.
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@hypit/media-pipeline",
3
+ "version": "0.0.0-dev",
4
+ "license": "SEE LICENSE IN LICENSE",
5
+ "private": true,
6
+ "type": "module",
7
+ "exports": {
8
+ ".": "./src/index.ts"
9
+ },
10
+ "hypit": {
11
+ "activation": "./src/activation.ts"
12
+ },
13
+ "dependencies": {
14
+ "@hypit/artifact": "workspace:*",
15
+ "@hypit/component-kit": "workspace:*",
16
+ "@hypit/composition": "workspace:*",
17
+ "@hypit/elaborator": "workspace:*",
18
+ "@hypit/media": "workspace:*",
19
+ "@hypit/narrative": "workspace:*",
20
+ "@hypit/program-space": "workspace:*",
21
+ "@hypit/protocol": "workspace:*",
22
+ "@hypit/run": "workspace:*",
23
+ "@hypit/speech": "workspace:*",
24
+ "@hypit/svs": "workspace:*",
25
+ "@hypit/markup": "workspace:*"
26
+ }
27
+ }
@@ -0,0 +1,47 @@
1
+ import { createMarkupSurfaceHostFacet } from "@hypit/markup";
2
+ import { createRunFragmentHostFacet } from "@hypit/run";
3
+ import {
4
+ decodeSynchronizedMediaSurface,
5
+ decodeStillVideoSurface,
6
+ decodeExtractAudioSurface,
7
+ decodeExtractFrameSurface,
8
+ decodeTransformMediaSurface,
9
+ mediaPipelineComponent,
10
+ mediaPipelineManifest,
11
+ mediaPipelineModuleRef,
12
+ mediaPipelineMarkupSurfaces,
13
+ stillVideoFragment,
14
+ } from "./index.js";
15
+
16
+ export const hypitPackage = {
17
+ format: "hypit.node-package@1" as const,
18
+ modules: [{ manifest: mediaPipelineManifest }],
19
+ components: [mediaPipelineComponent],
20
+ hostFacets: [createRunFragmentHostFacet({
21
+ name: "@hypit/media-pipeline@1",
22
+ fragments: {
23
+ "still-video": stillVideoFragment,
24
+ },
25
+ }), createMarkupSurfaceHostFacet({
26
+ module: mediaPipelineModuleRef,
27
+ declaration: mediaPipelineMarkupSurfaces.find((item) => item.name === "synchronized-media")!,
28
+ handler: decodeSynchronizedMediaSurface,
29
+ }), createMarkupSurfaceHostFacet({
30
+ module: mediaPipelineModuleRef,
31
+ declaration: mediaPipelineMarkupSurfaces.find((item) => item.name === "still-video")!,
32
+ handler: decodeStillVideoSurface,
33
+ }), createMarkupSurfaceHostFacet({
34
+ module: mediaPipelineModuleRef,
35
+ declaration: mediaPipelineMarkupSurfaces.find((item) => item.name === "transform-media")!,
36
+ handler: decodeTransformMediaSurface,
37
+ }), createMarkupSurfaceHostFacet({
38
+ module: mediaPipelineModuleRef,
39
+ declaration: mediaPipelineMarkupSurfaces.find((item) => item.name === "extract-audio")!,
40
+ handler: decodeExtractAudioSurface,
41
+ }), createMarkupSurfaceHostFacet({
42
+ module: mediaPipelineModuleRef,
43
+ declaration: mediaPipelineMarkupSurfaces.find((item) => item.name === "extract-frame")!,
44
+ handler: decodeExtractFrameSurface,
45
+ })],
46
+ };
47
+ export default hypitPackage;
@@ -0,0 +1,113 @@
1
+ import { programFrameSampleBoundary, programSpaceFrameCount } from "@hypit/program-space";
2
+ import type { ProgramSpace } from "@hypit/program-space";
3
+ import { assertCompositionIdentity } from "@hypit/composition";
4
+ import type { Composition } from "@hypit/composition";
5
+ import { canonicalize, isResourceId } from "@hypit/protocol";
6
+
7
+ import type { AudioProgramPlan } from "./types.js";
8
+
9
+ function assert(condition: unknown, message: string): asserts condition {
10
+ if (!condition) throw new Error(message);
11
+ }
12
+
13
+ export function sealAudioProgramPlan(value: AudioProgramPlan): AudioProgramPlan {
14
+ return canonicalize(value) as unknown as AudioProgramPlan;
15
+ }
16
+
17
+ export function verifyAudioProgramPlan(value: unknown): asserts value is AudioProgramPlan {
18
+ assert(value !== null && typeof value === "object" && !Array.isArray(value), "AudioProgramPlan must be an object");
19
+ const item = value as AudioProgramPlan;
20
+ assert(Number.isSafeInteger(item.frameRate?.numerator) && item.frameRate.numerator > 0
21
+ && Number.isSafeInteger(item.frameRate?.denominator) && item.frameRate.denominator > 0,
22
+ "AudioProgramPlan frame rate is invalid");
23
+ assert(Number.isSafeInteger(item.frameCount) && item.frameCount > 0, "AudioProgramPlan frame count is invalid");
24
+ assert(item.sampleRate === 48_000, "AudioProgramPlan sample rate must be 48000");
25
+ const planSpace = {
26
+ id: "audio-program-plan",
27
+ durationSec: item.frameCount * item.frameRate.denominator / item.frameRate.numerator,
28
+ frameRate: item.frameRate,
29
+ };
30
+ assert(item.sampleFrames === programFrameSampleBoundary(planSpace, item.frameCount, 48_000),
31
+ "AudioProgramPlan sample count differs from its frame domain");
32
+ assert(Array.isArray(item.clips), "AudioProgramPlan clips are invalid");
33
+ const ids = new Set<string>();
34
+ for (const clip of item.clips) {
35
+ assert(typeof clip.id === "string" && clip.id.length > 0 && !ids.has(clip.id),
36
+ "AudioProgramPlan clip id is empty or repeated");
37
+ ids.add(clip.id);
38
+ assert(clip.artifact?.kind === "blob" && isResourceId(clip.artifact.resource)
39
+ && Number.isSafeInteger(clip.artifact.size) && clip.artifact.size >= 0
40
+ && clip.artifact.mediaType === "audio/wav",
41
+ `AudioProgramPlan clip ${clip.id} must reference canonical WAV`);
42
+ assert(Number.isSafeInteger(clip.targetStartSample) && clip.targetStartSample >= 0
43
+ && Number.isSafeInteger(clip.targetEndSampleExclusive)
44
+ && clip.targetEndSampleExclusive > clip.targetStartSample
45
+ && clip.targetEndSampleExclusive <= item.sampleFrames,
46
+ `AudioProgramPlan clip ${clip.id} target interval is invalid`);
47
+ assert(Number.isSafeInteger(clip.sourceStartSample) && clip.sourceStartSample >= 0,
48
+ `AudioProgramPlan clip ${clip.id} source start is invalid`);
49
+ assert(Number.isSafeInteger(clip.sourceSampleFrames) && clip.sourceSampleFrames > 0
50
+ && Number.isSafeInteger(clip.sourceEndSampleExclusive)
51
+ && clip.sourceEndSampleExclusive > clip.sourceStartSample
52
+ && clip.sourceEndSampleExclusive <= clip.sourceSampleFrames,
53
+ `AudioProgramPlan clip ${clip.id} source interval is invalid`);
54
+ const sourceLength = clip.sourceEndSampleExclusive - clip.sourceStartSample;
55
+ assert(typeof clip.sourceLoop === "boolean"
56
+ && Number.isSafeInteger(clip.sourcePhaseSample) && clip.sourcePhaseSample >= 0
57
+ && clip.sourcePhaseSample < sourceLength
58
+ && (clip.sourceLoop || clip.sourcePhaseSample === 0),
59
+ `AudioProgramPlan clip ${clip.id} loop phase is invalid`);
60
+ assert(Number.isFinite(clip.playbackRate) && clip.playbackRate > 0 && clip.playbackRate <= 100,
61
+ `AudioProgramPlan clip ${clip.id} playback rate is invalid`);
62
+ assert(clip.pitch === "preserve", `AudioProgramPlan clip ${clip.id} pitch policy is invalid`);
63
+ assert(Number.isFinite(clip.gain) && clip.gain >= 0 && clip.gain <= 64,
64
+ `AudioProgramPlan clip ${clip.id} gain is invalid`);
65
+ const length = clip.targetEndSampleExclusive - clip.targetStartSample;
66
+ assert(Number.isSafeInteger(clip.fadeInSamples) && clip.fadeInSamples >= 0 && clip.fadeInSamples <= length
67
+ && Number.isSafeInteger(clip.fadeOutSamples) && clip.fadeOutSamples >= 0 && clip.fadeOutSamples <= length,
68
+ `AudioProgramPlan clip ${clip.id} fade is invalid`);
69
+ }
70
+ assert(item.mix?.normalize === false && item.mix?.limiter === "none",
71
+ "AudioProgramPlan cannot hide normalization or limiting");
72
+ }
73
+
74
+ export function compileAudioProgramPlan(composition: Composition, programSpace: ProgramSpace): AudioProgramPlan {
75
+ assertCompositionIdentity(composition, programSpace);
76
+ const frameCount = programSpaceFrameCount(programSpace);
77
+ const clips = composition.tracks
78
+ .filter((track) => track.kind === "audio")
79
+ .flatMap((track) => track.clips.map((clip) => {
80
+ if (clip.artifact.mediaType !== "audio/wav") {
81
+ throw new Error(`Audio clip ${track.id}.${clip.id} must be normalized to canonical WAV before mixing`);
82
+ }
83
+ return {
84
+ id: `${track.id}:${clip.id}`,
85
+ artifact: {
86
+ kind: "blob" as const,
87
+ resource: clip.artifact.resource,
88
+ size: clip.artifact.size,
89
+ mediaType: clip.artifact.mediaType,
90
+ },
91
+ targetStartSample: clip.target.startSample,
92
+ targetEndSampleExclusive: clip.target.endSampleExclusive,
93
+ sourceSampleFrames: clip.source.sampleFrames,
94
+ sourceStartSample: clip.source.startSample,
95
+ sourceEndSampleExclusive: clip.source.endSampleExclusive,
96
+ sourceLoop: clip.source.loop,
97
+ sourcePhaseSample: clip.source.phaseSample,
98
+ playbackRate: clip.playbackRate,
99
+ pitch: clip.pitch,
100
+ gain: clip.gain,
101
+ fadeInSamples: clip.fadeInSamples,
102
+ fadeOutSamples: clip.fadeOutSamples,
103
+ };
104
+ }));
105
+ return sealAudioProgramPlan({
106
+ frameRate: { ...programSpace.frameRate },
107
+ frameCount,
108
+ sampleRate: 48_000,
109
+ sampleFrames: programFrameSampleBoundary(programSpace, frameCount, 48_000),
110
+ clips,
111
+ mix: { normalize: false, limiter: "none" },
112
+ });
113
+ }