@hypit/hypit 0.1.4 → 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 (449) hide show
  1. package/README.md +4 -2
  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 +77 -15
  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 +32 -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 +28 -17
  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 +11 -0
  63. package/packages/build-result/src/decode.ts +2 -0
  64. package/packages/build-result/src/execution-log.ts +17 -0
  65. package/packages/build-result/src/index.ts +1 -0
  66. package/packages/build-result/src/store.ts +14 -1
  67. package/packages/build-result/src/types.ts +3 -0
  68. package/packages/build-result-s3/src/repository.ts +4 -0
  69. package/packages/caption/README.md +61 -73
  70. package/packages/caption/package.json +3 -2
  71. package/packages/caption/src/activation.ts +2 -2
  72. package/packages/caption/src/component.ts +20 -5
  73. package/packages/caption/src/display.ts +3 -18
  74. package/packages/caption/src/fragment.ts +3 -7
  75. package/packages/caption/src/index.ts +6 -5
  76. package/packages/caption/src/manifest.ts +29 -46
  77. package/packages/caption/src/style.ts +24 -135
  78. package/packages/caption/src/surface.ts +12 -92
  79. package/packages/caption/src/temporalize.ts +18 -53
  80. package/packages/caption/src/types.ts +8 -35
  81. package/packages/caption/src/visibility.ts +23 -0
  82. package/packages/caption-fine/README.md +14 -9
  83. package/packages/caption-fine/package.json +4 -2
  84. package/packages/caption-fine/src/component.ts +3 -3
  85. package/packages/caption-fine/src/fragment.ts +7 -19
  86. package/packages/caption-fine/src/index.ts +2 -0
  87. package/packages/caption-fine/src/manifest.ts +26 -17
  88. package/packages/caption-fine/src/recipe.ts +7 -0
  89. package/packages/caption-fine/src/render.ts +14 -13
  90. package/packages/caption-fine/src/schedule.ts +39 -35
  91. package/packages/caption-fine/src/style.ts +10 -9
  92. package/packages/caption-fine/src/surface.ts +62 -35
  93. package/packages/caption-fine/src/types.ts +2 -0
  94. package/packages/caption-fine-studio/README.md +24 -2
  95. package/packages/caption-fine-studio/package.json +3 -1
  96. package/packages/caption-fine-studio/src/activation.ts +3 -3
  97. package/packages/caption-fine-studio/src/index.ts +54 -42
  98. package/packages/cli/README.md +57 -4
  99. package/packages/cli/package.json +1 -0
  100. package/packages/cli/src/arguments.ts +25 -6
  101. package/packages/cli/src/build-planning.ts +3 -2
  102. package/packages/cli/src/command.ts +6 -0
  103. package/packages/cli/src/commands/environment.ts +28 -18
  104. package/packages/cli/src/commands/execution.ts +81 -26
  105. package/packages/cli/src/commands/results.ts +7 -11
  106. package/packages/cli/src/index.ts +2 -2
  107. package/packages/cli/src/machine-view.ts +3 -2
  108. package/packages/cli/src/main.ts +34 -42
  109. package/packages/cli/src/observation.ts +7 -1
  110. package/packages/cli/src/output.ts +65 -23
  111. package/packages/cli/src/view.ts +64 -18
  112. package/packages/comment-sticker/README.md +3 -3
  113. package/packages/comment-sticker/package.json +1 -1
  114. package/packages/comment-sticker/src/component.ts +4 -4
  115. package/packages/comment-sticker/src/fragment.ts +5 -4
  116. package/packages/comment-sticker/src/manifest.ts +7 -6
  117. package/packages/comment-sticker/src/program.ts +9 -9
  118. package/packages/comment-sticker/src/surface.ts +6 -7
  119. package/packages/composition/README.md +21 -0
  120. package/packages/composition/src/audio-presentation.ts +44 -0
  121. package/packages/composition/src/index.ts +3 -0
  122. package/packages/composition/src/schema.ts +8 -3
  123. package/packages/composition/src/track.ts +15 -1
  124. package/packages/credential-store-env/README.md +1 -1
  125. package/packages/deck-track/README.md +3 -3
  126. package/packages/deck-track/package.json +1 -1
  127. package/packages/deck-track/src/component.ts +5 -5
  128. package/packages/deck-track/src/fragment.ts +6 -5
  129. package/packages/deck-track/src/lower.ts +12 -12
  130. package/packages/deck-track/src/manifest.ts +8 -7
  131. package/packages/deck-track/src/program.ts +13 -16
  132. package/packages/deck-track/src/surface.ts +9 -10
  133. package/packages/driver-node/src/driver.ts +41 -3
  134. package/packages/elevenlabs-speech/README.md +27 -0
  135. package/packages/{provider-xiaomi-mimo → elevenlabs-speech}/package.json +5 -8
  136. package/packages/elevenlabs-speech/src/activation.ts +26 -0
  137. package/packages/elevenlabs-speech/src/fragment.ts +11 -0
  138. package/packages/elevenlabs-speech/src/index.ts +111 -0
  139. package/packages/elevenlabs-speech/src/surface.ts +167 -0
  140. package/packages/endpoint-kit/README.md +24 -0
  141. package/packages/endpoint-kit/src/index.ts +7 -1
  142. package/packages/film/README.md +12 -7
  143. package/packages/film/package.json +1 -1
  144. package/packages/film/src/component.ts +4 -4
  145. package/packages/film/src/fragment.ts +6 -5
  146. package/packages/film/src/manifest.ts +11 -10
  147. package/packages/film/src/program.ts +5 -5
  148. package/packages/film/src/recipe.ts +2 -1
  149. package/packages/film/src/surface.ts +6 -6
  150. package/packages/film-studio/package.json +1 -1
  151. package/packages/film-studio/src/index.ts +2 -2
  152. package/packages/fishaudio-speech/README.md +33 -0
  153. package/packages/fishaudio-speech/package.json +21 -0
  154. package/packages/fishaudio-speech/src/activation.ts +32 -0
  155. package/packages/fishaudio-speech/src/fragment.ts +11 -0
  156. package/packages/fishaudio-speech/src/index.ts +156 -0
  157. package/packages/fishaudio-speech/src/surface.ts +192 -0
  158. package/packages/generation/README.md +11 -1
  159. package/packages/generation/src/mapping.ts +28 -30
  160. package/packages/gpt-image/README.md +1 -2
  161. package/packages/grok-imagine/README.md +1 -2
  162. package/packages/hyperframes/README.md +7 -3
  163. package/packages/hyperframes/src/browser-program.ts +11 -2
  164. package/packages/hyperframes/src/document.ts +15 -2
  165. package/packages/interview-emoji-reveal/README.md +4 -4
  166. package/packages/interview-emoji-reveal/package.json +1 -1
  167. package/packages/interview-emoji-reveal/src/component.ts +4 -4
  168. package/packages/interview-emoji-reveal/src/fragment.ts +6 -5
  169. package/packages/interview-emoji-reveal/src/manifest.ts +9 -8
  170. package/packages/interview-emoji-reveal/src/program.ts +14 -14
  171. package/packages/interview-emoji-reveal/src/surface.ts +8 -9
  172. package/packages/media-execution/README.md +7 -3
  173. package/packages/media-execution/src/audio-presentation.ts +23 -0
  174. package/packages/media-execution/src/execute.ts +2 -0
  175. package/packages/media-pipeline/README.md +7 -3
  176. package/packages/media-pipeline/src/audio-plan.ts +4 -1
  177. package/packages/media-pipeline/src/component.ts +16 -2
  178. package/packages/media-pipeline/src/manifest.ts +3 -1
  179. package/packages/media-pipeline/src/types.ts +2 -1
  180. package/packages/media-track/README.md +14 -47
  181. package/packages/media-track/package.json +1 -1
  182. package/packages/media-track/preview/preview.svml +5 -5
  183. package/packages/media-track/src/author.ts +12 -6
  184. package/packages/media-track/src/component.ts +10 -16
  185. package/packages/media-track/src/fragment.ts +8 -7
  186. package/packages/media-track/src/index.ts +3 -1
  187. package/packages/media-track/src/lower.ts +7 -7
  188. package/packages/media-track/src/manifest.ts +16 -38
  189. package/packages/media-track/src/program.ts +62 -67
  190. package/packages/media-track/src/sampling.ts +6 -6
  191. package/packages/media-track/src/sequence.ts +8 -8
  192. package/packages/media-track/src/surface.ts +25 -43
  193. package/packages/media-track-studio/README.md +9 -0
  194. package/packages/media-track-studio/src/index.ts +16 -11
  195. package/packages/mimo-speech/README.md +1 -1
  196. package/packages/minimax-h3/README.md +1 -1
  197. package/packages/nano-banana/README.md +1 -1
  198. package/packages/narrative/README.md +23 -1
  199. package/packages/narrative/src/identity.ts +11 -0
  200. package/packages/narrative/src/index.ts +3 -0
  201. package/packages/narrative/src/schema.ts +28 -27
  202. package/packages/narrative/src/selection.ts +52 -0
  203. package/packages/narrative/src/types.ts +2 -0
  204. package/packages/package-loader-node/README.md +30 -0
  205. package/packages/package-loader-node/package.json +5 -2
  206. package/packages/package-loader-node/src/distribution-resolution.ts +10 -3
  207. package/packages/package-loader-node/src/index.ts +1 -0
  208. package/packages/package-loader-node/src/loader.ts +12 -15
  209. package/packages/package-loader-node/src/location.ts +27 -1
  210. package/packages/package-loader-node/src/module-scope.ts +183 -0
  211. package/packages/package-loader-node/src/types.ts +4 -0
  212. package/packages/performance/README.md +83 -0
  213. package/packages/performance/package.json +30 -0
  214. package/packages/performance/src/activation.ts +11 -0
  215. package/packages/performance/src/component.ts +46 -0
  216. package/packages/performance/src/index.ts +6 -0
  217. package/packages/performance/src/manifest.ts +53 -0
  218. package/packages/{media-track/src/performance.ts → performance/src/media.ts} +9 -10
  219. package/packages/performance/src/program.ts +51 -0
  220. package/packages/performance/src/style.ts +35 -0
  221. package/packages/performance/src/surface.ts +99 -0
  222. package/packages/performance-studio/README.md +25 -0
  223. package/packages/performance-studio/package.json +21 -0
  224. package/packages/performance-studio/src/activation.ts +6 -0
  225. package/packages/performance-studio/src/index.ts +84 -0
  226. package/packages/program-space/README.md +9 -18
  227. package/packages/program-space/src/activation.ts +1 -5
  228. package/packages/program-space/src/index.ts +2 -11
  229. package/packages/program-space/src/surface.ts +1 -20
  230. package/packages/project-context-node/README.md +20 -0
  231. package/packages/project-context-node/package.json +10 -0
  232. package/packages/project-context-node/src/index.ts +3 -0
  233. package/packages/{cli → project-context-node}/src/runtime-selection.ts +7 -2
  234. package/packages/provider-hyperframes-local/README.md +43 -15
  235. package/packages/provider-hyperframes-local/src/activation.ts +4 -3
  236. package/packages/provider-hyperframes-local/src/capture-process.ts +26 -4
  237. package/packages/provider-hyperframes-local/src/capture.ts +96 -26
  238. package/packages/provider-hyperframes-local/src/concurrency.ts +86 -0
  239. package/packages/provider-hyperframes-local/src/opaque-capture.ts +92 -0
  240. package/packages/provider-hyperframes-local/src/options.ts +2 -0
  241. package/packages/provider-hyperframes-local/src/program.ts +6 -3
  242. package/packages/provider-hyperframes-local/src/progress.ts +53 -0
  243. package/packages/provider-hyperframes-local/src/provider.ts +18 -5
  244. package/packages/provider-hyperframes-local/src/render.ts +48 -7
  245. package/packages/provider-hypihub/README.md +48 -17
  246. package/packages/provider-hypihub/package.json +2 -0
  247. package/packages/provider-hypihub/src/mapping.ts +31 -7
  248. package/packages/provider-hypihub/src/oauth.ts +6 -0
  249. package/packages/provider-hypihub/src/provider.ts +25 -13
  250. package/packages/provider-hypihub/src/routes.ts +1 -2
  251. package/packages/provider-hypihub/src/upload.ts +2 -0
  252. package/packages/provider-media-local/README.md +3 -4
  253. package/packages/provider-whisperx-local/src/program.ts +1 -0
  254. package/packages/provider-whisperx-local/src/provider.ts +3 -0
  255. package/packages/ranking/README.md +8 -6
  256. package/packages/ranking/package.json +1 -1
  257. package/packages/ranking/src/component.ts +6 -6
  258. package/packages/ranking/src/fragment.ts +11 -7
  259. package/packages/ranking/src/manifest.ts +21 -14
  260. package/packages/ranking/src/render.ts +22 -26
  261. package/packages/ranking/src/schedule.ts +16 -19
  262. package/packages/ranking/src/surface.ts +12 -13
  263. package/packages/ranking-studio/README.md +18 -0
  264. package/packages/ranking-studio/src/index.ts +61 -9
  265. package/packages/render-hyperframes/README.md +7 -7
  266. package/packages/render-hyperframes/package.json +1 -1
  267. package/packages/render-hyperframes/src/component.ts +11 -1
  268. package/packages/render-hyperframes/src/fragment.ts +7 -4
  269. package/packages/render-hyperframes/src/manifest.ts +4 -4
  270. package/packages/render-hyperframes/src/surface.ts +6 -6
  271. package/packages/runtime/README.md +8 -1
  272. package/packages/runtime/src/execution.ts +15 -4
  273. package/packages/runtime/src/index.ts +2 -1
  274. package/packages/runtime/src/log.ts +51 -0
  275. package/packages/runtime/src/types.ts +5 -8
  276. package/packages/runtime-host-node/README.md +30 -0
  277. package/packages/runtime-host-node/package.json +1 -0
  278. package/packages/runtime-host-node/src/index.ts +24 -9
  279. package/packages/runtime-host-node/src/packages.ts +47 -50
  280. package/packages/runtime-kit/README.md +5 -0
  281. package/packages/runtime-kit/src/index.ts +3 -1
  282. package/packages/runtime-local/README.md +92 -4
  283. package/packages/runtime-local/src/config.ts +202 -56
  284. package/packages/runtime-local/src/control.ts +9 -1
  285. package/packages/runtime-local/src/executor.ts +66 -0
  286. package/packages/runtime-local/src/host.ts +37 -17
  287. package/packages/runtime-local/src/log.ts +48 -0
  288. package/packages/runtime-local/src/programs.ts +2 -1
  289. package/packages/runtime-local/src/result-writer.ts +2 -0
  290. package/packages/runtime-local/src/runtime.ts +8 -6
  291. package/packages/runtime-local/src/supervisor.ts +142 -0
  292. package/packages/runtime-local/src/types.ts +9 -2
  293. package/packages/runtime-local/src/worker-process.ts +7 -24
  294. package/packages/runtime-local/src/worker.ts +55 -83
  295. package/packages/screen-overlay/README.md +3 -3
  296. package/packages/screen-overlay/package.json +1 -1
  297. package/packages/screen-overlay/src/component.ts +3 -3
  298. package/packages/screen-overlay/src/fragment.ts +5 -4
  299. package/packages/screen-overlay/src/manifest.ts +7 -6
  300. package/packages/screen-overlay/src/program.ts +9 -9
  301. package/packages/screen-overlay/src/surface.ts +6 -7
  302. package/packages/script/README.md +15 -2
  303. package/packages/script/src/manifest.ts +2 -2
  304. package/packages/script/src/narrative.ts +1 -0
  305. package/packages/script/src/surface.ts +4 -3
  306. package/packages/script/src/types.ts +1 -1
  307. package/packages/script-studio/package.json +9 -3
  308. package/packages/script-studio/src/index.ts +2 -0
  309. package/packages/script-studio/src/projection.ts +105 -0
  310. package/packages/seedance/README.md +30 -1
  311. package/packages/seedance/src/index.ts +18 -7
  312. package/packages/seedance/src/surface.ts +17 -4
  313. package/packages/seedance-kits/README.md +7 -1
  314. package/packages/seedream/README.md +1 -1
  315. package/packages/sound/README.md +81 -0
  316. package/packages/sound/package.json +25 -0
  317. package/packages/sound/src/activation.ts +11 -0
  318. package/packages/sound/src/component.ts +28 -0
  319. package/packages/sound/src/index.ts +5 -0
  320. package/packages/sound/src/manifest.ts +47 -0
  321. package/packages/sound/src/program.ts +84 -0
  322. package/packages/sound/src/style.ts +34 -0
  323. package/packages/sound/src/surface.ts +90 -0
  324. package/packages/sound-studio/README.md +22 -0
  325. package/packages/sound-studio/package.json +20 -0
  326. package/packages/sound-studio/src/activation.ts +6 -0
  327. package/packages/sound-studio/src/index.ts +74 -0
  328. package/packages/speech/README.md +2 -2
  329. package/packages/speech-alignment/src/local.ts +8 -0
  330. package/packages/speech-alignment/src/locate.ts +1 -1
  331. package/packages/store-sqlite/README.md +7 -0
  332. package/packages/store-sqlite/src/store.ts +84 -83
  333. package/packages/studio/INSPECTOR.md +15 -2
  334. package/packages/studio/README.md +88 -14
  335. package/packages/studio/package.json +8 -7
  336. package/packages/studio/src/companion-assembly.ts +1 -0
  337. package/packages/studio/src/domain.ts +1 -1
  338. package/packages/studio/src/fallback-companions.ts +3 -3
  339. package/packages/studio/src/feedback-server.ts +51 -0
  340. package/packages/studio/src/feedback-store.ts +66 -0
  341. package/packages/studio/src/feedback.ts +60 -0
  342. package/packages/studio/src/parameter-values.ts +43 -1
  343. package/packages/studio/src/parameters.ts +114 -24
  344. package/packages/studio/src/preview/render.ts +5 -1
  345. package/packages/studio/src/preview/runtime-shim.ts +49 -3
  346. package/packages/studio/src/programme.ts +14 -30
  347. package/packages/studio/src/server.ts +10 -6
  348. package/packages/studio/src/shared.ts +4 -2
  349. package/packages/studio/src/snapshot.ts +21 -132
  350. package/packages/studio/src/studio-preflight.ts +3 -3
  351. package/packages/studio/src/studio-registry.ts +50 -6
  352. package/packages/studio/src/style.css +209 -48
  353. package/packages/studio/src/ui/comments.ts +233 -0
  354. package/packages/studio/src/ui/icons.ts +5 -0
  355. package/packages/studio/src/ui/main.ts +145 -86
  356. package/packages/studio/src/ui/overlay.ts +12 -8
  357. package/packages/studio/src/ui/scrub-preview.ts +108 -0
  358. package/packages/studio/src/ui/stage.ts +67 -4
  359. package/packages/studio/src/ui/timeline.ts +177 -108
  360. package/packages/studio/start.ts +4 -2
  361. package/packages/studio-adapter/README.md +130 -11
  362. package/packages/studio-adapter/src/index.ts +100 -13
  363. package/packages/temporal/README.md +6 -6
  364. package/packages/temporal/package.json +1 -1
  365. package/packages/temporal/src/component.ts +5 -6
  366. package/packages/temporal/src/index.ts +8 -6
  367. package/packages/temporal/src/location.ts +11 -11
  368. package/packages/temporal/src/projection.ts +19 -19
  369. package/packages/temporal/src/rational.ts +4 -4
  370. package/packages/temporal-markup/EDITING.md +2 -2
  371. package/packages/temporal-markup/README.md +27 -11
  372. package/packages/temporal-markup/package.json +1 -1
  373. package/packages/temporal-markup/src/index.ts +20 -25
  374. package/packages/temporal-markup/src/space.ts +10 -41
  375. package/packages/timeline/README.md +31 -0
  376. package/packages/{semantic-track → timeline}/package.json +1 -1
  377. package/packages/timeline/src/activation.ts +8 -0
  378. package/packages/timeline/src/component.ts +24 -0
  379. package/packages/timeline/src/identity.ts +60 -0
  380. package/packages/timeline/src/index.ts +6 -0
  381. package/packages/{semantic-track → timeline}/src/location.ts +20 -20
  382. package/packages/timeline/src/manifest.ts +39 -0
  383. package/packages/{semantic-track → timeline}/src/projection.ts +14 -14
  384. package/packages/timeline/src/types.ts +24 -0
  385. package/packages/timeline-author/README.md +68 -0
  386. package/packages/{speech-track → timeline-author}/package.json +6 -4
  387. package/packages/timeline-author/src/activation.ts +22 -0
  388. package/packages/{speech-track → timeline-author}/src/component.ts +15 -13
  389. package/packages/{speech-track → timeline-author}/src/fragment.ts +14 -23
  390. package/packages/timeline-author/src/index.ts +7 -0
  391. package/packages/timeline-author/src/manifest.ts +78 -0
  392. package/packages/timeline-author/src/program.ts +107 -0
  393. package/packages/timeline-author/src/surface.ts +46 -0
  394. package/packages/timeline-author/src/types.ts +6 -0
  395. package/packages/typography-track/README.md +4 -4
  396. package/packages/typography-track/package.json +1 -1
  397. package/packages/typography-track/src/component.ts +4 -4
  398. package/packages/typography-track/src/fragment.ts +4 -3
  399. package/packages/typography-track/src/manifest.ts +11 -9
  400. package/packages/typography-track/src/program.ts +15 -15
  401. package/packages/typography-track/src/surface.ts +17 -18
  402. package/packages/video-cli/README.md +4 -1
  403. package/packages/video-cli/package.json +2 -1
  404. package/packages/video-cli/src/creation.ts +14 -4
  405. package/packages/video-cli/src/index.ts +1 -1
  406. package/packages/video-cli/src/studio-distribution.ts +2 -1
  407. package/packages/volcengine-matting/README.md +3 -3
  408. package/packages/whisperx/README.md +1 -1
  409. package/services/whisperx/README.md +14 -0
  410. package/services/whisperx/pyproject.toml +2 -0
  411. package/services/whisperx/uv.lock +20 -20
  412. package/packages/provider-hyperframes-aws-lambda/README.md +0 -30
  413. package/packages/provider-hyperframes-aws-lambda/package.json +0 -30
  414. package/packages/provider-hyperframes-aws-lambda/src/activation.ts +0 -97
  415. package/packages/provider-hyperframes-aws-lambda/src/client.ts +0 -114
  416. package/packages/provider-hyperframes-aws-lambda/src/index.ts +0 -21
  417. package/packages/provider-hyperframes-aws-lambda/src/provider.ts +0 -522
  418. package/packages/provider-kie/README.md +0 -134
  419. package/packages/provider-kie/package.json +0 -43
  420. package/packages/provider-kie/src/activation.ts +0 -71
  421. package/packages/provider-kie/src/index.ts +0 -10
  422. package/packages/provider-kie/src/mapping.ts +0 -182
  423. package/packages/provider-kie/src/provider.ts +0 -657
  424. package/packages/provider-kie/src/routes.ts +0 -150
  425. package/packages/provider-xiaomi-mimo/README.md +0 -32
  426. package/packages/provider-xiaomi-mimo/src/activation.ts +0 -57
  427. package/packages/provider-xiaomi-mimo/src/index.ts +0 -5
  428. package/packages/provider-xiaomi-mimo/src/provider.ts +0 -214
  429. package/packages/runtime/src/environment.ts +0 -6
  430. package/packages/semantic-track/README.md +0 -21
  431. package/packages/semantic-track/src/activation.ts +0 -8
  432. package/packages/semantic-track/src/component.ts +0 -24
  433. package/packages/semantic-track/src/identity.ts +0 -58
  434. package/packages/semantic-track/src/index.ts +0 -6
  435. package/packages/semantic-track/src/manifest.ts +0 -38
  436. package/packages/semantic-track/src/types.ts +0 -26
  437. package/packages/speech-track/README.md +0 -51
  438. package/packages/speech-track/src/activation.ts +0 -19
  439. package/packages/speech-track/src/index.ts +0 -7
  440. package/packages/speech-track/src/manifest.ts +0 -73
  441. package/packages/speech-track/src/program.ts +0 -64
  442. package/packages/speech-track/src/surface.ts +0 -35
  443. package/packages/speech-track/src/types.ts +0 -6
  444. package/packages/speech-track-studio/README.md +0 -3
  445. package/packages/speech-track-studio/package.json +0 -14
  446. package/packages/speech-track-studio/src/activation.ts +0 -7
  447. package/packages/speech-track-studio/src/index.ts +0 -40
  448. /package/packages/{cli → project-context-node}/src/project-context.ts +0 -0
  449. /package/packages/{speech-track → timeline-author}/preview/Track.png +0 -0
@@ -60,7 +60,7 @@ export type AuthorCheckOutput = {
60
60
  readonly assets: number;
61
61
  readonly modules: number;
62
62
  readonly outputCount: number;
63
- readonly outputs: readonly {
63
+ readonly outputs?: readonly {
64
64
  readonly name: string;
65
65
  readonly type: string;
66
66
  }[];
@@ -82,6 +82,7 @@ export type RunCheckOutput = {
82
82
  readonly targets: readonly string[];
83
83
  readonly candidates: number;
84
84
  readonly satisfactions: number;
85
+ readonly historicalOutputCount?: number;
85
86
  readonly steps?: number;
86
87
  readonly unresolvedHistoricalOutputs?: readonly {
87
88
  readonly candidate: string;
@@ -94,7 +95,7 @@ export type RunCheckOutput = {
94
95
  export type PlanPreflight = {
95
96
  readonly ok: boolean;
96
97
  readonly capabilityCount: number;
97
- readonly capabilities: readonly string[];
98
+ readonly capabilities?: readonly string[];
98
99
  readonly omittedCapabilities?: number;
99
100
  readonly diagnosticCount: number;
100
101
  readonly diagnostics: readonly CliDiagnostic[];
@@ -119,7 +120,7 @@ export type PlanOutput = {
119
120
  readonly run: string;
120
121
  readonly targetCount: number;
121
122
  readonly targets: readonly string[];
122
- readonly steps: number;
123
+ readonly steps?: number;
123
124
  readonly requestCount: number;
124
125
  readonly requestIssueCount: number;
125
126
  /** Present when a Runtime Profile was selected. */
@@ -128,19 +129,45 @@ export type PlanOutput = {
128
129
  readonly unresolvedRequestCount?: number;
129
130
  readonly unsupportedRequestCount?: number;
130
131
  readonly choiceCount: number;
131
- readonly choices: readonly { readonly output: string; readonly candidate: string }[];
132
+ readonly choices?: readonly { readonly output: string; readonly candidate: string }[];
132
133
  readonly omittedChoices?: number;
133
134
  readonly unreached?: readonly { readonly output: string; readonly operation: string }[];
134
135
  readonly omittedUnreached?: number;
135
136
  /** Present only when a Runtime Profile was selected; the Endpoint and price page behind each capability. */
136
137
  readonly providers?: readonly PlanProvider[];
137
- readonly omittedProviders?: number;
138
138
  /** Every external request the Build will make, in step order, with its parameters when known. */
139
139
  readonly needs?: readonly PlanNeed[];
140
- readonly omittedNeeds?: number;
141
140
  readonly preflight?: PlanPreflight;
142
141
  };
143
142
 
143
+ /** Output scope is independent of encoding. Limits apply to expanded detail, not demanded work. */
144
+ export function createPlanOutput(plan: PlanOutput, options: { readonly verbose: boolean; readonly limit: number }): PlanOutput {
145
+ const { steps, choices = [], unreached = [], preflight, ...summary } = plan;
146
+ const limit = options.limit;
147
+ return {
148
+ ...summary,
149
+ ...(options.verbose ? {
150
+ steps,
151
+ choices: choices.slice(0, limit),
152
+ ...(choices.length <= limit ? {} : { omittedChoices: choices.length - limit }),
153
+ unreached: unreached.slice(0, limit),
154
+ ...(unreached.length <= limit ? {} : { omittedUnreached: unreached.length - limit }),
155
+ } : {}),
156
+ ...(preflight === undefined ? {} : { preflight: {
157
+ ok: preflight.ok,
158
+ capabilityCount: preflight.capabilityCount,
159
+ diagnosticCount: preflight.diagnosticCount,
160
+ diagnostics: preflight.diagnostics,
161
+ ...(options.verbose ? {
162
+ capabilities: preflight.capabilities?.slice(0, limit) ?? [],
163
+ ...((preflight.capabilities?.length ?? 0) <= limit ? {} : {
164
+ omittedCapabilities: preflight.capabilities!.length - limit,
165
+ }),
166
+ } : {}),
167
+ } }),
168
+ };
169
+ }
170
+
144
171
  export type PricingEntry = PlanProvider & {
145
172
  readonly pricingDocuments?: readonly PricingDocument[];
146
173
  readonly pricingError?: string;
@@ -310,7 +337,7 @@ function renderAuthorCheck(
310
337
  verbose: boolean,
311
338
  ): string {
312
339
  const lines = [heading("success", "Source is valid", io, colors), ""];
313
- const readable = view.machine.outputs;
340
+ const readable = view.machine.outputs ?? [];
314
341
  lines.push(...facts([
315
342
  ["Source", shortPath(view.machine.source)],
316
343
  ["Outputs", String(view.machine.outputCount)],
@@ -350,8 +377,7 @@ function renderRunCheck(
350
377
  verbose: boolean,
351
378
  ): string {
352
379
  const lines = [heading("success", "Run source is valid", io, colors), ""];
353
- const reuse = (view.machine.unresolvedHistoricalOutputs?.length ?? 0)
354
- + (view.machine.omittedHistoricalOutputs ?? 0);
380
+ const reuse = view.machine.historicalOutputCount ?? 0;
355
381
  const targetSummary = view.machine.targets.length === 0
356
382
  ? String(view.machine.targetCount)
357
383
  : view.machine.targets.join(", ")
@@ -433,7 +459,7 @@ function needSummaryText(needs: readonly PlanNeed[]): string {
433
459
  const pendingCount = first.pending.length;
434
460
  if (pendingCount > 0) parts.push(`${pendingCount === 1 ? "input" : `${pendingCount} inputs`} produced during Build`);
435
461
  if (first.issue !== undefined) parts.push(`could not inspect: ${first.issue}`);
436
- return parts.length === 0 ? "no parameters" : parts.join(" · ");
462
+ return parts.length === 0 ? "request summary unavailable" : parts.join(" · ");
437
463
  }
438
464
 
439
465
  /** One line per distinct request shape, counted; the step names when only one request has that shape. */
@@ -489,6 +515,7 @@ function renderPlan(
489
515
  ["Run", shortPath(view.machine.run)],
490
516
  ["Targets", targetSummary],
491
517
  ["Requests", String(view.machine.requestCount)],
518
+ ...(view.machine.choiceCount === 0 ? [] : [["Run choices", String(view.machine.choiceCount)] as const]),
492
519
  ...(view.machine.requestIssueCount === 0 ? [] : [["Request issues", String(view.machine.requestIssueCount)] as const]),
493
520
  ...((view.machine.providerRequestCount ?? 0) === 0 ? [] : [["Provider requests", String(view.machine.providerRequestCount)] as const]),
494
521
  ...((view.machine.localRequestCount ?? 0) === 0 ? [] : [["Local requests", String(view.machine.localRequestCount)] as const]),
@@ -497,7 +524,7 @@ function renderPlan(
497
524
  ...(view.machine.preflight === undefined ? [] : [[
498
525
  "Preflight", view.machine.preflight.ok ? "ready" : "needs attention",
499
526
  ] as const]),
500
- ...(verbose ? [["Steps", String(view.machine.steps)] as const] : []),
527
+ ...(!verbose || view.machine.steps === undefined ? [] : [["Steps", String(view.machine.steps)] as const]),
501
528
  ], colors));
502
529
  if (view.machine.providers !== undefined) {
503
530
  if (view.machine.providers.length > 0) lines.push("", colors.strong("Providers and price pages"));
@@ -531,9 +558,6 @@ function renderPlan(
531
558
  const requests = new Set(group.map((provider) => provider.request));
532
559
  lines.push(...groupedNeedLines((view.machine.needs ?? []).filter((need) => requests.has(need.request)), colors, verbose));
533
560
  }
534
- if ((view.machine.omittedProviders ?? 0) > 0) {
535
- lines.push(` ${colors.dim(`${view.machine.omittedProviders} more requests · use --limit <count>`)}`);
536
- }
537
561
  } else if (view.machine.requestCount > 0) {
538
562
  const byCapability = new Map<string, PlanNeed[]>();
539
563
  for (const need of view.machine.needs ?? []) {
@@ -559,9 +583,9 @@ function renderPlan(
559
583
  }
560
584
  if (view.machine.preflight !== undefined
561
585
  && (view.machine.preflight.diagnostics.length > 0
562
- || (verbose && view.machine.preflight.capabilities.length > 0))) {
586
+ || (verbose && (view.machine.preflight.capabilities?.length ?? 0) > 0))) {
563
587
  lines.push("", colors.strong("Runtime preflight"));
564
- if (verbose) for (const capability of view.machine.preflight.capabilities) lines.push(` ${colors.accent(capability)}`);
588
+ if (verbose) for (const capability of view.machine.preflight.capabilities ?? []) lines.push(` ${colors.accent(capability)}`);
565
589
  if (verbose && (view.machine.preflight.omittedCapabilities ?? 0) > 0) {
566
590
  lines.push(` ${colors.dim(`${view.machine.preflight.omittedCapabilities} more capabilities · use --limit <count>`)}`);
567
591
  }
@@ -578,9 +602,9 @@ function renderPlan(
578
602
  lines.push(` ${colors.dim(`${capabilityCount} demanded Endpoint ${capabilityCount === 1 ? "capability" : "capabilities"} checked.`)}`);
579
603
  }
580
604
  }
581
- if (view.machine.choices.length > 0) {
605
+ if (verbose && (view.machine.choices?.length ?? 0) > 0) {
582
606
  lines.push("", colors.strong("Run choices"));
583
- for (const selection of view.machine.choices) {
607
+ for (const selection of view.machine.choices ?? []) {
584
608
  const status = colors.success(glyph(io, "✓", "+"));
585
609
  lines.push(` ${status} ${colors.accent(selection.output)} ← ${selection.candidate}`);
586
610
  }
@@ -774,23 +798,27 @@ function commandHelp(topic: string, colors: Palette): readonly string[] | undefi
774
798
  colors.dim("Validate one self-described Author Source or Run Source without executing it."),
775
799
  "",
776
800
  " hypit check <source> [--workspace <workspace>] [--asset-root <directory>]",
801
+ " --verbose lists exported names/types and historical references.",
777
802
  ],
778
803
  doctor: [
779
804
  colors.accent(colors.strong("hypit doctor")),
780
805
  colors.dim("Diagnose project Results and, when selected or supplied, one Runtime Profile."),
781
806
  "",
782
- " hypit doctor [--runtime <profile>] [--workspace <project>]",
807
+ " hypit doctor [--runtime <profile>] [--workspace <project>] [--endpoint <instance>]",
783
808
  " A positional Profile is also accepted in place of --runtime.",
809
+ " Repeat --endpoint <instance> to limit the operation to chosen services; omission covers the Profile.",
784
810
  " Without a Runtime Profile, checks only the project's selected Result Store.",
785
811
  ],
786
812
  plan: [
787
813
  colors.accent(colors.strong("hypit plan")),
788
- colors.dim("Freeze the demanded subgraph and expose explicit Run choices and every external Need."),
814
+ colors.dim("Show targets, demanded requests and their readiness without executing them."),
789
815
  "",
790
816
  " hypit plan <run-source> [--runtime <profile>] [--workspace <workspace>] [--asset-root <directory>]",
791
817
  "",
792
818
  "With --runtime, plan also preflights only the demanded deployment slice and names the Provider",
793
819
  "and price page behind each external request.",
820
+ "--verbose expands Run choices and unreached declarations. --limit bounds that detail,",
821
+ "while all demanded requests and diagnostics remain visible in both text and JSON.",
794
822
  "Planning never starts external work.",
795
823
  ],
796
824
  pricing: [
@@ -823,13 +851,14 @@ function commandHelp(topic: string, colors: Palette): readonly string[] | undefi
823
851
  " hypit runtime init [<profile>] [--workspace <project>] create and select a starter Profile",
824
852
  " hypit runtime use <profile> [--workspace <project>] select the project Profile",
825
853
  " hypit runtime unset [--workspace <project>] remove only that selection",
826
- " hypit runtime up [<profile>] prepare local packages and programs, then start the Worker",
854
+ " hypit runtime up [<profile>] [--endpoint <instance>] prepare helpers, then start the Worker",
827
855
  " hypit runtime status [<profile>] inspect the local Worker, active Builds and programs",
828
856
  " hypit runtime logs [<profile>] [--lines <count>]",
829
857
  " hypit runtime down [<profile>] stop the Worker; external programs keep running",
830
858
  "",
831
859
  "The project is resolved first. Selection is read only from that project's .hypit/runtime.",
832
860
  "All runtime actions accept --workspace <project>; operational actions also accept --runtime <profile>.",
861
+ "For up, repeat --endpoint <instance> to prepare only chosen services; omission prepares the Profile.",
833
862
  "No Profile filename discovery or parent-project inheritance is performed.",
834
863
  "Remote Endpoints such as HypiHub are not started by this command; use doctor to test them.",
835
864
  ],
@@ -841,7 +870,8 @@ function commandHelp(topic: string, colors: Palette): readonly string[] | undefi
841
870
  " hypit packages install <package@exact-version>",
842
871
  "",
843
872
  "The package is reused by every project and later session on this machine.",
844
- "npm owns the ordinary package.json; Hypit creates no package lock or receipt.",
873
+ "Each exact version has its own installation; npm owns package.json and package-lock.json.",
874
+ "Preparation reports its install.log for live output and later diagnosis.",
845
875
  ],
846
876
  programs: [
847
877
  colors.accent(colors.strong("hypit programs")),
@@ -851,6 +881,7 @@ function commandHelp(topic: string, colors: Palette): readonly string[] | undefi
851
881
  " hypit programs status [--runtime <profile>] [--workspace <project>]",
852
882
  " hypit programs down [--runtime <profile>] [--workspace <project>]",
853
883
  " A positional Profile is also accepted in place of --runtime.",
884
+ " Repeat --endpoint <instance> to limit the operation to chosen services; omission covers the Profile.",
854
885
  ],
855
886
  activity: [
856
887
  colors.accent(colors.strong("hypit activity")),
@@ -874,6 +905,14 @@ function commandHelp(topic: string, colors: Palette): readonly string[] | undefi
874
905
  "",
875
906
  " hypit builds [--workspace <project>] [--limit <count>] [--before <build-id>]",
876
907
  ],
908
+ logs: [
909
+ colors.accent(colors.strong("hypit logs")),
910
+ colors.dim("Read Build execution evidence; finished logs need only the project Result Repository."),
911
+ "",
912
+ " hypit logs <build-id> [--workspace <project>] [--runtime <profile>] [--lines <count>]",
913
+ " --lines <count> show the last N records (default 50)",
914
+ " runtime logs reads the Worker process log instead",
915
+ ],
877
916
  status: [
878
917
  colors.accent(colors.strong("hypit status")),
879
918
  colors.dim("Show one Build now, or keep watching it without owning execution."),
@@ -887,6 +926,8 @@ function commandHelp(topic: string, colors: Palette): readonly string[] | undefi
887
926
  colors.dim("Inspect one project-owned Build Result and its public Outputs."),
888
927
  "",
889
928
  " hypit inspect <build-id> [--output <name>] [--limit <count>] [--workspace <project>]",
929
+ " Defaults to targets and highlighted Outputs. --verbose expands other available Outputs.",
930
+ " --output selects one exact name; --limit bounds expanded lists.",
890
931
  ],
891
932
  get: [
892
933
  colors.accent(colors.strong("hypit get")),
@@ -958,6 +999,7 @@ export function writeCliHelp(io: CliIo, topic?: string): void {
958
999
  colors.strong("Results"),
959
1000
  row("builds", "list Results newest first"),
960
1001
  row("history <output>", "find one named Output across Builds"),
1002
+ row("logs <build-id> [--lines <count>]", "read saved Build execution phases and diagnostics"),
961
1003
  row("status <build-id> [--watch]", "show current work and Result facts"),
962
1004
  row("inspect <build-id>", "inspect one Result"),
963
1005
  row("get <build-id> --output <name> --to <path>", "export one Build Output"),
@@ -969,7 +1011,7 @@ export function writeCliHelp(io: CliIo, topic?: string): void {
969
1011
  row("runtime up|status|logs|down", "prepare and manage the local Build Runtime"),
970
1012
  row("programs up|status|down", "manage declared external programs only"),
971
1013
  row("packages install|status", "manage pinned upstream packages in the machine home"),
972
- row("activity [--watch]", "inspect active Builds and shared capacity"),
1014
+ row("activity [--watch]", "show active Builds and their current phases"),
973
1015
  row("cancel <build-id>", "withdraw one active Build"),
974
1016
  row("paths", "show physical state locations"),
975
1017
  row("auth status|login|logout", "manage Endpoint credentials"),
@@ -46,15 +46,27 @@ export type CliBuildResultView = {
46
46
  readonly targets: readonly string[];
47
47
  readonly omittedTargets?: number;
48
48
  readonly outputs: readonly CliOutputView[];
49
+ readonly outputCount: number;
50
+ /** Available Outputs outside the selected inspection scope. */
51
+ readonly otherOutputCount?: number;
49
52
  readonly omittedOutputs?: number;
50
53
  readonly failure?: string;
51
- readonly operations?: BuildResultManifest["operations"];
54
+ readonly operations?: readonly Pick<NonNullable<BuildResultManifest["operations"]>[number],
55
+ "endpoint" | "status" | "receipt" | "failure">[];
56
+ readonly executionLog?: BuildResultManifest["executionLog"];
52
57
  readonly omittedOperations?: number;
53
58
  };
54
59
 
55
60
  export type CliBuildStatusView = {
56
61
  readonly id: string;
57
62
  readonly title?: string;
63
+ readonly targets?: readonly string[];
64
+ readonly failure?: string;
65
+ readonly commands?: readonly {
66
+ readonly id?: string;
67
+ readonly endpoint: string;
68
+ readonly progress: NonNullable<BuildView["commands"]>[number]["progress"];
69
+ }[];
58
70
  readonly work: {
59
71
  readonly state: "unknown" | "submitting" | "working" | "done";
60
72
  readonly outcome?: "complete" | "failed" | "cancelled";
@@ -68,6 +80,7 @@ export type CliBuildStatusView = {
68
80
  };
69
81
  readonly attention?: { readonly message: string; readonly action?: string };
70
82
  readonly operations?: readonly {
83
+ readonly count?: number;
71
84
  readonly id?: string;
72
85
  readonly receipt?: { readonly id: string; readonly url?: string };
73
86
  readonly endpoint: string;
@@ -127,8 +140,8 @@ function orderedOutputNames(manifest: BuildResultManifest): readonly string[] {
127
140
  const highlighted = new Set(manifest.highlightedOutputs ?? []);
128
141
  const targets = new Set(manifest.targets);
129
142
  return names.sort((left, right) => {
130
- const leftRank = highlighted.has(left) ? 0 : targets.has(left) ? 1 : 2;
131
- const rightRank = highlighted.has(right) ? 0 : targets.has(right) ? 1 : 2;
143
+ const leftRank = targets.has(left) ? 0 : highlighted.has(left) ? 1 : 2;
144
+ const rightRank = targets.has(right) ? 0 : highlighted.has(right) ? 1 : 2;
132
145
  return leftRank - rightRank || left.localeCompare(right);
133
146
  });
134
147
  }
@@ -146,7 +159,6 @@ export function buildStatusView(options: {
146
159
  readonly result?: BuildResultManifest;
147
160
  readonly resultReadError?: string;
148
161
  readonly verbose?: boolean;
149
- readonly operationLimit?: number;
150
162
  }): CliBuildStatusView {
151
163
  const resultState = options.resultReadError !== undefined
152
164
  ? "unavailable" as const
@@ -154,6 +166,15 @@ export function buildStatusView(options: {
154
166
  const issue = options.runtime?.issue;
155
167
  return {
156
168
  id: options.id,
169
+ ...((options.runtime?.targets ?? options.result?.targets) === undefined ? {} : {
170
+ targets: options.runtime?.targets ?? options.result!.targets,
171
+ }),
172
+ ...((options.result?.failure ?? options.runtime?.stop?.reason) === undefined ? {} : {
173
+ failure: options.result?.failure ?? options.runtime!.stop!.reason,
174
+ }),
175
+ ...(options.runtime?.commands?.length ? { commands: options.runtime.commands.map((command) => ({
176
+ ...(options.verbose ? { id: command.id } : {}), endpoint: command.endpoint, progress: command.progress,
177
+ })) } : {}),
157
178
  ...(options.result?.title === undefined ? {} : { title: options.result.title }),
158
179
  work: {
159
180
  state: workState(options.runtime, options.result),
@@ -176,13 +197,12 @@ export function buildStatusView(options: {
176
197
  }
177
198
  : { message: options.resultReadError! },
178
199
  }),
179
- ...(!options.verbose ? {} : {
180
- operations: (options.runtime?.operations ?? options.result?.operations ?? [])
200
+ ...((options.runtime?.operations ?? options.result?.operations ?? []).some((item) => item.status !== "completed") ? {
201
+ operations: groupOperationViews((options.runtime?.operations ?? options.result?.operations ?? [])
181
202
  .filter((item) => item.status !== "completed")
182
- .slice(0, options.operationLimit ?? 20)
183
203
  .map((item) => ({
184
- ...("operation" in item ? { id: item.operation } : item.id === undefined ? {} : { id: item.id }),
185
- ...(item.receipt === undefined ? {} : { receipt: item.receipt }),
204
+ ...(!options.verbose ? {} : "operation" in item ? { id: item.operation } : item.id === undefined ? {} : { id: item.id }),
205
+ ...(item.receipt === undefined || (!options.verbose && item.failure === undefined) ? {} : { receipt: item.receipt }),
186
206
  endpoint: item.endpoint,
187
207
  state: item.status,
188
208
  ...(item.progress === undefined ? {} : { progress: item.progress }),
@@ -190,23 +210,43 @@ export function buildStatusView(options: {
190
210
  code: item.failure.code,
191
211
  message: item.failure.message,
192
212
  } }),
193
- })),
194
- }),
213
+ })), options.verbose === true),
214
+ } : {}),
195
215
  };
196
216
  }
197
217
 
218
+ function groupOperationViews(
219
+ operations: NonNullable<CliBuildStatusView["operations"]>,
220
+ verbose: boolean,
221
+ ): NonNullable<CliBuildStatusView["operations"]> {
222
+ if (verbose) return operations;
223
+ const groups = new Map<string, { view: typeof operations[number]; count: number }>();
224
+ for (const operation of operations) {
225
+ const key = JSON.stringify(operation);
226
+ const existing = groups.get(key);
227
+ if (existing !== undefined) existing.count += 1;
228
+ else groups.set(key, { view: operation, count: 1 });
229
+ }
230
+ return [...groups.values()].map(({ view, count }) => count === 1 ? view : { ...view, count });
231
+ }
232
+
198
233
  export async function buildResultView(
199
234
  repository: BuildResultRepository,
200
235
  manifest: BuildResultManifest,
201
- options: { readonly projectRoot: string; readonly output?: string; readonly limit: number },
236
+ options: { readonly projectRoot: string; readonly output?: string; readonly limit: number; readonly verbose?: boolean },
202
237
  ): Promise<CliBuildResultView> {
203
238
  if (options.output !== undefined && manifest.outputs[options.output] === undefined) {
204
239
  throw new Error(`Build Result ${manifest.id} has no public Output ${options.output}`);
205
240
  }
206
- const allNames = options.output === undefined ? orderedOutputNames(manifest) : [options.output];
207
- const selected = allNames.slice(0, options.limit);
241
+ const available = orderedOutputNames(manifest);
242
+ const allNames = options.output !== undefined ? [options.output] : options.verbose ? available
243
+ : available.filter((name) => manifest.targets.includes(name) || manifest.highlightedOutputs?.includes(name));
244
+ const selected = options.verbose ? allNames.slice(0, options.limit) : allNames;
208
245
  const outputs = await Promise.all(selected.map(async (name) =>
209
246
  await outputView(repository, manifest, name)));
247
+ const operations = options.verbose ? manifest.operations ?? []
248
+ : (manifest.operations ?? []).filter((item) => item.failure !== undefined);
249
+ const selectedOperations = options.verbose ? operations.slice(0, options.limit) : operations;
210
250
  return {
211
251
  id: manifest.id,
212
252
  ...(manifest.title === undefined ? {} : { title: manifest.title }),
@@ -217,12 +257,18 @@ export async function buildResultView(
217
257
  source: projectPath(manifest.source.path, options.projectRoot),
218
258
  ...(manifest.run === undefined ? {} : { run: projectPath(manifest.run.path, options.projectRoot) }),
219
259
  targetCount: manifest.targets.length,
220
- targets: manifest.targets.slice(0, options.limit),
221
- ...(manifest.targets.length <= options.limit ? {} : { omittedTargets: manifest.targets.length - options.limit }),
260
+ targets: manifest.targets,
261
+ outputCount: available.length,
222
262
  outputs,
263
+ ...(available.length === allNames.length ? {} : { otherOutputCount: available.length - allNames.length }),
223
264
  ...(selected.length === allNames.length ? {} : { omittedOutputs: allNames.length - selected.length }),
224
265
  ...(manifest.failure === undefined ? {} : { failure: manifest.failure }),
225
- ...(manifest.operations === undefined ? {} : { operations: manifest.operations.slice(0, options.limit) }),
226
- ...((manifest.operations?.length ?? 0) <= options.limit ? {} : { omittedOperations: manifest.operations!.length - options.limit }),
266
+ ...(manifest.executionLog === undefined ? {} : { executionLog: manifest.executionLog }),
267
+ ...(selectedOperations.length === 0 ? {} : { operations: selectedOperations.map((item) => options.verbose ? item : ({
268
+ endpoint: item.endpoint, status: item.status,
269
+ ...(item.receipt === undefined ? {} : { receipt: item.receipt }),
270
+ ...(item.failure === undefined ? {} : { failure: item.failure }),
271
+ })) }),
272
+ ...(selectedOperations.length === operations.length ? {} : { omittedOperations: operations.length - selectedOperations.length }),
227
273
  };
228
274
  }
@@ -1,7 +1,7 @@
1
1
  # `@hypit/comment-sticker`
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
  An author package for timed social-comment cards. It publishes an ordinary `VisualTrack` containing
@@ -21,7 +21,7 @@ The author surface keeps the three independent concerns visible:
21
21
 
22
22
  <comment:Style id="social-comment" recipe={styles.comment} font={fonts.ui}/>
23
23
 
24
- <comment:Track id="comments" canvas={video.canvas} semantic={speech.semantic}>
24
+ <comment:Track id="comments" canvas={video.canvas} timeline={speech.timeline}>
25
25
  <comment:Sticker
26
26
  id="opening-comment"
27
27
  comment={comment-copy}
@@ -15,7 +15,7 @@
15
15
  "@hypit/narrative": "workspace:*",
16
16
  "@hypit/protocol": "workspace:*",
17
17
  "@hypit/program-space": "workspace:*",
18
- "@hypit/semantic-track": "workspace:*",
18
+ "@hypit/timeline": "workspace:*",
19
19
  "@hypit/spatial": "workspace:*",
20
20
  "@hypit/svs": "workspace:*",
21
21
  "@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 { BlobRef, 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 { Text } from "@hypit/text";
7
7
 
@@ -28,7 +28,7 @@ function common(inputs: Record<string, { readonly value: StoredValue } | undefin
28
28
  return {
29
29
  set: inline<CommentStickerSet>(inputs.set?.value, "CommentStickerSet"),
30
30
  header: inline<CommentStickerHeader>(inputs.header?.value, "CommentStickerHeader"),
31
- space: inline<ProgramSpace>(inputs.space?.value, "ProgramSpace"),
31
+ timeline: inline<Timeline>(inputs.timeline?.value, "Timeline"),
32
32
  frame: inline<SpatialFrame>(inputs.frame?.value, "SpatialFrame"),
33
33
  style: inline<CommentStickerStyle>(inputs.style?.value, "CommentStickerStyle"),
34
34
  spec: inline<CommentStickerItemSpec>(inputs.spec?.value, "CommentStickerItemSpec"),
@@ -69,7 +69,7 @@ export const commentStickerComponent = {
69
69
  handler: ({ inputs }: ProducerHandlerContext) => {
70
70
  const values = common(inputs);
71
71
  return { outputs: { set: output(appendProjectedCommentSticker(
72
- values.set, values.header, values.space, values.frame, values.style, values.spec, values.content, values.window,
72
+ values.set, values.header, values.timeline, values.frame, values.style, values.spec, values.content, values.window,
73
73
  avatar ? inline<BlobRef>(inputs.avatar?.value, "Comment Sticker avatar") : undefined,
74
74
  )) }, needs: {} };
75
75
  },
@@ -85,7 +85,7 @@ export const commentStickerComponent = {
85
85
  producer: commentStickerProducers.render,
86
86
  handler: ({ inputs }) => ({ outputs: { track: output(renderCommentSticker(
87
87
  inline<CanvasSpace>(inputs.canvas?.value, "CanvasSpace"),
88
- inline<ProgramSpace>(inputs.space?.value, "ProgramSpace"),
88
+ inline<Timeline>(inputs.timeline?.value, "Timeline"),
89
89
  inline<CommentStickerProgram>(inputs.program?.value, "CommentStickerProgram"),
90
90
  )) }, needs: {} }),
91
91
  },
@@ -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";
@@ -82,7 +83,7 @@ export function createCommentStickerFragment(items: readonly CommentStickerFragm
82
83
  inputs: {
83
84
  set: operation(current),
84
85
  header: input("header"),
85
- space: input("space"),
86
+ timeline: input("timeline"),
86
87
  frame: input(item.frameName),
87
88
  style: input(item.styleName),
88
89
  window: input(item.windowName),
@@ -104,7 +105,7 @@ export function createCommentStickerFragment(items: readonly CommentStickerFragm
104
105
  {
105
106
  id: "comment:track",
106
107
  producer: commentStickerProducers.render,
107
- inputs: { canvas: input("canvas"), space: input("space"), program: operation("comment:program") },
108
+ inputs: { canvas: input("canvas"), timeline: input("timeline"), program: operation("comment:program") },
108
109
  result: { kind: "output", name: "track" },
109
110
  },
110
111
  );
@@ -112,7 +113,7 @@ export function createCommentStickerFragment(items: readonly CommentStickerFragm
112
113
  inputs: [
113
114
  { name: "canvas", type: spatialTypes.canvas },
114
115
  { name: "header", type: commentStickerTypes.header },
115
- { name: "space", type: programSpaceTypes.programSpace },
116
+ { name: "timeline", type: timelineTypes.track },
116
117
  ...[...types].map(([inputName, type]) => ({ name: inputName, type })),
117
118
  ],
118
119
  operations,
@@ -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
 
@@ -5,9 +6,9 @@ import { artifactDependency, artifactTypes } from "@hypit/artifact";
5
6
  import { compositionDependency, compositionTypes } from "@hypit/composition";
6
7
  import { fontArtifactSchema, mediaDependency, mediaTypes } from "@hypit/media";
7
8
  import { narrativeDependency } from "@hypit/narrative";
8
- import { programSpaceDependency, programSpaceTypes } from "@hypit/program-space";
9
+
9
10
  import type { ModuleManifest, ProducerRef, TypeRef, ValueSchema } from "@hypit/protocol";
10
- import { semanticTrackDependency } from "@hypit/semantic-track";
11
+ import { timelineDependency } from "@hypit/timeline";
11
12
  import { spatialDependency, spatialFrameSchema, spatialTypes } from "@hypit/spatial";
12
13
  import { svsRecipeType } from "@hypit/svs";
13
14
  import { temporalDependency, temporalTypes } from "@hypit/temporal";
@@ -134,7 +135,7 @@ export const commentStickerProgramSchema: ValueSchema = object({
134
135
  });
135
136
  const appendInputs = [
136
137
  { name: "set", type: commentStickerTypes.set }, { name: "header", type: commentStickerTypes.header },
137
- { name: "space", type: programSpaceTypes.programSpace },
138
+ { name: "timeline", type: timelineTypes.track },
138
139
  { name: "frame", type: spatialTypes.frame }, { name: "style", type: commentStickerTypes.style },
139
140
  { name: "spec", type: commentStickerTypes.itemSpec },
140
141
  { name: "content", type: commentStickerTypes.content }, { name: "window", type: temporalTypes.window },
@@ -311,7 +312,7 @@ export const commentStickerMarkupSurfaces = [
311
312
  summary: "That Program rendered as one VisualTrack." },
312
313
  ],
313
314
  example: `
314
- <comment:Track id="comments" canvas={vertical} semantic={speech.semantic}>
315
+ <comment:Track id="comments" canvas={vertical} timeline={speech.timeline}>
315
316
  <comment:Sticker id="one" frame={comment-frame} style={social} avatar={viewer-avatar}
316
317
  author="@viewer" meta="Featured" during={story.selection.reaction}>
317
318
  Wait, it pinned the caption to the word, not the second.
@@ -334,7 +335,7 @@ export const commentStickerManifest: ModuleManifest = {
334
335
  format: "hypit.module@1",
335
336
  name: commentStickerModuleRef.name,
336
337
  version: commentStickerModuleRef.version,
337
- dependencies: [artifactDependency, narrativeDependency, programSpaceDependency, semanticTrackDependency, spatialDependency, temporalDependency, mediaDependency, compositionDependency, textDependency],
338
+ dependencies: [artifactDependency, narrativeDependency, timelineDependency, spatialDependency, temporalDependency, mediaDependency, compositionDependency, textDependency],
338
339
  types: [
339
340
  { name: commentStickerTypes.header.name },
340
341
  { name: commentStickerTypes.style.name },
@@ -366,7 +367,7 @@ export const commentStickerManifest: ModuleManifest = {
366
367
  needs: [],
367
368
  })),
368
369
  { name: commentStickerProducers.finalize.name, inputs: [{ name: "set", type: commentStickerTypes.set }, { name: "header", type: commentStickerTypes.header }], outputs: [{ name: "program", type: commentStickerTypes.program }], needs: [] },
369
- { name: commentStickerProducers.render.name, inputs: [{ name: "canvas", type: spatialTypes.canvas }, { name: "space", type: programSpaceTypes.programSpace }, { name: "program", type: commentStickerTypes.program }], outputs: [{ name: "track", type: compositionTypes.visualTrack }], needs: [] },
370
+ { name: commentStickerProducers.render.name, inputs: [{ name: "canvas", type: spatialTypes.canvas }, { name: "timeline", type: timelineTypes.track }, { name: "program", type: commentStickerTypes.program }], outputs: [{ name: "track", type: compositionTypes.visualTrack }], needs: [] },
370
371
  ],
371
372
  };
372
373
 
@@ -1,3 +1,4 @@
1
+ import type { Timeline } from "@hypit/timeline";
1
2
  import {
2
3
  assertVisualTrackIdentity,
3
4
  sealVisualTrack,
@@ -12,7 +13,6 @@ import type {
12
13
  } from "@hypit/composition";
13
14
  import { assertFontArtifactRef } from "@hypit/media";
14
15
  import { assertProgramSpaceIdentity } from "@hypit/program-space";
15
- import type { ProgramSpace } from "@hypit/program-space";
16
16
  import { canonicalize, isResourceId } from "@hypit/protocol";
17
17
  import type { BlobRef } from "@hypit/protocol";
18
18
  import { assertCanvasSpace, assertSpatialFrame } from "@hypit/spatial";
@@ -195,7 +195,7 @@ export function assertCommentStickerSet(value: CommentStickerSet): void {
195
195
  function realized(
196
196
  set: CommentStickerSet,
197
197
  header: CommentStickerHeader,
198
- space: ProgramSpace,
198
+ timeline: Timeline,
199
199
  frame: SpatialFrame,
200
200
  style: CommentStickerStyle,
201
201
  spec: CommentStickerItemSpec,
@@ -229,7 +229,7 @@ function realized(
229
229
  export function appendProjectedCommentSticker(
230
230
  set: CommentStickerSet,
231
231
  header: CommentStickerHeader,
232
- space: ProgramSpace,
232
+ timeline: Timeline,
233
233
  frame: SpatialFrame,
234
234
  style: CommentStickerStyle,
235
235
  spec: CommentStickerItemSpec,
@@ -237,8 +237,8 @@ export function appendProjectedCommentSticker(
237
237
  window: ProjectedWindow,
238
238
  avatar?: BlobRef,
239
239
  ): CommentStickerSet {
240
- assertTemporalWindowFor(window, { subjectId: spec.id, space });
241
- return realized(set, header, space, frame, style, spec, content, window, avatar);
240
+ assertTemporalWindowFor(window, { subjectId: spec.id, space: timeline });
241
+ return realized(set, header, timeline, frame, style, spec, content, window, avatar);
242
242
  }
243
243
 
244
244
  export function assertCommentStickerProgram(value: CommentStickerProgram): void {
@@ -589,12 +589,12 @@ function stickerElements(item: CommentStickerItemProgram): readonly VisualElemen
589
589
  return elements;
590
590
  }
591
591
 
592
- export function renderCommentSticker(canvas: CanvasSpace, space: ProgramSpace, program: CommentStickerProgram): VisualTrack {
592
+ export function renderCommentSticker(canvas: CanvasSpace, timeline: Timeline, program: CommentStickerProgram): VisualTrack {
593
593
  assertCanvasSpace(canvas);
594
- assertProgramSpaceIdentity(space);
594
+ assertProgramSpaceIdentity(timeline);
595
595
  assertCommentStickerProgram(program);
596
596
  const track = sealVisualTrack({
597
- programSpaceId: space.id,
597
+ programSpaceId: timeline.id,
598
598
  visualIr: "hypit.visual-ir@1",
599
599
  id: program.id,
600
600
  presents: program.items.map((item) => ({
@@ -605,6 +605,6 @@ export function renderCommentSticker(canvas: CanvasSpace, space: ProgramSpace, p
605
605
  elements: stickerElements(item),
606
606
  })),
607
607
  });
608
- assertVisualTrackIdentity(track, space);
608
+ assertVisualTrackIdentity(track, timeline);
609
609
  return track;
610
610
  }