@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,361 @@
1
+ import type {
2
+ BuildResultFileRef,
3
+ BuildResultFileRange,
4
+ BuildResultFinish,
5
+ BuildResultManifest,
6
+ BuildResultPresentationUpdate,
7
+ BuildResultRepository,
8
+ BuildResultSeed,
9
+ BuildResultSync,
10
+ BuildResultWriter,
11
+ BuildResultWriterState,
12
+ RepositoryBuildResultOutput,
13
+ RepositoryBuildResultOutputDescription,
14
+ } from "@hypit/build-result";
15
+ import {
16
+ applyBuildResultPresentation,
17
+ assertBuildResultSeed,
18
+ decodeBuildResultJson,
19
+ decodeBuildResultManifest,
20
+ decodeBuildResultValueDocument,
21
+ decodeBuildResultWriterState,
22
+ encodeBuildResultManifest,
23
+ normalizeBuildResultForwards,
24
+ syncBuildResultOutputs,
25
+ } from "@hypit/build-result";
26
+ import { assertOrderedBuildId, buildIdCreatedAt } from "@hypit/protocol";
27
+
28
+ import { AwsBuildResultS3Client } from "./client.js";
29
+ import type { AwsBuildResultS3ClientOptions, BuildResultS3Client } from "./client.js";
30
+
31
+ export type S3BuildResultRepositoryOptions = AwsBuildResultS3ClientOptions & {
32
+ readonly prefix?: string;
33
+ readonly client?: BuildResultS3Client;
34
+ };
35
+
36
+ function assert(condition: unknown, message: string): asserts condition {
37
+ if (!condition) throw new Error(message);
38
+ }
39
+
40
+ function normalizePrefix(value: string | undefined): string {
41
+ if (value === undefined || value.length === 0) return "";
42
+ const normalized = value.replace(/^\/+|\/+$/gu, "");
43
+ assert(normalized.length > 0 && !normalized.split("/").some((part) => part === "." || part === ".."), "S3 Build Result prefix is invalid");
44
+ return normalized;
45
+ }
46
+
47
+ function physicalBuild(build: string): string {
48
+ assertOrderedBuildId(build);
49
+ const createdAt = buildIdCreatedAt(build)!;
50
+ const descendingTime = (Number.MAX_SAFE_INTEGER - createdAt).toString().padStart(16, "0");
51
+ return `${descendingTime}-${build}`;
52
+ }
53
+
54
+ function publicBuild(physical: string): string | undefined {
55
+ if (!/^\d{16}-bld_/u.test(physical)) return undefined;
56
+ const build = physical.slice(17);
57
+ return buildIdCreatedAt(build) === undefined || physicalBuild(build) !== physical ? undefined : build;
58
+ }
59
+
60
+ function safePath(path: string): string {
61
+ assert(path.length > 0 && !path.startsWith("/") && !path.includes("\\"), "Build Result path must be relative");
62
+ assert(!path.split("/").some((part) => part.length === 0 || part === "." || part === ".."), `Build Result path ${path} is invalid`);
63
+ return path;
64
+ }
65
+
66
+ function encodeJson(value: unknown): Uint8Array {
67
+ return new TextEncoder().encode(`${JSON.stringify(value, null, 2)}\n`);
68
+ }
69
+
70
+ class S3BuildResultWriter implements BuildResultWriter {
71
+ readonly #repository: S3BuildResultRepository;
72
+ readonly #build: string;
73
+
74
+ constructor(repository: S3BuildResultRepository, build: string) {
75
+ this.#repository = repository;
76
+ this.#build = build;
77
+ }
78
+
79
+ async read(): Promise<BuildResultManifest> {
80
+ const manifest = await this.#repository.read(this.#build);
81
+ assert(manifest !== undefined, `Build Result ${this.#build} does not exist`);
82
+ return manifest;
83
+ }
84
+
85
+ async sync(input: BuildResultSync): Promise<BuildResultManifest> {
86
+ const manifest = await this.read();
87
+ if (manifest.outcome !== undefined) return manifest;
88
+ const writer = await this.#repository.readWriter(this.#build);
89
+ assert(writer !== undefined, `Build Result ${this.#build} has no writer state`);
90
+ const updated = await syncBuildResultOutputs({
91
+ manifest,
92
+ writer,
93
+ sync: input,
94
+ target: {
95
+ writeResource: async (path, artifact, source) => {
96
+ const chunks = await source.open(artifact);
97
+ if (chunks === undefined) throw new Error(`Build resource ${artifact.resource} is unavailable`);
98
+ await this.#repository.writeFile(this.#build, path, chunks, artifact.mediaType);
99
+ },
100
+ writeValue: async (path, document) => {
101
+ await this.#repository.writeJson(this.#build, path, document);
102
+ },
103
+ },
104
+ });
105
+ await this.#repository.writeWriter(this.#build, updated.writer);
106
+ await this.#repository.writeManifest(this.#build, updated.manifest);
107
+ return updated.manifest;
108
+ }
109
+
110
+ async finish(input: BuildResultFinish): Promise<BuildResultManifest> {
111
+ const manifest = await this.read();
112
+ if (manifest.outcome !== undefined) {
113
+ assert(manifest.outcome === input.outcome && manifest.failure === input.failure,
114
+ `Build Result ${manifest.id} is already finished with a different outcome`);
115
+ await this.#repository.deleteWriter(this.#build);
116
+ return manifest;
117
+ }
118
+ const now = Date.now();
119
+ const updated: BuildResultManifest = {
120
+ ...manifest,
121
+ outcome: input.outcome,
122
+ ...(input.operations === undefined ? {} : { operations: input.operations }),
123
+ finishedAt: manifest.finishedAt ?? now,
124
+ ...(input.failure === undefined ? {} : { failure: input.failure }),
125
+ };
126
+ await this.#repository.writeManifest(this.#build, updated);
127
+ await this.#repository.deleteWriter(this.#build);
128
+ return updated;
129
+ }
130
+ }
131
+
132
+ export class S3BuildResultRepository implements BuildResultRepository {
133
+ readonly #client: BuildResultS3Client;
134
+ readonly #prefix: string;
135
+
136
+ constructor(options: S3BuildResultRepositoryOptions) {
137
+ assert(options.bucket.trim().length > 0, "S3 Build Result bucket must not be empty");
138
+ this.#prefix = normalizePrefix(options.prefix);
139
+ this.#client = options.client ?? new AwsBuildResultS3Client(options);
140
+ }
141
+
142
+ #key(build: string, path: string): string {
143
+ const relative = `${physicalBuild(build)}/${safePath(path)}`;
144
+ return this.#prefix.length === 0 ? relative : `${this.#prefix}/${relative}`;
145
+ }
146
+
147
+ async #readJson(build: string, path: string): Promise<unknown | undefined> {
148
+ const bytes = await this.#client.get(this.#key(build, path));
149
+ return bytes === undefined ? undefined : decodeBuildResultJson(bytes, `${build}/${path}`);
150
+ }
151
+
152
+ async writeJson(build: string, path: string, value: unknown): Promise<void> {
153
+ await this.#client.put(this.#key(build, path), encodeJson(value), "application/json");
154
+ }
155
+
156
+ async writeFile(build: string, path: string, chunks: AsyncIterable<Uint8Array>, mediaType: string): Promise<void> {
157
+ await this.#client.putStream(this.#key(build, path), chunks, mediaType);
158
+ }
159
+
160
+ async writeManifest(build: string, manifest: BuildResultManifest): Promise<void> {
161
+ await this.writeJson(build, "result.json", encodeBuildResultManifest(manifest));
162
+ }
163
+
164
+ async readWriter(build: string): Promise<BuildResultWriterState | undefined> {
165
+ const subject = `${build}/.writer.json`;
166
+ const value = await this.#readJson(build, ".writer.json");
167
+ return value === undefined ? undefined : decodeBuildResultWriterState(value, subject);
168
+ }
169
+
170
+ async writeWriter(build: string, state: BuildResultWriterState): Promise<void> {
171
+ await this.writeJson(build, ".writer.json", state);
172
+ }
173
+
174
+ async deleteWriter(build: string): Promise<void> {
175
+ await this.#client.delete(this.#key(build, ".writer.json"));
176
+ }
177
+
178
+ async create(seed: BuildResultSeed): Promise<BuildResultWriter> {
179
+ assertOrderedBuildId(seed.id);
180
+ assertBuildResultSeed(seed);
181
+ assert((await this.read(seed.id)) === undefined, `Build Result ${seed.id} already exists`);
182
+ const forwards = await normalizeBuildResultForwards(this, seed.forwards ?? []);
183
+ const manifest: BuildResultManifest = {
184
+ format: "hypit.build-result@1",
185
+ id: seed.id,
186
+ ...(seed.title === undefined ? {} : { title: seed.title }),
187
+ source: seed.source,
188
+ ...(seed.run === undefined ? {} : { run: seed.run }),
189
+ targets: [...seed.targets],
190
+ outputs: {},
191
+ };
192
+ try {
193
+ await this.writeWriter(seed.id, {
194
+ resources: {},
195
+ values: {},
196
+ publishedOutputs: seed.publishedOutputs,
197
+ forwards,
198
+ });
199
+ await this.writeManifest(seed.id, manifest);
200
+ } catch (error) {
201
+ await this.#client.delete(this.#key(seed.id, ".writer.json")).catch(() => undefined);
202
+ await this.#client.delete(this.#key(seed.id, "result.json")).catch(() => undefined);
203
+ throw error;
204
+ }
205
+ return new S3BuildResultWriter(this, seed.id);
206
+ }
207
+
208
+ async openWriter(build: string): Promise<BuildResultWriter | undefined> {
209
+ return (await this.read(build)) === undefined ? undefined : new S3BuildResultWriter(this, build);
210
+ }
211
+
212
+ async removeIncomplete(build: string): Promise<void> {
213
+ const manifest = await this.read(build);
214
+ if (manifest === undefined) return;
215
+ assert(manifest.outcome === undefined, `Finished Build Result ${build} cannot be removed`);
216
+ const prefix = this.#key(build, "result.json").slice(0, -"result.json".length);
217
+ const keys = await this.#client.list(prefix);
218
+ await Promise.all(keys.filter((key) => key.startsWith(prefix)).map(async (key) => await this.#client.delete(key)));
219
+ }
220
+
221
+ async read(build: string): Promise<BuildResultManifest | undefined> {
222
+ const subject = `${build}/result.json`;
223
+ const value = await this.#readJson(build, "result.json");
224
+ return value === undefined ? undefined : decodeBuildResultManifest(value, build, subject);
225
+ }
226
+
227
+ async updatePresentation(
228
+ build: string,
229
+ update: BuildResultPresentationUpdate,
230
+ ): Promise<BuildResultManifest> {
231
+ const manifest = await this.read(build);
232
+ assert(manifest !== undefined, `Build Result ${build} does not exist`);
233
+ const updated = applyBuildResultPresentation(manifest, update);
234
+ await this.writeManifest(build, updated);
235
+ return updated;
236
+ }
237
+
238
+ async browse(request: { readonly before?: string; readonly limit: number }) {
239
+ assert(Number.isSafeInteger(request.limit) && request.limit > 0, "Build Result browse limit must be positive");
240
+ if (request.before !== undefined) assertOrderedBuildId(request.before);
241
+ const prefix = this.#prefix.length === 0 ? "" : `${this.#prefix}/`;
242
+ const found: Array<BuildResultManifest & { readonly outcome: NonNullable<BuildResultManifest["outcome"]>; readonly finishedAt: number }> = [];
243
+ let after = request.before === undefined ? undefined : `${prefix}${physicalBuild(request.before)}/`;
244
+ while (found.length <= request.limit) {
245
+ const page = await this.#client.list(prefix, {
246
+ limit: Math.min(1_000, Math.max(32, request.limit + 1)),
247
+ delimiter: "/",
248
+ ...(after === undefined ? {} : { after }),
249
+ });
250
+ if (page.length === 0) break;
251
+ for (const item of page) {
252
+ after = item;
253
+ if (!item.startsWith(prefix) || !item.endsWith("/")) continue;
254
+ const physical = item.slice(prefix.length, -1);
255
+ if (physical.includes("/")) continue;
256
+ const build = publicBuild(physical);
257
+ if (build === undefined) continue;
258
+ const manifest = await this.read(build);
259
+ if (manifest?.outcome === undefined || manifest.finishedAt === undefined) continue;
260
+ found.push(manifest as typeof found[number]);
261
+ if (found.length > request.limit) break;
262
+ }
263
+ if (found.length > request.limit || page.length < Math.min(1_000, Math.max(32, request.limit + 1))) break;
264
+ }
265
+ const results = found.slice(0, request.limit);
266
+ return {
267
+ results,
268
+ ...(found.length > request.limit && results.length > 0 ? { next: results[results.length - 1]!.id } : {}),
269
+ };
270
+ }
271
+
272
+ async describeOutput(build: string, output: string): Promise<RepositoryBuildResultOutputDescription | undefined> {
273
+ const seen = new Set<string>();
274
+ let currentBuild = build;
275
+ let currentOutput = output;
276
+ while (true) {
277
+ const address = `${currentBuild}\u0000${currentOutput}`;
278
+ assert(!seen.has(address), `Build Output forwarding repeats ${currentBuild} / ${currentOutput}`);
279
+ seen.add(address);
280
+ const manifest = await this.read(currentBuild);
281
+ const entry = manifest?.outputs[currentOutput];
282
+ if (entry === undefined) return undefined;
283
+ if (entry.value.kind === "build-output") {
284
+ currentBuild = entry.value.build;
285
+ currentOutput = entry.value.output;
286
+ continue;
287
+ }
288
+ return entry.value.kind === "build-file"
289
+ ? { type: entry.type, kind: "resource", size: entry.value.size, mediaType: entry.value.mediaType }
290
+ : entry.value.kind === "value"
291
+ ? { type: entry.type, kind: "composite" }
292
+ : { type: entry.type, kind: "scalar" };
293
+ }
294
+ }
295
+
296
+ async resolve(build: string, output: string): Promise<RepositoryBuildResultOutput | undefined> {
297
+ const seen = new Set<string>();
298
+ let currentBuild = build;
299
+ let currentOutput = output;
300
+ while (true) {
301
+ const address = `${currentBuild}\u0000${currentOutput}`;
302
+ assert(!seen.has(address), `Build Output forwarding repeats ${currentBuild} / ${currentOutput}`);
303
+ seen.add(address);
304
+ const manifest = await this.read(currentBuild);
305
+ const entry = manifest?.outputs[currentOutput];
306
+ if (entry === undefined) return undefined;
307
+ if (entry.value.kind === "build-output") {
308
+ currentBuild = entry.value.build;
309
+ currentOutput = entry.value.output;
310
+ continue;
311
+ }
312
+ if (entry.value.kind === "value") {
313
+ const rawDocument = await this.#readJson(currentBuild, entry.value.path);
314
+ assert(rawDocument !== undefined, `Build ${currentBuild} value ${entry.value.path} is unavailable`);
315
+ const document = decodeBuildResultValueDocument(
316
+ rawDocument,
317
+ `Build ${currentBuild} Output ${currentOutput}`,
318
+ );
319
+ return {
320
+ build: currentBuild,
321
+ output: currentOutput,
322
+ type: entry.type,
323
+ value: { ...entry.value, document },
324
+ };
325
+ }
326
+ const terminalKind = (entry.value as { readonly kind?: unknown }).kind;
327
+ assert(terminalKind === "build-file" || terminalKind === "inline",
328
+ `Build ${currentBuild} Output ${currentOutput} has unsupported Result value kind ${String(terminalKind)}`);
329
+ return {
330
+ build: currentBuild,
331
+ output: currentOutput,
332
+ type: entry.type,
333
+ value: entry.value,
334
+ };
335
+ }
336
+ }
337
+
338
+ async openFile(
339
+ build: string,
340
+ file: BuildResultFileRef,
341
+ range?: BuildResultFileRange,
342
+ ): Promise<AsyncIterable<Uint8Array> | undefined> {
343
+ if (range !== undefined) {
344
+ assert(Number.isSafeInteger(range.start) && range.start >= 0, "Build Result file range start is invalid");
345
+ assert(Number.isSafeInteger(range.endExclusive) && range.endExclusive > range.start,
346
+ "Build Result file range end is invalid");
347
+ assert(range.endExclusive <= file.size, "Build Result file range exceeds the declared file size");
348
+ }
349
+ return await this.#client.open(this.#key(build, file.path), range);
350
+ }
351
+
352
+ /** Verify that the configured bucket/prefix can be listed without loading Result history. */
353
+ async diagnose(): Promise<void> {
354
+ const prefix = this.#prefix.length === 0 ? "" : `${this.#prefix}/`;
355
+ await this.#client.list(prefix, { limit: 1 });
356
+ }
357
+
358
+ async close(): Promise<void> {
359
+ await this.#client.close?.();
360
+ }
361
+ }
@@ -0,0 +1,77 @@
1
+ # `@hypit/caption`
2
+
3
+ External components use `@hypit/hypit/caption` from their `@hypit/hypit` development dependency. The package
4
+ owns the types and helpers below; Source imports retain the `@hypit/caption@1` Module identity.
5
+
6
+
7
+ The deterministic Caption contract. Script emits one `CaptionDocument` containing display words,
8
+ N:M alignment units and authored `||` cue breaks. Caption applies Styles to complete units selected
9
+ by a Role or a semantic Selection, then joins those units to a `SemanticTrack` for frame timing.
10
+
11
+ ```xml
12
+ <caption:Program id="captions" document={story.caption} narrative={story} default={plain}>
13
+ <caption:Use role="HOST" style={impact}/>
14
+ <caption:Use selection={story.selection.emphasis} style={plain}/>
15
+ <caption:Use attribute="emphasis" style={keyword}/>
16
+ </caption:Program>
17
+ ```
18
+
19
+ There is no planner, model call or frame range in this authoring contract. A Selection is projected
20
+ to complete alignment units before timing; a Selection that cuts through an N:M unit is rejected.
21
+ Script-native word attributes are resolved separately as local word Style runs and do not create
22
+ another timing source. They are part of the common Caption contract for structural Caption families;
23
+ `@hypit/caption-fine` deliberately rejects them because Fine requires one uniform token rule per Cue.
24
+
25
+ `TimedCaptionProjection` is intentionally not a `TemporalWindow` collection. Cue timing is a
26
+ read-only projection of token evidence, not an author-controlled placement window. It nevertheless
27
+ carries the exact `spaceId`, `narrativeId` and `documentId`, so another SemanticTrack or Script cannot
28
+ be substituted silently.
29
+
30
+ ## Extending with another rendering family
31
+
32
+ The common public values are defined in [types.ts](src/types.ts), with exports in
33
+ [index.ts](src/index.ts). A family supplies:
34
+
35
+ - a Style decoder producing `CaptionStyleIntent` with its own `rendering.family` and validated
36
+ `rendering.parameters`;
37
+ - an optional family schedule Type and deterministic scheduling Producer;
38
+ - a rendering Producer returning the ordinary `VisualTrack` Type;
39
+ - a Surface/Fragment connecting the common document, program and timing to those Producers.
40
+
41
+ `caption:Program` remains the common author Surface. `Use` selects exactly one of `role`, `selection`
42
+ or `attribute`; `Mute` selects a Role or Selection. For Role/Selection applications, the last matching
43
+ `Use` in Source order selects the complete Style for each unit. It replaces the previous choice
44
+ without merging Style parameters. A Selection can cover a phrase, a whole Segment, several Segments
45
+ or the program through its structural anchors; there is no separate Segment selector.
46
+
47
+ Word attributes produce separate `wordRuns`. Conflicting Styles on the same attributed word are
48
+ rejected; these runs do not use the Role/Selection override rule. A family chooses whether and how
49
+ it supports word-specific runs.
50
+
51
+ Mute applications combine their selected unit ids independently of Style order. They suppress those
52
+ display words, preserving the speech and semantic timeline. Visible lead and tail still belong to
53
+ the family schedule, so muting a word is not a time-based mask of every neighboring Cue.
54
+
55
+ Reuse `captionProducers.temporalizeDocument` with inputs `document`, `semantic` and `program`, or the
56
+ corresponding exported timing Fragment. It emits a `TimedCaptionProjection` whose Cues contain
57
+ `styleId`, `startFrame`, `endFrameExclusive` and measured `units`. Each unit carries `unitId` and its
58
+ own boundaries. Recover display Words and their associations from the same `CaptionDocument`; do
59
+ not infer N:M timing by evenly dividing a Cue or splitting its rendered string.
60
+
61
+ Scheduling may derive visible intervals while preserving those measured boundaries. Use
62
+ `assertCaptionProgramForDocument`, `assertTimedCaptionProjection` and, for visible scheduling,
63
+ `applyCaptionMute` as appropriate. Retain `spaceId`, `narrativeId` and `documentId` in a schedule so
64
+ the renderer can check its inputs. The renderer should consume that schedule without silently
65
+ changing Cue grouping, lead or tail again.
66
+
67
+ `@hypit/caption-fine` provides a working example in its `src/fragment.ts`, `src/schedule.ts` and
68
+ `src/render.ts`: one shared timing join, then family schedule and render operations. A new structural
69
+ family replaces Fine's uniform-word layout and parameters, not the common speech truth. Its own
70
+ Manifest, activation and vocabulary belong to the project package; no change to this common package
71
+ is required merely to add a new visual family.
72
+
73
+ That family can render a standalone Caption Track or coordinate caption text with graphics in a
74
+ shared scene. Its output uses ordinary VisualTrack elements or a renderer program with explicit
75
+ resources. Caption retains the authored words and their semantic relationship while the component
76
+ owns the visual boundary. The Program does not automatically route different families to different
77
+ renderers; choose the implementing component and its coverage explicitly.
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@hypit/caption",
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/component-kit": "workspace:*",
15
+ "@hypit/elaborator": "workspace:*",
16
+ "@hypit/narrative": "workspace:*",
17
+ "@hypit/protocol": "workspace:*",
18
+ "@hypit/semantic-track": "workspace:*",
19
+ "@hypit/markup": "workspace:*"
20
+ },
21
+ "devDependencies": {
22
+ "@hypit/program-space": "workspace:*",
23
+ "@hypit/script": "workspace:*",
24
+ "@hypit/speech": "workspace:*",
25
+ "@hypit/speech-alignment": "workspace:*",
26
+ "@hypit/speech-evidence": "workspace:*"
27
+ }
28
+ }
@@ -0,0 +1,17 @@
1
+ import { createMarkupSurfaceHostFacet } from "@hypit/markup";
2
+ import {
3
+ captionComponent, captionManifest, captionModuleRef,
4
+ decodeCaptionProgramSurface,
5
+ captionMarkupSurfaces,
6
+ } from "./index.js";
7
+
8
+ export const hypitPackage = {
9
+ format: "hypit.node-package@1" as const,
10
+ modules: [{ manifest: captionManifest }],
11
+ components: [captionComponent],
12
+ hostFacets: [
13
+ createMarkupSurfaceHostFacet({ module: captionModuleRef,
14
+ declaration: captionMarkupSurfaces.find((item) => item.name === "program")!, handler: decodeCaptionProgramSurface }),
15
+ ],
16
+ };
17
+ export default hypitPackage;
@@ -0,0 +1,38 @@
1
+ import type { ComponentPackage } from "@hypit/component-kit";
2
+ import type { CaptionDocument } from "@hypit/narrative";
3
+ import type { SemanticTrack } from "@hypit/semantic-track";
4
+ import type { StoredValue } from "@hypit/protocol";
5
+ import { canonicalize } from "@hypit/protocol";
6
+
7
+ import { captionProducers, captionTypes } from "./manifest.js";
8
+ import { assertCaptionProgram } from "./style.js";
9
+ import { assertTimedCaptionProjection, temporalizeCaptionDocument } from "./temporalize.js";
10
+ import type { CaptionProgram, CaptionStyleIntent, TimedCaptionProjection } from "./types.js";
11
+
12
+ function inline<T>(value: StoredValue | undefined, subject: string): T {
13
+ if (value?.kind !== "inline") throw new Error(`${subject} must be inline`);
14
+ return value.value as T;
15
+ }
16
+
17
+ export const captionComponent = {
18
+ producers: [{
19
+ producer: captionProducers.temporalizeDocument,
20
+ handler: ({ inputs }) => ({
21
+ outputs: { caption: { kind: "inline", value: canonicalize(temporalizeCaptionDocument(
22
+ inline<CaptionDocument>(inputs.document?.value, "CaptionDocument"),
23
+ inline<SemanticTrack>(inputs.semantic?.value, "SemanticTrack"),
24
+ inline<CaptionProgram>(inputs.program?.value, "CaptionProgram"),
25
+ )) } },
26
+ needs: {},
27
+ }),
28
+ }],
29
+ validators: [
30
+ { type: captionTypes.style, handler: ({ value }) => {
31
+ if (value.kind !== "inline") throw new Error("CaptionStyle must be inline");
32
+ const style = value.value as CaptionStyleIntent;
33
+ if (!style.id || !style.rendering?.family) throw new Error("CaptionStyle is invalid");
34
+ } },
35
+ { type: captionTypes.program, handler: ({ value }) => assertCaptionProgram(inline<CaptionProgram>(value, "CaptionProgram")) },
36
+ { type: captionTypes.timedProjection, handler: ({ value }) => assertTimedCaptionProjection(inline<TimedCaptionProjection>(value, "TimedCaptionProjection")) },
37
+ ],
38
+ } satisfies ComponentPackage;
@@ -0,0 +1,111 @@
1
+ import type { CaptionDocument, Narrative, NarrativeSelection } from "@hypit/narrative";
2
+
3
+ function assert(condition: unknown, message: string): asserts condition {
4
+ if (!condition) throw new Error(message);
5
+ }
6
+
7
+ export function assertCaptionDocument(value: CaptionDocument): void {
8
+ assert(value.id.length > 0, "CaptionDocument identity is invalid");
9
+ assert(value.units.length > 0 && value.words.length > 0, "CaptionDocument is empty");
10
+ const words = new Map(value.words.map((word) => [word.id, word]));
11
+ assert(words.size === value.words.length, "CaptionDocument word ids are repeated");
12
+ const units = new Set<string>();
13
+ const orderedWordIds: string[] = [];
14
+ for (const unit of value.units) {
15
+ assert(unit.id.length > 0 && !units.has(unit.id), "CaptionDocument unit ids are repeated");
16
+ units.add(unit.id);
17
+ assert(unit.wordIds.length > 0 && unit.sourceTokenIds.length > 0, `Caption unit ${unit.id} is empty`);
18
+ for (const wordId of unit.wordIds) {
19
+ const word = words.get(wordId);
20
+ assert(word !== undefined && word.unitId === unit.id, `Caption unit ${unit.id} references a foreign word`);
21
+ assert(word.segmentId === unit.segmentId && word.turnId === unit.turnId && word.role === unit.role,
22
+ `Caption unit ${unit.id} disagrees with its word context`);
23
+ orderedWordIds.push(wordId);
24
+ }
25
+ }
26
+ assert(orderedWordIds.join("\0") === value.words.map((word) => word.id).join("\0"),
27
+ "CaptionDocument words must be partitioned by units in order");
28
+ const breakIds = new Set<string>();
29
+ for (const cueBreak of value.cueBreaks) {
30
+ assert(units.has(cueBreak.afterUnitId) && !breakIds.has(cueBreak.afterUnitId),
31
+ "CaptionDocument cue break names an unknown or repeated unit");
32
+ breakIds.add(cueBreak.afterUnitId);
33
+ }
34
+ }
35
+
36
+ export type CaptionUnitSubset = {
37
+ readonly documentId: string;
38
+ readonly unitIds: readonly string[];
39
+ };
40
+
41
+ function tokenBoundary(narrative: Narrative, anchorId: string, owner: string): number {
42
+ const anchor = narrative.semanticIndex.anchors.find((candidate) => candidate.id === anchorId);
43
+ if (anchor === undefined) throw new Error(`${owner} names unknown semantic anchor ${anchorId}`);
44
+ if (anchor.kind === "program-start") return 0;
45
+ if (anchor.kind === "program-end") return narrative.tokens.length;
46
+ const segment = narrative.segments.find((candidate) => candidate.id === anchor.segmentId);
47
+ if (segment === undefined) throw new Error(`${owner} names an anchor outside its Segment`);
48
+ if (anchor.kind === "segment-start") return segment.tokenStart;
49
+ if (anchor.kind === "segment-end") return segment.tokenEndExclusive;
50
+ const tokenIndex = narrative.tokens.findIndex((token) => token.id === anchor.tokenId);
51
+ if (tokenIndex < 0) throw new Error(`${owner} names an anchor without a Narrative token`);
52
+ return anchor.kind === "token-start" ? tokenIndex : tokenIndex + 1;
53
+ }
54
+
55
+ /** Project a semantic Selection to complete authored N:M Caption units. */
56
+ export function captionUnitsForSelection(
57
+ document: CaptionDocument,
58
+ narrative: Narrative,
59
+ selection: NarrativeSelection,
60
+ ): CaptionUnitSubset {
61
+ assertCaptionDocument(document);
62
+ const start = tokenBoundary(narrative, selection.startAnchorId, `Selection ${selection.id}`);
63
+ const end = tokenBoundary(narrative, selection.endAnchorId, `Selection ${selection.id}`);
64
+ assert(end >= start, `Selection ${selection.id} is backwards`);
65
+ const tokenPositions = new Map(narrative.tokens.map((token, index) => [token.id, index]));
66
+ const unitIds: string[] = [];
67
+ for (const unit of document.units) {
68
+ const positions = unit.sourceTokenIds.map((tokenId) => tokenPositions.get(tokenId));
69
+ assert(positions.every((position): position is number => position !== undefined),
70
+ `Caption unit ${unit.id} references a token outside Narrative`);
71
+ const unitStart = Math.min(...positions as number[]);
72
+ const unitEnd = Math.max(...positions as number[]) + 1;
73
+ if (unitStart >= end || unitEnd <= start) continue;
74
+ if (unitStart < start || unitEnd > end) {
75
+ throw new Error(`Caption Selection ${selection.id} partially selects Alignment Unit ${unit.id}`);
76
+ }
77
+ unitIds.push(unit.id);
78
+ }
79
+ if (unitIds.length === 0) throw new Error(`Caption Selection ${selection.id} selects no complete display unit`);
80
+ return { documentId: document.id, unitIds };
81
+ }
82
+
83
+ export function captionUnitsForRole(document: CaptionDocument, role: string): CaptionUnitSubset {
84
+ assertCaptionDocument(document);
85
+ const unitIds = document.units.filter((unit) => unit.role === role).map((unit) => unit.id);
86
+ if (unitIds.length === 0) throw new Error(`Caption Role ${role} selects no display unit`);
87
+ return { documentId: document.id, unitIds };
88
+ }
89
+
90
+ export function captionWordsForAttribute(document: CaptionDocument, attribute: string): readonly string[] {
91
+ assertCaptionDocument(document);
92
+ const name = attribute.trim();
93
+ if (!name) throw new Error("Caption attribute name is empty");
94
+ const wordIds = document.words
95
+ .filter((word) => word.attributes.some((item) => item.name === name))
96
+ .map((word) => word.id);
97
+ if (wordIds.length === 0) throw new Error(`Caption attribute ${name} selects no display word`);
98
+ return wordIds;
99
+ }
100
+
101
+ export function assertCaptionUnitSubset(value: CaptionUnitSubset, document: CaptionDocument): void {
102
+ assertCaptionDocument(document);
103
+ assert(value.documentId === document.id, "Caption unit subset belongs to another document");
104
+ const known = new Set(document.units.map((unit) => unit.id));
105
+ assert(value.unitIds.length > 0 && value.unitIds.every((id) => known.has(id)),
106
+ "Caption unit subset contains an unknown unit");
107
+ const order = new Map(document.units.map((unit, index) => [unit.id, index]));
108
+ const indices = value.unitIds.map((id) => order.get(id)!);
109
+ assert(indices.every((index, position) => position === 0 || index === indices[position - 1]! + 1),
110
+ "Caption unit subset must be an ordered contiguous range");
111
+ }
@@ -0,0 +1,9 @@
1
+ export class CaptionTimingError extends Error {
2
+ readonly code: string;
3
+
4
+ constructor(code: string, message: string) {
5
+ super(message);
6
+ this.name = "CaptionTimingError";
7
+ this.code = code;
8
+ }
9
+ }
@@ -0,0 +1,26 @@
1
+ import { narrativeTypes } from "@hypit/narrative";
2
+ import { semanticTrackTypes } from "@hypit/semantic-track";
3
+ import { sealGraphFragment } from "@hypit/elaborator";
4
+
5
+ import { captionProducers, captionTypes } from "./manifest.js";
6
+
7
+ const input = (name: string) => ({ kind: "fragment-input" as const, name });
8
+ const operation = (id: string) => ({ kind: "fragment-operation" as const, operation: id });
9
+
10
+ export const captionTimingFragment = sealGraphFragment({
11
+ inputs: [
12
+ { name: "document", type: narrativeTypes.captionDocument },
13
+ { name: "semantic", type: semanticTrackTypes.track },
14
+ { name: "program", type: captionTypes.program },
15
+ ],
16
+ operations: [{
17
+ id: "temporalize-caption-document",
18
+ producer: captionProducers.temporalizeDocument,
19
+ inputs: { document: input("document"), semantic: input("semantic"), program: input("program") },
20
+ result: { kind: "output", name: "caption" },
21
+ }],
22
+ exports: [{ name: "caption", type: captionTypes.timedProjection, root: operation("temporalize-caption-document") }],
23
+ });
24
+
25
+ /** Kept as the fragment's public name for callers that only know the old export. */
26
+ export const plannedCaptionTimingFragment = captionTimingFragment;