@hypit/hypit 0.0.1 → 0.1.0

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 (962) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +203 -0
  3. package/README.zh-CN.md +195 -0
  4. package/bin/hypit.mjs +46 -0
  5. package/dist/public/artifact.d.ts +75 -0
  6. package/dist/public/author-kit.d.ts +559 -0
  7. package/dist/public/browser-capture.d.ts +56 -0
  8. package/dist/public/caption.d.ts +751 -0
  9. package/dist/public/composition.d.ts +672 -0
  10. package/dist/public/endpoint-kit.d.ts +366 -0
  11. package/dist/public/generation.d.ts +591 -0
  12. package/dist/public/hyperframes.d.ts +774 -0
  13. package/dist/public/media.d.ts +708 -0
  14. package/dist/public/model-kit.d.ts +523 -0
  15. package/dist/public/narrative.d.ts +315 -0
  16. package/dist/public/program-space.d.ts +193 -0
  17. package/dist/public/runtime-kit.d.ts +427 -0
  18. package/dist/public/semantic-track.d.ts +418 -0
  19. package/dist/public/spatial.d.ts +1193 -0
  20. package/dist/public/speech.d.ts +391 -0
  21. package/dist/public/studio-adapter.d.ts +686 -0
  22. package/dist/public/svs.d.ts +311 -0
  23. package/dist/public/temporal-markup.d.ts +343 -0
  24. package/dist/public/temporal.d.ts +497 -0
  25. package/dist/public/text.d.ts +817 -0
  26. package/dist/public/visual-ir.d.ts +98 -0
  27. package/docs/public/hypit-logo-dark.svg +36 -0
  28. package/docs/public/hypit-logo-light.svg +38 -0
  29. package/examples/README.md +24 -0
  30. package/examples/minimal-author-package/README.md +18 -0
  31. package/examples/minimal-author-package/packages/example-component/README.md +44 -0
  32. package/examples/minimal-author-package/packages/example-component/package.json +27 -0
  33. package/examples/minimal-author-package/packages/example-component/preview/Box.png +0 -0
  34. package/examples/minimal-author-package/packages/example-component/preview/build.svrun +6 -0
  35. package/examples/minimal-author-package/packages/example-component/preview/preview.svml +47 -0
  36. package/examples/minimal-author-package/packages/example-component/preview/recipes.svs +8 -0
  37. package/examples/minimal-author-package/packages/example-component/src/activation.ts +10 -0
  38. package/examples/minimal-author-package/packages/example-component/src/component.ts +44 -0
  39. package/examples/minimal-author-package/packages/example-component/src/fragment.ts +32 -0
  40. package/examples/minimal-author-package/packages/example-component/src/index.ts +6 -0
  41. package/examples/minimal-author-package/packages/example-component/src/manifest.ts +82 -0
  42. package/examples/minimal-author-package/packages/example-component/src/style.ts +13 -0
  43. package/examples/minimal-author-package/packages/example-component/src/surface.ts +41 -0
  44. package/examples/minimal-author-package/packages/example-component/src/temporal.ts +6 -0
  45. package/examples/minimal-author-package/packages/example-component/tsconfig.json +18 -0
  46. package/examples/semantic-composition/README.md +35 -0
  47. package/examples/semantic-composition/chat.svml +25 -0
  48. package/examples/semantic-composition/chat.svrun +6 -0
  49. package/examples/semantic-composition/chat.svs +4 -0
  50. package/examples/semantic-composition/hypit.runtime.json +8 -0
  51. package/examples/semantic-composition/packages/chat-scene/README.md +29 -0
  52. package/examples/semantic-composition/packages/chat-scene/package.json +11 -0
  53. package/examples/semantic-composition/packages/chat-scene/src/activation.ts +112 -0
  54. package/examples/semantic-composition/packages/chat-scene/src/render.ts +64 -0
  55. package/examples/semantic-composition/packages/chat-scene/tsconfig.json +18 -0
  56. package/examples/semantic-composition/packages/responsive-explainer/README.md +45 -0
  57. package/examples/semantic-composition/packages/responsive-explainer/package.json +11 -0
  58. package/examples/semantic-composition/packages/responsive-explainer/src/activation.ts +90 -0
  59. package/examples/semantic-composition/packages/responsive-explainer/src/render.ts +68 -0
  60. package/examples/semantic-composition/packages/responsive-explainer/tsconfig.json +18 -0
  61. package/package.json +259 -7
  62. package/packages/artifact/README.md +10 -0
  63. package/packages/artifact/package.json +16 -0
  64. package/packages/artifact/src/activation.ts +8 -0
  65. package/packages/artifact/src/index.ts +24 -0
  66. package/packages/audio-track/README.md +43 -0
  67. package/packages/audio-track/package.json +36 -0
  68. package/packages/audio-track/src/activation.ts +20 -0
  69. package/packages/audio-track/src/component.ts +40 -0
  70. package/packages/audio-track/src/fragment.ts +63 -0
  71. package/packages/audio-track/src/index.ts +7 -0
  72. package/packages/audio-track/src/manifest.ts +151 -0
  73. package/packages/audio-track/src/program.ts +254 -0
  74. package/packages/audio-track/src/surface.ts +187 -0
  75. package/packages/audio-track/src/types.ts +62 -0
  76. package/packages/audio-track-studio/README.md +3 -0
  77. package/packages/audio-track-studio/package.json +14 -0
  78. package/packages/audio-track-studio/src/activation.ts +7 -0
  79. package/packages/audio-track-studio/src/index.ts +72 -0
  80. package/packages/author-kit/README.md +31 -0
  81. package/packages/author-kit/package.json +16 -0
  82. package/packages/author-kit/src/index.ts +59 -0
  83. package/packages/background-removal/README.md +29 -0
  84. package/packages/background-removal/package.json +16 -0
  85. package/packages/background-removal/src/activation.ts +18 -0
  86. package/packages/background-removal/src/component.ts +32 -0
  87. package/packages/background-removal/src/fragment.ts +18 -0
  88. package/packages/background-removal/src/index.ts +6 -0
  89. package/packages/background-removal/src/manifest.ts +45 -0
  90. package/packages/background-removal/src/program.ts +19 -0
  91. package/packages/background-removal/src/surface.ts +27 -0
  92. package/packages/background-removal/src/types.ts +5 -0
  93. package/packages/browser-capture/README.md +82 -0
  94. package/packages/browser-capture/package.json +15 -0
  95. package/packages/browser-capture/src/browser.ts +19 -0
  96. package/packages/browser-capture/src/index.ts +198 -0
  97. package/packages/build-result/package.json +13 -0
  98. package/packages/build-result/src/decode.ts +286 -0
  99. package/packages/build-result/src/index.ts +25 -0
  100. package/packages/build-result/src/store.ts +505 -0
  101. package/packages/build-result/src/types.ts +354 -0
  102. package/packages/build-result/src/writer.ts +184 -0
  103. package/packages/build-result-fs/README.md +29 -0
  104. package/packages/build-result-fs/package.json +17 -0
  105. package/packages/build-result-fs/src/activation.ts +62 -0
  106. package/packages/build-result-fs/src/index.ts +1 -0
  107. package/packages/build-result-kit/README.md +10 -0
  108. package/packages/build-result-kit/package.json +15 -0
  109. package/packages/build-result-kit/src/index.ts +144 -0
  110. package/packages/build-result-s3/README.md +49 -0
  111. package/packages/build-result-s3/package.json +19 -0
  112. package/packages/build-result-s3/src/activation.ts +71 -0
  113. package/packages/build-result-s3/src/client.ts +254 -0
  114. package/packages/build-result-s3/src/index.ts +4 -0
  115. package/packages/build-result-s3/src/repository.ts +361 -0
  116. package/packages/caption/README.md +77 -0
  117. package/packages/caption/package.json +28 -0
  118. package/packages/caption/src/activation.ts +17 -0
  119. package/packages/caption/src/component.ts +38 -0
  120. package/packages/caption/src/display.ts +111 -0
  121. package/packages/caption/src/error.ts +9 -0
  122. package/packages/caption/src/fragment.ts +26 -0
  123. package/packages/caption/src/index.ts +33 -0
  124. package/packages/caption/src/manifest.ts +97 -0
  125. package/packages/caption/src/style.ts +170 -0
  126. package/packages/caption/src/surface.ts +96 -0
  127. package/packages/caption/src/temporalize.ts +124 -0
  128. package/packages/caption/src/types.ts +71 -0
  129. package/packages/caption-fine/README.md +108 -0
  130. package/packages/caption-fine/package.json +30 -0
  131. package/packages/caption-fine/preview/Track.png +0 -0
  132. package/packages/caption-fine/src/activation.ts +32 -0
  133. package/packages/caption-fine/src/component.ts +58 -0
  134. package/packages/caption-fine/src/fragment.ts +112 -0
  135. package/packages/caption-fine/src/index.ts +19 -0
  136. package/packages/caption-fine/src/manifest.ts +383 -0
  137. package/packages/caption-fine/src/recipe.ts +120 -0
  138. package/packages/caption-fine/src/render.ts +1133 -0
  139. package/packages/caption-fine/src/schedule.ts +126 -0
  140. package/packages/caption-fine/src/spacing.ts +69 -0
  141. package/packages/caption-fine/src/style.ts +370 -0
  142. package/packages/caption-fine/src/surface.ts +152 -0
  143. package/packages/caption-fine/src/types.ts +191 -0
  144. package/packages/caption-fine-studio/README.md +3 -0
  145. package/packages/caption-fine-studio/package.json +15 -0
  146. package/packages/caption-fine-studio/src/activation.ts +7 -0
  147. package/packages/caption-fine-studio/src/index.ts +163 -0
  148. package/packages/cli/README.md +51 -0
  149. package/packages/cli/package.json +33 -0
  150. package/packages/cli/src/arguments.ts +605 -0
  151. package/packages/cli/src/build-planning.ts +460 -0
  152. package/packages/cli/src/command.ts +202 -0
  153. package/packages/cli/src/commands/environment.ts +391 -0
  154. package/packages/cli/src/commands/execution.ts +321 -0
  155. package/packages/cli/src/commands/results.ts +187 -0
  156. package/packages/cli/src/commands/types.ts +9 -0
  157. package/packages/cli/src/distribution.ts +74 -0
  158. package/packages/cli/src/index.ts +30 -0
  159. package/packages/cli/src/machine-view.ts +28 -0
  160. package/packages/cli/src/main.ts +654 -0
  161. package/packages/cli/src/oauth.ts +228 -0
  162. package/packages/cli/src/observation.ts +203 -0
  163. package/packages/cli/src/output.ts +1007 -0
  164. package/packages/cli/src/paths.ts +7 -0
  165. package/packages/cli/src/project-context.ts +38 -0
  166. package/packages/cli/src/reachability.ts +91 -0
  167. package/packages/cli/src/result-export.ts +148 -0
  168. package/packages/cli/src/result-query.ts +46 -0
  169. package/packages/cli/src/run-file.ts +186 -0
  170. package/packages/cli/src/runtime-port.ts +13 -0
  171. package/packages/cli/src/runtime-selection.ts +94 -0
  172. package/packages/cli/src/runtime-view.ts +15 -0
  173. package/packages/cli/src/source-discovery.ts +150 -0
  174. package/packages/cli/src/source-packages.ts +91 -0
  175. package/packages/cli/src/view.ts +228 -0
  176. package/packages/comment-sticker/README.md +41 -0
  177. package/packages/comment-sticker/package.json +29 -0
  178. package/packages/comment-sticker/preview/Track.png +0 -0
  179. package/packages/comment-sticker/src/activation.ts +32 -0
  180. package/packages/comment-sticker/src/author.ts +148 -0
  181. package/packages/comment-sticker/src/component.ts +97 -0
  182. package/packages/comment-sticker/src/fragment.ts +124 -0
  183. package/packages/comment-sticker/src/index.ts +8 -0
  184. package/packages/comment-sticker/src/manifest.ts +373 -0
  185. package/packages/comment-sticker/src/program.ts +610 -0
  186. package/packages/comment-sticker/src/surface.ts +172 -0
  187. package/packages/comment-sticker/src/types.ts +109 -0
  188. package/packages/comment-sticker-studio/README.md +3 -0
  189. package/packages/comment-sticker-studio/package.json +14 -0
  190. package/packages/comment-sticker-studio/src/activation.ts +7 -0
  191. package/packages/comment-sticker-studio/src/index.ts +132 -0
  192. package/packages/compiler-markup-node/README.md +12 -0
  193. package/packages/compiler-markup-node/package.json +22 -0
  194. package/packages/compiler-markup-node/src/index.ts +59 -0
  195. package/packages/compiler-node/README.md +60 -0
  196. package/packages/compiler-node/package.json +25 -0
  197. package/packages/compiler-node/src/compiler.ts +207 -0
  198. package/packages/compiler-node/src/error.ts +11 -0
  199. package/packages/compiler-node/src/graph-query.ts +51 -0
  200. package/packages/compiler-node/src/index.ts +27 -0
  201. package/packages/compiler-node/src/modules.ts +107 -0
  202. package/packages/compiler-node/src/run.ts +355 -0
  203. package/packages/component-kit/README.md +97 -0
  204. package/packages/component-kit/package.json +13 -0
  205. package/packages/component-kit/src/index.ts +155 -0
  206. package/packages/composition/README.md +53 -0
  207. package/packages/composition/package.json +29 -0
  208. package/packages/composition/src/activation.ts +3 -0
  209. package/packages/composition/src/component.ts +10 -0
  210. package/packages/composition/src/index.ts +18 -0
  211. package/packages/composition/src/manifest.ts +13 -0
  212. package/packages/composition/src/schema.ts +194 -0
  213. package/packages/composition/src/track.ts +1403 -0
  214. package/packages/core/README.md +22 -0
  215. package/packages/core/package.json +13 -0
  216. package/packages/core/src/error.ts +12 -0
  217. package/packages/core/src/graph.ts +341 -0
  218. package/packages/core/src/index.ts +32 -0
  219. package/packages/core/src/link.ts +240 -0
  220. package/packages/core/src/machine.ts +60 -0
  221. package/packages/core/src/plan.ts +504 -0
  222. package/packages/core/src/reducer.ts +428 -0
  223. package/packages/core/src/reference.ts +25 -0
  224. package/packages/core/src/slice.ts +108 -0
  225. package/packages/credential-store-env/README.md +11 -0
  226. package/packages/credential-store-env/package.json +17 -0
  227. package/packages/credential-store-env/src/activation.ts +25 -0
  228. package/packages/credential-store-env/src/index.ts +23 -0
  229. package/packages/credential-store-os/README.md +13 -0
  230. package/packages/credential-store-os/package.json +22 -0
  231. package/packages/credential-store-os/runtime/windows-credential.ps1 +59 -0
  232. package/packages/credential-store-os/src/activation.ts +32 -0
  233. package/packages/credential-store-os/src/index.ts +2 -0
  234. package/packages/credential-store-os/src/store.ts +196 -0
  235. package/packages/deck-track/README.md +52 -0
  236. package/packages/deck-track/package.json +35 -0
  237. package/packages/deck-track/preview/DepthStack.png +0 -0
  238. package/packages/deck-track/src/activation.ts +32 -0
  239. package/packages/deck-track/src/author.ts +217 -0
  240. package/packages/deck-track/src/component.ts +86 -0
  241. package/packages/deck-track/src/fragment.ts +148 -0
  242. package/packages/deck-track/src/index.ts +16 -0
  243. package/packages/deck-track/src/lower.ts +370 -0
  244. package/packages/deck-track/src/manifest.ts +438 -0
  245. package/packages/deck-track/src/program.ts +367 -0
  246. package/packages/deck-track/src/surface.ts +286 -0
  247. package/packages/deck-track/src/types.ts +119 -0
  248. package/packages/deck-track-studio/README.md +3 -0
  249. package/packages/deck-track-studio/package.json +14 -0
  250. package/packages/deck-track-studio/src/activation.ts +7 -0
  251. package/packages/deck-track-studio/src/index.ts +134 -0
  252. package/packages/driver-node/README.md +23 -0
  253. package/packages/driver-node/package.json +18 -0
  254. package/packages/driver-node/src/driver.ts +616 -0
  255. package/packages/driver-node/src/index.ts +10 -0
  256. package/packages/driver-node/src/planning.ts +67 -0
  257. package/packages/driver-node/src/registry.ts +234 -0
  258. package/packages/driver-node/src/resources.ts +36 -0
  259. package/packages/driver-node/src/types.ts +69 -0
  260. package/packages/elaborator/README.md +74 -0
  261. package/packages/elaborator/package.json +16 -0
  262. package/packages/elaborator/src/author.ts +308 -0
  263. package/packages/elaborator/src/fragment.ts +505 -0
  264. package/packages/elaborator/src/frontend-facet.ts +30 -0
  265. package/packages/elaborator/src/index.ts +78 -0
  266. package/packages/elaborator/src/source.ts +608 -0
  267. package/packages/endpoint-kit/README.md +111 -0
  268. package/packages/endpoint-kit/package.json +14 -0
  269. package/packages/endpoint-kit/src/index.ts +488 -0
  270. package/packages/estimate/README.md +32 -0
  271. package/packages/estimate/package.json +20 -0
  272. package/packages/estimate/src/activation.ts +11 -0
  273. package/packages/estimate/src/index.ts +16 -0
  274. package/packages/estimate/src/manifest.ts +34 -0
  275. package/packages/estimate/src/policy.ts +70 -0
  276. package/packages/estimate/src/program.ts +196 -0
  277. package/packages/estimate/src/types.ts +15 -0
  278. package/packages/film/README.md +49 -0
  279. package/packages/film/package.json +34 -0
  280. package/packages/film/src/activation.ts +16 -0
  281. package/packages/film/src/component.ts +61 -0
  282. package/packages/film/src/fragment.ts +83 -0
  283. package/packages/film/src/index.ts +11 -0
  284. package/packages/film/src/manifest.ts +152 -0
  285. package/packages/film/src/program.ts +110 -0
  286. package/packages/film/src/recipe.ts +24 -0
  287. package/packages/film/src/surface.ts +146 -0
  288. package/packages/film/src/types.ts +26 -0
  289. package/packages/film-studio/package.json +16 -0
  290. package/packages/film-studio/src/activation.ts +8 -0
  291. package/packages/film-studio/src/index.ts +17 -0
  292. package/packages/fonts-open/README.md +77 -0
  293. package/packages/fonts-open/package.json +130 -0
  294. package/packages/fonts-open/src/activation.ts +30 -0
  295. package/packages/fonts-open/src/catalog.ts +317 -0
  296. package/packages/fonts-open/src/index.ts +13 -0
  297. package/packages/fonts-open/src/manifest.ts +83 -0
  298. package/packages/fonts-open/src/surface.ts +239 -0
  299. package/packages/generation/README.md +19 -0
  300. package/packages/generation/package.json +23 -0
  301. package/packages/generation/src/activation.ts +9 -0
  302. package/packages/generation/src/component.ts +77 -0
  303. package/packages/generation/src/identity.ts +80 -0
  304. package/packages/generation/src/index.ts +79 -0
  305. package/packages/generation/src/manifest.ts +65 -0
  306. package/packages/generation/src/mapping.ts +231 -0
  307. package/packages/generation/src/ports.ts +222 -0
  308. package/packages/generation/src/request.ts +427 -0
  309. package/packages/generation/src/schema.ts +62 -0
  310. package/packages/generation/src/types.ts +17 -0
  311. package/packages/gpt-image/README.md +54 -0
  312. package/packages/gpt-image/package.json +34 -0
  313. package/packages/gpt-image/src/activation.ts +39 -0
  314. package/packages/gpt-image/src/fragment.ts +101 -0
  315. package/packages/gpt-image/src/index.ts +203 -0
  316. package/packages/gpt-image/src/surface.ts +194 -0
  317. package/packages/gpt-image-kits/README.md +44 -0
  318. package/packages/gpt-image-kits/kits/phone-ugc-v1.svs +34 -0
  319. package/packages/gpt-image-kits/package.json +15 -0
  320. package/packages/grok-imagine/README.md +21 -0
  321. package/packages/grok-imagine/package.json +21 -0
  322. package/packages/grok-imagine/src/activation.ts +29 -0
  323. package/packages/grok-imagine/src/index.ts +174 -0
  324. package/packages/grok-imagine/src/surface.ts +149 -0
  325. package/packages/host/README.md +5 -0
  326. package/packages/host/package.json +10 -0
  327. package/packages/host/src/facet.ts +6 -0
  328. package/packages/host/src/frontend.ts +56 -0
  329. package/packages/host/src/index.ts +9 -0
  330. package/packages/hyperframes/README.md +69 -0
  331. package/packages/hyperframes/package.json +36 -0
  332. package/packages/hyperframes/src/activation.ts +8 -0
  333. package/packages/hyperframes/src/browser-program.ts +79 -0
  334. package/packages/hyperframes/src/component.ts +32 -0
  335. package/packages/hyperframes/src/document.ts +827 -0
  336. package/packages/hyperframes/src/fragment.ts +32 -0
  337. package/packages/hyperframes/src/index.ts +13 -0
  338. package/packages/hyperframes/src/manifest.ts +67 -0
  339. package/packages/hyperframes/src/project.ts +118 -0
  340. package/packages/hyperframes/src/text.ts +1179 -0
  341. package/packages/hyperframes/src/types.ts +38 -0
  342. package/packages/image-compose/README.md +25 -0
  343. package/packages/image-compose/package.json +18 -0
  344. package/packages/image-compose/src/activation.ts +21 -0
  345. package/packages/image-compose/src/component.ts +100 -0
  346. package/packages/image-compose/src/fragment.ts +54 -0
  347. package/packages/image-compose/src/index.ts +10 -0
  348. package/packages/image-compose/src/manifest.ts +119 -0
  349. package/packages/image-compose/src/program.ts +75 -0
  350. package/packages/image-compose/src/surface.ts +83 -0
  351. package/packages/image-compose/src/types.ts +22 -0
  352. package/packages/image-transform/README.md +29 -0
  353. package/packages/image-transform/package.json +21 -0
  354. package/packages/image-transform/src/activation.ts +33 -0
  355. package/packages/image-transform/src/component.ts +67 -0
  356. package/packages/image-transform/src/fragment.ts +25 -0
  357. package/packages/image-transform/src/index.ts +13 -0
  358. package/packages/image-transform/src/manifest.ts +209 -0
  359. package/packages/image-transform/src/program.ts +23 -0
  360. package/packages/image-transform/src/surface.ts +216 -0
  361. package/packages/image-transform/src/types.ts +20 -0
  362. package/packages/interview-emoji-reveal/README.md +39 -0
  363. package/packages/interview-emoji-reveal/package.json +23 -0
  364. package/packages/interview-emoji-reveal/preview/Track.png +0 -0
  365. package/packages/interview-emoji-reveal/src/activation.ts +14 -0
  366. package/packages/interview-emoji-reveal/src/component.ts +45 -0
  367. package/packages/interview-emoji-reveal/src/fragment.ts +62 -0
  368. package/packages/interview-emoji-reveal/src/index.ts +16 -0
  369. package/packages/interview-emoji-reveal/src/manifest.ts +174 -0
  370. package/packages/interview-emoji-reveal/src/program.ts +242 -0
  371. package/packages/interview-emoji-reveal/src/style.ts +47 -0
  372. package/packages/interview-emoji-reveal/src/surface.ts +110 -0
  373. package/packages/interview-emoji-reveal/src/types.ts +52 -0
  374. package/packages/markup/README.md +81 -0
  375. package/packages/markup/package.json +16 -0
  376. package/packages/markup/src/element.ts +39 -0
  377. package/packages/markup/src/error.ts +20 -0
  378. package/packages/markup/src/frontend.ts +518 -0
  379. package/packages/markup/src/host-facet.ts +115 -0
  380. package/packages/markup/src/index.ts +25 -0
  381. package/packages/markup/src/registry.ts +83 -0
  382. package/packages/markup/src/syntax.ts +271 -0
  383. package/packages/markup/src/types.ts +246 -0
  384. package/packages/media/README.md +37 -0
  385. package/packages/media/package.json +19 -0
  386. package/packages/media/src/activation.ts +38 -0
  387. package/packages/media/src/component.ts +16 -0
  388. package/packages/media/src/frame-range.ts +33 -0
  389. package/packages/media/src/identity.ts +227 -0
  390. package/packages/media/src/index.ts +15 -0
  391. package/packages/media/src/manifest.ts +122 -0
  392. package/packages/media/src/render.ts +140 -0
  393. package/packages/media/src/schema.ts +69 -0
  394. package/packages/media/src/surface.ts +150 -0
  395. package/packages/media/src/types.ts +121 -0
  396. package/packages/media-execution/README.md +28 -0
  397. package/packages/media-execution/package.json +17 -0
  398. package/packages/media-execution/src/execute.ts +1322 -0
  399. package/packages/media-execution/src/index.ts +16 -0
  400. package/packages/media-execution/src/probe.ts +315 -0
  401. package/packages/media-execution/src/surface.ts +286 -0
  402. package/packages/media-execution/src/toolchain.ts +81 -0
  403. package/packages/media-execution/src/webp.ts +200 -0
  404. package/packages/media-pipeline/README.md +113 -0
  405. package/packages/media-pipeline/package.json +27 -0
  406. package/packages/media-pipeline/src/activation.ts +47 -0
  407. package/packages/media-pipeline/src/audio-plan.ts +113 -0
  408. package/packages/media-pipeline/src/component.ts +373 -0
  409. package/packages/media-pipeline/src/fragment.ts +167 -0
  410. package/packages/media-pipeline/src/index.ts +46 -0
  411. package/packages/media-pipeline/src/manifest.ts +653 -0
  412. package/packages/media-pipeline/src/operations.ts +248 -0
  413. package/packages/media-pipeline/src/selection.ts +110 -0
  414. package/packages/media-pipeline/src/surface.ts +389 -0
  415. package/packages/media-pipeline/src/types.ts +175 -0
  416. package/packages/media-track/README.md +197 -0
  417. package/packages/media-track/package.json +29 -0
  418. package/packages/media-track/preview/Track.png +0 -0
  419. package/packages/media-track/preview/build.svrun +5 -0
  420. package/packages/media-track/preview/flush.png +0 -0
  421. package/packages/media-track/preview/preview.svml +47 -0
  422. package/packages/media-track/preview/recipes.svs +23 -0
  423. package/packages/media-track/preview/rounded.png +0 -0
  424. package/packages/media-track/src/activation.ts +20 -0
  425. package/packages/media-track/src/author.ts +317 -0
  426. package/packages/media-track/src/component.ts +162 -0
  427. package/packages/media-track/src/fragment.ts +57 -0
  428. package/packages/media-track/src/index.ts +65 -0
  429. package/packages/media-track/src/layers.ts +308 -0
  430. package/packages/media-track/src/lower.ts +335 -0
  431. package/packages/media-track/src/manifest.ts +624 -0
  432. package/packages/media-track/src/motion.ts +387 -0
  433. package/packages/media-track/src/performance.ts +37 -0
  434. package/packages/media-track/src/presentation.ts +35 -0
  435. package/packages/media-track/src/program.ts +565 -0
  436. package/packages/media-track/src/sampling.ts +118 -0
  437. package/packages/media-track/src/sequence.ts +403 -0
  438. package/packages/media-track/src/sounds.ts +71 -0
  439. package/packages/media-track/src/surface.ts +668 -0
  440. package/packages/media-track/src/types.ts +311 -0
  441. package/packages/media-track-studio/README.md +3 -0
  442. package/packages/media-track-studio/package.json +15 -0
  443. package/packages/media-track-studio/src/activation.ts +7 -0
  444. package/packages/media-track-studio/src/index.ts +235 -0
  445. package/packages/mimo-speech/README.md +33 -0
  446. package/packages/mimo-speech/package.json +21 -0
  447. package/packages/mimo-speech/src/activation.ts +32 -0
  448. package/packages/mimo-speech/src/fragment.ts +11 -0
  449. package/packages/mimo-speech/src/index.ts +160 -0
  450. package/packages/mimo-speech/src/surface.ts +193 -0
  451. package/packages/minimax-h3/README.md +21 -0
  452. package/packages/minimax-h3/package.json +21 -0
  453. package/packages/minimax-h3/src/activation.ts +14 -0
  454. package/packages/minimax-h3/src/index.ts +188 -0
  455. package/packages/minimax-h3/src/surface.ts +87 -0
  456. package/packages/model-kit/README.md +52 -0
  457. package/packages/model-kit/package.json +19 -0
  458. package/packages/model-kit/src/index.ts +728 -0
  459. package/packages/nano-banana/README.md +23 -0
  460. package/packages/nano-banana/package.json +21 -0
  461. package/packages/nano-banana/src/activation.ts +14 -0
  462. package/packages/nano-banana/src/index.ts +172 -0
  463. package/packages/nano-banana/src/surface.ts +120 -0
  464. package/packages/narrative/README.md +7 -0
  465. package/packages/narrative/package.json +17 -0
  466. package/packages/narrative/src/activation.ts +7 -0
  467. package/packages/narrative/src/component.ts +33 -0
  468. package/packages/narrative/src/identity.ts +131 -0
  469. package/packages/narrative/src/index.ts +11 -0
  470. package/packages/narrative/src/manifest.ts +30 -0
  471. package/packages/narrative/src/schema.ts +89 -0
  472. package/packages/narrative/src/types.ts +141 -0
  473. package/packages/package-loader-node/README.md +23 -0
  474. package/packages/package-loader-node/package.json +15 -0
  475. package/packages/package-loader-node/src/contribution.ts +97 -0
  476. package/packages/package-loader-node/src/distribution-resolution.ts +146 -0
  477. package/packages/package-loader-node/src/index.ts +27 -0
  478. package/packages/package-loader-node/src/loader.ts +301 -0
  479. package/packages/package-loader-node/src/location.ts +279 -0
  480. package/packages/package-loader-node/src/types.ts +60 -0
  481. package/packages/program-space/README.md +20 -0
  482. package/packages/program-space/package.json +17 -0
  483. package/packages/program-space/src/activation.ts +19 -0
  484. package/packages/program-space/src/index.ts +107 -0
  485. package/packages/program-space/src/surface.ts +55 -0
  486. package/packages/protocol/README.md +11 -0
  487. package/packages/protocol/package.json +10 -0
  488. package/packages/protocol/src/build-id.ts +52 -0
  489. package/packages/protocol/src/build.ts +265 -0
  490. package/packages/protocol/src/canonical.ts +37 -0
  491. package/packages/protocol/src/error.ts +11 -0
  492. package/packages/protocol/src/identity.ts +59 -0
  493. package/packages/protocol/src/index.ts +9 -0
  494. package/packages/protocol/src/module.ts +67 -0
  495. package/packages/protocol/src/value.ts +88 -0
  496. package/packages/provider-hyperframes-aws-lambda/README.md +30 -0
  497. package/packages/provider-hyperframes-aws-lambda/package.json +30 -0
  498. package/packages/provider-hyperframes-aws-lambda/src/activation.ts +97 -0
  499. package/packages/provider-hyperframes-aws-lambda/src/client.ts +114 -0
  500. package/packages/provider-hyperframes-aws-lambda/src/index.ts +21 -0
  501. package/packages/provider-hyperframes-aws-lambda/src/provider.ts +522 -0
  502. package/packages/provider-hyperframes-local/README.md +129 -0
  503. package/packages/provider-hyperframes-local/package.json +34 -0
  504. package/packages/provider-hyperframes-local/src/activation.ts +107 -0
  505. package/packages/provider-hyperframes-local/src/capture-process.ts +110 -0
  506. package/packages/provider-hyperframes-local/src/capture-worker.ts +17 -0
  507. package/packages/provider-hyperframes-local/src/capture.ts +184 -0
  508. package/packages/provider-hyperframes-local/src/index.ts +10 -0
  509. package/packages/provider-hyperframes-local/src/options.ts +19 -0
  510. package/packages/provider-hyperframes-local/src/output.ts +73 -0
  511. package/packages/provider-hyperframes-local/src/process.ts +83 -0
  512. package/packages/provider-hyperframes-local/src/program.ts +58 -0
  513. package/packages/provider-hyperframes-local/src/provider.ts +62 -0
  514. package/packages/provider-hyperframes-local/src/render.ts +114 -0
  515. package/packages/provider-hyperframes-local/src/sampling.ts +89 -0
  516. package/packages/provider-hypihub/README.md +143 -0
  517. package/packages/provider-hypihub/package.json +26 -0
  518. package/packages/provider-hypihub/src/activation.ts +91 -0
  519. package/packages/provider-hypihub/src/index.ts +2 -0
  520. package/packages/provider-hypihub/src/mapping.ts +145 -0
  521. package/packages/provider-hypihub/src/oauth.ts +113 -0
  522. package/packages/provider-hypihub/src/provider.ts +566 -0
  523. package/packages/provider-hypihub/src/routes.ts +134 -0
  524. package/packages/provider-hypihub/src/upload.ts +402 -0
  525. package/packages/provider-image-opencv-local/README.md +16 -0
  526. package/packages/provider-image-opencv-local/package.json +27 -0
  527. package/packages/provider-image-opencv-local/runtime/raster_execute.py +299 -0
  528. package/packages/provider-image-opencv-local/src/activation.ts +61 -0
  529. package/packages/provider-image-opencv-local/src/deployment.ts +68 -0
  530. package/packages/provider-image-opencv-local/src/index.ts +2 -0
  531. package/packages/provider-image-opencv-local/src/program.ts +60 -0
  532. package/packages/provider-image-opencv-local/src/provider.ts +155 -0
  533. package/packages/provider-kie/README.md +134 -0
  534. package/packages/provider-kie/package.json +43 -0
  535. package/packages/provider-kie/src/activation.ts +71 -0
  536. package/packages/provider-kie/src/index.ts +10 -0
  537. package/packages/provider-kie/src/mapping.ts +182 -0
  538. package/packages/provider-kie/src/provider.ts +657 -0
  539. package/packages/provider-kie/src/routes.ts +150 -0
  540. package/packages/provider-media-local/README.md +58 -0
  541. package/packages/provider-media-local/package.json +28 -0
  542. package/packages/provider-media-local/src/activation.ts +65 -0
  543. package/packages/provider-media-local/src/index.ts +2 -0
  544. package/packages/provider-media-local/src/program.ts +19 -0
  545. package/packages/provider-media-local/src/provider.ts +150 -0
  546. package/packages/provider-whisperx-local/README.md +44 -0
  547. package/packages/provider-whisperx-local/package.json +27 -0
  548. package/packages/provider-whisperx-local/src/activation.ts +93 -0
  549. package/packages/provider-whisperx-local/src/index.ts +5 -0
  550. package/packages/provider-whisperx-local/src/program.ts +157 -0
  551. package/packages/provider-whisperx-local/src/provider.ts +191 -0
  552. package/packages/provider-xiaomi-mimo/README.md +32 -0
  553. package/packages/provider-xiaomi-mimo/package.json +24 -0
  554. package/packages/provider-xiaomi-mimo/src/activation.ts +57 -0
  555. package/packages/provider-xiaomi-mimo/src/index.ts +5 -0
  556. package/packages/provider-xiaomi-mimo/src/provider.ts +214 -0
  557. package/packages/ranking/README.md +67 -0
  558. package/packages/ranking/package.json +33 -0
  559. package/packages/ranking/preview/Column.svg +29 -0
  560. package/packages/ranking/preview/TierBoard.png +0 -0
  561. package/packages/ranking/preview/TierBoard.svg +36 -0
  562. package/packages/ranking/preview/TopThree.png +0 -0
  563. package/packages/ranking/src/activation.ts +38 -0
  564. package/packages/ranking/src/component.ts +271 -0
  565. package/packages/ranking/src/fragment.ts +206 -0
  566. package/packages/ranking/src/index.ts +26 -0
  567. package/packages/ranking/src/manifest.ts +807 -0
  568. package/packages/ranking/src/render.ts +698 -0
  569. package/packages/ranking/src/schedule.ts +895 -0
  570. package/packages/ranking/src/style.ts +272 -0
  571. package/packages/ranking/src/surface.ts +322 -0
  572. package/packages/ranking/src/tier.ts +176 -0
  573. package/packages/ranking/src/types.ts +277 -0
  574. package/packages/ranking-studio/README.md +3 -0
  575. package/packages/ranking-studio/package.json +14 -0
  576. package/packages/ranking-studio/src/activation.ts +7 -0
  577. package/packages/ranking-studio/src/index.ts +255 -0
  578. package/packages/raster/README.md +7 -0
  579. package/packages/raster/package.json +14 -0
  580. package/packages/raster/src/activation.ts +7 -0
  581. package/packages/raster/src/index.ts +7 -0
  582. package/packages/raster/src/manifest.ts +14 -0
  583. package/packages/raster/src/program.ts +128 -0
  584. package/packages/raster/src/schema.ts +53 -0
  585. package/packages/raster/src/types.ts +61 -0
  586. package/packages/render-hyperframes/README.md +58 -0
  587. package/packages/render-hyperframes/package.json +33 -0
  588. package/packages/render-hyperframes/src/activation.ts +18 -0
  589. package/packages/render-hyperframes/src/component.ts +37 -0
  590. package/packages/render-hyperframes/src/fragment.ts +73 -0
  591. package/packages/render-hyperframes/src/index.ts +6 -0
  592. package/packages/render-hyperframes/src/manifest.ts +100 -0
  593. package/packages/render-hyperframes/src/product.ts +29 -0
  594. package/packages/render-hyperframes/src/surface.ts +65 -0
  595. package/packages/resource-store-fs/README.md +13 -0
  596. package/packages/resource-store-fs/package.json +14 -0
  597. package/packages/resource-store-fs/src/index.ts +2 -0
  598. package/packages/resource-store-fs/src/store.ts +154 -0
  599. package/packages/resource-store-s3/README.md +15 -0
  600. package/packages/resource-store-s3/package.json +15 -0
  601. package/packages/resource-store-s3/src/client.ts +138 -0
  602. package/packages/resource-store-s3/src/index.ts +10 -0
  603. package/packages/resource-store-s3/src/store.ts +258 -0
  604. package/packages/run/README.md +23 -0
  605. package/packages/run/package.json +16 -0
  606. package/packages/run/src/candidate.ts +33 -0
  607. package/packages/run/src/facet.ts +59 -0
  608. package/packages/run/src/frontend-facet.ts +23 -0
  609. package/packages/run/src/frontend.ts +62 -0
  610. package/packages/run/src/graph.ts +65 -0
  611. package/packages/run/src/index.ts +33 -0
  612. package/packages/run/src/registry.ts +24 -0
  613. package/packages/run/src/resolve.ts +213 -0
  614. package/packages/run/src/types.ts +147 -0
  615. package/packages/run-markup/README.md +60 -0
  616. package/packages/run-markup/package.json +22 -0
  617. package/packages/run-markup/src/activation.ts +10 -0
  618. package/packages/run-markup/src/frontend.ts +16 -0
  619. package/packages/run-markup/src/index.ts +5 -0
  620. package/packages/run-markup/src/syntax.ts +304 -0
  621. package/packages/runtime/README.md +39 -0
  622. package/packages/runtime/package.json +15 -0
  623. package/packages/runtime/src/capacity.ts +51 -0
  624. package/packages/runtime/src/catalog.ts +30 -0
  625. package/packages/runtime/src/credentials.ts +124 -0
  626. package/packages/runtime/src/environment.ts +6 -0
  627. package/packages/runtime/src/execution.ts +125 -0
  628. package/packages/runtime/src/index.ts +24 -0
  629. package/packages/runtime/src/operations.ts +99 -0
  630. package/packages/runtime/src/scheduler.ts +281 -0
  631. package/packages/runtime/src/submission.ts +24 -0
  632. package/packages/runtime/src/types.ts +157 -0
  633. package/packages/runtime-host-node/README.md +25 -0
  634. package/packages/runtime-host-node/package.json +19 -0
  635. package/packages/runtime-host-node/src/index.ts +421 -0
  636. package/packages/runtime-host-node/src/packages.ts +158 -0
  637. package/packages/runtime-kit/README.md +42 -0
  638. package/packages/runtime-kit/package.json +16 -0
  639. package/packages/runtime-kit/src/index.ts +307 -0
  640. package/packages/runtime-kit/src/request-deadline.ts +17 -0
  641. package/packages/runtime-local/README.md +119 -0
  642. package/packages/runtime-local/package.json +33 -0
  643. package/packages/runtime-local/src/actions.ts +20 -0
  644. package/packages/runtime-local/src/config.ts +1229 -0
  645. package/packages/runtime-local/src/control.ts +120 -0
  646. package/packages/runtime-local/src/credentials.ts +61 -0
  647. package/packages/runtime-local/src/host.ts +174 -0
  648. package/packages/runtime-local/src/index.ts +36 -0
  649. package/packages/runtime-local/src/process-control.ts +59 -0
  650. package/packages/runtime-local/src/process-logs.ts +33 -0
  651. package/packages/runtime-local/src/programs.ts +441 -0
  652. package/packages/runtime-local/src/result-writer.ts +246 -0
  653. package/packages/runtime-local/src/runtime.ts +342 -0
  654. package/packages/runtime-local/src/types.ts +100 -0
  655. package/packages/runtime-local/src/worker-process.ts +343 -0
  656. package/packages/runtime-local/src/worker.ts +449 -0
  657. package/packages/screen-overlay/README.md +17 -0
  658. package/packages/screen-overlay/package.json +31 -0
  659. package/packages/screen-overlay/preview/Track.png +0 -0
  660. package/packages/screen-overlay/src/activation.ts +15 -0
  661. package/packages/screen-overlay/src/component.ts +20 -0
  662. package/packages/screen-overlay/src/fragment.ts +40 -0
  663. package/packages/screen-overlay/src/index.ts +7 -0
  664. package/packages/screen-overlay/src/manifest.ts +305 -0
  665. package/packages/screen-overlay/src/program.ts +321 -0
  666. package/packages/screen-overlay/src/surface.ts +90 -0
  667. package/packages/screen-overlay/src/types.ts +69 -0
  668. package/packages/screen-overlay-studio/README.md +3 -0
  669. package/packages/screen-overlay-studio/package.json +14 -0
  670. package/packages/screen-overlay-studio/src/activation.ts +7 -0
  671. package/packages/screen-overlay-studio/src/index.ts +80 -0
  672. package/packages/script/README.md +137 -0
  673. package/packages/script/package.json +22 -0
  674. package/packages/script/src/activation.ts +20 -0
  675. package/packages/script/src/edit.ts +174 -0
  676. package/packages/script/src/error.ts +13 -0
  677. package/packages/script/src/format.ts +83 -0
  678. package/packages/script/src/index.ts +20 -0
  679. package/packages/script/src/lexical.ts +133 -0
  680. package/packages/script/src/manifest.ts +95 -0
  681. package/packages/script/src/narrative.ts +232 -0
  682. package/packages/script/src/parser.ts +850 -0
  683. package/packages/script/src/surface.ts +132 -0
  684. package/packages/script/src/types.ts +125 -0
  685. package/packages/script-studio/package.json +13 -0
  686. package/packages/script-studio/src/activation.ts +8 -0
  687. package/packages/script-studio/src/index.ts +61 -0
  688. package/packages/seedance/README.md +19 -0
  689. package/packages/seedance/package.json +22 -0
  690. package/packages/seedance/src/activation.ts +38 -0
  691. package/packages/seedance/src/fragment.ts +46 -0
  692. package/packages/seedance/src/index.ts +329 -0
  693. package/packages/seedance/src/surface.ts +355 -0
  694. package/packages/seedance-kits/README.md +153 -0
  695. package/packages/seedance-kits/kits/broll-v1.svs +52 -0
  696. package/packages/seedance-kits/kits/call-v1.svs +55 -0
  697. package/packages/seedance-kits/kits/camera-reference-v1.svs +9 -0
  698. package/packages/seedance-kits/kits/motion-reference-v1.svs +9 -0
  699. package/packages/seedance-kits/kits/podcast-v1.svs +55 -0
  700. package/packages/seedance-kits/kits/speaker-v1.svs +136 -0
  701. package/packages/seedance-kits/kits/street-interview-v1.svs +49 -0
  702. package/packages/seedance-kits/package.json +24 -0
  703. package/packages/seedream/README.md +21 -0
  704. package/packages/seedream/package.json +21 -0
  705. package/packages/seedream/src/activation.ts +12 -0
  706. package/packages/seedream/src/index.ts +162 -0
  707. package/packages/seedream/src/surface.ts +84 -0
  708. package/packages/semantic-take-adjust/package.json +21 -0
  709. package/packages/semantic-take-adjust/src/activation.ts +22 -0
  710. package/packages/semantic-take-adjust/src/component.ts +31 -0
  711. package/packages/semantic-take-adjust/src/fragment.ts +24 -0
  712. package/packages/semantic-take-adjust/src/index.ts +12 -0
  713. package/packages/semantic-take-adjust/src/manifest.ts +57 -0
  714. package/packages/semantic-take-adjust/src/program.ts +49 -0
  715. package/packages/semantic-take-adjust/src/surface.ts +96 -0
  716. package/packages/semantic-take-adjust/src/types.ts +9 -0
  717. package/packages/semantic-track/README.md +21 -0
  718. package/packages/semantic-track/package.json +22 -0
  719. package/packages/semantic-track/src/activation.ts +8 -0
  720. package/packages/semantic-track/src/component.ts +24 -0
  721. package/packages/semantic-track/src/identity.ts +58 -0
  722. package/packages/semantic-track/src/index.ts +6 -0
  723. package/packages/semantic-track/src/location.ts +81 -0
  724. package/packages/semantic-track/src/manifest.ts +38 -0
  725. package/packages/semantic-track/src/projection.ts +71 -0
  726. package/packages/semantic-track/src/types.ts +26 -0
  727. package/packages/source/README.md +13 -0
  728. package/packages/source/package.json +13 -0
  729. package/packages/source/src/header.ts +80 -0
  730. package/packages/source/src/index.ts +17 -0
  731. package/packages/source/src/unit.ts +38 -0
  732. package/packages/spatial/README.md +77 -0
  733. package/packages/spatial/package.json +24 -0
  734. package/packages/spatial/src/activation.ts +43 -0
  735. package/packages/spatial/src/author.ts +59 -0
  736. package/packages/spatial/src/component.ts +45 -0
  737. package/packages/spatial/src/fragment.ts +36 -0
  738. package/packages/spatial/src/geometry.ts +238 -0
  739. package/packages/spatial/src/index.ts +37 -0
  740. package/packages/spatial/src/manifest.ts +341 -0
  741. package/packages/spatial/src/region-timeline.ts +69 -0
  742. package/packages/spatial/src/schema.ts +47 -0
  743. package/packages/spatial/src/surface.ts +319 -0
  744. package/packages/spatial/src/types.ts +101 -0
  745. package/packages/speech/README.md +16 -0
  746. package/packages/speech/package.json +19 -0
  747. package/packages/speech/src/activation.ts +7 -0
  748. package/packages/speech/src/component.ts +43 -0
  749. package/packages/speech/src/identity.ts +73 -0
  750. package/packages/speech/src/index.ts +6 -0
  751. package/packages/speech/src/manifest.ts +30 -0
  752. package/packages/speech/src/materialize.ts +103 -0
  753. package/packages/speech/src/schema.ts +42 -0
  754. package/packages/speech/src/types.ts +54 -0
  755. package/packages/speech-alignment/README.md +29 -0
  756. package/packages/speech-alignment/package.json +25 -0
  757. package/packages/speech-alignment/src/activation.ts +8 -0
  758. package/packages/speech-alignment/src/align.ts +235 -0
  759. package/packages/speech-alignment/src/component.ts +37 -0
  760. package/packages/speech-alignment/src/error.ts +9 -0
  761. package/packages/speech-alignment/src/index.ts +7 -0
  762. package/packages/speech-alignment/src/local.ts +64 -0
  763. package/packages/speech-alignment/src/locate.ts +473 -0
  764. package/packages/speech-alignment/src/manifest.ts +37 -0
  765. package/packages/speech-alignment/src/normalize.ts +79 -0
  766. package/packages/speech-alignment/src/types.ts +30 -0
  767. package/packages/speech-evidence/README.md +3 -0
  768. package/packages/speech-evidence/package.json +16 -0
  769. package/packages/speech-evidence/src/activation.ts +3 -0
  770. package/packages/speech-evidence/src/index.ts +102 -0
  771. package/packages/speech-track/README.md +51 -0
  772. package/packages/speech-track/package.json +28 -0
  773. package/packages/speech-track/preview/Track.png +0 -0
  774. package/packages/speech-track/src/activation.ts +19 -0
  775. package/packages/speech-track/src/component.ts +45 -0
  776. package/packages/speech-track/src/fragment.ts +74 -0
  777. package/packages/speech-track/src/index.ts +7 -0
  778. package/packages/speech-track/src/manifest.ts +73 -0
  779. package/packages/speech-track/src/program.ts +64 -0
  780. package/packages/speech-track/src/surface.ts +35 -0
  781. package/packages/speech-track/src/types.ts +6 -0
  782. package/packages/speech-track-studio/README.md +3 -0
  783. package/packages/speech-track-studio/package.json +14 -0
  784. package/packages/speech-track-studio/src/activation.ts +7 -0
  785. package/packages/speech-track-studio/src/index.ts +40 -0
  786. package/packages/store-sqlite/README.md +14 -0
  787. package/packages/store-sqlite/package.json +18 -0
  788. package/packages/store-sqlite/src/index.ts +2 -0
  789. package/packages/store-sqlite/src/store.ts +1101 -0
  790. package/packages/studio/README.md +125 -0
  791. package/packages/studio/index.html +10 -0
  792. package/packages/studio/package.json +50 -0
  793. package/packages/studio/src/build-library.ts +281 -0
  794. package/packages/studio/src/companion-assembly.ts +39 -0
  795. package/packages/studio/src/compile.ts +166 -0
  796. package/packages/studio/src/domain.ts +139 -0
  797. package/packages/studio/src/execute.ts +57 -0
  798. package/packages/studio/src/fallback-companions.ts +98 -0
  799. package/packages/studio/src/observe.ts +202 -0
  800. package/packages/studio/src/parameter-values.ts +81 -0
  801. package/packages/studio/src/parameters.ts +550 -0
  802. package/packages/studio/src/preview/render.ts +51 -0
  803. package/packages/studio/src/preview/runtime-shim.ts +184 -0
  804. package/packages/studio/src/programme.ts +276 -0
  805. package/packages/studio/src/run.ts +85 -0
  806. package/packages/studio/src/server.ts +725 -0
  807. package/packages/studio/src/session.ts +111 -0
  808. package/packages/studio/src/shared.ts +315 -0
  809. package/packages/studio/src/snapshot.ts +454 -0
  810. package/packages/studio/src/source-transaction.ts +57 -0
  811. package/packages/studio/src/storyboard.ts +133 -0
  812. package/packages/studio/src/studio-preflight.ts +198 -0
  813. package/packages/studio/src/studio-registry.ts +406 -0
  814. package/packages/studio/src/studio-trace.ts +136 -0
  815. package/packages/studio/src/style.css +1525 -0
  816. package/packages/studio/src/surface-preview.ts +35 -0
  817. package/packages/studio/src/temporal-graph.ts +227 -0
  818. package/packages/studio/src/ui/code.ts +450 -0
  819. package/packages/studio/src/ui/icons.ts +51 -0
  820. package/packages/studio/src/ui/library.ts +378 -0
  821. package/packages/studio/src/ui/main.ts +1001 -0
  822. package/packages/studio/src/ui/markers.ts +152 -0
  823. package/packages/studio/src/ui/material-preview.ts +176 -0
  824. package/packages/studio/src/ui/overlay.ts +144 -0
  825. package/packages/studio/src/ui/resize.ts +74 -0
  826. package/packages/studio/src/ui/selection.ts +178 -0
  827. package/packages/studio/src/ui/stage.ts +231 -0
  828. package/packages/studio/src/ui/syntax.ts +195 -0
  829. package/packages/studio/src/ui/timeline.ts +1041 -0
  830. package/packages/studio/src/ui/writeback.ts +10 -0
  831. package/packages/studio/src/ui/zoom.ts +129 -0
  832. package/packages/studio/start.ts +143 -0
  833. package/packages/studio-adapter/README.md +186 -0
  834. package/packages/studio-adapter/package.json +14 -0
  835. package/packages/studio-adapter/src/index.ts +850 -0
  836. package/packages/svs/README.md +37 -0
  837. package/packages/svs/package.json +21 -0
  838. package/packages/svs/src/activation.ts +11 -0
  839. package/packages/svs/src/format.ts +16 -0
  840. package/packages/svs/src/frontend.ts +33 -0
  841. package/packages/svs/src/index.ts +5 -0
  842. package/packages/svs/src/manifest.ts +17 -0
  843. package/packages/svs/src/parser.ts +279 -0
  844. package/packages/svs/src/types.ts +26 -0
  845. package/packages/temporal/README.md +31 -0
  846. package/packages/temporal/package.json +20 -0
  847. package/packages/temporal/src/activation.ts +9 -0
  848. package/packages/temporal/src/component.ts +68 -0
  849. package/packages/temporal/src/index.ts +110 -0
  850. package/packages/temporal/src/location.ts +67 -0
  851. package/packages/temporal/src/projection.ts +280 -0
  852. package/packages/temporal/src/rational.ts +80 -0
  853. package/packages/temporal/src/sample.ts +43 -0
  854. package/packages/temporal/src/schedule.ts +52 -0
  855. package/packages/temporal/src/types.ts +124 -0
  856. package/packages/temporal-markup/README.md +75 -0
  857. package/packages/temporal-markup/package.json +18 -0
  858. package/packages/temporal-markup/src/index.ts +537 -0
  859. package/packages/temporal-markup/src/space.ts +59 -0
  860. package/packages/text/README.md +59 -0
  861. package/packages/text/package.json +21 -0
  862. package/packages/text/src/activation.ts +33 -0
  863. package/packages/text/src/component.ts +72 -0
  864. package/packages/text/src/fragment.ts +57 -0
  865. package/packages/text/src/frontend.ts +39 -0
  866. package/packages/text/src/index.ts +27 -0
  867. package/packages/text/src/manifest.ts +170 -0
  868. package/packages/text/src/program.ts +418 -0
  869. package/packages/text/src/surface.ts +212 -0
  870. package/packages/text/src/svs.ts +189 -0
  871. package/packages/text/src/types.ts +82 -0
  872. package/packages/transport-aws-lambda/README.md +20 -0
  873. package/packages/transport-aws-lambda/package.json +14 -0
  874. package/packages/transport-aws-lambda/src/index.ts +131 -0
  875. package/packages/typography-track/README.md +50 -0
  876. package/packages/typography-track/package.json +34 -0
  877. package/packages/typography-track/preview/Mask.png +0 -0
  878. package/packages/typography-track/preview/Track.png +0 -0
  879. package/packages/typography-track/src/activation.ts +36 -0
  880. package/packages/typography-track/src/component.ts +93 -0
  881. package/packages/typography-track/src/fragment.ts +30 -0
  882. package/packages/typography-track/src/index.ts +11 -0
  883. package/packages/typography-track/src/manifest.ts +556 -0
  884. package/packages/typography-track/src/program.ts +622 -0
  885. package/packages/typography-track/src/surface.ts +842 -0
  886. package/packages/typography-track/src/types.ts +109 -0
  887. package/packages/typography-track-studio/README.md +3 -0
  888. package/packages/typography-track-studio/package.json +14 -0
  889. package/packages/typography-track-studio/src/activation.ts +7 -0
  890. package/packages/typography-track-studio/src/index.ts +116 -0
  891. package/packages/validation/README.md +11 -0
  892. package/packages/validation/package.json +15 -0
  893. package/packages/validation/src/index.ts +100 -0
  894. package/packages/video-cli/README.md +181 -0
  895. package/packages/video-cli/package.json +37 -0
  896. package/packages/video-cli/src/capture.ts +174 -0
  897. package/packages/video-cli/src/cli.ts +109 -0
  898. package/packages/video-cli/src/compiler.ts +32 -0
  899. package/packages/video-cli/src/creation.ts +449 -0
  900. package/packages/video-cli/src/distribution.ts +88 -0
  901. package/packages/video-cli/src/index.ts +50 -0
  902. package/packages/video-cli/src/media.ts +701 -0
  903. package/packages/video-cli/src/package-selection.ts +34 -0
  904. package/packages/video-cli/src/process.ts +71 -0
  905. package/packages/video-cli/src/studio-distribution.ts +19 -0
  906. package/packages/video-cli/src/transcript.ts +71 -0
  907. package/packages/video-cli/src/vocabulary.ts +386 -0
  908. package/packages/visual-ir/README.md +36 -0
  909. package/packages/visual-ir/package.json +16 -0
  910. package/packages/visual-ir/src/activation.ts +3 -0
  911. package/packages/visual-ir/src/index.ts +7 -0
  912. package/packages/visual-ir/src/style.ts +222 -0
  913. package/packages/volcengine-matting/README.md +89 -0
  914. package/packages/volcengine-matting/package.json +16 -0
  915. package/packages/volcengine-matting/src/activation.ts +13 -0
  916. package/packages/volcengine-matting/src/index.ts +45 -0
  917. package/packages/volcengine-matting/src/surface.ts +48 -0
  918. package/packages/whisperx/README.md +34 -0
  919. package/packages/whisperx/package.json +28 -0
  920. package/packages/whisperx/src/activation.ts +18 -0
  921. package/packages/whisperx/src/component.ts +64 -0
  922. package/packages/whisperx/src/evidence.ts +69 -0
  923. package/packages/whisperx/src/fragment.ts +76 -0
  924. package/packages/whisperx/src/index.ts +14 -0
  925. package/packages/whisperx/src/manifest.ts +92 -0
  926. package/packages/whisperx/src/surface.ts +90 -0
  927. package/packages/whisperx/src/transcript.ts +97 -0
  928. package/packages/whisperx/src/types.ts +9 -0
  929. package/packages/workspace/README.md +4 -0
  930. package/packages/workspace/package.json +14 -0
  931. package/packages/workspace/src/index.ts +38 -0
  932. package/packages/workspace-fs-node/README.md +13 -0
  933. package/packages/workspace-fs-node/package.json +15 -0
  934. package/packages/workspace-fs-node/src/index.ts +6 -0
  935. package/packages/workspace-fs-node/src/workspace.ts +226 -0
  936. package/packages/yt-dlp/README.md +31 -0
  937. package/packages/yt-dlp/package.json +10 -0
  938. package/packages/yt-dlp/src/download.ts +104 -0
  939. package/packages/yt-dlp/src/index.ts +1 -0
  940. package/services/image-opencv/README.md +33 -0
  941. package/services/image-opencv/package.json +14 -0
  942. package/services/image-opencv/pyproject.toml +13 -0
  943. package/services/image-opencv/uv.lock +56 -0
  944. package/services/whisperx/README.md +82 -0
  945. package/services/whisperx/package.json +15 -0
  946. package/services/whisperx/pyproject.toml +26 -0
  947. package/services/whisperx/src/hypit_whisperx_service/__init__.py +6 -0
  948. package/services/whisperx/src/hypit_whisperx_service/__main__.py +29 -0
  949. package/services/whisperx/src/hypit_whisperx_service/application.py +88 -0
  950. package/services/whisperx/src/hypit_whisperx_service/audio.py +66 -0
  951. package/services/whisperx/src/hypit_whisperx_service/check.py +35 -0
  952. package/services/whisperx/src/hypit_whisperx_service/config.py +81 -0
  953. package/services/whisperx/src/hypit_whisperx_service/engine.py +173 -0
  954. package/services/whisperx/src/hypit_whisperx_service/prepare.py +19 -0
  955. package/services/whisperx/src/hypit_whisperx_service/resources.py +41 -0
  956. package/services/whisperx/src/hypit_whisperx_service/server.py +101 -0
  957. package/services/whisperx/uv.lock +3381 -0
  958. package/services/yt-dlp/README.md +19 -0
  959. package/services/yt-dlp/package.json +14 -0
  960. package/services/yt-dlp/pyproject.toml +13 -0
  961. package/services/yt-dlp/uv.lock +23 -0
  962. package/index.js +0 -1
@@ -0,0 +1,125 @@
1
+ # Hypit Studio
2
+
3
+ The single official Web Studio for SVML. It opens an explicit Run Source,
4
+ traces its Film or Render target back to the semantic and visual projections
5
+ Studio can edit, runs deterministic Producers and explicitly permitted transient Needs, and composites the
6
+ resulting Tracks with HyperFrames.
7
+
8
+ ```bash
9
+ cd /path/to/external-video-project
10
+ hypit studio --run build.svrun
11
+ ```
12
+
13
+ When `--runtime` is omitted, Studio reads the resolved project's `.hypit/runtime`
14
+ selection made by `hypit runtime use`. It does not search parent projects for a
15
+ Profile. `--workspace` explicitly selects the project boundary; `--package-root`
16
+ overrides the author package resolution root when those locations intentionally differ.
17
+ The upper-left library is intentionally not a filesystem browser:
18
+
19
+ - Source is the exact Run + Author closure and writes back only the selected file;
20
+ - Tasks combine finished project Results with read-only active `BuildView` and Operation information;
21
+ - Artifacts are public files exposed by project Build Results.
22
+
23
+ No project manifest, Studio database, output-directory scan or inferred campaign
24
+ folder structure is involved. With no selected Runtime, finished Result tasks and
25
+ Artifacts remain available. Preview and Source display work when the selected display
26
+ closure can resolve without Endpoint execution; active status and Provider-backed
27
+ transient processing require the selected Runtime.
28
+
29
+ ## Opening and editing a session
30
+
31
+ The selected targets must reach one Film and its resolved time source. Studio rejects several
32
+ distinct Films in one view; use separate Runs/sessions for those. A SemanticTrack supplies the
33
+ Script lane and performance timing, including wordless Segments with media spans. A declared
34
+ ProgramSpace supplies authored animation time without a Script lane. Both show their component
35
+ tracks and use the same rendering and parameter-editing machinery.
36
+
37
+ Open the URL printed by Vite. Studio requests port 5179 by default, accepts `--port`,
38
+ and Vite can choose another available port when it is occupied. Reuse that process
39
+ for edits to the same Run. The Run and loaded Author/Recipe files are watched and
40
+ recompiled together. Domain packages, Companion registry, Runtime and Result library
41
+ are opened at startup; restart this Studio process after changing those selections,
42
+ package code or imports that introduce new packages. Browser refresh does not reload
43
+ server-side package modules.
44
+
45
+ The Source pane can edit the selected `.svml`, `.svs` or `.svrun` file. The Inspector
46
+ shows project facts when no entity is selected and only declared writable fields for
47
+ the selected entity. A reference can resolve to a shared Frame or Recipe, so one edit
48
+ may affect several consumers. Structured fields use Apply/Reset for their local draft.
49
+ Check save status; source conflicts reject stale edits rather than overwrite newer files.
50
+
51
+ Timeline gestures use explicit temporal authority. Moving a shared Selection or
52
+ Moment edits Script and moves its consumers after recompilation. A parameter-based
53
+ handle edits its exact authored parameter. Fixed or derived values with no supported
54
+ inverse remain read-only. Seeing an entity does not promise every drag gesture.
55
+ Tasks and Artifacts are inspection surfaces; selecting an Artifact does not write a
56
+ Run Candidate. Use `build-record`/`satisfy` in the Run for explicit Output reuse.
57
+
58
+ ## Component presentation
59
+
60
+ Studio is an application boundary. Core and domain computation do not import it or
61
+ register UI metadata. The installed Distribution explicitly selects one independent
62
+ Studio Companion per supported official domain. Packages actually selected by the
63
+ current Source closure may contribute their own Companion facet. The application
64
+ assembles both sets into one immutable registry for that session; there is no second
65
+ Studio profile, package scan or replacement map.
66
+
67
+ Project packages live at `<project>/packages/<package-basename>/`. Neither the
68
+ project nor its packages are added to the Hypit Distribution or contributor workspace.
69
+ The Host resolves selected project packages from the project first and official
70
+ `@hypit/*` imports from the read-only tool Distribution. The `@hypit/*`
71
+ namespace is Distribution-owned and cannot be shadowed by a project install.
72
+ External Companions compile against `@hypit/hypit/studio-adapter` and the other public `@hypit/hypit/*`
73
+ subpaths, with `@hypit/hypit` as a development dependency. The active Distribution supplies those APIs
74
+ at runtime. Ship the Companion's compiled JavaScript with its component package.
75
+
76
+ The companion owns what its Track means: matching, required same-Surface values,
77
+ entities, lane range, finite chrome, title and ordered text/material layers,
78
+ source bindings, Inspector fields and executed temporal lineage. Inspector fields
79
+ select real writable bindings and organize them under the Studio-owned
80
+ `Where / How / When` domains, optional companion-owned pages and sections. A
81
+ source binding is never shown merely because Studio can reach it. Material layers carry a
82
+ Resource id or Surface identity, never a Studio HTTP URL. Studio always owns
83
+ time formatting and transport resolution, so chrome and material cannot hide a
84
+ title or its time.
85
+ Studio owns session-wide behavior and chrome: Companion assembly, collision rules,
86
+ fallback defaults, selection treatment, playback, zoom,
87
+ scrolling, the finite Inspector control set and source mutation transport. A
88
+ companion cannot ship arbitrary DOM or CSS into the application.
89
+
90
+ The finite control set includes scalar controls plus generic `list` and flat
91
+ `record` composition. Structured values are validated against the domain-owned
92
+ canonical schema, edited as a local draft, and written atomically through the
93
+ same revisioned `parameter.adjust` operation. Studio contains no Ranking,
94
+ Caption or Media list codec.
95
+
96
+ Inspector controls are Studio behavior, not browser defaults supplied by a
97
+ companion. Focused controls suspend transport shortcuts; numeric values use
98
+ non-spinning text entry so wheel scrolling cannot mutate Source; selects use
99
+ the Studio menu and keyboard navigation. Values still commit only on an
100
+ explicit change through the normal revisioned mutation path.
101
+
102
+ Temporal lineage comes from the exact executed graph selected by the Run. Studio indexes the
103
+ `TemporalInstant` and `TemporalWindow` records in each Track's dependency closure, including each
104
+ endpoint's author authority and direct consumer edge. Common timeline inverses come from that
105
+ authority rather than Companion declarations. Track Companions never infer semantic sources from SVML
106
+ attribute names, runtime id prefixes or coincident frame spans.
107
+
108
+ Opening Studio never spends and never creates a Build. Its display closure contains
109
+ the Candidates selected by the Run, deterministic Producers and exact Needs that
110
+ their Provider explicitly allows in transient authoring execution. The Runtime owns
111
+ Endpoint activation, Profile bindings, request-level `supports`, credentials and
112
+ invocation; Studio receives no Endpoint Registry and makes no decision from pricing,
113
+ process location, model name or package name. A Need without transient support stops
114
+ with its exact capability named. Existing media and completed Outputs enter through
115
+ ordinary Run Candidates selected with `satisfy`.
116
+
117
+ Studio and an encoded review use the same ordinary Run. Studio evaluates its
118
+ transient display closure in the browser; building that Run evaluates the
119
+ full target closure and sends the resulting HyperFrames document to the chosen
120
+ render Endpoint. A separate review Run is useful only when the author wants a
121
+ different Candidate selection. Its path and filename carry no execution
122
+ semantics.
123
+
124
+ Read [`@hypit/studio-adapter`](../studio-adapter/README.md) for the Companion ABI,
125
+ project activation example, value projection and Inspector declarations.
@@ -0,0 +1,10 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width,initial-scale=1" />
6
+ <link rel="icon" href="data:," />
7
+ <title>Hypit Studio</title>
8
+ </head>
9
+ <body><div id="app"></div><script type="module" src="/src/ui/main.ts"></script></body>
10
+ </html>
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@hypit/studio",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "type": "module",
6
+ "exports": {
7
+ "./start": "./start.ts",
8
+ "./src/*": "./src/*"
9
+ },
10
+ "dependencies": {
11
+ "@hypit/audio-track-studio": "workspace:*",
12
+ "@hypit/build-result": "workspace:*",
13
+ "@hypit/caption-fine-studio": "workspace:*",
14
+ "@hypit/cli": "workspace:*",
15
+ "@hypit/compiler-node": "workspace:*",
16
+ "@hypit/component-kit": "workspace:*",
17
+ "@hypit/composition": "workspace:*",
18
+ "@hypit/comment-sticker-studio": "workspace:*",
19
+ "@hypit/core": "workspace:*",
20
+ "@hypit/driver-node": "workspace:*",
21
+ "@hypit/deck-track-studio": "workspace:*",
22
+ "@hypit/elaborator": "workspace:*",
23
+ "@hypit/film-studio": "workspace:*",
24
+ "@hypit/hyperframes": "workspace:*",
25
+ "@hypit/markup": "workspace:*",
26
+ "@hypit/media-track-studio": "workspace:*",
27
+ "@hypit/narrative": "workspace:*",
28
+ "@hypit/package-loader-node": "workspace:*",
29
+ "@hypit/program-space": "workspace:*",
30
+ "@hypit/protocol": "workspace:*",
31
+ "@hypit/ranking-studio": "workspace:*",
32
+ "@hypit/run": "workspace:*",
33
+ "@hypit/runtime": "workspace:*",
34
+ "@hypit/runtime-host-node": "workspace:*",
35
+ "@hypit/script-studio": "workspace:*",
36
+ "@hypit/screen-overlay-studio": "workspace:*",
37
+ "@hypit/speech": "workspace:*",
38
+ "@hypit/semantic-track": "workspace:*",
39
+ "@hypit/svs": "workspace:*",
40
+ "@hypit/temporal": "workspace:*",
41
+ "@hypit/studio-adapter": "workspace:*",
42
+ "@hypit/speech-track-studio": "workspace:*",
43
+ "@hypit/typography-track-studio": "workspace:*",
44
+ "@hypit/validation": "workspace:*",
45
+ "@hypit/video-cli": "workspace:*",
46
+ "@hypit/workspace": "workspace:*",
47
+ "@hypit/workspace-fs-node": "workspace:*",
48
+ "vite": "8.2.2"
49
+ }
50
+ }
@@ -0,0 +1,281 @@
1
+ import { isAbsolute, relative, resolve, sep } from "node:path";
2
+
3
+ import { buildIdCreatedAt } from "@hypit/protocol";
4
+ import type { BuildView, NodeRuntimeHost, RuntimeHostTransientExecution } from "@hypit/runtime-host-node";
5
+ import type { StoredValue, TypeRef } from "@hypit/protocol";
6
+ import type {
7
+ BuildResultFileRange,
8
+ BuildResultFileRef,
9
+ BuildResultManifest,
10
+ BuildResultRepository,
11
+ FinishedBuildResultManifest,
12
+ RepositoryBuildResultOutput,
13
+ } from "@hypit/build-result";
14
+
15
+ import { resolveBuildResultValue } from "@hypit/cli";
16
+ import { videoCliDistribution } from "@hypit/video-cli";
17
+
18
+ import type { StudioArtifactView, StudioLibraryView, StudioTaskView } from "./shared.js";
19
+
20
+ type RuntimeControl = Awaited<ReturnType<NodeRuntimeHost["openControl"]>>;
21
+
22
+ export type StudioBuildLibrary = {
23
+ readonly profile?: string;
24
+ readonly runtime?: Pick<RuntimeControl, "activity">;
25
+ /** Runtime-owned, disposable execution for the current authoring session. */
26
+ readonly transientExecution?: RuntimeHostTransientExecution;
27
+ readonly library: (before?: string) => Promise<StudioLibraryView>;
28
+ readonly resolveHistoricalOutput: (
29
+ build: string,
30
+ output: string,
31
+ ) => Promise<{
32
+ readonly type: TypeRef;
33
+ readonly value: StoredValue;
34
+ readonly attachments?: readonly import("@hypit/workspace").ArtifactAttachment[];
35
+ } | undefined>;
36
+ readonly openArtifact: (
37
+ build: string,
38
+ output: string,
39
+ valuePath: string,
40
+ ) => Promise<{
41
+ readonly mediaType: string;
42
+ readonly size: number;
43
+ open(range?: BuildResultFileRange): Promise<AsyncIterable<Uint8Array> | undefined>;
44
+ } | undefined>;
45
+ readonly close: () => Promise<void>;
46
+ };
47
+
48
+ function projectPath(root: string, path: string): string {
49
+ return isAbsolute(path) ? resolve(path) : resolve(root, path);
50
+ }
51
+
52
+ function isWithin(root: string, path: string): boolean {
53
+ const rel = relative(resolve(root), projectPath(root, path));
54
+ return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
55
+ }
56
+
57
+ /**
58
+ * A path inside the project reads the same on every platform, so the Studio library shows one Run
59
+ * under one name wherever it is opened. A path outside the project is the machine's own, and stays
60
+ * in that machine's form.
61
+ */
62
+ function presentedPath(root: string, path: string): string {
63
+ const absolute = projectPath(root, path);
64
+ if (!isWithin(root, path)) return absolute;
65
+ return (relative(resolve(root), absolute) || ".").split(sep).join("/");
66
+ }
67
+
68
+ function buildBelongsTo(root: string, view: BuildView): boolean {
69
+ return view.source !== undefined
70
+ && (isWithin(root, view.run?.path ?? view.source.path) || isWithin(root, view.source.path));
71
+ }
72
+
73
+ function taskStatus(view: BuildView): StudioTaskView["status"] {
74
+ if (view.issue !== undefined) return "blocked";
75
+ if (view.activity === "submitting" || view.activity === "ready") return "queued";
76
+ if (view.activity === "saving-result") return "active";
77
+ return view.activity;
78
+ }
79
+
80
+ function taskView(
81
+ root: string,
82
+ view: BuildView,
83
+ result?: BuildResultManifest,
84
+ ): StudioTaskView {
85
+ if (view.source === undefined) throw new Error(`Active Build ${view.id} has no source`);
86
+ return {
87
+ id: view.id,
88
+ ...(result?.title === undefined ? {} : { title: result.title }),
89
+ ...(result?.note === undefined ? {} : { note: result.note }),
90
+ ...(result?.highlightedOutputs === undefined ? {} : { highlightedOutputs: result.highlightedOutputs }),
91
+ createdAt: view.createdAt,
92
+ status: taskStatus(view),
93
+ source: presentedPath(root, view.source.path),
94
+ ...(view.run === undefined ? {} : { run: presentedPath(root, view.run.path) }),
95
+ targets: result?.targets ?? view.targets,
96
+ acceptedRecords: view.acceptedRecords,
97
+ outstandingCommands: view.outstandingCommands,
98
+ operations: view.operations.map((operation) => ({
99
+ status: operation.status,
100
+ ...(operation.progress?.phase === undefined ? {} : { phase: operation.progress.phase }),
101
+ ...(operation.progress?.completed === undefined ? {} : { completed: operation.progress.completed }),
102
+ ...(operation.progress?.total === undefined ? {} : { total: operation.progress.total }),
103
+ ...(operation.progress?.unit === undefined ? {} : { unit: operation.progress.unit }),
104
+ })),
105
+ };
106
+ }
107
+
108
+ function resultTaskView(root: string, result: FinishedBuildResultManifest): StudioTaskView {
109
+ return {
110
+ id: result.id,
111
+ ...(result.title === undefined ? {} : { title: result.title }),
112
+ ...(result.note === undefined ? {} : { note: result.note }),
113
+ ...(result.highlightedOutputs === undefined ? {} : { highlightedOutputs: result.highlightedOutputs }),
114
+ createdAt: buildIdCreatedAt(result.id)!,
115
+ status: result.outcome,
116
+ source: presentedPath(root, result.source.path),
117
+ ...(result.run === undefined ? {} : { run: presentedPath(root, result.run.path) }),
118
+ targets: result.targets,
119
+ acceptedRecords: Object.keys(result.outputs).length,
120
+ outstandingCommands: 0,
121
+ operations: [],
122
+ };
123
+ }
124
+
125
+ function presentedValuePath(path: readonly (string | number)[]): string {
126
+ return path.reduce<string>((current, segment) => typeof segment === "number"
127
+ ? `${current}[${segment}]`
128
+ : /^[A-Za-z_$][A-Za-z0-9_$]*$/u.test(segment)
129
+ ? `${current}.${segment}`
130
+ : `${current}[${JSON.stringify(segment)}]`, "$");
131
+ }
132
+
133
+ function filesInResolvedOutput(resolved: RepositoryBuildResultOutput): readonly {
134
+ readonly valuePath: string;
135
+ readonly file: BuildResultFileRef;
136
+ }[] {
137
+ if (resolved.value.kind === "build-file") return [{ valuePath: "$", file: resolved.value }];
138
+ if (resolved.value.kind === "value") {
139
+ return resolved.value.document.resources.map((binding) => ({
140
+ valuePath: presentedValuePath(binding.at),
141
+ file: binding.file,
142
+ }));
143
+ }
144
+ return [];
145
+ }
146
+
147
+ async function artifactsForResults(
148
+ root: string,
149
+ repository: BuildResultRepository,
150
+ manifests: readonly BuildResultManifest[],
151
+ ): Promise<readonly StudioArtifactView[]> {
152
+ const nested = await Promise.all(manifests.flatMap((manifest) =>
153
+ Object.keys(manifest.outputs).map(async (output) => {
154
+ const resolved = await repository.resolve(manifest.id, output);
155
+ if (resolved === undefined) return [];
156
+ return filesInResolvedOutput(resolved).map(({ valuePath, file }) => ({
157
+ id: `${manifest.id}:${output}:${valuePath}`,
158
+ build: manifest.id,
159
+ createdAt: buildIdCreatedAt(manifest.id)!,
160
+ output,
161
+ highlighted: manifest.highlightedOutputs?.includes(output) === true,
162
+ ...(manifest.title === undefined ? {} : { buildTitle: manifest.title }),
163
+ ...(manifest.note === undefined ? {} : { buildNote: manifest.note }),
164
+ valuePath,
165
+ ownerBuild: resolved.build,
166
+ ownerOutput: resolved.output,
167
+ filePath: file.path,
168
+ size: file.size,
169
+ mediaType: file.mediaType,
170
+ source: presentedPath(root, manifest.source.path),
171
+ ...(manifest.run === undefined ? {} : { run: presentedPath(root, manifest.run.path) }),
172
+ }));
173
+ })));
174
+ return nested.flat().sort((left, right) =>
175
+ Number(right.highlighted) - Number(left.highlighted)
176
+ || right.createdAt - left.createdAt
177
+ || left.output.localeCompare(right.output)
178
+ || left.valuePath.localeCompare(right.valuePath));
179
+ }
180
+
181
+ /** Build the Studio library from execution status and project-owned Build Results. */
182
+ export async function readStudioLibrary(input: {
183
+ readonly profile?: string;
184
+ readonly workspaceRoot: string;
185
+ readonly runtime?: Pick<RuntimeControl, "activity">;
186
+ readonly results: BuildResultRepository;
187
+ readonly before?: string;
188
+ }): Promise<StudioLibraryView> {
189
+ const page = await input.results.browse({
190
+ limit: 25,
191
+ ...(input.before === undefined ? {} : { before: input.before }),
192
+ });
193
+ const manifests = page.results.filter((manifest) =>
194
+ isWithin(input.workspaceRoot, manifest.run?.path ?? manifest.source.path)
195
+ || isWithin(input.workspaceRoot, manifest.source.path));
196
+ const resultsByBuild = new Map(manifests.map((manifest) => [manifest.id, manifest]));
197
+ const active = input.runtime === undefined || input.before !== undefined
198
+ ? []
199
+ : (await input.runtime.activity()).builds;
200
+ const views = active.filter((view) => buildBelongsTo(input.workspaceRoot, view));
201
+ return {
202
+ environment: resolve(input.workspaceRoot),
203
+ ...(input.profile === undefined ? {} : { runtime: resolve(input.profile) }),
204
+ ...(page.next === undefined ? {} : { next: page.next }),
205
+ tasks: [
206
+ ...views.map((view) => taskView(
207
+ input.workspaceRoot,
208
+ view,
209
+ resultsByBuild.get(view.id),
210
+ )),
211
+ ...manifests
212
+ .filter((manifest) => !views.some((view) => view.id === manifest.id))
213
+ .map((manifest) => resultTaskView(input.workspaceRoot, manifest)),
214
+ ].sort((left, right) => right.createdAt - left.createdAt || left.id.localeCompare(right.id)),
215
+ artifacts: await artifactsForResults(input.workspaceRoot, input.results, manifests),
216
+ };
217
+ }
218
+
219
+ /** Open a Runtime profile read-only; Studio never creates or mutates a Build. */
220
+ export async function openStudioBuildLibrary(
221
+ profile: string | undefined,
222
+ packageRoot: string,
223
+ workspaceRoot: string,
224
+ distributionPackageRoot?: string,
225
+ ): Promise<StudioBuildLibrary> {
226
+ const resolvedProfile = profile === undefined ? undefined : resolve(profile);
227
+ const host = resolvedProfile === undefined
228
+ ? undefined
229
+ : await videoCliDistribution.openRuntimeHost(resolvedProfile, {
230
+ packageRoot,
231
+ ...(distributionPackageRoot === undefined ? {} : { distributionPackageRoot }),
232
+ });
233
+ const runtime = await host?.openControl({ readOnly: true });
234
+ let transientExecution: RuntimeHostTransientExecution | undefined;
235
+ let openedResults: Awaited<ReturnType<typeof videoCliDistribution.openProjectResults>>;
236
+ try {
237
+ transientExecution = await host?.openTransientExecution();
238
+ openedResults = await videoCliDistribution.openProjectResults(workspaceRoot, {
239
+ packageRoot,
240
+ ...(distributionPackageRoot === undefined ? {} : { distributionPackageRoot }),
241
+ });
242
+ } catch (error) {
243
+ await transientExecution?.close();
244
+ await runtime?.close();
245
+ throw error;
246
+ }
247
+ const results = openedResults.repository;
248
+ return {
249
+ ...(resolvedProfile === undefined ? {} : { profile: resolvedProfile }),
250
+ ...(runtime === undefined ? {} : { runtime }),
251
+ ...(transientExecution === undefined ? {} : { transientExecution }),
252
+ async library(before) {
253
+ return await readStudioLibrary({
254
+ ...(resolvedProfile === undefined ? {} : { profile: resolvedProfile }),
255
+ workspaceRoot,
256
+ ...(runtime === undefined ? {} : { runtime }),
257
+ results,
258
+ ...(before === undefined ? {} : { before }),
259
+ });
260
+ },
261
+ async resolveHistoricalOutput(build, output) {
262
+ return await resolveBuildResultValue(results, build, output);
263
+ },
264
+ async openArtifact(build, output, valuePath) {
265
+ const resolved = await results.resolve(build, output);
266
+ if (resolved === undefined) return undefined;
267
+ const match = filesInResolvedOutput(resolved).find((item) => item.valuePath === valuePath);
268
+ if (match === undefined) return undefined;
269
+ return {
270
+ mediaType: match.file.mediaType,
271
+ size: match.file.size,
272
+ open: async (range) => await results.openFile(resolved.build, match.file, range),
273
+ };
274
+ },
275
+ async close() {
276
+ await openedResults.close();
277
+ await transientExecution?.close();
278
+ await runtime?.close();
279
+ },
280
+ };
281
+ }
@@ -0,0 +1,39 @@
1
+ import { installDistributionPackageResolution, loadNodePackageSelection } from "@hypit/package-loader-node";
2
+ import type { LoadedPackage } from "@hypit/package-loader-node";
3
+ import { studioContributionFromPackage } from "@hypit/studio-adapter";
4
+
5
+ import { fallbackStudioTrackCompanions } from "./fallback-companions.js";
6
+ import { StudioCompanionRegistry } from "./studio-registry.js";
7
+
8
+ /**
9
+ * Assemble the immutable Companion Registry for one Source closure.
10
+ *
11
+ * The distribution contributes its normal video vocabulary. Every package
12
+ * actually selected by the Source may contribute its own Companion through the
13
+ * same package host-facet boundary. There is no second project profile and no
14
+ * replacement table.
15
+ */
16
+ export async function loadStudioCompanionRegistry(input: {
17
+ readonly distributionPackageRoot: string;
18
+ readonly distributionPackages: readonly string[];
19
+ readonly sourcePackages: readonly LoadedPackage[];
20
+ }): Promise<StudioCompanionRegistry> {
21
+ installDistributionPackageResolution([input.distributionPackageRoot]);
22
+ const distribution = await loadNodePackageSelection(
23
+ input.distributionPackages,
24
+ input.distributionPackageRoot,
25
+ );
26
+ const selected = new Map<string, LoadedPackage>();
27
+ for (const item of [...distribution, ...input.sourcePackages]) {
28
+ if (!selected.has(item.specifier)) selected.set(item.specifier, item);
29
+ }
30
+ const contributions = [...selected.values()].map((item) =>
31
+ studioContributionFromPackage(item.specifier, item.contribution.hostFacets ?? []));
32
+ return new StudioCompanionRegistry(
33
+ [...fallbackStudioTrackCompanions, ...contributions.flatMap((item) => item.tracks)],
34
+ {
35
+ films: contributions.flatMap((item) => item.films),
36
+ scripts: contributions.flatMap((item) => item.scripts),
37
+ },
38
+ );
39
+ }
@@ -0,0 +1,166 @@
1
+ import type { NodeCompiledSourceClosure } from "@hypit/compiler-node";
2
+ import type { AuthorElementProvenance, AuthorValueRef } from "@hypit/elaborator";
3
+ import type { ArtifactAttachment } from "@hypit/workspace";
4
+ import type { TypeRef } from "@hypit/protocol";
5
+
6
+ import type { Observations } from "./observe.js";
7
+ import type { Placement } from "./observe.js";
8
+
9
+ export type ServedFile = {
10
+ readonly mediaType: string;
11
+ readonly bytes: Uint8Array;
12
+ readonly source?: string;
13
+ };
14
+
15
+ export type CompiledSource = {
16
+ readonly compiled: NodeCompiledSourceClosure;
17
+ readonly observations: Observations;
18
+ readonly served: ReadonlyMap<string, ServedFile>;
19
+ readonly exports: readonly {
20
+ readonly name: string;
21
+ readonly type: string;
22
+ readonly typeRef: TypeRef;
23
+ readonly ref: string;
24
+ }[];
25
+ };
26
+
27
+ /**
28
+ * Attach Studio's observations to the exact Author compilation a Run was
29
+ * resolved against. Keeping this conversion separate lets the Run compiler and
30
+ * Studio share one Author graph instead of compiling two look-alike graphs.
31
+ */
32
+ export async function observedCompiledSource(
33
+ compiled: NodeCompiledSourceClosure,
34
+ observations: Observations,
35
+ ): Promise<CompiledSource> {
36
+ const served = new Map<string, ServedFile>();
37
+ for (const attachment of compiled.attachments) {
38
+ served.set(attachment.artifact.resource, {
39
+ mediaType: attachment.artifact.mediaType,
40
+ bytes: await bytesOf(attachment),
41
+ });
42
+ }
43
+ const normalized = normalizeObservations(compiled, observations);
44
+ const names = new Map(compiled.provenance.elements.flatMap((element) =>
45
+ element.outputs.map((output) => [output.id, output.local] as const)));
46
+ return {
47
+ compiled,
48
+ observations: normalized,
49
+ served,
50
+ exports: compiled.graph.outputs.map((item) => ({
51
+ name: compiled.exports.find((candidate) => "id" in candidate.ref && candidate.ref.id === item.id)?.name
52
+ ?? names.get(item.id)
53
+ ?? item.id,
54
+ type: item.type.name,
55
+ typeRef: item.type,
56
+ ref: item.id,
57
+ })),
58
+ };
59
+ }
60
+
61
+ function sameRange(
62
+ left: { readonly start: number; readonly end: number },
63
+ right: { readonly start: number; readonly end: number },
64
+ ): boolean {
65
+ return left.start === right.start && left.end === right.end;
66
+ }
67
+
68
+ function exactElement(
69
+ compiled: NodeCompiledSourceClosure,
70
+ sourcePath: string,
71
+ range: { readonly start: number; readonly end: number },
72
+ ): AuthorElementProvenance | undefined {
73
+ return compiled.provenance.elements.find((element) =>
74
+ element.sourceName === sourcePath && sameRange(element.range, range));
75
+ }
76
+
77
+ function resolvedRef(compiled: NodeCompiledSourceClosure, ref: AuthorValueRef): string | undefined {
78
+ if (ref.kind === "record") return ref.id;
79
+ return compiled.provenance.elements.flatMap((element) => element.outputs)
80
+ .find((output) => output.component === ref.component && output.name === ref.output)?.id;
81
+ }
82
+
83
+ function decorate(
84
+ compiled: NodeCompiledSourceClosure,
85
+ sourcePath: string,
86
+ range: { readonly start: number; readonly end: number },
87
+ ): {
88
+ readonly element?: AuthorElementProvenance;
89
+ readonly records: ReadonlyMap<string, string>;
90
+ readonly outputs: ReadonlyMap<string, string>;
91
+ readonly references: Readonly<Record<string, string>>;
92
+ readonly endpoints: Readonly<Record<string, string>>;
93
+ } {
94
+ const element = exactElement(compiled, sourcePath, range);
95
+ if (element === undefined) {
96
+ return { records: new Map(), outputs: new Map(), references: {}, endpoints: {} };
97
+ }
98
+ return {
99
+ element,
100
+ records: new Map(element.records.map((record) => [record.local, record.id] as const)),
101
+ outputs: new Map(element.outputs.map((output) => [output.local, output.id] as const)),
102
+ references: Object.fromEntries(element.inputs.flatMap((input) => {
103
+ if (input.ref === undefined) return [];
104
+ const ref = resolvedRef(compiled, input.ref);
105
+ return ref === undefined ? [] : [[input.name, ref]];
106
+ })),
107
+ endpoints: Object.fromEntries(element.inputs.map((input) => [input.name, input.id])),
108
+ };
109
+ }
110
+
111
+ /** Join Studio presentation to compiler-owned identities without re-matching authored names. */
112
+ function normalizeObservations(
113
+ compiled: NodeCompiledSourceClosure,
114
+ observations: Observations,
115
+ ): Observations {
116
+ const placements: Placement[] = observations.placements.map((placement) => {
117
+ const own = decorate(compiled, placement.sourcePath, placement.range);
118
+ return {
119
+ ...placement,
120
+ ...(own.element === undefined ? {} : {
121
+ authorElement: own.element.id,
122
+ authorEndpoints: own.endpoints,
123
+ resolvedReferenceAttributes: own.references,
124
+ records: placement.records.map((id) => own.records.get(id) ?? id),
125
+ outputs: placement.outputs.map((id) => own.outputs.get(id) ?? id),
126
+ outputPorts: placement.outputPorts.map((port) => ({
127
+ ...port,
128
+ ref: own.outputs.get(port.ref) ?? port.ref,
129
+ })),
130
+ values: placement.values.map((value) => ({ ...value, id: own.records.get(value.id) ?? value.id })),
131
+ }),
132
+ children: placement.children.map((child) => {
133
+ const held = decorate(compiled, child.sourcePath, child.range);
134
+ return {
135
+ ...child,
136
+ ...(held.element === undefined ? {} : {
137
+ authorElement: held.element.id,
138
+ authorEndpoints: held.endpoints,
139
+ resolvedReferenceAttributes: held.references,
140
+ records: [...held.records.values()],
141
+ outputs: [...held.outputs.values()],
142
+ values: child.values.map((value) => ({ ...value, id: held.records.get(value.id) ?? value.id })),
143
+ }),
144
+ };
145
+ }),
146
+ };
147
+ });
148
+ return { placements, sourceMaps: observations.sourceMaps };
149
+ }
150
+
151
+ async function bytesOf(attachment: ArtifactAttachment): Promise<Uint8Array> {
152
+ const chunks: Uint8Array[] = [];
153
+ let size = 0;
154
+ for await (const chunk of await attachment.open()) {
155
+ const copy = Uint8Array.from(chunk);
156
+ chunks.push(copy);
157
+ size += copy.byteLength;
158
+ }
159
+ const bytes = new Uint8Array(size);
160
+ let offset = 0;
161
+ for (const chunk of chunks) {
162
+ bytes.set(chunk, offset);
163
+ offset += chunk.byteLength;
164
+ }
165
+ return bytes;
166
+ }