@hypit/hypit 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (962) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +203 -0
  3. package/README.zh-CN.md +195 -0
  4. package/bin/hypit.mjs +46 -0
  5. package/dist/public/artifact.d.ts +75 -0
  6. package/dist/public/author-kit.d.ts +559 -0
  7. package/dist/public/browser-capture.d.ts +56 -0
  8. package/dist/public/caption.d.ts +751 -0
  9. package/dist/public/composition.d.ts +672 -0
  10. package/dist/public/endpoint-kit.d.ts +366 -0
  11. package/dist/public/generation.d.ts +591 -0
  12. package/dist/public/hyperframes.d.ts +774 -0
  13. package/dist/public/media.d.ts +708 -0
  14. package/dist/public/model-kit.d.ts +523 -0
  15. package/dist/public/narrative.d.ts +315 -0
  16. package/dist/public/program-space.d.ts +193 -0
  17. package/dist/public/runtime-kit.d.ts +427 -0
  18. package/dist/public/semantic-track.d.ts +418 -0
  19. package/dist/public/spatial.d.ts +1193 -0
  20. package/dist/public/speech.d.ts +391 -0
  21. package/dist/public/studio-adapter.d.ts +686 -0
  22. package/dist/public/svs.d.ts +311 -0
  23. package/dist/public/temporal-markup.d.ts +343 -0
  24. package/dist/public/temporal.d.ts +497 -0
  25. package/dist/public/text.d.ts +817 -0
  26. package/dist/public/visual-ir.d.ts +98 -0
  27. package/docs/public/hypit-logo-dark.svg +36 -0
  28. package/docs/public/hypit-logo-light.svg +38 -0
  29. package/examples/README.md +24 -0
  30. package/examples/minimal-author-package/README.md +18 -0
  31. package/examples/minimal-author-package/packages/example-component/README.md +44 -0
  32. package/examples/minimal-author-package/packages/example-component/package.json +27 -0
  33. package/examples/minimal-author-package/packages/example-component/preview/Box.png +0 -0
  34. package/examples/minimal-author-package/packages/example-component/preview/build.svrun +6 -0
  35. package/examples/minimal-author-package/packages/example-component/preview/preview.svml +47 -0
  36. package/examples/minimal-author-package/packages/example-component/preview/recipes.svs +8 -0
  37. package/examples/minimal-author-package/packages/example-component/src/activation.ts +10 -0
  38. package/examples/minimal-author-package/packages/example-component/src/component.ts +44 -0
  39. package/examples/minimal-author-package/packages/example-component/src/fragment.ts +32 -0
  40. package/examples/minimal-author-package/packages/example-component/src/index.ts +6 -0
  41. package/examples/minimal-author-package/packages/example-component/src/manifest.ts +82 -0
  42. package/examples/minimal-author-package/packages/example-component/src/style.ts +13 -0
  43. package/examples/minimal-author-package/packages/example-component/src/surface.ts +41 -0
  44. package/examples/minimal-author-package/packages/example-component/src/temporal.ts +6 -0
  45. package/examples/minimal-author-package/packages/example-component/tsconfig.json +18 -0
  46. package/examples/semantic-composition/README.md +35 -0
  47. package/examples/semantic-composition/chat.svml +25 -0
  48. package/examples/semantic-composition/chat.svrun +6 -0
  49. package/examples/semantic-composition/chat.svs +4 -0
  50. package/examples/semantic-composition/hypit.runtime.json +8 -0
  51. package/examples/semantic-composition/packages/chat-scene/README.md +29 -0
  52. package/examples/semantic-composition/packages/chat-scene/package.json +11 -0
  53. package/examples/semantic-composition/packages/chat-scene/src/activation.ts +112 -0
  54. package/examples/semantic-composition/packages/chat-scene/src/render.ts +64 -0
  55. package/examples/semantic-composition/packages/chat-scene/tsconfig.json +18 -0
  56. package/examples/semantic-composition/packages/responsive-explainer/README.md +45 -0
  57. package/examples/semantic-composition/packages/responsive-explainer/package.json +11 -0
  58. package/examples/semantic-composition/packages/responsive-explainer/src/activation.ts +90 -0
  59. package/examples/semantic-composition/packages/responsive-explainer/src/render.ts +68 -0
  60. package/examples/semantic-composition/packages/responsive-explainer/tsconfig.json +18 -0
  61. package/package.json +259 -7
  62. package/packages/artifact/README.md +10 -0
  63. package/packages/artifact/package.json +16 -0
  64. package/packages/artifact/src/activation.ts +8 -0
  65. package/packages/artifact/src/index.ts +24 -0
  66. package/packages/audio-track/README.md +43 -0
  67. package/packages/audio-track/package.json +36 -0
  68. package/packages/audio-track/src/activation.ts +20 -0
  69. package/packages/audio-track/src/component.ts +40 -0
  70. package/packages/audio-track/src/fragment.ts +63 -0
  71. package/packages/audio-track/src/index.ts +7 -0
  72. package/packages/audio-track/src/manifest.ts +151 -0
  73. package/packages/audio-track/src/program.ts +254 -0
  74. package/packages/audio-track/src/surface.ts +187 -0
  75. package/packages/audio-track/src/types.ts +62 -0
  76. package/packages/audio-track-studio/README.md +3 -0
  77. package/packages/audio-track-studio/package.json +14 -0
  78. package/packages/audio-track-studio/src/activation.ts +7 -0
  79. package/packages/audio-track-studio/src/index.ts +72 -0
  80. package/packages/author-kit/README.md +31 -0
  81. package/packages/author-kit/package.json +16 -0
  82. package/packages/author-kit/src/index.ts +59 -0
  83. package/packages/background-removal/README.md +29 -0
  84. package/packages/background-removal/package.json +16 -0
  85. package/packages/background-removal/src/activation.ts +18 -0
  86. package/packages/background-removal/src/component.ts +32 -0
  87. package/packages/background-removal/src/fragment.ts +18 -0
  88. package/packages/background-removal/src/index.ts +6 -0
  89. package/packages/background-removal/src/manifest.ts +45 -0
  90. package/packages/background-removal/src/program.ts +19 -0
  91. package/packages/background-removal/src/surface.ts +27 -0
  92. package/packages/background-removal/src/types.ts +5 -0
  93. package/packages/browser-capture/README.md +82 -0
  94. package/packages/browser-capture/package.json +15 -0
  95. package/packages/browser-capture/src/browser.ts +19 -0
  96. package/packages/browser-capture/src/index.ts +198 -0
  97. package/packages/build-result/package.json +13 -0
  98. package/packages/build-result/src/decode.ts +286 -0
  99. package/packages/build-result/src/index.ts +25 -0
  100. package/packages/build-result/src/store.ts +505 -0
  101. package/packages/build-result/src/types.ts +354 -0
  102. package/packages/build-result/src/writer.ts +184 -0
  103. package/packages/build-result-fs/README.md +29 -0
  104. package/packages/build-result-fs/package.json +17 -0
  105. package/packages/build-result-fs/src/activation.ts +62 -0
  106. package/packages/build-result-fs/src/index.ts +1 -0
  107. package/packages/build-result-kit/README.md +10 -0
  108. package/packages/build-result-kit/package.json +15 -0
  109. package/packages/build-result-kit/src/index.ts +144 -0
  110. package/packages/build-result-s3/README.md +49 -0
  111. package/packages/build-result-s3/package.json +19 -0
  112. package/packages/build-result-s3/src/activation.ts +71 -0
  113. package/packages/build-result-s3/src/client.ts +254 -0
  114. package/packages/build-result-s3/src/index.ts +4 -0
  115. package/packages/build-result-s3/src/repository.ts +361 -0
  116. package/packages/caption/README.md +77 -0
  117. package/packages/caption/package.json +28 -0
  118. package/packages/caption/src/activation.ts +17 -0
  119. package/packages/caption/src/component.ts +38 -0
  120. package/packages/caption/src/display.ts +111 -0
  121. package/packages/caption/src/error.ts +9 -0
  122. package/packages/caption/src/fragment.ts +26 -0
  123. package/packages/caption/src/index.ts +33 -0
  124. package/packages/caption/src/manifest.ts +97 -0
  125. package/packages/caption/src/style.ts +170 -0
  126. package/packages/caption/src/surface.ts +96 -0
  127. package/packages/caption/src/temporalize.ts +124 -0
  128. package/packages/caption/src/types.ts +71 -0
  129. package/packages/caption-fine/README.md +108 -0
  130. package/packages/caption-fine/package.json +30 -0
  131. package/packages/caption-fine/preview/Track.png +0 -0
  132. package/packages/caption-fine/src/activation.ts +32 -0
  133. package/packages/caption-fine/src/component.ts +58 -0
  134. package/packages/caption-fine/src/fragment.ts +112 -0
  135. package/packages/caption-fine/src/index.ts +19 -0
  136. package/packages/caption-fine/src/manifest.ts +383 -0
  137. package/packages/caption-fine/src/recipe.ts +120 -0
  138. package/packages/caption-fine/src/render.ts +1133 -0
  139. package/packages/caption-fine/src/schedule.ts +126 -0
  140. package/packages/caption-fine/src/spacing.ts +69 -0
  141. package/packages/caption-fine/src/style.ts +370 -0
  142. package/packages/caption-fine/src/surface.ts +152 -0
  143. package/packages/caption-fine/src/types.ts +191 -0
  144. package/packages/caption-fine-studio/README.md +3 -0
  145. package/packages/caption-fine-studio/package.json +15 -0
  146. package/packages/caption-fine-studio/src/activation.ts +7 -0
  147. package/packages/caption-fine-studio/src/index.ts +163 -0
  148. package/packages/cli/README.md +51 -0
  149. package/packages/cli/package.json +33 -0
  150. package/packages/cli/src/arguments.ts +605 -0
  151. package/packages/cli/src/build-planning.ts +460 -0
  152. package/packages/cli/src/command.ts +202 -0
  153. package/packages/cli/src/commands/environment.ts +391 -0
  154. package/packages/cli/src/commands/execution.ts +321 -0
  155. package/packages/cli/src/commands/results.ts +187 -0
  156. package/packages/cli/src/commands/types.ts +9 -0
  157. package/packages/cli/src/distribution.ts +74 -0
  158. package/packages/cli/src/index.ts +30 -0
  159. package/packages/cli/src/machine-view.ts +28 -0
  160. package/packages/cli/src/main.ts +654 -0
  161. package/packages/cli/src/oauth.ts +228 -0
  162. package/packages/cli/src/observation.ts +203 -0
  163. package/packages/cli/src/output.ts +1007 -0
  164. package/packages/cli/src/paths.ts +7 -0
  165. package/packages/cli/src/project-context.ts +38 -0
  166. package/packages/cli/src/reachability.ts +91 -0
  167. package/packages/cli/src/result-export.ts +148 -0
  168. package/packages/cli/src/result-query.ts +46 -0
  169. package/packages/cli/src/run-file.ts +186 -0
  170. package/packages/cli/src/runtime-port.ts +13 -0
  171. package/packages/cli/src/runtime-selection.ts +94 -0
  172. package/packages/cli/src/runtime-view.ts +15 -0
  173. package/packages/cli/src/source-discovery.ts +150 -0
  174. package/packages/cli/src/source-packages.ts +91 -0
  175. package/packages/cli/src/view.ts +228 -0
  176. package/packages/comment-sticker/README.md +41 -0
  177. package/packages/comment-sticker/package.json +29 -0
  178. package/packages/comment-sticker/preview/Track.png +0 -0
  179. package/packages/comment-sticker/src/activation.ts +32 -0
  180. package/packages/comment-sticker/src/author.ts +148 -0
  181. package/packages/comment-sticker/src/component.ts +97 -0
  182. package/packages/comment-sticker/src/fragment.ts +124 -0
  183. package/packages/comment-sticker/src/index.ts +8 -0
  184. package/packages/comment-sticker/src/manifest.ts +373 -0
  185. package/packages/comment-sticker/src/program.ts +610 -0
  186. package/packages/comment-sticker/src/surface.ts +172 -0
  187. package/packages/comment-sticker/src/types.ts +109 -0
  188. package/packages/comment-sticker-studio/README.md +3 -0
  189. package/packages/comment-sticker-studio/package.json +14 -0
  190. package/packages/comment-sticker-studio/src/activation.ts +7 -0
  191. package/packages/comment-sticker-studio/src/index.ts +132 -0
  192. package/packages/compiler-markup-node/README.md +12 -0
  193. package/packages/compiler-markup-node/package.json +22 -0
  194. package/packages/compiler-markup-node/src/index.ts +59 -0
  195. package/packages/compiler-node/README.md +60 -0
  196. package/packages/compiler-node/package.json +25 -0
  197. package/packages/compiler-node/src/compiler.ts +207 -0
  198. package/packages/compiler-node/src/error.ts +11 -0
  199. package/packages/compiler-node/src/graph-query.ts +51 -0
  200. package/packages/compiler-node/src/index.ts +27 -0
  201. package/packages/compiler-node/src/modules.ts +107 -0
  202. package/packages/compiler-node/src/run.ts +355 -0
  203. package/packages/component-kit/README.md +97 -0
  204. package/packages/component-kit/package.json +13 -0
  205. package/packages/component-kit/src/index.ts +155 -0
  206. package/packages/composition/README.md +53 -0
  207. package/packages/composition/package.json +29 -0
  208. package/packages/composition/src/activation.ts +3 -0
  209. package/packages/composition/src/component.ts +10 -0
  210. package/packages/composition/src/index.ts +18 -0
  211. package/packages/composition/src/manifest.ts +13 -0
  212. package/packages/composition/src/schema.ts +194 -0
  213. package/packages/composition/src/track.ts +1403 -0
  214. package/packages/core/README.md +22 -0
  215. package/packages/core/package.json +13 -0
  216. package/packages/core/src/error.ts +12 -0
  217. package/packages/core/src/graph.ts +341 -0
  218. package/packages/core/src/index.ts +32 -0
  219. package/packages/core/src/link.ts +240 -0
  220. package/packages/core/src/machine.ts +60 -0
  221. package/packages/core/src/plan.ts +504 -0
  222. package/packages/core/src/reducer.ts +428 -0
  223. package/packages/core/src/reference.ts +25 -0
  224. package/packages/core/src/slice.ts +108 -0
  225. package/packages/credential-store-env/README.md +11 -0
  226. package/packages/credential-store-env/package.json +17 -0
  227. package/packages/credential-store-env/src/activation.ts +25 -0
  228. package/packages/credential-store-env/src/index.ts +23 -0
  229. package/packages/credential-store-os/README.md +13 -0
  230. package/packages/credential-store-os/package.json +22 -0
  231. package/packages/credential-store-os/runtime/windows-credential.ps1 +59 -0
  232. package/packages/credential-store-os/src/activation.ts +32 -0
  233. package/packages/credential-store-os/src/index.ts +2 -0
  234. package/packages/credential-store-os/src/store.ts +196 -0
  235. package/packages/deck-track/README.md +52 -0
  236. package/packages/deck-track/package.json +35 -0
  237. package/packages/deck-track/preview/DepthStack.png +0 -0
  238. package/packages/deck-track/src/activation.ts +32 -0
  239. package/packages/deck-track/src/author.ts +217 -0
  240. package/packages/deck-track/src/component.ts +86 -0
  241. package/packages/deck-track/src/fragment.ts +148 -0
  242. package/packages/deck-track/src/index.ts +16 -0
  243. package/packages/deck-track/src/lower.ts +370 -0
  244. package/packages/deck-track/src/manifest.ts +438 -0
  245. package/packages/deck-track/src/program.ts +367 -0
  246. package/packages/deck-track/src/surface.ts +286 -0
  247. package/packages/deck-track/src/types.ts +119 -0
  248. package/packages/deck-track-studio/README.md +3 -0
  249. package/packages/deck-track-studio/package.json +14 -0
  250. package/packages/deck-track-studio/src/activation.ts +7 -0
  251. package/packages/deck-track-studio/src/index.ts +134 -0
  252. package/packages/driver-node/README.md +23 -0
  253. package/packages/driver-node/package.json +18 -0
  254. package/packages/driver-node/src/driver.ts +616 -0
  255. package/packages/driver-node/src/index.ts +10 -0
  256. package/packages/driver-node/src/planning.ts +67 -0
  257. package/packages/driver-node/src/registry.ts +234 -0
  258. package/packages/driver-node/src/resources.ts +36 -0
  259. package/packages/driver-node/src/types.ts +69 -0
  260. package/packages/elaborator/README.md +74 -0
  261. package/packages/elaborator/package.json +16 -0
  262. package/packages/elaborator/src/author.ts +308 -0
  263. package/packages/elaborator/src/fragment.ts +505 -0
  264. package/packages/elaborator/src/frontend-facet.ts +30 -0
  265. package/packages/elaborator/src/index.ts +78 -0
  266. package/packages/elaborator/src/source.ts +608 -0
  267. package/packages/endpoint-kit/README.md +111 -0
  268. package/packages/endpoint-kit/package.json +14 -0
  269. package/packages/endpoint-kit/src/index.ts +488 -0
  270. package/packages/estimate/README.md +32 -0
  271. package/packages/estimate/package.json +20 -0
  272. package/packages/estimate/src/activation.ts +11 -0
  273. package/packages/estimate/src/index.ts +16 -0
  274. package/packages/estimate/src/manifest.ts +34 -0
  275. package/packages/estimate/src/policy.ts +70 -0
  276. package/packages/estimate/src/program.ts +196 -0
  277. package/packages/estimate/src/types.ts +15 -0
  278. package/packages/film/README.md +49 -0
  279. package/packages/film/package.json +34 -0
  280. package/packages/film/src/activation.ts +16 -0
  281. package/packages/film/src/component.ts +61 -0
  282. package/packages/film/src/fragment.ts +83 -0
  283. package/packages/film/src/index.ts +11 -0
  284. package/packages/film/src/manifest.ts +152 -0
  285. package/packages/film/src/program.ts +110 -0
  286. package/packages/film/src/recipe.ts +24 -0
  287. package/packages/film/src/surface.ts +146 -0
  288. package/packages/film/src/types.ts +26 -0
  289. package/packages/film-studio/package.json +16 -0
  290. package/packages/film-studio/src/activation.ts +8 -0
  291. package/packages/film-studio/src/index.ts +17 -0
  292. package/packages/fonts-open/README.md +77 -0
  293. package/packages/fonts-open/package.json +130 -0
  294. package/packages/fonts-open/src/activation.ts +30 -0
  295. package/packages/fonts-open/src/catalog.ts +317 -0
  296. package/packages/fonts-open/src/index.ts +13 -0
  297. package/packages/fonts-open/src/manifest.ts +83 -0
  298. package/packages/fonts-open/src/surface.ts +239 -0
  299. package/packages/generation/README.md +19 -0
  300. package/packages/generation/package.json +23 -0
  301. package/packages/generation/src/activation.ts +9 -0
  302. package/packages/generation/src/component.ts +77 -0
  303. package/packages/generation/src/identity.ts +80 -0
  304. package/packages/generation/src/index.ts +79 -0
  305. package/packages/generation/src/manifest.ts +65 -0
  306. package/packages/generation/src/mapping.ts +231 -0
  307. package/packages/generation/src/ports.ts +222 -0
  308. package/packages/generation/src/request.ts +427 -0
  309. package/packages/generation/src/schema.ts +62 -0
  310. package/packages/generation/src/types.ts +17 -0
  311. package/packages/gpt-image/README.md +54 -0
  312. package/packages/gpt-image/package.json +34 -0
  313. package/packages/gpt-image/src/activation.ts +39 -0
  314. package/packages/gpt-image/src/fragment.ts +101 -0
  315. package/packages/gpt-image/src/index.ts +203 -0
  316. package/packages/gpt-image/src/surface.ts +194 -0
  317. package/packages/gpt-image-kits/README.md +44 -0
  318. package/packages/gpt-image-kits/kits/phone-ugc-v1.svs +34 -0
  319. package/packages/gpt-image-kits/package.json +15 -0
  320. package/packages/grok-imagine/README.md +21 -0
  321. package/packages/grok-imagine/package.json +21 -0
  322. package/packages/grok-imagine/src/activation.ts +29 -0
  323. package/packages/grok-imagine/src/index.ts +174 -0
  324. package/packages/grok-imagine/src/surface.ts +149 -0
  325. package/packages/host/README.md +5 -0
  326. package/packages/host/package.json +10 -0
  327. package/packages/host/src/facet.ts +6 -0
  328. package/packages/host/src/frontend.ts +56 -0
  329. package/packages/host/src/index.ts +9 -0
  330. package/packages/hyperframes/README.md +69 -0
  331. package/packages/hyperframes/package.json +36 -0
  332. package/packages/hyperframes/src/activation.ts +8 -0
  333. package/packages/hyperframes/src/browser-program.ts +79 -0
  334. package/packages/hyperframes/src/component.ts +32 -0
  335. package/packages/hyperframes/src/document.ts +827 -0
  336. package/packages/hyperframes/src/fragment.ts +32 -0
  337. package/packages/hyperframes/src/index.ts +13 -0
  338. package/packages/hyperframes/src/manifest.ts +67 -0
  339. package/packages/hyperframes/src/project.ts +118 -0
  340. package/packages/hyperframes/src/text.ts +1179 -0
  341. package/packages/hyperframes/src/types.ts +38 -0
  342. package/packages/image-compose/README.md +25 -0
  343. package/packages/image-compose/package.json +18 -0
  344. package/packages/image-compose/src/activation.ts +21 -0
  345. package/packages/image-compose/src/component.ts +100 -0
  346. package/packages/image-compose/src/fragment.ts +54 -0
  347. package/packages/image-compose/src/index.ts +10 -0
  348. package/packages/image-compose/src/manifest.ts +119 -0
  349. package/packages/image-compose/src/program.ts +75 -0
  350. package/packages/image-compose/src/surface.ts +83 -0
  351. package/packages/image-compose/src/types.ts +22 -0
  352. package/packages/image-transform/README.md +29 -0
  353. package/packages/image-transform/package.json +21 -0
  354. package/packages/image-transform/src/activation.ts +33 -0
  355. package/packages/image-transform/src/component.ts +67 -0
  356. package/packages/image-transform/src/fragment.ts +25 -0
  357. package/packages/image-transform/src/index.ts +13 -0
  358. package/packages/image-transform/src/manifest.ts +209 -0
  359. package/packages/image-transform/src/program.ts +23 -0
  360. package/packages/image-transform/src/surface.ts +216 -0
  361. package/packages/image-transform/src/types.ts +20 -0
  362. package/packages/interview-emoji-reveal/README.md +39 -0
  363. package/packages/interview-emoji-reveal/package.json +23 -0
  364. package/packages/interview-emoji-reveal/preview/Track.png +0 -0
  365. package/packages/interview-emoji-reveal/src/activation.ts +14 -0
  366. package/packages/interview-emoji-reveal/src/component.ts +45 -0
  367. package/packages/interview-emoji-reveal/src/fragment.ts +62 -0
  368. package/packages/interview-emoji-reveal/src/index.ts +16 -0
  369. package/packages/interview-emoji-reveal/src/manifest.ts +174 -0
  370. package/packages/interview-emoji-reveal/src/program.ts +242 -0
  371. package/packages/interview-emoji-reveal/src/style.ts +47 -0
  372. package/packages/interview-emoji-reveal/src/surface.ts +110 -0
  373. package/packages/interview-emoji-reveal/src/types.ts +52 -0
  374. package/packages/markup/README.md +81 -0
  375. package/packages/markup/package.json +16 -0
  376. package/packages/markup/src/element.ts +39 -0
  377. package/packages/markup/src/error.ts +20 -0
  378. package/packages/markup/src/frontend.ts +518 -0
  379. package/packages/markup/src/host-facet.ts +115 -0
  380. package/packages/markup/src/index.ts +25 -0
  381. package/packages/markup/src/registry.ts +83 -0
  382. package/packages/markup/src/syntax.ts +271 -0
  383. package/packages/markup/src/types.ts +246 -0
  384. package/packages/media/README.md +37 -0
  385. package/packages/media/package.json +19 -0
  386. package/packages/media/src/activation.ts +38 -0
  387. package/packages/media/src/component.ts +16 -0
  388. package/packages/media/src/frame-range.ts +33 -0
  389. package/packages/media/src/identity.ts +227 -0
  390. package/packages/media/src/index.ts +15 -0
  391. package/packages/media/src/manifest.ts +122 -0
  392. package/packages/media/src/render.ts +140 -0
  393. package/packages/media/src/schema.ts +69 -0
  394. package/packages/media/src/surface.ts +150 -0
  395. package/packages/media/src/types.ts +121 -0
  396. package/packages/media-execution/README.md +28 -0
  397. package/packages/media-execution/package.json +17 -0
  398. package/packages/media-execution/src/execute.ts +1322 -0
  399. package/packages/media-execution/src/index.ts +16 -0
  400. package/packages/media-execution/src/probe.ts +315 -0
  401. package/packages/media-execution/src/surface.ts +286 -0
  402. package/packages/media-execution/src/toolchain.ts +81 -0
  403. package/packages/media-execution/src/webp.ts +200 -0
  404. package/packages/media-pipeline/README.md +113 -0
  405. package/packages/media-pipeline/package.json +27 -0
  406. package/packages/media-pipeline/src/activation.ts +47 -0
  407. package/packages/media-pipeline/src/audio-plan.ts +113 -0
  408. package/packages/media-pipeline/src/component.ts +373 -0
  409. package/packages/media-pipeline/src/fragment.ts +167 -0
  410. package/packages/media-pipeline/src/index.ts +46 -0
  411. package/packages/media-pipeline/src/manifest.ts +653 -0
  412. package/packages/media-pipeline/src/operations.ts +248 -0
  413. package/packages/media-pipeline/src/selection.ts +110 -0
  414. package/packages/media-pipeline/src/surface.ts +389 -0
  415. package/packages/media-pipeline/src/types.ts +175 -0
  416. package/packages/media-track/README.md +197 -0
  417. package/packages/media-track/package.json +29 -0
  418. package/packages/media-track/preview/Track.png +0 -0
  419. package/packages/media-track/preview/build.svrun +5 -0
  420. package/packages/media-track/preview/flush.png +0 -0
  421. package/packages/media-track/preview/preview.svml +47 -0
  422. package/packages/media-track/preview/recipes.svs +23 -0
  423. package/packages/media-track/preview/rounded.png +0 -0
  424. package/packages/media-track/src/activation.ts +20 -0
  425. package/packages/media-track/src/author.ts +317 -0
  426. package/packages/media-track/src/component.ts +162 -0
  427. package/packages/media-track/src/fragment.ts +57 -0
  428. package/packages/media-track/src/index.ts +65 -0
  429. package/packages/media-track/src/layers.ts +308 -0
  430. package/packages/media-track/src/lower.ts +335 -0
  431. package/packages/media-track/src/manifest.ts +624 -0
  432. package/packages/media-track/src/motion.ts +387 -0
  433. package/packages/media-track/src/performance.ts +37 -0
  434. package/packages/media-track/src/presentation.ts +35 -0
  435. package/packages/media-track/src/program.ts +565 -0
  436. package/packages/media-track/src/sampling.ts +118 -0
  437. package/packages/media-track/src/sequence.ts +403 -0
  438. package/packages/media-track/src/sounds.ts +71 -0
  439. package/packages/media-track/src/surface.ts +668 -0
  440. package/packages/media-track/src/types.ts +311 -0
  441. package/packages/media-track-studio/README.md +3 -0
  442. package/packages/media-track-studio/package.json +15 -0
  443. package/packages/media-track-studio/src/activation.ts +7 -0
  444. package/packages/media-track-studio/src/index.ts +235 -0
  445. package/packages/mimo-speech/README.md +33 -0
  446. package/packages/mimo-speech/package.json +21 -0
  447. package/packages/mimo-speech/src/activation.ts +32 -0
  448. package/packages/mimo-speech/src/fragment.ts +11 -0
  449. package/packages/mimo-speech/src/index.ts +160 -0
  450. package/packages/mimo-speech/src/surface.ts +193 -0
  451. package/packages/minimax-h3/README.md +21 -0
  452. package/packages/minimax-h3/package.json +21 -0
  453. package/packages/minimax-h3/src/activation.ts +14 -0
  454. package/packages/minimax-h3/src/index.ts +188 -0
  455. package/packages/minimax-h3/src/surface.ts +87 -0
  456. package/packages/model-kit/README.md +52 -0
  457. package/packages/model-kit/package.json +19 -0
  458. package/packages/model-kit/src/index.ts +728 -0
  459. package/packages/nano-banana/README.md +23 -0
  460. package/packages/nano-banana/package.json +21 -0
  461. package/packages/nano-banana/src/activation.ts +14 -0
  462. package/packages/nano-banana/src/index.ts +172 -0
  463. package/packages/nano-banana/src/surface.ts +120 -0
  464. package/packages/narrative/README.md +7 -0
  465. package/packages/narrative/package.json +17 -0
  466. package/packages/narrative/src/activation.ts +7 -0
  467. package/packages/narrative/src/component.ts +33 -0
  468. package/packages/narrative/src/identity.ts +131 -0
  469. package/packages/narrative/src/index.ts +11 -0
  470. package/packages/narrative/src/manifest.ts +30 -0
  471. package/packages/narrative/src/schema.ts +89 -0
  472. package/packages/narrative/src/types.ts +141 -0
  473. package/packages/package-loader-node/README.md +23 -0
  474. package/packages/package-loader-node/package.json +15 -0
  475. package/packages/package-loader-node/src/contribution.ts +97 -0
  476. package/packages/package-loader-node/src/distribution-resolution.ts +146 -0
  477. package/packages/package-loader-node/src/index.ts +27 -0
  478. package/packages/package-loader-node/src/loader.ts +301 -0
  479. package/packages/package-loader-node/src/location.ts +279 -0
  480. package/packages/package-loader-node/src/types.ts +60 -0
  481. package/packages/program-space/README.md +20 -0
  482. package/packages/program-space/package.json +17 -0
  483. package/packages/program-space/src/activation.ts +19 -0
  484. package/packages/program-space/src/index.ts +107 -0
  485. package/packages/program-space/src/surface.ts +55 -0
  486. package/packages/protocol/README.md +11 -0
  487. package/packages/protocol/package.json +10 -0
  488. package/packages/protocol/src/build-id.ts +52 -0
  489. package/packages/protocol/src/build.ts +265 -0
  490. package/packages/protocol/src/canonical.ts +37 -0
  491. package/packages/protocol/src/error.ts +11 -0
  492. package/packages/protocol/src/identity.ts +59 -0
  493. package/packages/protocol/src/index.ts +9 -0
  494. package/packages/protocol/src/module.ts +67 -0
  495. package/packages/protocol/src/value.ts +88 -0
  496. package/packages/provider-hyperframes-aws-lambda/README.md +30 -0
  497. package/packages/provider-hyperframes-aws-lambda/package.json +30 -0
  498. package/packages/provider-hyperframes-aws-lambda/src/activation.ts +97 -0
  499. package/packages/provider-hyperframes-aws-lambda/src/client.ts +114 -0
  500. package/packages/provider-hyperframes-aws-lambda/src/index.ts +21 -0
  501. package/packages/provider-hyperframes-aws-lambda/src/provider.ts +522 -0
  502. package/packages/provider-hyperframes-local/README.md +129 -0
  503. package/packages/provider-hyperframes-local/package.json +34 -0
  504. package/packages/provider-hyperframes-local/src/activation.ts +107 -0
  505. package/packages/provider-hyperframes-local/src/capture-process.ts +110 -0
  506. package/packages/provider-hyperframes-local/src/capture-worker.ts +17 -0
  507. package/packages/provider-hyperframes-local/src/capture.ts +184 -0
  508. package/packages/provider-hyperframes-local/src/index.ts +10 -0
  509. package/packages/provider-hyperframes-local/src/options.ts +19 -0
  510. package/packages/provider-hyperframes-local/src/output.ts +73 -0
  511. package/packages/provider-hyperframes-local/src/process.ts +83 -0
  512. package/packages/provider-hyperframes-local/src/program.ts +58 -0
  513. package/packages/provider-hyperframes-local/src/provider.ts +62 -0
  514. package/packages/provider-hyperframes-local/src/render.ts +114 -0
  515. package/packages/provider-hyperframes-local/src/sampling.ts +89 -0
  516. package/packages/provider-hypihub/README.md +143 -0
  517. package/packages/provider-hypihub/package.json +26 -0
  518. package/packages/provider-hypihub/src/activation.ts +91 -0
  519. package/packages/provider-hypihub/src/index.ts +2 -0
  520. package/packages/provider-hypihub/src/mapping.ts +145 -0
  521. package/packages/provider-hypihub/src/oauth.ts +113 -0
  522. package/packages/provider-hypihub/src/provider.ts +566 -0
  523. package/packages/provider-hypihub/src/routes.ts +134 -0
  524. package/packages/provider-hypihub/src/upload.ts +402 -0
  525. package/packages/provider-image-opencv-local/README.md +16 -0
  526. package/packages/provider-image-opencv-local/package.json +27 -0
  527. package/packages/provider-image-opencv-local/runtime/raster_execute.py +299 -0
  528. package/packages/provider-image-opencv-local/src/activation.ts +61 -0
  529. package/packages/provider-image-opencv-local/src/deployment.ts +68 -0
  530. package/packages/provider-image-opencv-local/src/index.ts +2 -0
  531. package/packages/provider-image-opencv-local/src/program.ts +60 -0
  532. package/packages/provider-image-opencv-local/src/provider.ts +155 -0
  533. package/packages/provider-kie/README.md +134 -0
  534. package/packages/provider-kie/package.json +43 -0
  535. package/packages/provider-kie/src/activation.ts +71 -0
  536. package/packages/provider-kie/src/index.ts +10 -0
  537. package/packages/provider-kie/src/mapping.ts +182 -0
  538. package/packages/provider-kie/src/provider.ts +657 -0
  539. package/packages/provider-kie/src/routes.ts +150 -0
  540. package/packages/provider-media-local/README.md +58 -0
  541. package/packages/provider-media-local/package.json +28 -0
  542. package/packages/provider-media-local/src/activation.ts +65 -0
  543. package/packages/provider-media-local/src/index.ts +2 -0
  544. package/packages/provider-media-local/src/program.ts +19 -0
  545. package/packages/provider-media-local/src/provider.ts +150 -0
  546. package/packages/provider-whisperx-local/README.md +44 -0
  547. package/packages/provider-whisperx-local/package.json +27 -0
  548. package/packages/provider-whisperx-local/src/activation.ts +93 -0
  549. package/packages/provider-whisperx-local/src/index.ts +5 -0
  550. package/packages/provider-whisperx-local/src/program.ts +157 -0
  551. package/packages/provider-whisperx-local/src/provider.ts +191 -0
  552. package/packages/provider-xiaomi-mimo/README.md +32 -0
  553. package/packages/provider-xiaomi-mimo/package.json +24 -0
  554. package/packages/provider-xiaomi-mimo/src/activation.ts +57 -0
  555. package/packages/provider-xiaomi-mimo/src/index.ts +5 -0
  556. package/packages/provider-xiaomi-mimo/src/provider.ts +214 -0
  557. package/packages/ranking/README.md +67 -0
  558. package/packages/ranking/package.json +33 -0
  559. package/packages/ranking/preview/Column.svg +29 -0
  560. package/packages/ranking/preview/TierBoard.png +0 -0
  561. package/packages/ranking/preview/TierBoard.svg +36 -0
  562. package/packages/ranking/preview/TopThree.png +0 -0
  563. package/packages/ranking/src/activation.ts +38 -0
  564. package/packages/ranking/src/component.ts +271 -0
  565. package/packages/ranking/src/fragment.ts +206 -0
  566. package/packages/ranking/src/index.ts +26 -0
  567. package/packages/ranking/src/manifest.ts +807 -0
  568. package/packages/ranking/src/render.ts +698 -0
  569. package/packages/ranking/src/schedule.ts +895 -0
  570. package/packages/ranking/src/style.ts +272 -0
  571. package/packages/ranking/src/surface.ts +322 -0
  572. package/packages/ranking/src/tier.ts +176 -0
  573. package/packages/ranking/src/types.ts +277 -0
  574. package/packages/ranking-studio/README.md +3 -0
  575. package/packages/ranking-studio/package.json +14 -0
  576. package/packages/ranking-studio/src/activation.ts +7 -0
  577. package/packages/ranking-studio/src/index.ts +255 -0
  578. package/packages/raster/README.md +7 -0
  579. package/packages/raster/package.json +14 -0
  580. package/packages/raster/src/activation.ts +7 -0
  581. package/packages/raster/src/index.ts +7 -0
  582. package/packages/raster/src/manifest.ts +14 -0
  583. package/packages/raster/src/program.ts +128 -0
  584. package/packages/raster/src/schema.ts +53 -0
  585. package/packages/raster/src/types.ts +61 -0
  586. package/packages/render-hyperframes/README.md +58 -0
  587. package/packages/render-hyperframes/package.json +33 -0
  588. package/packages/render-hyperframes/src/activation.ts +18 -0
  589. package/packages/render-hyperframes/src/component.ts +37 -0
  590. package/packages/render-hyperframes/src/fragment.ts +73 -0
  591. package/packages/render-hyperframes/src/index.ts +6 -0
  592. package/packages/render-hyperframes/src/manifest.ts +100 -0
  593. package/packages/render-hyperframes/src/product.ts +29 -0
  594. package/packages/render-hyperframes/src/surface.ts +65 -0
  595. package/packages/resource-store-fs/README.md +13 -0
  596. package/packages/resource-store-fs/package.json +14 -0
  597. package/packages/resource-store-fs/src/index.ts +2 -0
  598. package/packages/resource-store-fs/src/store.ts +154 -0
  599. package/packages/resource-store-s3/README.md +15 -0
  600. package/packages/resource-store-s3/package.json +15 -0
  601. package/packages/resource-store-s3/src/client.ts +138 -0
  602. package/packages/resource-store-s3/src/index.ts +10 -0
  603. package/packages/resource-store-s3/src/store.ts +258 -0
  604. package/packages/run/README.md +23 -0
  605. package/packages/run/package.json +16 -0
  606. package/packages/run/src/candidate.ts +33 -0
  607. package/packages/run/src/facet.ts +59 -0
  608. package/packages/run/src/frontend-facet.ts +23 -0
  609. package/packages/run/src/frontend.ts +62 -0
  610. package/packages/run/src/graph.ts +65 -0
  611. package/packages/run/src/index.ts +33 -0
  612. package/packages/run/src/registry.ts +24 -0
  613. package/packages/run/src/resolve.ts +213 -0
  614. package/packages/run/src/types.ts +147 -0
  615. package/packages/run-markup/README.md +60 -0
  616. package/packages/run-markup/package.json +22 -0
  617. package/packages/run-markup/src/activation.ts +10 -0
  618. package/packages/run-markup/src/frontend.ts +16 -0
  619. package/packages/run-markup/src/index.ts +5 -0
  620. package/packages/run-markup/src/syntax.ts +304 -0
  621. package/packages/runtime/README.md +39 -0
  622. package/packages/runtime/package.json +15 -0
  623. package/packages/runtime/src/capacity.ts +51 -0
  624. package/packages/runtime/src/catalog.ts +30 -0
  625. package/packages/runtime/src/credentials.ts +124 -0
  626. package/packages/runtime/src/environment.ts +6 -0
  627. package/packages/runtime/src/execution.ts +125 -0
  628. package/packages/runtime/src/index.ts +24 -0
  629. package/packages/runtime/src/operations.ts +99 -0
  630. package/packages/runtime/src/scheduler.ts +281 -0
  631. package/packages/runtime/src/submission.ts +24 -0
  632. package/packages/runtime/src/types.ts +157 -0
  633. package/packages/runtime-host-node/README.md +25 -0
  634. package/packages/runtime-host-node/package.json +19 -0
  635. package/packages/runtime-host-node/src/index.ts +421 -0
  636. package/packages/runtime-host-node/src/packages.ts +158 -0
  637. package/packages/runtime-kit/README.md +42 -0
  638. package/packages/runtime-kit/package.json +16 -0
  639. package/packages/runtime-kit/src/index.ts +307 -0
  640. package/packages/runtime-kit/src/request-deadline.ts +17 -0
  641. package/packages/runtime-local/README.md +119 -0
  642. package/packages/runtime-local/package.json +33 -0
  643. package/packages/runtime-local/src/actions.ts +20 -0
  644. package/packages/runtime-local/src/config.ts +1229 -0
  645. package/packages/runtime-local/src/control.ts +120 -0
  646. package/packages/runtime-local/src/credentials.ts +61 -0
  647. package/packages/runtime-local/src/host.ts +174 -0
  648. package/packages/runtime-local/src/index.ts +36 -0
  649. package/packages/runtime-local/src/process-control.ts +59 -0
  650. package/packages/runtime-local/src/process-logs.ts +33 -0
  651. package/packages/runtime-local/src/programs.ts +441 -0
  652. package/packages/runtime-local/src/result-writer.ts +246 -0
  653. package/packages/runtime-local/src/runtime.ts +342 -0
  654. package/packages/runtime-local/src/types.ts +100 -0
  655. package/packages/runtime-local/src/worker-process.ts +343 -0
  656. package/packages/runtime-local/src/worker.ts +449 -0
  657. package/packages/screen-overlay/README.md +17 -0
  658. package/packages/screen-overlay/package.json +31 -0
  659. package/packages/screen-overlay/preview/Track.png +0 -0
  660. package/packages/screen-overlay/src/activation.ts +15 -0
  661. package/packages/screen-overlay/src/component.ts +20 -0
  662. package/packages/screen-overlay/src/fragment.ts +40 -0
  663. package/packages/screen-overlay/src/index.ts +7 -0
  664. package/packages/screen-overlay/src/manifest.ts +305 -0
  665. package/packages/screen-overlay/src/program.ts +321 -0
  666. package/packages/screen-overlay/src/surface.ts +90 -0
  667. package/packages/screen-overlay/src/types.ts +69 -0
  668. package/packages/screen-overlay-studio/README.md +3 -0
  669. package/packages/screen-overlay-studio/package.json +14 -0
  670. package/packages/screen-overlay-studio/src/activation.ts +7 -0
  671. package/packages/screen-overlay-studio/src/index.ts +80 -0
  672. package/packages/script/README.md +137 -0
  673. package/packages/script/package.json +22 -0
  674. package/packages/script/src/activation.ts +20 -0
  675. package/packages/script/src/edit.ts +174 -0
  676. package/packages/script/src/error.ts +13 -0
  677. package/packages/script/src/format.ts +83 -0
  678. package/packages/script/src/index.ts +20 -0
  679. package/packages/script/src/lexical.ts +133 -0
  680. package/packages/script/src/manifest.ts +95 -0
  681. package/packages/script/src/narrative.ts +232 -0
  682. package/packages/script/src/parser.ts +850 -0
  683. package/packages/script/src/surface.ts +132 -0
  684. package/packages/script/src/types.ts +125 -0
  685. package/packages/script-studio/package.json +13 -0
  686. package/packages/script-studio/src/activation.ts +8 -0
  687. package/packages/script-studio/src/index.ts +61 -0
  688. package/packages/seedance/README.md +19 -0
  689. package/packages/seedance/package.json +22 -0
  690. package/packages/seedance/src/activation.ts +38 -0
  691. package/packages/seedance/src/fragment.ts +46 -0
  692. package/packages/seedance/src/index.ts +329 -0
  693. package/packages/seedance/src/surface.ts +355 -0
  694. package/packages/seedance-kits/README.md +153 -0
  695. package/packages/seedance-kits/kits/broll-v1.svs +52 -0
  696. package/packages/seedance-kits/kits/call-v1.svs +55 -0
  697. package/packages/seedance-kits/kits/camera-reference-v1.svs +9 -0
  698. package/packages/seedance-kits/kits/motion-reference-v1.svs +9 -0
  699. package/packages/seedance-kits/kits/podcast-v1.svs +55 -0
  700. package/packages/seedance-kits/kits/speaker-v1.svs +136 -0
  701. package/packages/seedance-kits/kits/street-interview-v1.svs +49 -0
  702. package/packages/seedance-kits/package.json +24 -0
  703. package/packages/seedream/README.md +21 -0
  704. package/packages/seedream/package.json +21 -0
  705. package/packages/seedream/src/activation.ts +12 -0
  706. package/packages/seedream/src/index.ts +162 -0
  707. package/packages/seedream/src/surface.ts +84 -0
  708. package/packages/semantic-take-adjust/package.json +21 -0
  709. package/packages/semantic-take-adjust/src/activation.ts +22 -0
  710. package/packages/semantic-take-adjust/src/component.ts +31 -0
  711. package/packages/semantic-take-adjust/src/fragment.ts +24 -0
  712. package/packages/semantic-take-adjust/src/index.ts +12 -0
  713. package/packages/semantic-take-adjust/src/manifest.ts +57 -0
  714. package/packages/semantic-take-adjust/src/program.ts +49 -0
  715. package/packages/semantic-take-adjust/src/surface.ts +96 -0
  716. package/packages/semantic-take-adjust/src/types.ts +9 -0
  717. package/packages/semantic-track/README.md +21 -0
  718. package/packages/semantic-track/package.json +22 -0
  719. package/packages/semantic-track/src/activation.ts +8 -0
  720. package/packages/semantic-track/src/component.ts +24 -0
  721. package/packages/semantic-track/src/identity.ts +58 -0
  722. package/packages/semantic-track/src/index.ts +6 -0
  723. package/packages/semantic-track/src/location.ts +81 -0
  724. package/packages/semantic-track/src/manifest.ts +38 -0
  725. package/packages/semantic-track/src/projection.ts +71 -0
  726. package/packages/semantic-track/src/types.ts +26 -0
  727. package/packages/source/README.md +13 -0
  728. package/packages/source/package.json +13 -0
  729. package/packages/source/src/header.ts +80 -0
  730. package/packages/source/src/index.ts +17 -0
  731. package/packages/source/src/unit.ts +38 -0
  732. package/packages/spatial/README.md +77 -0
  733. package/packages/spatial/package.json +24 -0
  734. package/packages/spatial/src/activation.ts +43 -0
  735. package/packages/spatial/src/author.ts +59 -0
  736. package/packages/spatial/src/component.ts +45 -0
  737. package/packages/spatial/src/fragment.ts +36 -0
  738. package/packages/spatial/src/geometry.ts +238 -0
  739. package/packages/spatial/src/index.ts +37 -0
  740. package/packages/spatial/src/manifest.ts +341 -0
  741. package/packages/spatial/src/region-timeline.ts +69 -0
  742. package/packages/spatial/src/schema.ts +47 -0
  743. package/packages/spatial/src/surface.ts +319 -0
  744. package/packages/spatial/src/types.ts +101 -0
  745. package/packages/speech/README.md +16 -0
  746. package/packages/speech/package.json +19 -0
  747. package/packages/speech/src/activation.ts +7 -0
  748. package/packages/speech/src/component.ts +43 -0
  749. package/packages/speech/src/identity.ts +73 -0
  750. package/packages/speech/src/index.ts +6 -0
  751. package/packages/speech/src/manifest.ts +30 -0
  752. package/packages/speech/src/materialize.ts +103 -0
  753. package/packages/speech/src/schema.ts +42 -0
  754. package/packages/speech/src/types.ts +54 -0
  755. package/packages/speech-alignment/README.md +29 -0
  756. package/packages/speech-alignment/package.json +25 -0
  757. package/packages/speech-alignment/src/activation.ts +8 -0
  758. package/packages/speech-alignment/src/align.ts +235 -0
  759. package/packages/speech-alignment/src/component.ts +37 -0
  760. package/packages/speech-alignment/src/error.ts +9 -0
  761. package/packages/speech-alignment/src/index.ts +7 -0
  762. package/packages/speech-alignment/src/local.ts +64 -0
  763. package/packages/speech-alignment/src/locate.ts +473 -0
  764. package/packages/speech-alignment/src/manifest.ts +37 -0
  765. package/packages/speech-alignment/src/normalize.ts +79 -0
  766. package/packages/speech-alignment/src/types.ts +30 -0
  767. package/packages/speech-evidence/README.md +3 -0
  768. package/packages/speech-evidence/package.json +16 -0
  769. package/packages/speech-evidence/src/activation.ts +3 -0
  770. package/packages/speech-evidence/src/index.ts +102 -0
  771. package/packages/speech-track/README.md +51 -0
  772. package/packages/speech-track/package.json +28 -0
  773. package/packages/speech-track/preview/Track.png +0 -0
  774. package/packages/speech-track/src/activation.ts +19 -0
  775. package/packages/speech-track/src/component.ts +45 -0
  776. package/packages/speech-track/src/fragment.ts +74 -0
  777. package/packages/speech-track/src/index.ts +7 -0
  778. package/packages/speech-track/src/manifest.ts +73 -0
  779. package/packages/speech-track/src/program.ts +64 -0
  780. package/packages/speech-track/src/surface.ts +35 -0
  781. package/packages/speech-track/src/types.ts +6 -0
  782. package/packages/speech-track-studio/README.md +3 -0
  783. package/packages/speech-track-studio/package.json +14 -0
  784. package/packages/speech-track-studio/src/activation.ts +7 -0
  785. package/packages/speech-track-studio/src/index.ts +40 -0
  786. package/packages/store-sqlite/README.md +14 -0
  787. package/packages/store-sqlite/package.json +18 -0
  788. package/packages/store-sqlite/src/index.ts +2 -0
  789. package/packages/store-sqlite/src/store.ts +1101 -0
  790. package/packages/studio/README.md +125 -0
  791. package/packages/studio/index.html +10 -0
  792. package/packages/studio/package.json +50 -0
  793. package/packages/studio/src/build-library.ts +281 -0
  794. package/packages/studio/src/companion-assembly.ts +39 -0
  795. package/packages/studio/src/compile.ts +166 -0
  796. package/packages/studio/src/domain.ts +139 -0
  797. package/packages/studio/src/execute.ts +57 -0
  798. package/packages/studio/src/fallback-companions.ts +98 -0
  799. package/packages/studio/src/observe.ts +202 -0
  800. package/packages/studio/src/parameter-values.ts +81 -0
  801. package/packages/studio/src/parameters.ts +550 -0
  802. package/packages/studio/src/preview/render.ts +51 -0
  803. package/packages/studio/src/preview/runtime-shim.ts +184 -0
  804. package/packages/studio/src/programme.ts +276 -0
  805. package/packages/studio/src/run.ts +85 -0
  806. package/packages/studio/src/server.ts +725 -0
  807. package/packages/studio/src/session.ts +111 -0
  808. package/packages/studio/src/shared.ts +315 -0
  809. package/packages/studio/src/snapshot.ts +454 -0
  810. package/packages/studio/src/source-transaction.ts +57 -0
  811. package/packages/studio/src/storyboard.ts +133 -0
  812. package/packages/studio/src/studio-preflight.ts +198 -0
  813. package/packages/studio/src/studio-registry.ts +406 -0
  814. package/packages/studio/src/studio-trace.ts +136 -0
  815. package/packages/studio/src/style.css +1525 -0
  816. package/packages/studio/src/surface-preview.ts +35 -0
  817. package/packages/studio/src/temporal-graph.ts +227 -0
  818. package/packages/studio/src/ui/code.ts +450 -0
  819. package/packages/studio/src/ui/icons.ts +51 -0
  820. package/packages/studio/src/ui/library.ts +378 -0
  821. package/packages/studio/src/ui/main.ts +1001 -0
  822. package/packages/studio/src/ui/markers.ts +152 -0
  823. package/packages/studio/src/ui/material-preview.ts +176 -0
  824. package/packages/studio/src/ui/overlay.ts +144 -0
  825. package/packages/studio/src/ui/resize.ts +74 -0
  826. package/packages/studio/src/ui/selection.ts +178 -0
  827. package/packages/studio/src/ui/stage.ts +231 -0
  828. package/packages/studio/src/ui/syntax.ts +195 -0
  829. package/packages/studio/src/ui/timeline.ts +1041 -0
  830. package/packages/studio/src/ui/writeback.ts +10 -0
  831. package/packages/studio/src/ui/zoom.ts +129 -0
  832. package/packages/studio/start.ts +143 -0
  833. package/packages/studio-adapter/README.md +186 -0
  834. package/packages/studio-adapter/package.json +14 -0
  835. package/packages/studio-adapter/src/index.ts +850 -0
  836. package/packages/svs/README.md +37 -0
  837. package/packages/svs/package.json +21 -0
  838. package/packages/svs/src/activation.ts +11 -0
  839. package/packages/svs/src/format.ts +16 -0
  840. package/packages/svs/src/frontend.ts +33 -0
  841. package/packages/svs/src/index.ts +5 -0
  842. package/packages/svs/src/manifest.ts +17 -0
  843. package/packages/svs/src/parser.ts +279 -0
  844. package/packages/svs/src/types.ts +26 -0
  845. package/packages/temporal/README.md +31 -0
  846. package/packages/temporal/package.json +20 -0
  847. package/packages/temporal/src/activation.ts +9 -0
  848. package/packages/temporal/src/component.ts +68 -0
  849. package/packages/temporal/src/index.ts +110 -0
  850. package/packages/temporal/src/location.ts +67 -0
  851. package/packages/temporal/src/projection.ts +280 -0
  852. package/packages/temporal/src/rational.ts +80 -0
  853. package/packages/temporal/src/sample.ts +43 -0
  854. package/packages/temporal/src/schedule.ts +52 -0
  855. package/packages/temporal/src/types.ts +124 -0
  856. package/packages/temporal-markup/README.md +75 -0
  857. package/packages/temporal-markup/package.json +18 -0
  858. package/packages/temporal-markup/src/index.ts +537 -0
  859. package/packages/temporal-markup/src/space.ts +59 -0
  860. package/packages/text/README.md +59 -0
  861. package/packages/text/package.json +21 -0
  862. package/packages/text/src/activation.ts +33 -0
  863. package/packages/text/src/component.ts +72 -0
  864. package/packages/text/src/fragment.ts +57 -0
  865. package/packages/text/src/frontend.ts +39 -0
  866. package/packages/text/src/index.ts +27 -0
  867. package/packages/text/src/manifest.ts +170 -0
  868. package/packages/text/src/program.ts +418 -0
  869. package/packages/text/src/surface.ts +212 -0
  870. package/packages/text/src/svs.ts +189 -0
  871. package/packages/text/src/types.ts +82 -0
  872. package/packages/transport-aws-lambda/README.md +20 -0
  873. package/packages/transport-aws-lambda/package.json +14 -0
  874. package/packages/transport-aws-lambda/src/index.ts +131 -0
  875. package/packages/typography-track/README.md +50 -0
  876. package/packages/typography-track/package.json +34 -0
  877. package/packages/typography-track/preview/Mask.png +0 -0
  878. package/packages/typography-track/preview/Track.png +0 -0
  879. package/packages/typography-track/src/activation.ts +36 -0
  880. package/packages/typography-track/src/component.ts +93 -0
  881. package/packages/typography-track/src/fragment.ts +30 -0
  882. package/packages/typography-track/src/index.ts +11 -0
  883. package/packages/typography-track/src/manifest.ts +556 -0
  884. package/packages/typography-track/src/program.ts +622 -0
  885. package/packages/typography-track/src/surface.ts +842 -0
  886. package/packages/typography-track/src/types.ts +109 -0
  887. package/packages/typography-track-studio/README.md +3 -0
  888. package/packages/typography-track-studio/package.json +14 -0
  889. package/packages/typography-track-studio/src/activation.ts +7 -0
  890. package/packages/typography-track-studio/src/index.ts +116 -0
  891. package/packages/validation/README.md +11 -0
  892. package/packages/validation/package.json +15 -0
  893. package/packages/validation/src/index.ts +100 -0
  894. package/packages/video-cli/README.md +181 -0
  895. package/packages/video-cli/package.json +37 -0
  896. package/packages/video-cli/src/capture.ts +174 -0
  897. package/packages/video-cli/src/cli.ts +109 -0
  898. package/packages/video-cli/src/compiler.ts +32 -0
  899. package/packages/video-cli/src/creation.ts +449 -0
  900. package/packages/video-cli/src/distribution.ts +88 -0
  901. package/packages/video-cli/src/index.ts +50 -0
  902. package/packages/video-cli/src/media.ts +701 -0
  903. package/packages/video-cli/src/package-selection.ts +34 -0
  904. package/packages/video-cli/src/process.ts +71 -0
  905. package/packages/video-cli/src/studio-distribution.ts +19 -0
  906. package/packages/video-cli/src/transcript.ts +71 -0
  907. package/packages/video-cli/src/vocabulary.ts +386 -0
  908. package/packages/visual-ir/README.md +36 -0
  909. package/packages/visual-ir/package.json +16 -0
  910. package/packages/visual-ir/src/activation.ts +3 -0
  911. package/packages/visual-ir/src/index.ts +7 -0
  912. package/packages/visual-ir/src/style.ts +222 -0
  913. package/packages/volcengine-matting/README.md +89 -0
  914. package/packages/volcengine-matting/package.json +16 -0
  915. package/packages/volcengine-matting/src/activation.ts +13 -0
  916. package/packages/volcengine-matting/src/index.ts +45 -0
  917. package/packages/volcengine-matting/src/surface.ts +48 -0
  918. package/packages/whisperx/README.md +34 -0
  919. package/packages/whisperx/package.json +28 -0
  920. package/packages/whisperx/src/activation.ts +18 -0
  921. package/packages/whisperx/src/component.ts +64 -0
  922. package/packages/whisperx/src/evidence.ts +69 -0
  923. package/packages/whisperx/src/fragment.ts +76 -0
  924. package/packages/whisperx/src/index.ts +14 -0
  925. package/packages/whisperx/src/manifest.ts +92 -0
  926. package/packages/whisperx/src/surface.ts +90 -0
  927. package/packages/whisperx/src/transcript.ts +97 -0
  928. package/packages/whisperx/src/types.ts +9 -0
  929. package/packages/workspace/README.md +4 -0
  930. package/packages/workspace/package.json +14 -0
  931. package/packages/workspace/src/index.ts +38 -0
  932. package/packages/workspace-fs-node/README.md +13 -0
  933. package/packages/workspace-fs-node/package.json +15 -0
  934. package/packages/workspace-fs-node/src/index.ts +6 -0
  935. package/packages/workspace-fs-node/src/workspace.ts +226 -0
  936. package/packages/yt-dlp/README.md +31 -0
  937. package/packages/yt-dlp/package.json +10 -0
  938. package/packages/yt-dlp/src/download.ts +104 -0
  939. package/packages/yt-dlp/src/index.ts +1 -0
  940. package/services/image-opencv/README.md +33 -0
  941. package/services/image-opencv/package.json +14 -0
  942. package/services/image-opencv/pyproject.toml +13 -0
  943. package/services/image-opencv/uv.lock +56 -0
  944. package/services/whisperx/README.md +82 -0
  945. package/services/whisperx/package.json +15 -0
  946. package/services/whisperx/pyproject.toml +26 -0
  947. package/services/whisperx/src/hypit_whisperx_service/__init__.py +6 -0
  948. package/services/whisperx/src/hypit_whisperx_service/__main__.py +29 -0
  949. package/services/whisperx/src/hypit_whisperx_service/application.py +88 -0
  950. package/services/whisperx/src/hypit_whisperx_service/audio.py +66 -0
  951. package/services/whisperx/src/hypit_whisperx_service/check.py +35 -0
  952. package/services/whisperx/src/hypit_whisperx_service/config.py +81 -0
  953. package/services/whisperx/src/hypit_whisperx_service/engine.py +173 -0
  954. package/services/whisperx/src/hypit_whisperx_service/prepare.py +19 -0
  955. package/services/whisperx/src/hypit_whisperx_service/resources.py +41 -0
  956. package/services/whisperx/src/hypit_whisperx_service/server.py +101 -0
  957. package/services/whisperx/uv.lock +3381 -0
  958. package/services/yt-dlp/README.md +19 -0
  959. package/services/yt-dlp/package.json +14 -0
  960. package/services/yt-dlp/pyproject.toml +13 -0
  961. package/services/yt-dlp/uv.lock +23 -0
  962. package/index.js +0 -1
@@ -0,0 +1,301 @@
1
+ import { readFile, realpath, stat } from "node:fs/promises";
2
+ import { isAbsolute, join, relative, resolve, sep } from "node:path";
3
+ import { pathToFileURL } from "node:url";
4
+
5
+ import { modulePackageAbi } from "@hypit/protocol";
6
+
7
+ import type {
8
+ LoadedPackage,
9
+ LogicalPackageAddress,
10
+ NodePackageLoadOptions,
11
+ NodePackageContribution,
12
+ NodePackageSelectionRequest,
13
+ } from "./types.js";
14
+ import { externalPackageRoots, locateNodePackage } from "./location.js";
15
+
16
+ type PackageJson = {
17
+ readonly name: string;
18
+ readonly version?: string;
19
+ readonly hypit?: { readonly activation?: string };
20
+ readonly dependencies: Readonly<Record<string, string>>;
21
+ };
22
+
23
+ type ResolvedPackage = { readonly root: string; readonly json: PackageJson };
24
+
25
+ function assert(condition: unknown, message: string): asserts condition {
26
+ if (!condition) throw new Error(message);
27
+ }
28
+
29
+ function object(value: unknown, subject: string): Record<string, unknown> {
30
+ assert(value !== null && typeof value === "object" && !Array.isArray(value), `${subject} must be an object`);
31
+ return value as Record<string, unknown>;
32
+ }
33
+
34
+ function text(value: unknown, subject: string): string {
35
+ assert(typeof value === "string" && value.length > 0, `${subject} must be a non-empty string`);
36
+ return value;
37
+ }
38
+
39
+ function parsePackageJson(value: unknown, subject: string): PackageJson {
40
+ const item = object(value, subject);
41
+ const hypit = item.hypit === undefined ? undefined : object(item.hypit, `${subject}.hypit`);
42
+ const dependencies = item.dependencies === undefined ? {} : object(item.dependencies, `${subject}.dependencies`);
43
+ return {
44
+ name: text(item.name, `${subject}.name`),
45
+ ...(item.version === undefined ? {} : { version: text(item.version, `${subject}.version`) }),
46
+ ...(hypit?.activation === undefined ? {} : { hypit: { activation: text(hypit.activation, `${subject}.hypit.activation`) } }),
47
+ dependencies: Object.fromEntries(Object.entries(dependencies).map(([name, version]) => [
48
+ name,
49
+ text(version, `${subject}.dependencies.${name}`),
50
+ ])),
51
+ };
52
+ }
53
+
54
+ async function packageJson(root: string): Promise<PackageJson> {
55
+ const path = join(root, "package.json");
56
+ return parsePackageJson(JSON.parse(await readFile(path, "utf8")), path);
57
+ }
58
+
59
+ async function resolvePackage(specifier: string, roots: readonly string[]): Promise<ResolvedPackage> {
60
+ let failure: unknown;
61
+ for (const from of roots) {
62
+ try {
63
+ const located = locateNodePackage(specifier, {
64
+ from: join(resolve(from), "__hypit_package_loader__.mjs"),
65
+ workspaceRoots: [from],
66
+ distributionRoots: specifier.startsWith("@hypit/") ? [from] : [],
67
+ externalRoots: [],
68
+ allowExternal: false,
69
+ });
70
+ return { root: located.root, json: await packageJson(located.root) };
71
+ } catch (error) {
72
+ failure = error;
73
+ }
74
+ }
75
+ throw new Error(`cannot resolve installed package ${specifier} from ${roots.join(", ")}: ${failure instanceof Error ? failure.message : String(failure)}`);
76
+ }
77
+
78
+ function resolutionRoots(
79
+ specifier: string,
80
+ projectRoots: readonly string[],
81
+ distributionRoots: readonly string[],
82
+ ): readonly string[] {
83
+ // @hypit is the active Distribution's namespace. A project dependency with
84
+ // the same spelling must never silently replace the tool ABI it is using.
85
+ return specifier.startsWith("@hypit/") && distributionRoots.length > 0
86
+ ? distributionRoots
87
+ : [...projectRoots, ...distributionRoots];
88
+ }
89
+
90
+ function activationPath(item: ResolvedPackage): string {
91
+ const declared = item.json.hypit?.activation;
92
+ assert(declared !== undefined, `${item.json.name} does not declare hypit.activation`);
93
+ assert(!isAbsolute(declared), `${item.json.name} activation must be package-relative`);
94
+ const target = resolve(item.root, declared);
95
+ const relation = relative(item.root, target);
96
+ assert(relation !== "" && relation !== ".." && !relation.startsWith(`..${sep}`), `${item.json.name} activation escapes its package`);
97
+ return target;
98
+ }
99
+
100
+ async function importContribution(item: ResolvedPackage): Promise<NodePackageContribution> {
101
+ const target = activationPath(item);
102
+ assert((await stat(target)).isFile(), `${item.json.name} activation is not a file`);
103
+ const imported = await import(pathToFileURL(target).href) as { readonly default?: unknown };
104
+ assert(imported.default !== null && typeof imported.default === "object", `${item.json.name} activation has no default package export`);
105
+ const contribution = imported.default as Partial<NodePackageContribution>;
106
+ assert(contribution.format === "hypit.node-package@1", `${item.json.name} activation has an unsupported package format`);
107
+ return contribution as NodePackageContribution;
108
+ }
109
+
110
+ function within(root: string, candidate: string): boolean {
111
+ const relation = relative(resolve(root), resolve(candidate));
112
+ return relation === "" || (relation !== ".." && !relation.startsWith(`..${sep}`) && !isAbsolute(relation));
113
+ }
114
+
115
+ async function assertExternalDependencies(
116
+ item: ResolvedPackage,
117
+ distributionRoots: readonly string[],
118
+ externalRoots: readonly string[],
119
+ ): Promise<void> {
120
+ const distributionOwned = distributionRoots.some((root) => within(root, item.root));
121
+ for (const [name, required] of Object.entries(item.json.dependencies)) {
122
+ if (name.startsWith("@hypit/") || required.startsWith("workspace:")) continue;
123
+ try {
124
+ const resolved = locateNodePackage(name, {
125
+ from: join(item.root, "__hypit_package_dependencies__.mjs"),
126
+ distributionRoots,
127
+ externalRoots,
128
+ allowExternal: distributionOwned,
129
+ });
130
+ if (/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/u.test(required)
131
+ && resolved.manifest.version !== required) {
132
+ throw new Error(`installed version is ${resolved.manifest.version ?? "unknown"}`);
133
+ }
134
+ } catch (error) {
135
+ const repair = distributionOwned
136
+ ? `Install it once with: hypit packages install ${name}@${required}`
137
+ : `Install it with the project package manager that owns ${item.root}`;
138
+ throw new Error(`${item.json.name} requires ${name}@${required}. ${repair}`, { cause: error });
139
+ }
140
+ }
141
+ }
142
+
143
+ function addressKey(value: LogicalPackageAddress): string {
144
+ return `${value.abi}\u0000${value.name}`;
145
+ }
146
+
147
+ function offers(value: NodePackageContribution): readonly LogicalPackageAddress[] {
148
+ return [
149
+ ...(value.modules ?? []).flatMap((item) => [
150
+ `${item.manifest.name}@${item.manifest.version}`,
151
+ ...(item.specifiers ?? []),
152
+ ].map((name) => ({ abi: modulePackageAbi, name }))),
153
+ ...(value.hostFacets ?? []).flatMap((facet) => (facet.offers ?? []).map((name) => ({ abi: facet.abi, name }))),
154
+ ];
155
+ }
156
+
157
+ /** Conventional physical package spelling for a logical @scope/name@version address. */
158
+ export function physicalPackageName(logical: string): string {
159
+ const slash = logical.startsWith("@") ? logical.indexOf("/", 1) : -1;
160
+ const version = logical.lastIndexOf("@");
161
+ const unversioned = version > Math.max(slash, 0) ? logical.slice(0, version) : logical;
162
+ if (!unversioned.startsWith("@")) return unversioned.split("/", 1)[0]!;
163
+ const packageSlash = unversioned.indexOf("/", 1);
164
+ const subpath = unversioned.indexOf("/", packageSlash + 1);
165
+ return subpath < 0 ? unversioned : unversioned.slice(0, subpath);
166
+ }
167
+
168
+ export class NodePackageSelectionMissingError extends Error {
169
+ readonly code = "PACKAGE_SELECTION_MISSING";
170
+ constructor(readonly address: LogicalPackageAddress) {
171
+ super(`installed packages do not provide ${address.abi} ${address.name}`);
172
+ this.name = "NodePackageSelectionMissingError";
173
+ }
174
+ }
175
+
176
+ /**
177
+ * Resolve the ordinary upstream npm dependencies of Distribution packages.
178
+ * Internal @hypit dependencies are followed to their manifests. Other selected
179
+ * packages belong to their project's package manager, including their dependencies.
180
+ */
181
+ export async function distributionExternalPackageRequirements(
182
+ specifiers: readonly string[],
183
+ distributionRoot: string,
184
+ ): Promise<readonly { readonly name: string; readonly version: string; readonly specifier: string }[]> {
185
+ const root = resolve(distributionRoot);
186
+ const queue = [...new Set(specifiers.filter((name) => name.startsWith("@hypit/")))].sort();
187
+ const visited = new Set<string>();
188
+ const external = new Map<string, string>();
189
+ while (queue.length > 0) {
190
+ const name = queue.shift()!;
191
+ if (visited.has(name)) continue;
192
+ visited.add(name);
193
+ const physical = await resolvePackage(name, [root]);
194
+ for (const [dependency, version] of Object.entries(physical.json.dependencies)) {
195
+ if (dependency.startsWith("@hypit/")) {
196
+ queue.push(dependency);
197
+ continue;
198
+ }
199
+ const previous = external.get(dependency);
200
+ if (previous !== undefined && previous !== version) {
201
+ throw new Error(`${dependency} is required at both ${previous} and ${version} by the selected Distribution packages`);
202
+ }
203
+ external.set(dependency, version);
204
+ }
205
+ }
206
+ return [...external.entries()]
207
+ .sort(([left], [right]) => left.localeCompare(right))
208
+ .map(([name, version]) => ({ name, version, specifier: `${name}@${version}` }));
209
+ }
210
+
211
+ /**
212
+ * Load the packages explicitly named by Source discovery or a Runtime Profile.
213
+ * Node's package manager owns installed versions and bytes; Hypit validates only the
214
+ * contribution boundary it consumes.
215
+ */
216
+ export async function loadNodePackageSelection(
217
+ request: readonly string[] | NodePackageSelectionRequest,
218
+ root: string,
219
+ options: NodePackageLoadOptions = {},
220
+ ): Promise<readonly LoadedPackage[]> {
221
+ const normalized: NodePackageSelectionRequest = Array.isArray(request)
222
+ ? { selected: request }
223
+ : request as NodePackageSelectionRequest;
224
+ const selected = new Set(normalized.selected);
225
+ for (const address of normalized.logical ?? []) selected.add(physicalPackageName(address.name));
226
+ if (selected.size === 0) return [];
227
+
228
+ const projectRoot = await realpath(root);
229
+ const projectRoots = [projectRoot];
230
+ const distributionRoots = (await Promise.all((options.fallbackRoots ?? []).map(async (candidate) =>
231
+ await realpath(candidate))))
232
+ .filter((candidate) => candidate !== projectRoot);
233
+ const externalRoots = options.externalRoots ?? externalPackageRoots();
234
+ const roots = await Promise.all([...selected].sort().map(async (name) =>
235
+ await resolvePackage(name, resolutionRoots(name, projectRoots, distributionRoots))));
236
+ type ActivatedPackage = { readonly physical: ResolvedPackage; readonly contribution: NodePackageContribution };
237
+ const activated = new Map<string, ActivatedPackage>();
238
+ const providedModules = new Set<string>();
239
+ const requirements: { readonly key: string; readonly from: string }[] = [];
240
+ const moduleKey = (name: string, version: string) => `${name}@${version}`;
241
+ const add = (item: ActivatedPackage): void => {
242
+ assert(!activated.has(item.physical.json.name), `selected package ${item.physical.json.name} is repeated`);
243
+ activated.set(item.physical.json.name, item);
244
+ for (const module of item.contribution.modules ?? []) {
245
+ const key = moduleKey(module.manifest.name, module.manifest.version);
246
+ assert(!providedModules.has(key), `selected packages provide ${key} more than once`);
247
+ providedModules.add(key);
248
+ for (const dependency of module.manifest.dependencies) {
249
+ requirements.push({
250
+ key: moduleKey(dependency.module.name, dependency.module.version),
251
+ from: item.physical.root,
252
+ });
253
+ }
254
+ }
255
+ };
256
+ for (const item of await Promise.all(roots.map(async (physical) => ({
257
+ physical,
258
+ contribution: await (async () => {
259
+ await assertExternalDependencies(physical, distributionRoots, externalRoots);
260
+ return await importContribution(physical);
261
+ })(),
262
+ })))) add(item);
263
+
264
+ for (let cursor = 0; cursor < requirements.length; cursor += 1) {
265
+ const requirement = requirements[cursor] as { readonly key: string; readonly from: string };
266
+ if (providedModules.has(requirement.key)) continue;
267
+ const providerPackage = physicalPackageName(requirement.key);
268
+ assert(!activated.has(providerPackage), `selected package ${providerPackage} provides the wrong ${requirement.key}`);
269
+ const physical = await resolvePackage(
270
+ providerPackage,
271
+ resolutionRoots(providerPackage, [requirement.from, root], distributionRoots),
272
+ );
273
+ await assertExternalDependencies(physical, distributionRoots, externalRoots);
274
+ const provider = { physical, contribution: await importContribution(physical) };
275
+ add(provider);
276
+ assert(providedModules.has(requirement.key), `${providerPackage} does not provide the required ${requirement.key}`);
277
+ }
278
+
279
+ const offerOwners = new Map<string, Set<string>>();
280
+ for (const item of activated.values()) {
281
+ for (const offer of offers(item.contribution)) {
282
+ const key = addressKey(offer);
283
+ const owners = offerOwners.get(key) ?? new Set<string>();
284
+ owners.add(item.physical.json.name);
285
+ offerOwners.set(key, owners);
286
+ }
287
+ }
288
+ for (const address of normalized.logical ?? []) {
289
+ const providers = offerOwners.get(addressKey(address));
290
+ if (providers === undefined || providers.size === 0) throw new NodePackageSelectionMissingError(address);
291
+ assert(providers.size === 1, `${address.abi} ${address.name} is provided by more than one selected package`);
292
+ }
293
+
294
+ const packages: LoadedPackage[] = [...activated.values()]
295
+ .sort((left, right) => left.physical.json.name.localeCompare(right.physical.json.name))
296
+ .map((item) => ({
297
+ specifier: item.physical.json.name,
298
+ contribution: item.contribution,
299
+ }));
300
+ return packages;
301
+ }
@@ -0,0 +1,279 @@
1
+ import { existsSync, readFileSync, readdirSync, realpathSync, statSync } from "node:fs";
2
+ import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+
5
+ export type LocatedNodePackage = {
6
+ readonly root: string;
7
+ readonly manifest: {
8
+ readonly name: string;
9
+ readonly version?: string;
10
+ readonly bin?: string | Readonly<Record<string, string>>;
11
+ };
12
+ };
13
+
14
+ export type LocatedNodePackageSource = {
15
+ readonly specifier: string;
16
+ readonly package: string;
17
+ readonly root: string;
18
+ readonly source: string;
19
+ };
20
+
21
+ export type LocateNodePackageOptions = {
22
+ /** File or module URL whose owning package is requesting the dependency. */
23
+ readonly from: string | URL;
24
+ /** Explicit project roots whose `packages/` or `services/` directories own selected packages. */
25
+ readonly workspaceRoots?: readonly string[];
26
+ /** Defaults to the active Hypit Distribution roots. */
27
+ readonly distributionRoots?: readonly string[];
28
+ /** Defaults to the active machine npm package roots. */
29
+ readonly externalRoots?: readonly string[];
30
+ /** Defaults to true only when `from` belongs to the active Distribution. */
31
+ readonly allowExternal?: boolean;
32
+ };
33
+
34
+ let activeDistributionRoots: readonly string[] = [];
35
+ let activeExternalRoots: readonly string[] = [];
36
+
37
+ function normalizedRoots(roots: readonly string[]): readonly string[] {
38
+ return [...new Set(roots.map((root) => resolve(root)))];
39
+ }
40
+
41
+ export function setActiveDistributionPackageRoots(roots: readonly string[]): void {
42
+ activeDistributionRoots = normalizedRoots(roots);
43
+ }
44
+
45
+ export function setActiveExternalPackageRoots(roots: readonly string[]): void {
46
+ activeExternalRoots = normalizedRoots(roots);
47
+ }
48
+
49
+ export function externalPackageRoots(): readonly string[] {
50
+ return activeExternalRoots;
51
+ }
52
+
53
+ function within(root: string, candidate: string): boolean {
54
+ const relation = relative(resolve(root), resolve(candidate));
55
+ return relation === "" || (relation !== ".." && !relation.startsWith(`..${sep}`) && !isAbsolute(relation));
56
+ }
57
+
58
+ function packageName(value: string): string {
59
+ const parts = value.split("/");
60
+ const segment = (item: string): boolean => /^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(item)
61
+ && item !== "." && item !== "..";
62
+ const valid = value.startsWith("@")
63
+ ? parts.length === 2 && parts[0]!.startsWith("@") && segment(parts[0]!.slice(1)) && segment(parts[1]!)
64
+ : parts.length === 1 && segment(value);
65
+ if (!valid) throw new Error(`${value} must be one exact npm package name`);
66
+ return value;
67
+ }
68
+
69
+ function packageSourceAddress(value: string): { readonly name: string; readonly subpath: string } {
70
+ if (value.startsWith(".") || value.startsWith("/") || value.startsWith("#") || value.includes(":")) {
71
+ throw new Error(`${value} must be one npm package Source export`);
72
+ }
73
+ const parts = value.split("/");
74
+ const name = value.startsWith("@")
75
+ ? parts.length >= 2 ? `${parts[0]}/${parts[1]}` : ""
76
+ : parts[0] ?? "";
77
+ const subpath = value.startsWith("@") ? parts.slice(2).join("/") : parts.slice(1).join("/");
78
+ packageName(name);
79
+ if (subpath.length > 0
80
+ && subpath.split("/").some((part) => part.length === 0 || part === "." || part === "..")) {
81
+ throw new Error(`${value} has an invalid package Source export path`);
82
+ }
83
+ return { name, subpath };
84
+ }
85
+
86
+ function fromPath(value: string | URL): string {
87
+ return value instanceof URL || value.startsWith("file:") ? fileURLToPath(value) : resolve(value);
88
+ }
89
+
90
+ function readPackage(root: string, expectedName: string): LocatedNodePackage | undefined {
91
+ const path = join(root, "package.json");
92
+ if (!existsSync(path)) return undefined;
93
+ const value = JSON.parse(readFileSync(path, "utf8")) as {
94
+ readonly name?: unknown;
95
+ readonly version?: unknown;
96
+ readonly bin?: unknown;
97
+ };
98
+ if (value.name !== expectedName) return undefined;
99
+ const bin = typeof value.bin === "string"
100
+ ? value.bin
101
+ : value.bin !== null && typeof value.bin === "object" && !Array.isArray(value.bin)
102
+ ? Object.fromEntries(Object.entries(value.bin).map(([name, target]) => {
103
+ if (typeof target !== "string") throw new Error(`${path}.bin.${name} must be a string`);
104
+ return [name, target];
105
+ }))
106
+ : undefined;
107
+ if (value.version !== undefined && typeof value.version !== "string") {
108
+ throw new Error(`${path}.version must be a string`);
109
+ }
110
+ return {
111
+ // `.native` because this is the physical path, and on Windows the JavaScript `realpathSync`
112
+ // resolves symlinks and junctions without expanding an 8.3 short name. A temporary directory
113
+ // under a service account arrives as `RUNNER~1\AppData\...`, so a root located here and the same
114
+ // root canonicalized through the asynchronous `realpath` — which does go through libuv — are two
115
+ // different strings for one directory, and every comparison between them fails.
116
+ root: realpathSync.native(root),
117
+ manifest: {
118
+ name: expectedName,
119
+ ...(value.version === undefined ? {} : { version: value.version }),
120
+ ...(bin === undefined ? {} : { bin }),
121
+ },
122
+ };
123
+ }
124
+
125
+ function nodeModulesPackage(root: string, name: string): LocatedNodePackage | undefined {
126
+ return readPackage(join(root, "node_modules", ...name.split("/")), name);
127
+ }
128
+
129
+ function ancestorPackage(name: string, from: string): LocatedNodePackage | undefined {
130
+ let cursor = dirname(from);
131
+ while (true) {
132
+ const found = nodeModulesPackage(cursor, name);
133
+ if (found !== undefined) return found;
134
+ const parent = dirname(cursor);
135
+ if (parent === cursor) return undefined;
136
+ cursor = parent;
137
+ }
138
+ }
139
+
140
+ export function distributionPackageDirectory(root: string, name: string): string | undefined {
141
+ const conventional = join(resolve(root), "packages", name.split("/").at(-1)!);
142
+ if (readPackage(conventional, name) !== undefined) return conventional;
143
+ const services = join(resolve(root), "services");
144
+ if (!existsSync(services)) return undefined;
145
+ for (const entry of readdirSync(services, { withFileTypes: true })) {
146
+ if (!entry.isDirectory()) continue;
147
+ const candidate = join(services, entry.name);
148
+ if (readPackage(candidate, name) !== undefined) return candidate;
149
+ }
150
+ return undefined;
151
+ }
152
+
153
+ function distributionPackage(root: string, name: string): LocatedNodePackage | undefined {
154
+ const directory = distributionPackageDirectory(root, name);
155
+ return directory === undefined ? nodeModulesPackage(root, name) : readPackage(directory, name);
156
+ }
157
+
158
+ /**
159
+ * Locate package identity without assuming it has a CommonJS/root export. Package ownership stays
160
+ * explicit: @hypit belongs to the Distribution, project dependencies stay project-local, and only
161
+ * Distribution code may fall back to the machine npm home.
162
+ */
163
+ export function locateNodePackage(nameValue: string, options: LocateNodePackageOptions): LocatedNodePackage {
164
+ const name = packageName(nameValue);
165
+ const from = fromPath(options.from);
166
+ const workspaceRoots = normalizedRoots(options.workspaceRoots ?? []);
167
+ const distributionRoots = normalizedRoots(options.distributionRoots ?? activeDistributionRoots);
168
+ const externalRoots = normalizedRoots(options.externalRoots ?? activeExternalRoots);
169
+ const nearby = ancestorPackage(name, from);
170
+
171
+ if (name.startsWith("@hypit/")) {
172
+ if (nearby !== undefined && (distributionRoots.length === 0
173
+ || distributionRoots.some((root) => within(root, nearby.root)))) return nearby;
174
+ for (const root of distributionRoots) {
175
+ const found = distributionPackage(root, name);
176
+ if (found !== undefined) return found;
177
+ }
178
+ throw new Error(`Active Hypit Distribution does not provide ${name}`);
179
+ }
180
+
181
+ if (nearby !== undefined) return nearby;
182
+ for (const root of workspaceRoots) {
183
+ const found = distributionPackage(root, name);
184
+ if (found !== undefined) return found;
185
+ }
186
+ const allowExternal = options.allowExternal
187
+ ?? distributionRoots.some((root) => within(root, dirname(from)));
188
+ if (allowExternal) {
189
+ for (const root of externalRoots) {
190
+ const found = nodeModulesPackage(root, name);
191
+ if (found !== undefined) return found;
192
+ }
193
+ }
194
+ throw new Error(`cannot locate installed package ${name}`);
195
+ }
196
+
197
+ function packageFile(
198
+ packageValue: LocatedNodePackage,
199
+ relativePath: string,
200
+ subject: string,
201
+ ): string {
202
+ if (relativePath.length === 0 || isAbsolute(relativePath)) {
203
+ throw new Error(`${subject} must be a non-empty package-relative path`);
204
+ }
205
+ const target = resolve(packageValue.root, relativePath);
206
+ const relation = relative(packageValue.root, target);
207
+ if (relation === "" || relation === ".." || relation.startsWith(`..${sep}`) || isAbsolute(relation)) {
208
+ throw new Error(`${subject} escapes ${packageValue.manifest.name}`);
209
+ }
210
+ if (!existsSync(target) || !statSync(target).isFile()) {
211
+ throw new Error(`${packageValue.manifest.name} does not contain ${relativePath}`);
212
+ }
213
+ return target;
214
+ }
215
+
216
+ /** Resolve an explicitly named package asset; package exports are module API, not a file inventory. */
217
+ export function resolveNodePackageResource(
218
+ name: string,
219
+ relativePath: string,
220
+ options: LocateNodePackageOptions,
221
+ ): string {
222
+ return packageFile(locateNodePackage(name, options), relativePath, `${name} resource path`);
223
+ }
224
+
225
+ /**
226
+ * Resolve one explicitly imported Source through the owning package's standard `exports` map.
227
+ * This reads package data only; it never imports `hypit.activation` or executes package code.
228
+ */
229
+ export function resolveNodePackageSource(
230
+ specifier: string,
231
+ options: LocateNodePackageOptions,
232
+ ): LocatedNodePackageSource {
233
+ const address = packageSourceAddress(specifier);
234
+ const located = locateNodePackage(address.name, options);
235
+ const manifestPath = join(located.root, "package.json");
236
+ const manifest = JSON.parse(readFileSync(manifestPath, "utf8")) as {
237
+ readonly name?: unknown;
238
+ readonly exports?: unknown;
239
+ };
240
+ if (manifest.name !== address.name) throw new Error(`${manifestPath} does not describe ${address.name}`);
241
+ const key = address.subpath.length === 0 ? "." : `./${address.subpath}`;
242
+ let declared: unknown;
243
+ if (typeof manifest.exports === "string") {
244
+ if (key === ".") declared = manifest.exports;
245
+ } else if (manifest.exports !== null && typeof manifest.exports === "object" && !Array.isArray(manifest.exports)) {
246
+ declared = (manifest.exports as Readonly<Record<string, unknown>>)[key];
247
+ }
248
+ if (typeof declared !== "string") {
249
+ throw new Error(`${address.name} does not export Source ${key}`);
250
+ }
251
+ return {
252
+ specifier,
253
+ package: address.name,
254
+ root: located.root,
255
+ source: packageFile(located, declared, `${address.name} Source export ${key}`),
256
+ };
257
+ }
258
+
259
+ /** Resolve a command from the package's standard npm `bin` declaration. */
260
+ export function resolveNodePackageExecutable(
261
+ name: string,
262
+ executable: string | undefined,
263
+ options: LocateNodePackageOptions,
264
+ ): string {
265
+ const located = locateNodePackage(name, options);
266
+ const declared = located.manifest.bin;
267
+ let target: string | undefined;
268
+ if (typeof declared === "string") {
269
+ const defaultName = name.split("/").at(-1)!;
270
+ if (executable === undefined || executable === defaultName) target = declared;
271
+ } else if (declared !== undefined) {
272
+ if (executable !== undefined) target = declared[executable];
273
+ else if (Object.keys(declared).length === 1) target = Object.values(declared)[0];
274
+ }
275
+ if (target === undefined) {
276
+ throw new Error(`${name} does not declare${executable === undefined ? " one unambiguous executable" : ` executable ${executable}`}`);
277
+ }
278
+ return packageFile(located, target, `${name} executable`);
279
+ }
@@ -0,0 +1,60 @@
1
+ import type { ComponentPackage } from "@hypit/component-kit";
2
+ import type { HostFacet } from "@hypit/host";
3
+ import type { ModuleManifest } from "@hypit/protocol";
4
+
5
+ /** Semantic Module declaration carried by one physical Node package. */
6
+ export type NodeModuleContribution = {
7
+ readonly manifest: ModuleManifest;
8
+ /** Additional author import spellings resolved to this exact Manifest. */
9
+ readonly specifiers?: readonly string[];
10
+ };
11
+
12
+ /** Opaque logical address resolved to an explicitly selected installed package. */
13
+ export type LogicalPackageAddress = {
14
+ readonly abi: string;
15
+ readonly name: string;
16
+ };
17
+
18
+ /**
19
+ * Executable facets exported by one installed physical package. The Host independently grants
20
+ * each exact Host ABI. Runtime facets remain inert unless a Runtime Profile selects the package.
21
+ */
22
+ export type NodePackageContribution = {
23
+ readonly format: "hypit.node-package@1";
24
+ readonly modules?: readonly NodeModuleContribution[];
25
+ /** Syntax- or Host-specific executable facets, inert until their exact Host ABI selects them. */
26
+ readonly hostFacets?: readonly HostFacet[];
27
+ readonly components?: readonly ComponentPackage[];
28
+ };
29
+
30
+ /** Physical owner established by the Host; executable code never self-asserts this identity. */
31
+ export type LoadedPackage = {
32
+ readonly specifier: string;
33
+ readonly contribution: NodePackageContribution;
34
+ };
35
+
36
+ /** Runtime Component implementations grouped by their physical package owner. */
37
+ export type LoadedComponentPackage = {
38
+ readonly specifier: string;
39
+ readonly components: readonly ComponentPackage[];
40
+ };
41
+
42
+ export type NodePackageSelectionRequest = {
43
+ /** Physical packages selected by Source discovery or a Runtime Profile. */
44
+ readonly selected: readonly string[];
45
+ /** Logical capabilities that the selected packages must provide. */
46
+ readonly logical?: readonly LogicalPackageAddress[];
47
+ };
48
+
49
+ export type NodePackageLoadOptions = {
50
+ /**
51
+ * Additional read-only Distribution roots. They are fallbacks for project-scoped packages;
52
+ * the reserved @hypit namespace resolves only from these roots when they are present.
53
+ */
54
+ readonly fallbackRoots?: readonly string[];
55
+ /**
56
+ * Machine npm homes used only by Distribution-owned packages for their ordinary upstream
57
+ * dependencies. Defaults to the roots installed by the Hypit launcher.
58
+ */
59
+ readonly externalRoots?: readonly string[];
60
+ };
@@ -0,0 +1,20 @@
1
+ # `@hypit/program-space`
2
+
3
+ The time and frame domain shared by a compiled film. ProgramSpace contains `id`, `durationSec` and
4
+ `frameRate`. Script identity belongs to semantic data; the physical film clock also serves animation
5
+ with no speech or source media.
6
+
7
+ For spoken work, SemanticTrack projects the selected performance's real duration and frame rate.
8
+ For authored animation, `Space` declares them directly:
9
+
10
+ ```svml
11
+ <import as="time" from="@hypit/program-space@1"/>
12
+ <time:Space id="animation" frame-rate="30" duration="8s"/>
13
+ ```
14
+
15
+ `duration` accepts seconds, milliseconds or frames (`8s`, `8000ms`, `240f`); the result must end on an
16
+ exact frame boundary. The rate may be rational, such as `30000/1001`. `Space` publishes an ordinary
17
+ inline ProgramSpace value and performs no media generation.
18
+
19
+ `Clock` is the duration-free frame-rate input for media normalization. A clock does not prescribe
20
+ how long a performance will be; its actual normalized material establishes that later.
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@hypit/program-space",
3
+ "version": "0.0.0-dev",
4
+ "license": "SEE LICENSE IN LICENSE",
5
+ "private": true,
6
+ "type": "module",
7
+ "exports": {
8
+ ".": "./src/index.ts"
9
+ },
10
+ "hypit": {
11
+ "activation": "./src/activation.ts"
12
+ },
13
+ "dependencies": {
14
+ "@hypit/markup": "workspace:*",
15
+ "@hypit/protocol": "workspace:*"
16
+ }
17
+ }