@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
@@ -289,6 +289,45 @@ type NarrativeMoment = {
289
289
  /** The exact semantic anchor chosen by the author Surface's affinity syntax. */
290
290
  readonly anchorId: string;
291
291
  };
292
+ /** One author-visible word surface. Punctuation owned by the surface is preserved. */
293
+ type CaptionDisplayWord = {
294
+ readonly id: string;
295
+ readonly unitId: string;
296
+ readonly segmentId: string;
297
+ readonly turnId: string;
298
+ readonly role?: string;
299
+ readonly text: string;
300
+ /** Reserved for Script-native word attributes; empty until an inline Mark is authored. */
301
+ readonly attributes: readonly CaptionWordAttribute[];
302
+ };
303
+ type CaptionWordAttributeValue = string | number | boolean;
304
+ type CaptionWordAttribute = {
305
+ readonly name: string;
306
+ readonly value: CaptionWordAttributeValue;
307
+ };
308
+ /** The smallest author-declared N:M display-to-speech correspondence unit. */
309
+ type CaptionAlignmentUnit = {
310
+ readonly id: string;
311
+ readonly segmentId: string;
312
+ readonly turnId: string;
313
+ readonly role?: string;
314
+ readonly wordIds: readonly string[];
315
+ /** Speech tokens are retained here so Caption can project a Narrative Selection without frames. */
316
+ readonly sourceTokenIds: readonly string[];
317
+ };
318
+ type CaptionCueBreak = {
319
+ /** The Cue boundary is after this complete Alignment Unit. */
320
+ readonly afterUnitId: string;
321
+ };
322
+ /** Complete Script-owned Caption truth. It contains no frame or measured timing facts. */
323
+ type CaptionDocument = {
324
+ /** Author-visible `<script id>` that owns this caption projection. */
325
+ readonly narrativeId: string;
326
+ readonly id: string;
327
+ readonly units: readonly CaptionAlignmentUnit[];
328
+ readonly words: readonly CaptionDisplayWord[];
329
+ readonly cueBreaks: readonly CaptionCueBreak[];
330
+ };
292
331
  type SemanticAnchor = {
293
332
  readonly id: "program:start";
294
333
  readonly kind: "program-start";
@@ -305,12 +344,14 @@ type SemanticAnchor = {
305
344
  readonly segmentId: string;
306
345
  readonly tokenId?: string;
307
346
  };
347
+ /** Complete authored content; local views are projections of this value. */
308
348
  type Narrative = {
309
349
  /** Author-visible `<script id>`; every exported semantic view retains it. */
310
350
  readonly id: string;
311
351
  readonly segments: readonly NarrativeSegment[];
312
352
  readonly tokens: readonly NarrativeToken[];
313
353
  readonly turns: readonly NarrativeTurn[];
354
+ readonly caption: CaptionDocument;
314
355
  readonly selections: readonly NarrativeSelection[];
315
356
  readonly moments: readonly NarrativeMoment[];
316
357
  readonly semanticIndex: {
@@ -72,11 +72,11 @@ type Range = {
72
72
  type StudioTrackFamily = string;
73
73
  type StudioIcon = "brand" | "captions" | "component" | "layers" | "ranking" | "text" | "timeline" | "video" | "waveform";
74
74
  /** Studio-owned visual palette. Domain families never become CSS selectors. */
75
- type StudioTimelineTone = "blue" | "green" | "teal" | "violet" | "magenta" | "orange" | "orange-muted" | "neutral";
75
+ type StudioTimelineTone = "blue" | "blue-muted" | "green" | "green-muted" | "teal" | "violet" | "magenta" | "magenta-muted" | "orange" | "orange-muted" | "neutral";
76
76
  type StudioTimelinePresentation = {
77
77
  readonly entity: string;
78
- /** Studio-owned shell. It never decides whether title, time or body exists. */
79
- readonly chrome: "standard" | "group" | "point";
78
+ /** Studio-owned shell. Compact presents the primary label in one line, with time in details. */
79
+ readonly chrome: "standard" | "group" | "point" | "compact";
80
80
  };
81
81
  type StudioTemporalSource = {
82
82
  readonly spaceId: string;
@@ -159,6 +159,33 @@ type StudioTemporalBinding = {
159
159
  declare const studioParameterControls: readonly ["text", "number", "boolean", "select", "color", "list", "record"];
160
160
  type StudioParameterControl = typeof studioParameterControls[number];
161
161
  type StudioParameterLanguage = "svml" | "svs" | "svrun";
162
+ /** Data-only choices. Packages supply meaning; Studio owns all option rendering. */
163
+ type StudioParameterOption = string | {
164
+ readonly value: string | number | boolean;
165
+ readonly label: string;
166
+ readonly description?: string;
167
+ readonly preview?: {
168
+ readonly kind: "color";
169
+ readonly color: string;
170
+ } | {
171
+ readonly kind: "font";
172
+ readonly family: string;
173
+ readonly sample?: string;
174
+ };
175
+ };
176
+ /** Displayed number = authored number × scale. Suffixes are retained, never converted. */
177
+ type StudioNumberPresentation = {
178
+ readonly scale?: number;
179
+ readonly suffixes?: readonly string[];
180
+ readonly minimum?: number;
181
+ readonly maximum?: number;
182
+ readonly step?: number;
183
+ };
184
+ /** Attribute ranges are relative to the owning element's source preimage. */
185
+ type StudioAttributeGroupEdit = {
186
+ readonly insertionOffset: number;
187
+ readonly ranges: Readonly<Record<string, Range | null>>;
188
+ };
162
189
  /** A real author endpoint. Its existence never implies Inspector visibility. */
163
190
  type StudioSourceBinding = {
164
191
  readonly id: string;
@@ -181,9 +208,10 @@ type StudioSourceBinding = {
181
208
  readonly prefix?: string;
182
209
  readonly suffix?: string;
183
210
  };
211
+ readonly attributes?: StudioAttributeGroupEdit;
184
212
  readonly disabledReason?: string;
185
213
  };
186
- type StudioInspectorDomain = "where" | "how" | "when";
214
+ type StudioInspectorDomain = "where" | "when" | "how";
187
215
  type StudioInspectorPageDeclaration = {
188
216
  readonly id: string;
189
217
  readonly label: string;
@@ -192,7 +220,7 @@ type StudioInspectorSectionDeclaration = {
192
220
  readonly id: string;
193
221
  readonly label: string;
194
222
  };
195
- /** One visible, writable field selected from a Companion's source bindings. */
223
+ /** One visible field selected from a Companion's source bindings. */
196
224
  type StudioInspectorFieldDeclaration = {
197
225
  readonly binding: string;
198
226
  readonly label: string;
@@ -203,23 +231,42 @@ type StudioInspectorFieldDeclaration = {
203
231
  readonly summary?: string;
204
232
  /** Omit when the binding's public schema selects the finite Studio control. */
205
233
  readonly control?: StudioParameterControl;
206
- readonly options?: readonly string[];
234
+ readonly options?: readonly StudioParameterOption[];
207
235
  readonly unit?: string;
236
+ readonly number?: StudioNumberPresentation;
237
+ readonly multiline?: boolean;
238
+ /** Optional suggested colors, independent of the accepted color value. */
239
+ readonly swatches?: readonly string[];
208
240
  };
209
- /** Resolved Inspector DTO. Studio renders it and executes its exact source write. */
210
- type StudioInspectorField = Omit<StudioInspectorFieldDeclaration, "control"> & {
241
+ /** A selected entity's package-owned fact, with no author write endpoint. */
242
+ type StudioInspectorValue = Pick<StudioInspectorFieldDeclaration, "label" | "domain" | "page" | "section" | "summary" | "unit"> & {
243
+ readonly id: string;
244
+ readonly value: CanonicalValue;
245
+ };
246
+ /** Display and edit authority are independent of the Where / When / How grouping. */
247
+ type StudioInspectorField = Omit<StudioInspectorFieldDeclaration, "binding" | "control"> & {
248
+ readonly binding?: string;
211
249
  readonly id: string;
212
250
  readonly control: StudioParameterControl;
213
251
  readonly value: CanonicalValue;
214
252
  readonly schema?: ValueSchema;
215
- readonly language: StudioParameterLanguage;
216
- readonly source: StudioSourceBinding["source"];
253
+ readonly edit?: {
254
+ readonly language: StudioParameterLanguage;
255
+ readonly source: StudioSourceBinding["source"];
256
+ readonly attributes?: StudioAttributeGroupEdit;
257
+ };
217
258
  };
218
259
  /** Companion-owned source allowlist. It contains no editor presentation. */
219
260
  type StudioSourceBindingDeclaration = {
220
261
  readonly name: string;
221
262
  readonly writable?: boolean;
222
263
  readonly schema?: ValueSchema;
264
+ /** Typed value used when this editable attribute is omitted. */
265
+ readonly fallback?: CanonicalValue | ((authored: Readonly<Record<string, CanonicalValue>>) => CanonicalValue | undefined);
266
+ /** Compose the referenced object's package-owned parameter Companion. */
267
+ readonly companion?: boolean;
268
+ /** Edit these scalar attributes together as one schema-described record. */
269
+ readonly attributes?: readonly string[];
223
270
  /** Optional declaration for the authored element named by a reference. */
224
271
  readonly referenced?: readonly StudioSourceBindingDeclaration[];
225
272
  /**
@@ -241,7 +288,7 @@ type StudioRecipeBindingDeclaration = {
241
288
  /** Domain-owned public Recipe value structure, never editor presentation. */
242
289
  readonly schema?: ValueSchema;
243
290
  /** Typed public fallback; Studio writes the property only after the author changes it. */
244
- readonly fallback?: CanonicalValue;
291
+ readonly fallback?: CanonicalValue | ((authored: Readonly<Record<string, CanonicalValue>>) => CanonicalValue | undefined);
245
292
  };
246
293
  type StudioTimelineGesture = "move" | "trim-start" | "trim-end";
247
294
  type StudioEditCoordinate = "program-frame" | "semantic-anchor" | "source-frame" | "canvas-pixel" | "normalized-progress";
@@ -308,12 +355,13 @@ type StudioDisplayLayer = {
308
355
  readonly layout: "repeat-x" | "cover" | "contain" | "storyboard" | "waveform";
309
356
  };
310
357
  type StudioEntityDisplay = {
311
- /** First row. Studio always places computed time immediately after it. */
358
+ /** Primary label: a header in standard chrome, the complete single-line content in compact chrome. */
312
359
  readonly title: string;
313
360
  /** Ordered back-to-front body layers. */
314
361
  readonly layers: readonly StudioDisplayLayer[];
315
362
  };
316
363
  type StudioLaneDescription = {
364
+ /** Height of this single timeline lane; overlapping entities share it. */
317
365
  readonly heightPx: number;
318
366
  readonly groupId?: string;
319
367
  readonly attachedTo?: string;
@@ -469,7 +517,7 @@ type StudioResolvedTrack = {
469
517
  readonly surfacePreview?: StudioMaterialPreview;
470
518
  readonly value: unknown;
471
519
  };
472
- type StudioViewRole = "semantic-track" | "supporting-value" | "track";
520
+ type StudioViewRole = "timeline" | "supporting-value" | "track";
473
521
  type StudioSpan = {
474
522
  readonly id: string;
475
523
  /** Exact public terminal provenance; never inferred from id syntax. */
@@ -484,17 +532,25 @@ type StudioEntityDraft = {
484
532
  readonly display: StudioEntityDisplay;
485
533
  readonly startFrame: number;
486
534
  readonly endFrameExclusive: number;
535
+ /** Back-to-front timeline order. Ties preserve projection order. Selection raises only the timeline item. */
487
536
  readonly stackOrder: number;
488
537
  readonly elementRange?: Range;
489
538
  readonly markerId?: string;
490
539
  readonly presentId?: string;
540
+ /** Rendered parts belonging to this entity, including phases beyond its editable timeline interval. */
491
541
  readonly renderIds?: readonly string[];
492
542
  /** Resolved author references that differ per derived entity, such as one Cue's actual Style. */
493
543
  readonly parameterReferences?: Readonly<Record<string, string>>;
544
+ /** Disjoint displayed intervals belonging to one selectable author entity. */
545
+ readonly selectionGroup?: string;
546
+ /** Deliberately selected facts, presented beside bound Inspector fields. */
547
+ readonly inspector?: readonly StudioInspectorValue[];
494
548
  readonly presentation?: StudioTimelinePresentation;
495
549
  readonly temporal?: StudioTemporalLineage;
496
- /** Studio-local lane partition; omitted means the root lane. */
550
+ /** Independent child Track partition; omitted means this Track. */
497
551
  readonly lane?: string;
552
+ /** Internal band of this Track; mutually exclusive with lane. */
553
+ readonly band?: string;
498
554
  };
499
555
  type StudioTrackCompanionContext = {
500
556
  readonly track: StudioResolvedTrack;
@@ -527,6 +583,8 @@ type StudioTrackCompanion = {
527
583
  readonly source: "surface-preview";
528
584
  };
529
585
  readonly attachments?: readonly StudioLaneAttachment[];
586
+ /** Internal bands share this Track’s label and contain independently timed entities. */
587
+ readonly bands?: readonly StudioTrackBand[];
530
588
  /** Same-Surface output values required to project this Track for Studio. */
531
589
  readonly requiredValues?: readonly string[];
532
590
  readonly lane?: StudioLaneDescription;
@@ -536,11 +594,22 @@ type StudioTrackCompanion = {
536
594
  readonly inspector?: readonly StudioInspectorFieldDeclaration[];
537
595
  readonly project?: (context: StudioTrackCompanionContext) => readonly StudioEntityDraft[];
538
596
  };
597
+ /** Parameters owned by an authored object, independently of its consumers. */
598
+ type StudioParameterCompanion = {
599
+ readonly id: string;
600
+ readonly match: {
601
+ readonly module: ModuleRef;
602
+ readonly surface: string;
603
+ };
604
+ readonly bindings: readonly StudioSourceBindingDeclaration[];
605
+ readonly inspector: readonly StudioInspectorFieldDeclaration[];
606
+ };
539
607
  type StudioCompanionContribution = {
540
608
  readonly format: "hypit.studio-companions@1";
541
609
  readonly tracks: readonly StudioTrackCompanion[];
542
610
  readonly films?: readonly StudioFilmCompanion[];
543
611
  readonly scripts?: readonly StudioScriptCompanion[];
612
+ readonly parameters?: readonly StudioParameterCompanion[];
544
613
  };
545
614
  /** Declarative Film boundary. Studio follows only the references named here. */
546
615
  type StudioFilmCompanion = {
@@ -597,6 +666,12 @@ type StudioScriptAdjustment = {
597
666
  readonly id: string;
598
667
  readonly anchorId: string;
599
668
  };
669
+ type StudioScriptProjection = Pick<StudioSemanticTimeline, "anchors" | "segments" | "tokens" | "selections" | "moments">;
670
+ type StudioScriptProjectionInput = {
671
+ readonly source: StudioScriptSourceMap;
672
+ readonly values: readonly StudioObservedValue[];
673
+ readonly anchors: ReadonlyMap<string, number>;
674
+ };
600
675
  /** Script grammar companion. It owns source observation and semantic inverse edits. */
601
676
  type StudioScriptCompanion = {
602
677
  readonly id: string;
@@ -614,6 +689,7 @@ type StudioScriptCompanion = {
614
689
  readonly nextOffset?: number;
615
690
  readonly attributes: Readonly<Record<string, unknown>>;
616
691
  }) => Omit<StudioScriptSourceMap, "companion"> | undefined;
692
+ readonly project?: (input: StudioScriptProjectionInput) => StudioScriptProjection;
617
693
  readonly adjust: (input: {
618
694
  readonly sourceName: string;
619
695
  readonly source: string;
@@ -629,11 +705,13 @@ declare function createStudioCompanionHostFacet(input: {
629
705
  readonly tracks?: readonly StudioTrackCompanion[];
630
706
  readonly films?: readonly StudioFilmCompanion[];
631
707
  readonly scripts?: readonly StudioScriptCompanion[];
708
+ readonly parameters?: readonly StudioParameterCompanion[];
632
709
  }): StudioCompanionHostFacet;
633
710
  type StudioPackageContribution = {
634
711
  readonly tracks: readonly StudioTrackCompanion[];
635
712
  readonly films: readonly StudioFilmCompanion[];
636
713
  readonly scripts: readonly StudioScriptCompanion[];
714
+ readonly parameters: readonly StudioParameterCompanion[];
637
715
  };
638
716
  declare function studioContributionFromPackage(owner: string, facets: readonly HostFacet[]): StudioPackageContribution;
639
717
  /**
@@ -641,6 +719,17 @@ declare function studioContributionFromPackage(owner: string, facets: readonly H
641
719
  * The executable facet cannot choose or impersonate its physical owner.
642
720
  */
643
721
  declare function studioTrackCompanionsFromPackage(owner: string, facets: readonly HostFacet[]): readonly StudioTrackCompanion[];
722
+ /** A contiguous internal strip, not a child Track. Declaration order is visual order. */
723
+ type StudioTrackBand = {
724
+ readonly id: string;
725
+ readonly placement: "before" | "after";
726
+ readonly heightPx: number;
727
+ /** Label bands use the whole strip for each entity's title; content bands retain its chrome. */
728
+ readonly display: "label" | "content";
729
+ readonly tone?: StudioTimelineTone;
730
+ readonly bindings?: readonly StudioSourceBindingDeclaration[];
731
+ readonly inspector?: readonly StudioInspectorFieldDeclaration[];
732
+ };
644
733
  type StudioLaneAttachment = {
645
734
  readonly id: string;
646
735
  readonly family: StudioTrackFamily;
@@ -670,6 +759,8 @@ declare function authoredChildFor(context: StudioTrackCompanionContext, authored
670
759
  declare function temporalLineageFor(context: StudioTrackCompanionContext, subjectId: string, input?: string): StudioTemporalLineage | undefined;
671
760
  /** Unique semantic author identity carried by one projection, when there is one. */
672
761
  declare function temporalSemanticSource(lineage: StudioTemporalLineage | undefined): StudioTemporalSource | undefined;
762
+ /** A package chooses which source references can name an otherwise unnamed Item. */
763
+ declare function authoredItemTitle(context: StudioTrackCompanionContext, authoredId: string, sourceTypes: readonly TypeRef[], sourceAttributes: readonly string[]): string;
673
764
  declare function childEntities(context: StudioTrackCompanionContext, items: readonly {
674
765
  /** Exact identity of the projected domain item consumed by Temporal/renderer bindings. */
675
766
  readonly id: string;
@@ -682,5 +773,5 @@ declare function childEntities(context: StudioTrackCompanionContext, items: read
682
773
  readonly sourceTypes?: readonly TypeRef[];
683
774
  }[], entity: StudioTimelinePresentation["entity"], chrome: StudioTimelinePresentation["chrome"]): readonly StudioEntityDraft[];
684
775
 
685
- export { artifactPreview, authoredChildFor, childEntities, createStudioCompanionHostFacet, createStudioTrackCompanionHostFacet, previewLayer, requiredReferencedValue, requiredSurfaceValue, sameSurfaceValue, studioCompanionHostAbi, studioContributionFromPackage, studioParameterControls, studioTrackCompanionsFromPackage, temporalBindingsFor, temporalLineageFor, temporalSemanticSource, textLayer };
686
- export type { Range, StudioCandidateProvenance, StudioCompanionContribution, StudioCompanionHostFacet, StudioDisplayLayer, StudioEditCoordinate, StudioEditHandle, StudioEditSource, StudioEditSourceRole, StudioEntityDisplay, StudioEntityDraft, StudioFilmCompanion, StudioIcon, StudioInspectorDomain, StudioInspectorField, StudioInspectorFieldDeclaration, StudioInspectorPageDeclaration, StudioInspectorSectionDeclaration, StudioLaneAttachment, StudioLaneDescription, StudioMaterialPreview, StudioObservedValue, StudioPackageContribution, StudioParameterControl, StudioParameterLanguage, StudioPlacement, StudioPlacementChild, StudioPreviewSource, StudioRecipeBindingDeclaration, StudioRecipeReferenceBindingDeclaration, StudioResolvedTrack, StudioScriptAdjustment, StudioScriptCompanion, StudioScriptSourceMap, StudioSemanticAnchor, StudioSemanticEditTarget, StudioSemanticSegment, StudioSemanticTimeline, StudioSemanticToken, StudioSnapTarget, StudioSourceBinding, StudioSourceBindingDeclaration, StudioSpan, StudioTemporalAuthority, StudioTemporalBinding, StudioTemporalConsumer, StudioTemporalConsumerInput, StudioTemporalInstantProjection, StudioTemporalLineage, StudioTemporalPhase, StudioTemporalProjection, StudioTemporalSource, StudioTemporalWindowProjection, StudioTimelineGesture, StudioTimelinePresentation, StudioTimelineTone, StudioTrackCompanion, StudioTrackCompanionContext, StudioTrackFamily, StudioTrackTrace, StudioViewRole };
776
+ export { artifactPreview, authoredChildFor, authoredItemTitle, childEntities, createStudioCompanionHostFacet, createStudioTrackCompanionHostFacet, previewLayer, requiredReferencedValue, requiredSurfaceValue, sameSurfaceValue, studioCompanionHostAbi, studioContributionFromPackage, studioParameterControls, studioTrackCompanionsFromPackage, temporalBindingsFor, temporalLineageFor, temporalSemanticSource, textLayer };
777
+ export type { Range, StudioAttributeGroupEdit, StudioCandidateProvenance, StudioCompanionContribution, StudioCompanionHostFacet, StudioDisplayLayer, StudioEditCoordinate, StudioEditHandle, StudioEditSource, StudioEditSourceRole, StudioEntityDisplay, StudioEntityDraft, StudioFilmCompanion, StudioIcon, StudioInspectorDomain, StudioInspectorField, StudioInspectorFieldDeclaration, StudioInspectorPageDeclaration, StudioInspectorSectionDeclaration, StudioInspectorValue, StudioLaneAttachment, StudioLaneDescription, StudioMaterialPreview, StudioNumberPresentation, StudioObservedValue, StudioPackageContribution, StudioParameterCompanion, StudioParameterControl, StudioParameterLanguage, StudioParameterOption, StudioPlacement, StudioPlacementChild, StudioPreviewSource, StudioRecipeBindingDeclaration, StudioRecipeReferenceBindingDeclaration, StudioResolvedTrack, StudioScriptAdjustment, StudioScriptCompanion, StudioScriptProjection, StudioScriptProjectionInput, StudioScriptSourceMap, StudioSemanticAnchor, StudioSemanticEditTarget, StudioSemanticSegment, StudioSemanticTimeline, StudioSemanticToken, StudioSnapTarget, StudioSourceBinding, StudioSourceBindingDeclaration, StudioSpan, StudioTemporalAuthority, StudioTemporalBinding, StudioTemporalConsumer, StudioTemporalConsumerInput, StudioTemporalInstantProjection, StudioTemporalLineage, StudioTemporalPhase, StudioTemporalProjection, StudioTemporalSource, StudioTemporalWindowProjection, StudioTimelineGesture, StudioTimelinePresentation, StudioTimelineTone, StudioTrackBand, StudioTrackCompanion, StudioTrackCompanionContext, StudioTrackFamily, StudioTrackTrace, StudioViewRole };
@@ -203,59 +203,26 @@ type SurfaceAttributeVocabulary = {
203
203
  };
204
204
 
205
205
  type TemporalContext = {
206
- readonly semantic?: SurfaceResolvedReference;
207
- readonly space?: SurfaceResolvedReference;
206
+ readonly timeline: SurfaceResolvedReference;
208
207
  };
209
208
  declare const temporalContextAttributeVocabulary: readonly [{
210
- readonly name: "semantic";
209
+ readonly name: "timeline";
211
210
  readonly kind: "reference";
212
- readonly required: false;
211
+ readonly required: true;
213
212
  readonly accepts: readonly [{
214
213
  module: {
215
- readonly name: "@hypit/semantic-track";
214
+ readonly name: "@hypit/timeline";
216
215
  readonly version: "1";
217
216
  };
218
217
  name: string;
219
218
  }];
220
- readonly summary: "Uses the performance's time axis and resolves Script Selections and Moments.";
221
- }, {
222
- readonly name: "space";
223
- readonly kind: "reference";
224
- readonly required: false;
225
- readonly accepts: readonly [{
226
- module: {
227
- readonly name: "@hypit/program-space";
228
- readonly version: "1";
229
- };
230
- name: string;
231
- }];
232
- readonly summary: "Uses a declared film time axis for authored animation. Supply semantic or space.";
219
+ readonly summary: "The complete film Timeline, with any placed material and semantic anchors.";
233
220
  }];
234
- /** Select the author's film time source. */
221
+ /** One author-facing Timeline; projections share its range and evidence. */
235
222
  declare function resolveTemporalContext(input: {
236
223
  readonly element: StructuredElement;
237
224
  readonly resolveReference: (path: string) => SurfaceResolvedReference | undefined;
238
225
  }): TemporalContext;
239
- /** Give consumers a ProgramSpace while preserving semantic context for word-bound projections. */
240
- declare function createTemporalSpace(input: TemporalContext & {
241
- readonly id: string;
242
- readonly element: StructuredElement;
243
- }): {
244
- records: never[];
245
- components: {
246
- id: string;
247
- fragment: string;
248
- inputs: {
249
- semantic: AuthorValueRef;
250
- };
251
- outputs: {
252
- space: string;
253
- };
254
- range: SourceRange;
255
- }[];
256
- fragments: GraphFragment[];
257
- space: SurfaceResolvedReference;
258
- };
259
226
 
260
227
  /** Exact author duration. Decimal source spelling is reduced before reaching this value. */
261
228
  type TemporalDuration = {
@@ -321,8 +288,7 @@ declare function createTemporalWindowProjection(input: {
321
288
  readonly id: string;
322
289
  readonly subjectId?: string;
323
290
  readonly element: StructuredElement;
324
- readonly semantic?: SurfaceResolvedReference;
325
- readonly space?: SurfaceResolvedReference;
291
+ readonly timeline: SurfaceResolvedReference;
326
292
  readonly resolveReference: ResolveReference;
327
293
  }): TemporalMarkupProjection;
328
294
  /** Decode a semantic reference, an authored at time, or a projected instant expression. */
@@ -330,8 +296,7 @@ declare function createTemporalInstantProjection(input: {
330
296
  readonly id: string;
331
297
  readonly subjectId?: string;
332
298
  readonly element: StructuredElement;
333
- readonly semantic?: SurfaceResolvedReference;
334
- readonly space?: SurfaceResolvedReference;
299
+ readonly timeline: SurfaceResolvedReference;
335
300
  readonly resolveReference: ResolveReference;
336
301
  readonly semanticAttribute?: string;
337
302
  readonly boundaryAttribute?: string;
@@ -339,5 +304,5 @@ declare function createTemporalInstantProjection(input: {
339
304
  readonly projectedAttribute?: string | false;
340
305
  }): TemporalMarkupProjection;
341
306
 
342
- export { createTemporalInstantProjection, createTemporalSpace, createTemporalWindowProjection, parseTemporalDuration, parseTemporalInstant, resolveTemporalContext, temporalContextAttributeVocabulary, temporalInstantAttributeNames, temporalInstantAttributeVocabulary, temporalWindowAttributeNames, temporalWindowAttributeVocabulary };
307
+ export { createTemporalInstantProjection, createTemporalWindowProjection, parseTemporalDuration, parseTemporalInstant, resolveTemporalContext, temporalContextAttributeVocabulary, temporalInstantAttributeNames, temporalInstantAttributeVocabulary, temporalWindowAttributeNames, temporalWindowAttributeVocabulary };
343
308
  export type { TemporalContext, TemporalMarkupProjection };
@@ -139,6 +139,22 @@ type NarrativeExcerpt = {
139
139
  readonly tokenEndExclusive: number;
140
140
  };
141
141
 
142
+ type ProgramClock = {
143
+ readonly frameRate: {
144
+ readonly numerator: number;
145
+ readonly denominator: number;
146
+ };
147
+ };
148
+ type ProgramSpace = {
149
+ /** Author-visible identity of this film time axis. */
150
+ readonly id: string;
151
+ readonly durationSec: number;
152
+ readonly frameRate: {
153
+ readonly numerator: number;
154
+ readonly denominator: number;
155
+ };
156
+ };
157
+
142
158
  type MediaRational = {
143
159
  readonly numerator: number;
144
160
  readonly denominator: number;
@@ -191,27 +207,14 @@ type SemanticTake = {
191
207
  }[];
192
208
  };
193
209
 
194
- type SemanticTrackItem = {
210
+ type TimelineItem = {
195
211
  readonly take: SemanticTake;
212
+ readonly startFrame: number;
196
213
  };
197
- /**
198
- * The continuous program skeleton. Every item is a real SemanticTake and the
199
- * global frame domain is exactly their prefix sum: no gap or empty item exists.
200
- */
201
- type SemanticTrack = {
202
- readonly id: string;
203
- readonly narrativeId: string;
204
- readonly items: readonly SemanticTrackItem[];
205
- };
206
-
207
- type ProgramSpace = {
208
- /** Author-visible identity of this film time axis. */
209
- readonly id: string;
210
- readonly durationSec: number;
211
- readonly frameRate: {
212
- readonly numerator: number;
213
- readonly denominator: number;
214
- };
214
+ /** One complete film time range, with prepared material placed where it belongs. */
215
+ type Timeline = ProgramSpace & {
216
+ readonly narrativeId?: string;
217
+ readonly items: readonly TimelineItem[];
215
218
  };
216
219
 
217
220
  type FramePoint = {
@@ -347,10 +350,10 @@ type TriggeredSchedule = {
347
350
  readonly exclusive: readonly FrameSpan[];
348
351
  };
349
352
 
350
- declare function locateSelection(semantic: SemanticTrack, selection: NarrativeSelectionRef): LocatedSelection;
351
- declare function locateMoment(semantic: SemanticTrack, moment: NarrativeMomentRef): LocatedMoment;
352
- declare function locateProgram(semantic: SemanticTrack): LocatedProgram;
353
- declare function locateSegment(semantic: SemanticTrack, segment: NarrativeExcerpt): LocatedSegment;
353
+ declare function locateSelection(semantic: Timeline, selection: NarrativeSelectionRef): LocatedSelection;
354
+ declare function locateMoment(semantic: Timeline, moment: NarrativeMomentRef): LocatedMoment;
355
+ declare function locateProgram(semantic: Timeline): LocatedProgram;
356
+ declare function locateSegment(semantic: Timeline, segment: NarrativeExcerpt): LocatedSegment;
354
357
 
355
358
  type TemporalConsumption = {
356
359
  readonly subjectId: string;
@@ -370,7 +373,7 @@ declare function projectTemporalInstant(projection: TemporalInstantExpression, e
370
373
  declare function projectSelectionInstant(input: {
371
374
  readonly itemId: string;
372
375
  readonly subjectId: string;
373
- readonly semantic: SemanticTrack;
376
+ readonly timeline: Timeline;
374
377
  readonly selection: NarrativeSelectionRef;
375
378
  readonly projection: TemporalInstantExpression;
376
379
  readonly authority: TemporalInstantSpec["authority"];
@@ -378,7 +381,7 @@ declare function projectSelectionInstant(input: {
378
381
  declare function projectMomentInstant(input: {
379
382
  readonly itemId: string;
380
383
  readonly subjectId: string;
381
- readonly semantic: SemanticTrack;
384
+ readonly timeline: Timeline;
382
385
  readonly moment: NarrativeMomentRef;
383
386
  readonly projection: TemporalInstantExpression;
384
387
  readonly authority: TemporalInstantSpec["authority"];
@@ -386,14 +389,14 @@ declare function projectMomentInstant(input: {
386
389
  declare function projectProgramInstant(input: {
387
390
  readonly itemId: string;
388
391
  readonly subjectId: string;
389
- readonly space: ProgramSpace;
392
+ readonly timeline: Timeline;
390
393
  readonly projection: TemporalInstantExpression;
391
394
  readonly authority: TemporalInstantSpec["authority"];
392
395
  }): ProjectedInstant;
393
396
  declare function projectSegmentInstant(input: {
394
397
  readonly itemId: string;
395
398
  readonly subjectId: string;
396
- readonly semantic: SemanticTrack;
399
+ readonly timeline: Timeline;
397
400
  readonly segment: NarrativeExcerpt;
398
401
  readonly projection: TemporalInstantExpression;
399
402
  readonly authority: TemporalInstantSpec["authority"];
@@ -410,6 +413,12 @@ declare function resolveTriggeredSchedule(input: {
410
413
  /** Quantize one non-negative authored duration into the canonical sample domain exactly once. */
411
414
  declare function temporalDurationInSamples(duration: TemporalDuration, space: ProgramSpace, sampleRate?: number): number;
412
415
 
416
+ type Rational = {
417
+ readonly numerator: bigint;
418
+ readonly denominator: bigint;
419
+ };
420
+ declare function durationInFrames(duration: TemporalDuration, space: ProgramClock): Rational;
421
+
413
422
  declare const temporalModuleRef: {
414
423
  readonly name: "@hypit/temporal";
415
424
  readonly version: "1";
@@ -493,5 +502,5 @@ declare const temporalInstantSchema: ValueSchema;
493
502
  declare const temporalWindowSpecSchema: ValueSchema;
494
503
  declare const temporalWindowSchema: ValueSchema;
495
504
 
496
- export { assertTemporalInstantFor, assertTemporalWindowFor, assertWindowRelation, composeTemporalWindow, locateMoment, locateProgram, locateSegment, locateSelection, projectMomentInstant, projectProgramInstant, projectSegmentInstant, projectSelectionInstant, projectTemporalInstant, resolveTriggeredSchedule, temporalDependency, temporalDurationInSamples, temporalInstantSchema, temporalInstantSpecSchema, temporalManifest, temporalModuleRef, temporalProducers, temporalTypes, temporalWindowSchema, temporalWindowSpecSchema };
505
+ export { assertTemporalInstantFor, assertTemporalWindowFor, assertWindowRelation, composeTemporalWindow, durationInFrames, locateMoment, locateProgram, locateSegment, locateSelection, projectMomentInstant, projectProgramInstant, projectSegmentInstant, projectSelectionInstant, projectTemporalInstant, resolveTriggeredSchedule, temporalDependency, temporalDurationInSamples, temporalInstantSchema, temporalInstantSpecSchema, temporalManifest, temporalModuleRef, temporalProducers, temporalTypes, temporalWindowSchema, temporalWindowSpecSchema };
497
506
  export type { FramePoint, FrameSpan, LocatedMoment, LocatedProgram, LocatedSegment, LocatedSelection, ProjectedInstant, ProjectedWindow, TemporalConsumption, TemporalDuration, TemporalInstant, TemporalInstantAuthority, TemporalInstantExpression, TemporalInstantSpec, TemporalSource, TemporalWindow, TemporalWindowSpec, TriggerPoint, TriggeredSchedule, WindowRelation };