@hypit/hypit 0.1.3 → 0.1.5

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 (486) hide show
  1. package/README.md +5 -3
  2. package/dist/public/caption.d.ts +206 -183
  3. package/dist/public/composition.d.ts +25 -3
  4. package/dist/public/endpoint-kit.d.ts +24 -2
  5. package/dist/public/generation.d.ts +5 -1
  6. package/dist/public/hyperframes.d.ts +19 -1
  7. package/dist/public/narrative.d.ts +17 -3
  8. package/dist/public/performance.d.ts +1590 -0
  9. package/dist/public/program-space.d.ts +179 -32
  10. package/dist/public/runtime-kit.d.ts +21 -8
  11. package/dist/public/sound.d.ts +822 -0
  12. package/dist/public/speech.d.ts +41 -0
  13. package/dist/public/studio-adapter.d.ts +107 -16
  14. package/dist/public/temporal-markup.d.ts +9 -44
  15. package/dist/public/temporal.d.ts +37 -28
  16. package/dist/public/{semantic-track.d.ts → timeline.d.ts} +62 -49
  17. package/examples/README.md +18 -10
  18. package/examples/minimal-author-package/packages/example-component/preview/preview.svml +19 -12
  19. package/examples/minimal-author-package/packages/example-component/src/component.ts +5 -5
  20. package/examples/minimal-author-package/packages/example-component/src/fragment.ts +3 -5
  21. package/examples/minimal-author-package/packages/example-component/src/manifest.ts +8 -10
  22. package/examples/minimal-author-package/packages/example-component/src/surface.ts +2 -2
  23. package/examples/provider-package/README.md +78 -0
  24. package/examples/provider-package/hypit.runtime.json +12 -0
  25. package/examples/provider-package/packages/provider-images/package.json +11 -0
  26. package/examples/provider-package/packages/provider-images/src/activation.ts +24 -0
  27. package/examples/provider-package/packages/provider-images/src/provider.ts +122 -0
  28. package/examples/provider-package/packages/provider-images/tsconfig.json +9 -0
  29. package/examples/semantic-composition/README.md +6 -0
  30. package/examples/semantic-composition/chat.svml +6 -5
  31. package/examples/semantic-composition/packages/chat-scene/README.md +3 -3
  32. package/examples/semantic-composition/packages/chat-scene/src/activation.ts +18 -21
  33. package/examples/semantic-composition/packages/chat-scene/src/render.ts +4 -4
  34. package/examples/semantic-composition/packages/performance-styles/README.md +42 -0
  35. package/examples/semantic-composition/packages/performance-styles/package.json +25 -0
  36. package/examples/semantic-composition/packages/performance-styles/src/activation.ts +57 -0
  37. package/examples/semantic-composition/packages/performance-styles/src/render.ts +54 -0
  38. package/examples/semantic-composition/packages/performance-styles/src/studio.ts +28 -0
  39. package/examples/semantic-composition/packages/performance-styles/tsconfig.json +18 -0
  40. package/examples/semantic-composition/packages/responsive-explainer/README.md +16 -9
  41. package/examples/semantic-composition/packages/responsive-explainer/src/activation.ts +12 -12
  42. package/examples/semantic-composition/packages/responsive-explainer/src/render.ts +5 -5
  43. package/examples/semantic-composition/packages/sound-styles/README.md +36 -0
  44. package/examples/semantic-composition/packages/sound-styles/package.json +25 -0
  45. package/examples/semantic-composition/packages/sound-styles/src/activation.ts +53 -0
  46. package/examples/semantic-composition/packages/sound-styles/src/render.ts +14 -0
  47. package/examples/semantic-composition/packages/sound-styles/tsconfig.json +18 -0
  48. package/package.json +35 -15
  49. package/packages/audio-track/README.md +20 -13
  50. package/packages/audio-track/package.json +1 -1
  51. package/packages/audio-track/src/component.ts +4 -4
  52. package/packages/audio-track/src/fragment.ts +6 -5
  53. package/packages/audio-track/src/index.ts +1 -1
  54. package/packages/audio-track/src/manifest.ts +17 -16
  55. package/packages/audio-track/src/program.ts +21 -25
  56. package/packages/audio-track/src/surface.ts +19 -18
  57. package/packages/audio-track-studio/README.md +23 -0
  58. package/packages/audio-track-studio/src/index.ts +33 -19
  59. package/packages/author-kit/README.md +1 -1
  60. package/packages/background-removal/README.md +4 -7
  61. package/packages/browser-capture/package.json +1 -1
  62. package/packages/build-result/README.md +69 -0
  63. package/packages/build-result/package.json +2 -1
  64. package/packages/build-result/src/decode.ts +12 -8
  65. package/packages/build-result/src/execution-log.ts +17 -0
  66. package/packages/build-result/src/file-reference.ts +42 -0
  67. package/packages/build-result/src/index.ts +4 -0
  68. package/packages/build-result/src/replace-file-windows.ts +58 -0
  69. package/packages/build-result/src/replace-file.ts +11 -0
  70. package/packages/build-result/src/store.ts +58 -14
  71. package/packages/build-result/src/types.ts +41 -8
  72. package/packages/build-result/src/writer.ts +12 -1
  73. package/packages/build-result-fs/README.md +23 -1
  74. package/packages/build-result-s3/README.md +5 -0
  75. package/packages/build-result-s3/src/repository.ts +23 -5
  76. package/packages/caption/README.md +61 -73
  77. package/packages/caption/package.json +3 -2
  78. package/packages/caption/src/activation.ts +2 -2
  79. package/packages/caption/src/component.ts +20 -5
  80. package/packages/caption/src/display.ts +3 -18
  81. package/packages/caption/src/fragment.ts +3 -7
  82. package/packages/caption/src/index.ts +6 -5
  83. package/packages/caption/src/manifest.ts +29 -46
  84. package/packages/caption/src/style.ts +24 -135
  85. package/packages/caption/src/surface.ts +12 -92
  86. package/packages/caption/src/temporalize.ts +18 -53
  87. package/packages/caption/src/types.ts +8 -35
  88. package/packages/caption/src/visibility.ts +23 -0
  89. package/packages/caption-fine/README.md +31 -11
  90. package/packages/caption-fine/package.json +4 -2
  91. package/packages/caption-fine/src/component.ts +3 -3
  92. package/packages/caption-fine/src/fragment.ts +7 -19
  93. package/packages/caption-fine/src/index.ts +2 -0
  94. package/packages/caption-fine/src/manifest.ts +27 -18
  95. package/packages/caption-fine/src/recipe.ts +7 -0
  96. package/packages/caption-fine/src/render.ts +62 -49
  97. package/packages/caption-fine/src/schedule.ts +39 -35
  98. package/packages/caption-fine/src/style.ts +10 -9
  99. package/packages/caption-fine/src/surface.ts +62 -35
  100. package/packages/caption-fine/src/types.ts +2 -0
  101. package/packages/caption-fine-studio/README.md +24 -2
  102. package/packages/caption-fine-studio/package.json +10 -3
  103. package/packages/caption-fine-studio/src/activation.ts +3 -3
  104. package/packages/caption-fine-studio/src/index.ts +61 -40
  105. package/packages/cli/README.md +81 -3
  106. package/packages/cli/package.json +1 -0
  107. package/packages/cli/src/arguments.ts +39 -15
  108. package/packages/cli/src/build-planning.ts +9 -3
  109. package/packages/cli/src/command.ts +7 -1
  110. package/packages/cli/src/commands/environment.ts +66 -27
  111. package/packages/cli/src/commands/execution.ts +81 -26
  112. package/packages/cli/src/commands/results.ts +7 -11
  113. package/packages/cli/src/index.ts +2 -2
  114. package/packages/cli/src/machine-view.ts +15 -5
  115. package/packages/cli/src/main.ts +38 -42
  116. package/packages/cli/src/observation.ts +7 -1
  117. package/packages/cli/src/output.ts +92 -34
  118. package/packages/cli/src/result-export.ts +22 -13
  119. package/packages/cli/src/run-file.ts +19 -8
  120. package/packages/cli/src/view.ts +64 -18
  121. package/packages/comment-sticker/README.md +3 -3
  122. package/packages/comment-sticker/package.json +1 -1
  123. package/packages/comment-sticker/src/component.ts +4 -4
  124. package/packages/comment-sticker/src/fragment.ts +5 -4
  125. package/packages/comment-sticker/src/manifest.ts +7 -6
  126. package/packages/comment-sticker/src/program.ts +9 -9
  127. package/packages/comment-sticker/src/surface.ts +6 -7
  128. package/packages/comment-sticker-studio/src/index.ts +2 -1
  129. package/packages/compiler-node/src/compiler.ts +1 -0
  130. package/packages/composition/README.md +21 -0
  131. package/packages/composition/src/audio-presentation.ts +44 -0
  132. package/packages/composition/src/index.ts +3 -0
  133. package/packages/composition/src/schema.ts +8 -3
  134. package/packages/composition/src/track.ts +15 -1
  135. package/packages/credential-store-env/README.md +1 -1
  136. package/packages/deck-track/README.md +3 -3
  137. package/packages/deck-track/package.json +1 -1
  138. package/packages/deck-track/src/component.ts +5 -5
  139. package/packages/deck-track/src/fragment.ts +6 -5
  140. package/packages/deck-track/src/lower.ts +12 -12
  141. package/packages/deck-track/src/manifest.ts +8 -7
  142. package/packages/deck-track/src/program.ts +13 -16
  143. package/packages/deck-track/src/surface.ts +9 -10
  144. package/packages/driver-node/src/driver.ts +41 -3
  145. package/packages/elevenlabs-speech/README.md +27 -0
  146. package/packages/{provider-xiaomi-mimo → elevenlabs-speech}/package.json +5 -8
  147. package/packages/elevenlabs-speech/src/activation.ts +26 -0
  148. package/packages/elevenlabs-speech/src/fragment.ts +11 -0
  149. package/packages/elevenlabs-speech/src/index.ts +111 -0
  150. package/packages/elevenlabs-speech/src/surface.ts +167 -0
  151. package/packages/endpoint-kit/README.md +24 -0
  152. package/packages/endpoint-kit/src/index.ts +7 -1
  153. package/packages/estimate/README.md +56 -3
  154. package/packages/estimate/src/program.ts +7 -8
  155. package/packages/film/README.md +12 -7
  156. package/packages/film/package.json +1 -1
  157. package/packages/film/src/component.ts +4 -4
  158. package/packages/film/src/fragment.ts +6 -5
  159. package/packages/film/src/manifest.ts +11 -10
  160. package/packages/film/src/program.ts +5 -5
  161. package/packages/film/src/recipe.ts +2 -1
  162. package/packages/film/src/surface.ts +6 -6
  163. package/packages/film-studio/package.json +1 -1
  164. package/packages/film-studio/src/index.ts +2 -2
  165. package/packages/fishaudio-speech/README.md +33 -0
  166. package/packages/fishaudio-speech/package.json +21 -0
  167. package/packages/fishaudio-speech/src/activation.ts +32 -0
  168. package/packages/fishaudio-speech/src/fragment.ts +11 -0
  169. package/packages/fishaudio-speech/src/index.ts +156 -0
  170. package/packages/fishaudio-speech/src/surface.ts +192 -0
  171. package/packages/fonts-open/README.md +5 -0
  172. package/packages/fonts-open/package.json +5 -1
  173. package/packages/fonts-open/src/studio.ts +21 -0
  174. package/packages/generation/README.md +11 -1
  175. package/packages/generation/src/mapping.ts +28 -30
  176. package/packages/gpt-image/README.md +1 -2
  177. package/packages/grok-imagine/README.md +1 -2
  178. package/packages/hyperframes/README.md +7 -3
  179. package/packages/hyperframes/src/browser-program.ts +11 -2
  180. package/packages/hyperframes/src/document.ts +15 -2
  181. package/packages/interview-emoji-reveal/README.md +4 -4
  182. package/packages/interview-emoji-reveal/package.json +1 -1
  183. package/packages/interview-emoji-reveal/src/component.ts +4 -4
  184. package/packages/interview-emoji-reveal/src/fragment.ts +6 -5
  185. package/packages/interview-emoji-reveal/src/manifest.ts +9 -8
  186. package/packages/interview-emoji-reveal/src/program.ts +14 -14
  187. package/packages/interview-emoji-reveal/src/surface.ts +8 -9
  188. package/packages/media-execution/README.md +7 -3
  189. package/packages/media-execution/src/audio-presentation.ts +23 -0
  190. package/packages/media-execution/src/execute.ts +2 -0
  191. package/packages/media-pipeline/README.md +7 -3
  192. package/packages/media-pipeline/src/audio-plan.ts +4 -1
  193. package/packages/media-pipeline/src/component.ts +16 -2
  194. package/packages/media-pipeline/src/manifest.ts +3 -1
  195. package/packages/media-pipeline/src/types.ts +2 -1
  196. package/packages/media-track/README.md +14 -47
  197. package/packages/media-track/package.json +1 -1
  198. package/packages/media-track/preview/preview.svml +5 -5
  199. package/packages/media-track/src/author.ts +12 -6
  200. package/packages/media-track/src/component.ts +10 -16
  201. package/packages/media-track/src/fragment.ts +8 -7
  202. package/packages/media-track/src/index.ts +3 -1
  203. package/packages/media-track/src/lower.ts +7 -7
  204. package/packages/media-track/src/manifest.ts +16 -38
  205. package/packages/media-track/src/program.ts +62 -67
  206. package/packages/media-track/src/sampling.ts +6 -6
  207. package/packages/media-track/src/sequence.ts +8 -8
  208. package/packages/media-track/src/surface.ts +25 -43
  209. package/packages/media-track-studio/README.md +9 -0
  210. package/packages/media-track-studio/src/index.ts +23 -13
  211. package/packages/mimo-speech/README.md +1 -1
  212. package/packages/minimax-h3/README.md +1 -1
  213. package/packages/nano-banana/README.md +1 -1
  214. package/packages/narrative/README.md +23 -1
  215. package/packages/narrative/src/identity.ts +11 -0
  216. package/packages/narrative/src/index.ts +3 -0
  217. package/packages/narrative/src/schema.ts +28 -27
  218. package/packages/narrative/src/selection.ts +52 -0
  219. package/packages/narrative/src/types.ts +2 -0
  220. package/packages/package-loader-node/README.md +30 -0
  221. package/packages/package-loader-node/package.json +5 -2
  222. package/packages/package-loader-node/src/distribution-resolution.ts +10 -3
  223. package/packages/package-loader-node/src/index.ts +1 -0
  224. package/packages/package-loader-node/src/loader.ts +12 -15
  225. package/packages/package-loader-node/src/location.ts +27 -1
  226. package/packages/package-loader-node/src/module-scope.ts +183 -0
  227. package/packages/package-loader-node/src/types.ts +4 -0
  228. package/packages/performance/README.md +83 -0
  229. package/packages/performance/package.json +30 -0
  230. package/packages/performance/src/activation.ts +11 -0
  231. package/packages/performance/src/component.ts +46 -0
  232. package/packages/performance/src/index.ts +6 -0
  233. package/packages/performance/src/manifest.ts +53 -0
  234. package/packages/{media-track/src/performance.ts → performance/src/media.ts} +9 -10
  235. package/packages/performance/src/program.ts +51 -0
  236. package/packages/performance/src/style.ts +35 -0
  237. package/packages/performance/src/surface.ts +99 -0
  238. package/packages/performance-studio/README.md +25 -0
  239. package/packages/performance-studio/package.json +21 -0
  240. package/packages/performance-studio/src/activation.ts +6 -0
  241. package/packages/performance-studio/src/index.ts +84 -0
  242. package/packages/program-space/README.md +9 -18
  243. package/packages/program-space/src/activation.ts +1 -5
  244. package/packages/program-space/src/index.ts +2 -11
  245. package/packages/program-space/src/surface.ts +1 -20
  246. package/packages/project-context-node/README.md +20 -0
  247. package/packages/project-context-node/package.json +10 -0
  248. package/packages/project-context-node/src/index.ts +3 -0
  249. package/packages/{cli → project-context-node}/src/runtime-selection.ts +7 -2
  250. package/packages/provider-hyperframes-local/README.md +43 -15
  251. package/packages/provider-hyperframes-local/src/activation.ts +4 -3
  252. package/packages/provider-hyperframes-local/src/capture-process.ts +26 -4
  253. package/packages/provider-hyperframes-local/src/capture.ts +96 -26
  254. package/packages/provider-hyperframes-local/src/concurrency.ts +86 -0
  255. package/packages/provider-hyperframes-local/src/opaque-capture.ts +92 -0
  256. package/packages/provider-hyperframes-local/src/options.ts +2 -0
  257. package/packages/provider-hyperframes-local/src/program.ts +6 -3
  258. package/packages/provider-hyperframes-local/src/progress.ts +53 -0
  259. package/packages/provider-hyperframes-local/src/provider.ts +18 -5
  260. package/packages/provider-hyperframes-local/src/render.ts +48 -7
  261. package/packages/provider-hypihub/README.md +48 -17
  262. package/packages/provider-hypihub/package.json +2 -0
  263. package/packages/provider-hypihub/src/mapping.ts +31 -7
  264. package/packages/provider-hypihub/src/oauth.ts +6 -0
  265. package/packages/provider-hypihub/src/provider.ts +25 -13
  266. package/packages/provider-hypihub/src/routes.ts +1 -2
  267. package/packages/provider-hypihub/src/upload.ts +2 -0
  268. package/packages/provider-media-local/README.md +3 -4
  269. package/packages/provider-whisperx-local/README.md +57 -0
  270. package/packages/provider-whisperx-local/src/program.ts +1 -0
  271. package/packages/provider-whisperx-local/src/provider.ts +3 -0
  272. package/packages/ranking/README.md +8 -6
  273. package/packages/ranking/package.json +1 -1
  274. package/packages/ranking/src/component.ts +6 -6
  275. package/packages/ranking/src/fragment.ts +11 -7
  276. package/packages/ranking/src/manifest.ts +21 -14
  277. package/packages/ranking/src/render.ts +33 -35
  278. package/packages/ranking/src/schedule.ts +16 -19
  279. package/packages/ranking/src/surface.ts +12 -13
  280. package/packages/ranking-studio/README.md +29 -0
  281. package/packages/ranking-studio/package.json +8 -3
  282. package/packages/ranking-studio/src/index.ts +71 -12
  283. package/packages/render-hyperframes/README.md +7 -7
  284. package/packages/render-hyperframes/package.json +1 -1
  285. package/packages/render-hyperframes/src/component.ts +11 -1
  286. package/packages/render-hyperframes/src/fragment.ts +7 -4
  287. package/packages/render-hyperframes/src/manifest.ts +4 -4
  288. package/packages/render-hyperframes/src/surface.ts +6 -6
  289. package/packages/runtime/README.md +8 -1
  290. package/packages/runtime/src/catalog.ts +2 -0
  291. package/packages/runtime/src/execution.ts +15 -4
  292. package/packages/runtime/src/index.ts +2 -1
  293. package/packages/runtime/src/log.ts +51 -0
  294. package/packages/runtime/src/types.ts +5 -8
  295. package/packages/runtime-host-node/README.md +30 -0
  296. package/packages/runtime-host-node/package.json +1 -0
  297. package/packages/runtime-host-node/src/index.ts +25 -9
  298. package/packages/runtime-host-node/src/packages.ts +47 -50
  299. package/packages/runtime-kit/README.md +5 -0
  300. package/packages/runtime-kit/src/index.ts +3 -1
  301. package/packages/runtime-local/README.md +111 -4
  302. package/packages/runtime-local/src/config.ts +202 -56
  303. package/packages/runtime-local/src/control.ts +9 -1
  304. package/packages/runtime-local/src/executor.ts +66 -0
  305. package/packages/runtime-local/src/host.ts +37 -17
  306. package/packages/runtime-local/src/log.ts +48 -0
  307. package/packages/runtime-local/src/programs.ts +41 -25
  308. package/packages/runtime-local/src/result-writer.ts +2 -0
  309. package/packages/runtime-local/src/runtime.ts +10 -6
  310. package/packages/runtime-local/src/supervisor.ts +142 -0
  311. package/packages/runtime-local/src/types.ts +9 -2
  312. package/packages/runtime-local/src/worker-process.ts +7 -24
  313. package/packages/runtime-local/src/worker.ts +55 -83
  314. package/packages/screen-overlay/README.md +3 -3
  315. package/packages/screen-overlay/package.json +1 -1
  316. package/packages/screen-overlay/src/component.ts +3 -3
  317. package/packages/screen-overlay/src/fragment.ts +5 -4
  318. package/packages/screen-overlay/src/manifest.ts +7 -6
  319. package/packages/screen-overlay/src/program.ts +9 -9
  320. package/packages/screen-overlay/src/surface.ts +6 -7
  321. package/packages/script/README.md +37 -2
  322. package/packages/script/src/edit.ts +123 -73
  323. package/packages/script/src/lexical.ts +40 -6
  324. package/packages/script/src/manifest.ts +2 -2
  325. package/packages/script/src/narrative.ts +1 -0
  326. package/packages/script/src/parser.ts +36 -8
  327. package/packages/script/src/surface.ts +4 -3
  328. package/packages/script/src/types.ts +5 -1
  329. package/packages/script-studio/package.json +9 -3
  330. package/packages/script-studio/src/index.ts +2 -0
  331. package/packages/script-studio/src/projection.ts +105 -0
  332. package/packages/seedance/README.md +30 -1
  333. package/packages/seedance/src/index.ts +18 -7
  334. package/packages/seedance/src/surface.ts +17 -4
  335. package/packages/seedance-kits/README.md +10 -2
  336. package/packages/seedance-kits/kits/speaker-v1.svs +5 -5
  337. package/packages/seedream/README.md +1 -1
  338. package/packages/sound/README.md +81 -0
  339. package/packages/sound/package.json +25 -0
  340. package/packages/sound/src/activation.ts +11 -0
  341. package/packages/sound/src/component.ts +28 -0
  342. package/packages/sound/src/index.ts +5 -0
  343. package/packages/sound/src/manifest.ts +47 -0
  344. package/packages/sound/src/program.ts +84 -0
  345. package/packages/sound/src/style.ts +34 -0
  346. package/packages/sound/src/surface.ts +90 -0
  347. package/packages/sound-studio/README.md +22 -0
  348. package/packages/sound-studio/package.json +20 -0
  349. package/packages/sound-studio/src/activation.ts +6 -0
  350. package/packages/sound-studio/src/index.ts +74 -0
  351. package/packages/speech/README.md +2 -2
  352. package/packages/speech-alignment/src/align.ts +45 -21
  353. package/packages/speech-alignment/src/local.ts +8 -0
  354. package/packages/speech-alignment/src/locate.ts +1 -1
  355. package/packages/store-sqlite/README.md +7 -0
  356. package/packages/store-sqlite/src/store.ts +84 -83
  357. package/packages/studio/INSPECTOR.md +117 -0
  358. package/packages/studio/README.md +149 -14
  359. package/packages/studio/package.json +8 -7
  360. package/packages/studio/src/build-library.ts +99 -84
  361. package/packages/studio/src/companion-assembly.ts +1 -0
  362. package/packages/studio/src/domain.ts +1 -1
  363. package/packages/studio/src/fallback-companions.ts +3 -3
  364. package/packages/studio/src/feedback-server.ts +51 -0
  365. package/packages/studio/src/feedback-store.ts +66 -0
  366. package/packages/studio/src/feedback.ts +60 -0
  367. package/packages/studio/src/library-media.ts +19 -0
  368. package/packages/studio/src/parameter-values.ts +83 -1
  369. package/packages/studio/src/parameters.ts +132 -43
  370. package/packages/studio/src/preview/render.ts +5 -1
  371. package/packages/studio/src/preview/runtime-shim.ts +49 -3
  372. package/packages/studio/src/programme.ts +14 -30
  373. package/packages/studio/src/server.ts +66 -34
  374. package/packages/studio/src/shared.ts +24 -8
  375. package/packages/studio/src/snapshot.ts +21 -132
  376. package/packages/studio/src/studio-preflight.ts +3 -3
  377. package/packages/studio/src/studio-registry.ts +72 -6
  378. package/packages/studio/src/style.css +342 -190
  379. package/packages/studio/src/temporal-edit.ts +131 -0
  380. package/packages/studio/src/ui/artifact-name.ts +80 -0
  381. package/packages/studio/src/ui/artifact-preview.ts +99 -0
  382. package/packages/studio/src/ui/comments.ts +233 -0
  383. package/packages/studio/src/ui/icons.ts +10 -1
  384. package/packages/studio/src/ui/library.ts +373 -192
  385. package/packages/studio/src/ui/main.ts +291 -110
  386. package/packages/studio/src/ui/material-preview.ts +1 -1
  387. package/packages/studio/src/ui/overlay.ts +31 -26
  388. package/packages/studio/src/ui/scrub-preview.ts +108 -0
  389. package/packages/studio/src/ui/sidebar-panel.ts +31 -0
  390. package/packages/studio/src/ui/stage.ts +188 -9
  391. package/packages/studio/src/ui/timeline.ts +187 -281
  392. package/packages/studio/start.ts +19 -5
  393. package/packages/studio-adapter/README.md +151 -11
  394. package/packages/studio-adapter/src/index.ts +126 -14
  395. package/packages/temporal/README.md +6 -6
  396. package/packages/temporal/package.json +1 -1
  397. package/packages/temporal/src/component.ts +5 -6
  398. package/packages/temporal/src/index.ts +8 -6
  399. package/packages/temporal/src/location.ts +11 -11
  400. package/packages/temporal/src/projection.ts +19 -19
  401. package/packages/temporal/src/rational.ts +4 -4
  402. package/packages/temporal-markup/EDITING.md +183 -0
  403. package/packages/temporal-markup/README.md +31 -11
  404. package/packages/temporal-markup/package.json +1 -1
  405. package/packages/temporal-markup/src/index.ts +20 -25
  406. package/packages/temporal-markup/src/space.ts +10 -41
  407. package/packages/timeline/README.md +31 -0
  408. package/packages/{semantic-track → timeline}/package.json +1 -1
  409. package/packages/timeline/src/activation.ts +8 -0
  410. package/packages/timeline/src/component.ts +24 -0
  411. package/packages/timeline/src/identity.ts +60 -0
  412. package/packages/timeline/src/index.ts +6 -0
  413. package/packages/{semantic-track → timeline}/src/location.ts +20 -20
  414. package/packages/timeline/src/manifest.ts +39 -0
  415. package/packages/{semantic-track → timeline}/src/projection.ts +14 -14
  416. package/packages/timeline/src/types.ts +24 -0
  417. package/packages/timeline-author/README.md +68 -0
  418. package/packages/{speech-track → timeline-author}/package.json +6 -4
  419. package/packages/timeline-author/src/activation.ts +22 -0
  420. package/packages/{speech-track → timeline-author}/src/component.ts +15 -13
  421. package/packages/{speech-track → timeline-author}/src/fragment.ts +14 -23
  422. package/packages/timeline-author/src/index.ts +7 -0
  423. package/packages/timeline-author/src/manifest.ts +78 -0
  424. package/packages/timeline-author/src/program.ts +107 -0
  425. package/packages/timeline-author/src/surface.ts +46 -0
  426. package/packages/timeline-author/src/types.ts +6 -0
  427. package/packages/typography-track/README.md +4 -4
  428. package/packages/typography-track/package.json +1 -1
  429. package/packages/typography-track/src/component.ts +4 -4
  430. package/packages/typography-track/src/fragment.ts +4 -3
  431. package/packages/typography-track/src/manifest.ts +11 -9
  432. package/packages/typography-track/src/program.ts +15 -15
  433. package/packages/typography-track/src/surface.ts +17 -18
  434. package/packages/typography-track-studio/package.json +8 -3
  435. package/packages/typography-track-studio/src/index.ts +5 -1
  436. package/packages/video-cli/README.md +16 -4
  437. package/packages/video-cli/package.json +2 -1
  438. package/packages/video-cli/src/creation.ts +25 -9
  439. package/packages/video-cli/src/index.ts +1 -1
  440. package/packages/video-cli/src/studio-distribution.ts +2 -1
  441. package/packages/volcengine-matting/README.md +3 -3
  442. package/packages/whisperx/README.md +8 -1
  443. package/packages/workspace/src/index.ts +2 -0
  444. package/packages/workspace-fs-node/README.md +4 -1
  445. package/packages/workspace-fs-node/src/workspace.ts +3 -1
  446. package/services/whisperx/README.md +14 -0
  447. package/services/whisperx/pyproject.toml +2 -0
  448. package/services/whisperx/uv.lock +20 -20
  449. package/packages/provider-hyperframes-aws-lambda/README.md +0 -30
  450. package/packages/provider-hyperframes-aws-lambda/package.json +0 -30
  451. package/packages/provider-hyperframes-aws-lambda/src/activation.ts +0 -97
  452. package/packages/provider-hyperframes-aws-lambda/src/client.ts +0 -114
  453. package/packages/provider-hyperframes-aws-lambda/src/index.ts +0 -21
  454. package/packages/provider-hyperframes-aws-lambda/src/provider.ts +0 -522
  455. package/packages/provider-kie/README.md +0 -134
  456. package/packages/provider-kie/package.json +0 -43
  457. package/packages/provider-kie/src/activation.ts +0 -71
  458. package/packages/provider-kie/src/index.ts +0 -10
  459. package/packages/provider-kie/src/mapping.ts +0 -182
  460. package/packages/provider-kie/src/provider.ts +0 -657
  461. package/packages/provider-kie/src/routes.ts +0 -150
  462. package/packages/provider-xiaomi-mimo/README.md +0 -32
  463. package/packages/provider-xiaomi-mimo/src/activation.ts +0 -57
  464. package/packages/provider-xiaomi-mimo/src/index.ts +0 -5
  465. package/packages/provider-xiaomi-mimo/src/provider.ts +0 -214
  466. package/packages/runtime/src/environment.ts +0 -6
  467. package/packages/semantic-track/README.md +0 -21
  468. package/packages/semantic-track/src/activation.ts +0 -8
  469. package/packages/semantic-track/src/component.ts +0 -24
  470. package/packages/semantic-track/src/identity.ts +0 -58
  471. package/packages/semantic-track/src/index.ts +0 -6
  472. package/packages/semantic-track/src/manifest.ts +0 -38
  473. package/packages/semantic-track/src/types.ts +0 -26
  474. package/packages/speech-track/README.md +0 -51
  475. package/packages/speech-track/src/activation.ts +0 -19
  476. package/packages/speech-track/src/index.ts +0 -7
  477. package/packages/speech-track/src/manifest.ts +0 -73
  478. package/packages/speech-track/src/program.ts +0 -64
  479. package/packages/speech-track/src/surface.ts +0 -35
  480. package/packages/speech-track/src/types.ts +0 -6
  481. package/packages/speech-track-studio/README.md +0 -3
  482. package/packages/speech-track-studio/package.json +0 -14
  483. package/packages/speech-track-studio/src/activation.ts +0 -7
  484. package/packages/speech-track-studio/src/index.ts +0 -40
  485. /package/packages/{cli → project-context-node}/src/project-context.ts +0 -0
  486. /package/packages/{speech-track → timeline-author}/preview/Track.png +0 -0
@@ -1,7 +1,7 @@
1
1
  # `@hypit/deck-track`
2
2
 
3
- The Track Surface accepts `semantic={speech.semantic}` or `space={animation}`. Semantic context
4
- resolves Script Selections and Moments; authored space supports clock-based animation. Shared `at`
3
+ The Track Surface accepts `timeline={program.timeline}`. The same Timeline supports authored
4
+ positions and, where prepared Takes supply evidence, Script Selections and Moments. Shared `at`
5
5
  inputs accept a Moment or a time such as `2s`; `at` with `for` produces a Window where required.
6
6
 
7
7
  The official, deliberately narrow depth-stack Deck author package.
@@ -19,7 +19,7 @@ Media layer lowerer, but Deck is not a Media mode and exports only an ordinary p
19
19
 
20
20
  <deck:DepthStack
21
21
  id="proof-stack"
22
- semantic={speech.semantic}
22
+ timeline={speech.timeline}
23
23
  canvas={vertical}
24
24
  frame={layout.proof-stack}
25
25
  until={story.selection.proof}
@@ -20,7 +20,7 @@
20
20
  "@hypit/narrative": "workspace:*",
21
21
  "@hypit/program-space": "workspace:*",
22
22
  "@hypit/protocol": "workspace:*",
23
- "@hypit/semantic-track": "workspace:*",
23
+ "@hypit/timeline": "workspace:*",
24
24
  "@hypit/spatial": "workspace:*",
25
25
  "@hypit/svs": "workspace:*",
26
26
  "@hypit/temporal": "workspace:*",
@@ -1,7 +1,7 @@
1
+ import type { Timeline } from "@hypit/timeline";
1
2
  import type { ComponentPackage, ProducerHandlerContext } from "@hypit/component-kit";
2
3
  import { canonicalize } from "@hypit/protocol";
3
4
  import type { StoredValue } from "@hypit/protocol";
4
- import type { ProgramSpace } from "@hypit/program-space";
5
5
  import type { CanvasSpace, SpatialFrame } from "@hypit/spatial";
6
6
  import type { TemporalInstant } from "@hypit/temporal";
7
7
  import type { MediaLayerSet } from "@hypit/media-track";
@@ -32,7 +32,7 @@ function finalizeInputs(inputs: ProducerHandlerContext["inputs"]) {
32
32
  header: inline<DepthStackHeader>(inputs.header?.value, "DepthStackHeader"),
33
33
  frame: inline<SpatialFrame>(inputs.frame?.value, "SpatialFrame"),
34
34
  spec: inline<DepthStackSpec>(inputs.spec?.value, "DepthStackSpec"),
35
- space: inline<ProgramSpace>(inputs.space?.value, "ProgramSpace"),
35
+ timeline: inline<Timeline>(inputs.timeline?.value, "Timeline"),
36
36
  };
37
37
  }
38
38
 
@@ -53,7 +53,7 @@ export const depthStackComponent = {
53
53
  producer: depthStackProducers.appendCard,
54
54
  handler: ({ inputs }) => ({ outputs: { set: output(appendDepthStackCard(
55
55
  inline<DepthStackCardSet>(inputs.set?.value, "DepthStackCardSet"),
56
- inline<ProgramSpace>(inputs.space?.value, "ProgramSpace"),
56
+ inline<Timeline>(inputs.timeline?.value, "Timeline"),
57
57
  inline<MediaLayerSet>(inputs.material?.value, "MediaLayerSet"),
58
58
  inline<DepthStackCardLabel>(inputs.label?.value, "DepthStackCardLabel"),
59
59
  inline<DepthStackCardSpec>(inputs.spec?.value, "DepthStackCardSpec"),
@@ -66,7 +66,7 @@ export const depthStackComponent = {
66
66
  const value = finalizeInputs(inputs);
67
67
  return { outputs: { program: output(finalizeDepthStack(
68
68
  value.set, value.header, value.frame, value.spec,
69
- inline<TemporalInstant>(inputs.terminal?.value, "TemporalInstant"), value.space,
69
+ inline<TemporalInstant>(inputs.terminal?.value, "TemporalInstant"), value.timeline,
70
70
  )) }, needs: {} };
71
71
  },
72
72
  },
@@ -74,7 +74,7 @@ export const depthStackComponent = {
74
74
  producer: depthStackProducers.render,
75
75
  handler: ({ inputs }) => ({ outputs: { track: output(renderDepthStack(
76
76
  inline<CanvasSpace>(inputs.canvas?.value, "CanvasSpace"),
77
- inline<ProgramSpace>(inputs.space?.value, "ProgramSpace"),
77
+ inline<Timeline>(inputs.timeline?.value, "Timeline"),
78
78
  inline<DepthStackProgram>(inputs.program?.value, "DepthStackProgram"),
79
79
  )) }, needs: {} }),
80
80
  },
@@ -1,4 +1,5 @@
1
- import { programSpaceTypes } from "@hypit/program-space";
1
+ import { timelineTypes } from "@hypit/timeline";
2
+
2
3
  import { artifactTypes } from "@hypit/artifact";
3
4
  import { compositionTypes } from "@hypit/composition";
4
5
  import { sealGraphFragment } from "@hypit/elaborator";
@@ -42,7 +43,7 @@ export function createDepthStackFragment(
42
43
  { name: "canvas", type: spatialTypes.canvas },
43
44
  { name: "frame", type: spatialTypes.frame },
44
45
  { name: "header", type: depthStackTypes.header },
45
- { name: "space", type: programSpaceTypes.programSpace },
46
+ { name: "timeline", type: timelineTypes.track },
46
47
  { name: "spec", type: depthStackTypes.spec },
47
48
  ];
48
49
  const operations: FragmentOperation[] = [
@@ -107,7 +108,7 @@ export function createDepthStackFragment(
107
108
  producer: depthStackProducers.appendCard,
108
109
  inputs: {
109
110
  set: cardSet,
110
- space: input("space"),
111
+ timeline: input("timeline"),
111
112
  material: operation(sampleId),
112
113
  label: input(card.labelName),
113
114
  spec: input(card.cardSpecName),
@@ -126,7 +127,7 @@ export function createDepthStackFragment(
126
127
  header: input("header"),
127
128
  frame: input("frame"),
128
129
  spec: input("spec"),
129
- space: input("space"),
130
+ timeline: input("timeline"),
130
131
  terminal: input(terminalName),
131
132
  },
132
133
  result: { kind: "output", name: "program" },
@@ -134,7 +135,7 @@ export function createDepthStackFragment(
134
135
  operations.push({
135
136
  id: "track",
136
137
  producer: depthStackProducers.render,
137
- inputs: { canvas: input("canvas"), space: input("space"), program: operation("program") },
138
+ inputs: { canvas: input("canvas"), timeline: input("timeline"), program: operation("program") },
138
139
  result: { kind: "output", name: "track" },
139
140
  });
140
141
  return sealGraphFragment({
@@ -1,3 +1,4 @@
1
+ import type { Timeline } from "@hypit/timeline";
1
2
  import {
2
3
  assertVisualTrackIdentity,
3
4
  sealVisualTrack,
@@ -20,7 +21,6 @@ import type {
20
21
  MediaSampleLayerProgram,
21
22
  MediaVisualTrim,
22
23
  } from "@hypit/media-track";
23
- import type { ProgramSpace } from "@hypit/program-space";
24
24
  import { assertCanvasSpace } from "@hypit/spatial";
25
25
  import type { CanvasSpace, SpatialFrame } from "@hypit/spatial";
26
26
 
@@ -170,17 +170,17 @@ function samplingFor(input: {
170
170
  readonly relation: number;
171
171
  readonly stageStart: number;
172
172
  readonly stageDuration: number;
173
- readonly space: ProgramSpace;
173
+ readonly timeline: Timeline;
174
174
  }): VisualTimedSampling | undefined {
175
175
  const timing = sourceTiming(input.layer);
176
176
  if (timing === undefined) return undefined;
177
- assert(timing.frameRate.numerator === input.space.frameRate.numerator
178
- && timing.frameRate.denominator === input.space.frameRate.denominator,
179
- `DepthStack Card ${input.card.id} timed material must be normalized to ProgramSpace.`);
177
+ assert(timing.frameRate.numerator === input.timeline.frameRate.numerator
178
+ && timing.frameRate.denominator === input.timeline.frameRate.denominator,
179
+ `DepthStack Card ${input.card.id} timed material must be normalized to Timeline.`);
180
180
  const trim = trimFor(input.layer, timing.frameCount);
181
181
  if (input.relation === 0) {
182
182
  return resolveVisualSampling({
183
- space: input.space,
183
+ timeline: input.timeline,
184
184
  sourceFrameRate: timing.frameRate,
185
185
  sourceFrameCount: timing.frameCount,
186
186
  targetFrameCount: input.stageDuration,
@@ -282,10 +282,10 @@ function labelElement(card: DepthStackCard, parent: string, order: number): Visu
282
282
 
283
283
  export function renderDepthStack(
284
284
  canvas: CanvasSpace,
285
- space: ProgramSpace,
285
+ timeline: Timeline,
286
286
  program: DepthStackProgram,
287
287
  ): VisualTrack {
288
- assertDepthStackProgramIdentity(program, space);
288
+ assertDepthStackProgramIdentity(program, timeline);
289
289
  assertCanvasSpace(canvas);
290
290
  const presents: VisualTrack["presents"][number][] = [];
291
291
  for (let stageIndex = 0; stageIndex < program.cards.length; stageIndex += 1) {
@@ -322,7 +322,7 @@ export function renderDepthStack(
322
322
  const samplingAnimationOverrides: Record<string, VisualAnimation | null> = {};
323
323
  for (const layer of card.material.layers) {
324
324
  if (layer.kind !== "sample") continue;
325
- const sampling = samplingFor({ program, card, layer, relation, stageStart, stageDuration, space });
325
+ const sampling = samplingFor({ program, card, layer, relation, stageStart, stageDuration, timeline });
326
326
  if (sampling !== undefined) samplingOverrides[layer.id] = sampling;
327
327
  if (relation !== 0 && layer.samplingMotion !== undefined) samplingAnimationOverrides[layer.id] = null;
328
328
  }
@@ -337,7 +337,7 @@ export function renderDepthStack(
337
337
  stacking: { order: 0, tieBreak: card.id },
338
338
  sounds: [],
339
339
  };
340
- const material = [...lowerMediaItemElements(mediaItem, space, {
340
+ const material = [...lowerMediaItemElements(mediaItem, timeline, {
341
341
  placementParent: group.poseParent,
342
342
  lifecycleAnimationOverride: null,
343
343
  samplingOverrides,
@@ -360,11 +360,11 @@ export function renderDepthStack(
360
360
  }
361
361
  }
362
362
  const track = sealVisualTrack({
363
- programSpaceId: space.id,
363
+ programSpaceId: timeline.id,
364
364
  visualIr: "hypit.visual-ir@1",
365
365
  id: program.id,
366
366
  presents,
367
367
  });
368
- assertVisualTrackIdentity(track, space);
368
+ assertVisualTrackIdentity(track, timeline);
369
369
  return track;
370
370
  }
@@ -1,3 +1,4 @@
1
+ import { timelineTypes } from "@hypit/timeline";
1
2
  import { temporalContextAttributeVocabulary } from "@hypit/temporal-markup";
2
3
  import { readFile } from "node:fs/promises";
3
4
 
@@ -19,9 +20,9 @@ import {
19
20
  mediaTrackTypes,
20
21
  } from "@hypit/media-track";
21
22
  import { narrativeDependency, narrativeTypes } from "@hypit/narrative";
22
- import { programSpaceDependency, programSpaceTypes } from "@hypit/program-space";
23
+
23
24
  import type { ModuleManifest, ProducerRef, TypeRef, ValueSchema } from "@hypit/protocol";
24
- import { semanticTrackDependency } from "@hypit/semantic-track";
25
+ import { timelineDependency } from "@hypit/timeline";
25
26
  import { spatialDependency, spatialFrameSchema, spatialTypes } from "@hypit/spatial";
26
27
  import { svsRecipeType } from "@hypit/svs";
27
28
  import { temporalDependency, temporalTypes } from "@hypit/temporal";
@@ -118,7 +119,7 @@ export const depthStackProgramSchema: ValueSchema = object({
118
119
  const finalizeInputs = [
119
120
  { name: "set", type: depthStackTypes.cardSet }, { name: "header", type: depthStackTypes.header },
120
121
  { name: "frame", type: spatialTypes.frame }, { name: "spec", type: depthStackTypes.spec },
121
- { name: "space", type: programSpaceTypes.programSpace },
122
+ { name: "timeline", type: timelineTypes.track },
122
123
  ] as const;
123
124
 
124
125
  export const depthStackMarkupSurfaces = [
@@ -386,7 +387,7 @@ export const depthStackMarkupSurfaces = [
386
387
  ],
387
388
  example: `<deck:DepthStack
388
389
  id="proof-stack"
389
- semantic={speech.semantic}
390
+ timeline={speech.timeline}
390
391
  canvas={vertical}
391
392
  frame={layout.proof-stack}
392
393
  until={story.selection.proof}
@@ -408,7 +409,7 @@ export const depthStackMarkupSurfaces = [
408
409
 
409
410
  export const depthStackManifest: ModuleManifest = {
410
411
  format: "hypit.module@1", name: depthStackModuleRef.name, version: depthStackModuleRef.version,
411
- dependencies: [narrativeDependency, programSpaceDependency, semanticTrackDependency, spatialDependency, temporalDependency, mediaDependency, mediaTrackDependency, compositionDependency, textDependency],
412
+ dependencies: [narrativeDependency, timelineDependency, spatialDependency, temporalDependency, mediaDependency, mediaTrackDependency, compositionDependency, textDependency],
412
413
  types: [
413
414
  { name: depthStackTypes.header.name },
414
415
  { name: depthStackTypes.spec.name },
@@ -422,7 +423,7 @@ export const depthStackManifest: ModuleManifest = {
422
423
  { name: depthStackProducers.bindLabelText.name, inputs: [{ name: "style", type: depthStackTypes.cardLabelStyle }, { name: "content", type: textTypes.text }], outputs: [{ name: "label", type: depthStackTypes.cardLabel }], needs: [] },
423
424
  { name: depthStackProducers.createCards.name, inputs: [], outputs: [{ name: "set", type: depthStackTypes.cardSet }], needs: [] },
424
425
  { name: depthStackProducers.appendCard.name, inputs: [
425
- { name: "set", type: depthStackTypes.cardSet }, { name: "space", type: programSpaceTypes.programSpace }, { name: "material", type: mediaTrackTypes.layerSet },
426
+ { name: "set", type: depthStackTypes.cardSet }, { name: "timeline", type: timelineTypes.track }, { name: "material", type: mediaTrackTypes.layerSet },
426
427
  { name: "label", type: depthStackTypes.cardLabel }, { name: "spec", type: depthStackTypes.cardSpec },
427
428
  { name: "activation", type: temporalTypes.instant },
428
429
  ], outputs: [{ name: "set", type: depthStackTypes.cardSet }], needs: [] },
@@ -430,7 +431,7 @@ export const depthStackManifest: ModuleManifest = {
430
431
  inputs: [...finalizeInputs, { name: "terminal", type: temporalTypes.instant }],
431
432
  outputs: [{ name: "program", type: depthStackTypes.program }], needs: [] },
432
433
  { name: depthStackProducers.render.name, inputs: [
433
- { name: "canvas", type: spatialTypes.canvas }, { name: "space", type: programSpaceTypes.programSpace },
434
+ { name: "canvas", type: spatialTypes.canvas }, { name: "timeline", type: timelineTypes.track },
434
435
  { name: "program", type: depthStackTypes.program },
435
436
  ], outputs: [{ name: "track", type: compositionTypes.visualTrack }], needs: [] },
436
437
  ],
@@ -1,3 +1,4 @@
1
+ import type { Timeline } from "@hypit/timeline";
1
2
  import {
2
3
  assertFontArtifactRef,
3
4
  } from "@hypit/media";
@@ -6,11 +7,7 @@ import {
6
7
  assertMediaLayerSet,
7
8
  assertMediaLifecycleMotion,
8
9
  } from "@hypit/media-track";
9
- import {
10
- assertProgramSpaceIdentity,
11
- programSpaceFrameCount,
12
- } from "@hypit/program-space";
13
- import type { ProgramSpace } from "@hypit/program-space";
10
+ import { assertProgramSpaceIdentity, programSpaceFrameCount } from "@hypit/program-space";
14
11
  import { canonicalize } from "@hypit/protocol";
15
12
  import { verifyText } from "@hypit/text";
16
13
  import type { Text } from "@hypit/text";
@@ -229,13 +226,13 @@ function appendDepthStackCardAtFrame(
229
226
 
230
227
  export function appendDepthStackCard(
231
228
  set: DepthStackCardSet,
232
- space: ProgramSpace,
229
+ timeline: Timeline,
233
230
  material: DepthStackCardSet["cards"][number]["material"],
234
231
  label: DepthStackCardLabel,
235
232
  spec: DepthStackCardSpec,
236
233
  activation: TemporalInstant,
237
234
  ): DepthStackCardSet {
238
- assertTemporalInstantFor(activation, { subjectId: spec.id, space });
235
+ assertTemporalInstantFor(activation, { subjectId: spec.id, space: timeline });
239
236
  return appendDepthStackCardAtFrame(set, material, label, spec, activation.frame);
240
237
  }
241
238
 
@@ -245,13 +242,13 @@ function finalizeDepthStackAtFrame(
245
242
  frame: SpatialFrame,
246
243
  spec: DepthStackSpec,
247
244
  terminalFrame: number,
248
- space: ProgramSpace,
245
+ timeline: Timeline,
249
246
  ): DepthStackProgram {
250
247
  assertDepthStackCardSet(set);
251
248
  assertDepthStackHeader(header);
252
249
  assertSpatialFrame(frame);
253
250
  assertDepthStackSpec(spec);
254
- assertProgramSpaceIdentity(space);
251
+ assertProgramSpaceIdentity(timeline);
255
252
  assert(set.cards.length > 0, "DepthStack requires at least one Card.");
256
253
  const first = set.cards[0]!;
257
254
  const program: DepthStackProgram = {
@@ -263,7 +260,7 @@ function finalizeDepthStackAtFrame(
263
260
  spec: structuredClone(spec),
264
261
  cards: structuredClone(set.cards),
265
262
  };
266
- assertDepthStackProgramIdentity(program, space);
263
+ assertDepthStackProgramIdentity(program, timeline);
267
264
  return canonicalize(program) as unknown as DepthStackProgram;
268
265
  }
269
266
 
@@ -273,10 +270,10 @@ export function finalizeDepthStack(
273
270
  frame: SpatialFrame,
274
271
  spec: DepthStackSpec,
275
272
  terminal: TemporalInstant,
276
- space: ProgramSpace,
273
+ timeline: Timeline,
277
274
  ): DepthStackProgram {
278
- assertTemporalInstantFor(terminal, { subjectId: header.id, space });
279
- return finalizeDepthStackAtFrame(set, header, frame, spec, terminal.frame, space);
275
+ assertTemporalInstantFor(terminal, { subjectId: header.id, space: timeline });
276
+ return finalizeDepthStackAtFrame(set, header, frame, spec, terminal.frame, timeline);
280
277
  }
281
278
 
282
279
  export function assertDepthStackProgram(program: DepthStackProgram): void {
@@ -307,10 +304,10 @@ export function assertDepthStackProgram(program: DepthStackProgram): void {
307
304
  }
308
305
  }
309
306
 
310
- export function assertDepthStackProgramIdentity(program: DepthStackProgram, space: ProgramSpace): void {
311
- assertProgramSpaceIdentity(space);
307
+ export function assertDepthStackProgramIdentity(program: DepthStackProgram, timeline: Timeline): void {
308
+ assertProgramSpaceIdentity(timeline);
312
309
  assertDepthStackProgram(program);
313
- assert(program.terminalFrame <= programSpaceFrameCount(space), "DepthStack terminal is outside ProgramSpace.");
310
+ assert(program.terminalFrame <= programSpaceFrameCount(timeline), "DepthStack terminal is outside Timeline.");
314
311
  }
315
312
 
316
313
  function modulo(value: number, size: number): number {
@@ -1,4 +1,4 @@
1
- import { createTemporalSpace, resolveTemporalContext } from "@hypit/temporal-markup";
1
+ import { resolveTemporalContext } from "@hypit/temporal-markup";
2
2
  import { artifactTypes } from "@hypit/artifact";
3
3
  import { mediaTypes } from "@hypit/media";
4
4
  import type { FontStackRef } from "@hypit/media";
@@ -181,28 +181,27 @@ export const decodeDepthStackLabelSurface: StructuredSurfaceHandler = ({ element
181
181
  };
182
182
 
183
183
  export const decodeDepthStackSurface: StructuredSurfaceHandler = ({ element, resolveReference }) => {
184
- allowed(element, ["id", "semantic", "space", "canvas", "frame", "appearance", "until", "until-boundary"]);
184
+ allowed(element, ["id", "timeline", "canvas", "frame", "appearance", "until", "until-boundary"]);
185
185
  const id = text(element, "id");
186
186
  const context = resolveTemporalContext({ element, resolveReference });
187
- const time = createTemporalSpace({ id: id, element, ...context });
188
187
  const canvas = reference(element.attributes.canvas, `${element.name}.canvas`, spatialTypes.canvas, resolveReference);
189
188
  const frame = reference(element.attributes.frame, `${element.name}.frame`, spatialTypes.frame, resolveReference);
190
189
  const appearance = recipe(element.attributes.appearance, `${element.name}.appearance`, resolveReference);
191
190
  const terminal = createTemporalInstantProjection({
192
- id: `${id}.terminal`, subjectId: id, element, ...context, space: time.space, resolveReference,
191
+ id: `${id}.terminal`, subjectId: id, element, ...context, resolveReference,
193
192
  semanticAttribute: "until", boundaryAttribute: "until-boundary", boundaryFallback: "end", projectedAttribute: false,
194
193
  });
195
194
  const records: SurfaceRecordDraft[] = [...terminal.records];
196
- const temporalComponents: SurfaceComponentDraft[] = [...time.components, ...terminal.components];
197
- const temporalFragments = [...time.fragments, ...terminal.fragments];
195
+ const temporalComponents: SurfaceComponentDraft[] = [...terminal.components];
196
+ const temporalFragments = [...terminal.fragments];
198
197
  const headerId = `${id}.header`;
199
198
  const specId = `${id}.spec`;
200
199
  records.push(
201
200
  { id: headerId, type: depthStackTypes.header, value: { kind: "inline", value: sealDepthStackHeader({ id }) }, range: element.range },
202
201
  { id: specId, type: depthStackTypes.spec, value: { kind: "inline", value: decodeDepthStackSpec(appearance) }, range: element.range },
203
202
  );
204
- const inputs: Record<string, typeof time.space.ref> = {
205
- canvas: canvas.ref, frame: frame.ref, header: { kind: "record", id: headerId }, space: time.space.ref,
203
+ const inputs: Record<string, typeof context.timeline.ref> = {
204
+ canvas: canvas.ref, frame: frame.ref, header: { kind: "record", id: headerId }, timeline: context.timeline.ref,
206
205
  spec: { kind: "record", id: specId }, terminal: terminal.ref,
207
206
  };
208
207
  const cards: DepthStackFragmentCard[] = [];
@@ -225,7 +224,7 @@ export const decodeDepthStackSurface: StructuredSurfaceHandler = ({ element, res
225
224
  : reference(child.attributes.extent, `${child.name}.extent`, spatialTypes.extent, resolveReference);
226
225
  if (sourceKind === "still" && extent === undefined) throw new Error(`${child.name}.extent is required for a still image.`);
227
226
  if (sourceKind !== "still" && extent !== undefined) throw new Error(`${child.name}.extent belongs only to a still image.`);
228
- const activation = createTemporalInstantProjection({ id: `${id}.${cardId}`, subjectId: cardId, element: child, ...context, space: time.space, resolveReference });
227
+ const activation = createTemporalInstantProjection({ id: `${id}.${cardId}`, subjectId: cardId, element: child, ...context, resolveReference });
229
228
  records.push(...activation.records); temporalComponents.push(...activation.components); temporalFragments.push(...activation.fragments);
230
229
  const cardAppearance = child.attributes.appearance === undefined
231
230
  ? appearance : recipe(child.attributes.appearance, `${child.name}.appearance`, resolveReference);
@@ -249,7 +248,7 @@ export const decodeDepthStackSurface: StructuredSurfaceHandler = ({ element, res
249
248
  inputs[sampleSpecName] = { kind: "record", id: sampleId };
250
249
  inputs[cardSpecName] = { kind: "record", id: cardSpecId };
251
250
  inputs[activationName] = activation.ref;
252
- let labelRef: typeof time.space.ref;
251
+ let labelRef: typeof context.timeline.ref;
253
252
  if (child.attributes.label === undefined) {
254
253
  const labelId = `${id}.card.${suffix}.label-none`;
255
254
  records.push({ id: labelId, type: depthStackTypes.cardLabel, value: { kind: "inline", value: noDepthStackCardLabel() }, range: child.range });
@@ -337,6 +337,22 @@ export class NodeDriver {
337
337
  operation: OperationSnapshot,
338
338
  registration: EndpointRegistration,
339
339
  runtimeContext: RuntimeExecutionContext,
340
+ ): Promise<OperationSnapshot> {
341
+ const result = await this.#advanceOperationStep(operation, registration, runtimeContext);
342
+ if (result.status === "failed" && operation.status !== "failed") {
343
+ await runtimeContext.recordExecution?.({ endpoint: operation.endpoint, kind: "failed", message: result.failure!.message });
344
+ } else if (result.completion !== undefined && operation.completion === undefined) {
345
+ await runtimeContext.recordExecution?.({ endpoint: operation.endpoint, kind: "completed" });
346
+ } else if (result.progress?.phase !== undefined && result.progress.phase !== operation.progress?.phase) {
347
+ await runtimeContext.recordExecution?.({ endpoint: operation.endpoint, kind: "phase", phase: result.progress.phase });
348
+ }
349
+ return result;
350
+ }
351
+
352
+ async #advanceOperationStep(
353
+ operation: OperationSnapshot,
354
+ registration: EndpointRegistration,
355
+ runtimeContext: RuntimeExecutionContext,
340
356
  ): Promise<OperationSnapshot> {
341
357
  const operations = this.operations!;
342
358
  if (registration.kind !== "asynchronous") throw new Error("Operation Endpoint is not asynchronous");
@@ -358,6 +374,10 @@ export class NodeDriver {
358
374
  command: structuredClone(command), need: structuredClone(command.need),
359
375
  resources: this.#resourceStore(operation.build), operation: operation.id,
360
376
  credentials: await this.#endpointCredentials({ ...registration, credentials: operation.credentials ?? registration.credentials ?? {} }),
377
+ ...(runtimeContext.recordExecution === undefined ? {} : {
378
+ reportDiagnostic: (diagnostic: import("@hypit/runtime").ExecutionDiagnostic) =>
379
+ runtimeContext.recordExecution!({ endpoint: operation.endpoint, kind: "diagnostic", ...diagnostic }),
380
+ }),
361
381
  checkpoint: async (checkpoint: import("@hypit/endpoint-kit").EndpointCheckpoint) => {
362
382
  await operations.update(operation.id, { status: "pending", ...checkpoint,
363
383
  submission: "accepted", acknowledgedAt: operation.acknowledgedAt ?? Date.now(), wakeAt: Date.now(), progress: { phase: checkpoint.remoteEnded ? "collecting" : "submitted" } });
@@ -366,10 +386,12 @@ export class NodeDriver {
366
386
  };
367
387
  if (action === "submit") {
368
388
  await operations.update(operation.id, { status: "pending", submission: "started", progress: { phase: "submitting" } });
389
+ await runtimeContext.recordExecution?.({ endpoint: operation.endpoint, kind: "started" });
369
390
  return await endpoint.start(context);
370
391
  }
371
392
  const pollContext = { ...context, handle: structuredClone(operation.handle!) };
372
393
  if (action === "collect") {
394
+ await runtimeContext.recordExecution?.({ endpoint: operation.endpoint, kind: "phase", phase: "collecting" });
373
395
  if (endpoint.collect === undefined) throw new Error(`Endpoint ${registration.id} declared artifacts ready but has no collect action`);
374
396
  return await endpoint.collect(pollContext);
375
397
  }
@@ -418,13 +440,13 @@ export class NodeDriver {
418
440
  });
419
441
  }
420
442
 
421
- async advanceOperation(operation: OperationSnapshot): Promise<OperationSnapshot> {
443
+ async advanceOperation(operation: OperationSnapshot, context?: RuntimeExecutionContext): Promise<OperationSnapshot> {
422
444
  if (operation.request === undefined) throw new Error(`Operation ${operation.id} has no stored request`);
423
445
  const selected = this.endpoints.resolve(operation.request.need);
424
446
  if (selected.status !== "resolved" || selected.registration.id !== operation.endpoint) {
425
447
  throw new Error(`Operation ${operation.id} cannot change its selected Endpoint ${operation.endpoint}`);
426
448
  }
427
- return await this.#advanceOperation(operation, selected.registration, { build: operation.build });
449
+ return await this.#advanceOperation(operation, selected.registration, context ?? { build: operation.build });
428
450
  }
429
451
 
430
452
  async #execute(
@@ -464,21 +486,37 @@ export class NodeDriver {
464
486
  try {
465
487
  return await this.#executeEndpoint(state, executable, context);
466
488
  } catch (error) {
489
+ await context.recordExecution?.({ endpoint: executable.endpointId, kind: "failed", message: failureMessage(error) });
467
490
  throw new Error(
468
491
  `Endpoint ${executable.endpointId} failed ${executable.command.need.capability.name}: ${failureMessage(error)}`,
469
492
  { cause: error },
470
493
  );
471
494
  }
472
495
  }
496
+ let phase: string | undefined;
497
+ await context?.recordExecution?.({ endpoint: executable.endpointId, kind: "started" });
473
498
  try {
474
499
  const result = await executable.registration.handler({
475
500
  command: structuredClone(executable.command),
476
501
  need: structuredClone(executable.command.need),
477
502
  resources: this.#resourceStore(context?.build),
478
503
  credentials: await this.#endpointCredentials(executable.registration),
504
+ reportProgress: async (progress) => {
505
+ await context?.reportProgress?.({ endpoint: executable.endpointId, progress });
506
+ if (progress.phase !== phase) {
507
+ phase = progress.phase;
508
+ await context?.recordExecution?.({ endpoint: executable.endpointId, kind: "phase", phase });
509
+ }
510
+ },
511
+ ...(context?.recordExecution === undefined ? {} : {
512
+ reportDiagnostic: (diagnostic) => context.recordExecution!({ endpoint: executable.endpointId, kind: "diagnostic", ...diagnostic }),
513
+ }),
479
514
  });
480
- return { status: "completed", event: await this.#endpointEvent(state, executable, result) };
515
+ const event = await this.#endpointEvent(state, executable, result);
516
+ await context?.recordExecution?.({ endpoint: executable.endpointId, kind: "completed" });
517
+ return { status: "completed", event };
481
518
  } catch (error) {
519
+ await context?.recordExecution?.({ endpoint: executable.endpointId, kind: "failed", message: failureMessage(error) });
482
520
  throw new Error(
483
521
  `Endpoint ${executable.endpointId} failed ${executable.command.need.capability.name}: ${failureMessage(error)}`,
484
522
  { cause: error },
@@ -0,0 +1,27 @@
1
+ # `@hypit/elevenlabs-speech`
2
+
3
+ Exact model contract and author Surface for ElevenLabs Voice Design.
4
+
5
+ `eleven_ttv_v3` creates an ordinary audio voice reference from a natural-language description of
6
+ 20 to 1000 characters and an authored speech sample of 100 to 1000 characters. The service returns
7
+ several candidate previews; the Surface exposes the primary member of the shared `GeneratedAudioSet`
8
+ as `<id>.reference`.
9
+
10
+ It contains no API URL, credential, retry, queue or ElevenLabs wire encoding. Those belong to a
11
+ Runtime Endpoint such as `@hypit/provider-hypihub`.
12
+
13
+ ```xml
14
+ <import as="eleven" from="@hypit/elevenlabs-speech@1"/>
15
+
16
+ <eleven:VoiceDesign id="host" speech={story.segment.voiceSample.speech}>
17
+ A clear young woman with a grounded, confident conversational delivery.
18
+ </eleven:VoiceDesign>
19
+ ```
20
+
21
+ `host.reference` is not a special identity record. It is a normal audio Resource, so the same
22
+ accepted reference can be supplied anywhere an audio reference is accepted.
23
+
24
+ Official API reference: <https://elevenlabs.io/docs/api-reference/text-to-voice/design>
25
+
26
+ The Source import selects author syntax and exact model semantics only. The Runtime Profile
27
+ independently selects the Provider that fulfils the capability.
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "@hypit/provider-xiaomi-mimo",
2
+ "name": "@hypit/elevenlabs-speech",
3
3
  "version": "0.0.0-dev",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "private": true,
@@ -11,14 +11,11 @@
11
11
  "activation": "./src/activation.ts"
12
12
  },
13
13
  "dependencies": {
14
- "@hypit/endpoint-kit": "workspace:*",
14
+ "@hypit/artifact": "workspace:*",
15
15
  "@hypit/generation": "workspace:*",
16
+ "@hypit/model-kit": "workspace:*",
16
17
  "@hypit/protocol": "workspace:*",
17
- "@hypit/runtime": "workspace:*",
18
- "@hypit/runtime-kit": "workspace:*"
19
- },
20
- "devDependencies": {
21
- "@hypit/driver-node": "workspace:*",
22
- "@hypit/mimo-speech": "workspace:*"
18
+ "@hypit/text": "workspace:*",
19
+ "@hypit/markup": "workspace:*"
23
20
  }
24
21
  }
@@ -0,0 +1,26 @@
1
+ import { createMarkupSurfaceHostFacet } from "@hypit/markup";
2
+
3
+ import {
4
+ decodeElevenLabsVoiceDesignSurface,
5
+ elevenLabsSpeechComponent,
6
+ elevenLabsSpeechDefinition,
7
+ elevenLabsSpeechManifest,
8
+ elevenLabsSpeechMarkupSurfaces,
9
+ elevenLabsSpeechModuleRef,
10
+ } from "./index.js";
11
+
12
+ export const hypitPackage = {
13
+ format: "hypit.node-package@1" as const,
14
+ modules: [{ manifest: elevenLabsSpeechManifest }],
15
+ components: [elevenLabsSpeechComponent],
16
+ hostFacets: [
17
+ elevenLabsSpeechDefinition.hostFacet,
18
+ createMarkupSurfaceHostFacet({
19
+ module: elevenLabsSpeechModuleRef,
20
+ declaration: elevenLabsSpeechMarkupSurfaces.find((item) => item.name === "voiceDesign")!,
21
+ handler: decodeElevenLabsVoiceDesignSurface,
22
+ }),
23
+ ],
24
+ };
25
+
26
+ export default hypitPackage;
@@ -0,0 +1,11 @@
1
+ import { createExactModelPrimaryGenerationFragment } from "@hypit/model-kit";
2
+ import type { ExactModelEndpoint, ExactModelMediaInput, ExactModelTextInput } from "@hypit/model-kit";
3
+
4
+ /** Model result projection over the same graph-native request assembly as every exact model. */
5
+ export function createElevenLabsSpeechAudioFragment(
6
+ endpoint: ExactModelEndpoint,
7
+ mediaInputs: readonly ExactModelMediaInput[] = [],
8
+ textInputs: readonly ExactModelTextInput[] = [],
9
+ ) {
10
+ return createExactModelPrimaryGenerationFragment(endpoint, mediaInputs, textInputs);
11
+ }