@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,616 @@
1
+ import { randomUUID } from "node:crypto";
2
+
3
+ import { reduce, resolveNeedCommand, resolveProducer } from "@hypit/core";
4
+ import type { ProducerHandlerResult } from "@hypit/component-kit";
5
+ import type { EndpointCredential, EndpointFulfillment, EndpointOutcome } from "@hypit/endpoint-kit";
6
+ import { endpointResourceClaims } from "@hypit/endpoint-kit";
7
+ import type {
8
+ BuildState,
9
+ CommandResult,
10
+ CoreCommand,
11
+ FulfillNeedCommand,
12
+ InvokeProducerCommand,
13
+ TypedRecord,
14
+ } from "@hypit/protocol";
15
+ import {
16
+ TypeValidatorRegistry,
17
+ validateValue,
18
+ } from "@hypit/validation";
19
+ import type { TypeValidatorRegistryLike } from "@hypit/validation";
20
+ import type {
21
+ ResourceStore,
22
+ CredentialStore,
23
+ CredentialValue,
24
+ OperationSnapshot,
25
+ OperationStore,
26
+ RuntimeExecutionContext,
27
+ RuntimeExecutionResult,
28
+ RuntimePreparation,
29
+ RuntimeRunnableCommand,
30
+ } from "@hypit/runtime";
31
+ import { writableCredentialStore } from "@hypit/runtime";
32
+
33
+ import { MemoryResourceStore } from "./resources.js";
34
+ import {
35
+ ProducerRegistry,
36
+ EndpointRegistry,
37
+ producerRegistryKey,
38
+ endpointCapabilityKey,
39
+ endpointReturnKey,
40
+ } from "./registry.js";
41
+ import type {
42
+ BlockedCommand,
43
+ DriverExecutionOutcome,
44
+ DriverRunResult,
45
+ EndpointRegistration,
46
+ } from "./types.js";
47
+
48
+ export type NodeDriverOptions = {
49
+ readonly producers?: ProducerRegistry;
50
+ readonly endpoints?: EndpointRegistry;
51
+ readonly resources?: ResourceStore;
52
+ /** Runtime execution may isolate transient bytes by Build without exposing that policy to Endpoints. */
53
+ readonly resourcesForBuild?: (build: string) => ResourceStore;
54
+ readonly operations?: OperationStore;
55
+ readonly credentials?: CredentialStore;
56
+ readonly validators?: TypeValidatorRegistryLike;
57
+ readonly actions?: import("@hypit/runtime").RuntimeActionExecutor;
58
+ };
59
+
60
+ type Executable =
61
+ | {
62
+ readonly command: InvokeProducerCommand;
63
+ readonly resources: readonly import("@hypit/runtime").RuntimeResourceClaim[];
64
+ readonly run: () => Promise<ProducerHandlerResult>;
65
+ }
66
+ | {
67
+ readonly command: FulfillNeedCommand;
68
+ readonly endpointId: string;
69
+ readonly resources: readonly import("@hypit/runtime").RuntimeResourceClaim[];
70
+ readonly registration: EndpointRegistration;
71
+ };
72
+
73
+ function failureMessage(error: unknown): string {
74
+ const parts: string[] = [];
75
+ let cursor: unknown = error;
76
+ const seen = new Set<unknown>();
77
+ while (cursor !== undefined && cursor !== null && !seen.has(cursor)) {
78
+ seen.add(cursor);
79
+ if (cursor instanceof Error) {
80
+ const code = "code" in cursor && typeof cursor.code === "string" ? ` [${cursor.code}]` : "";
81
+ parts.push(`${cursor.message}${code}`);
82
+ cursor = cursor.cause;
83
+ continue;
84
+ }
85
+ parts.push(String(cursor));
86
+ break;
87
+ }
88
+ return [...new Set(parts)].join("; caused by: ");
89
+ }
90
+
91
+ export class NodeDriver {
92
+ readonly producers: ProducerRegistry;
93
+ readonly endpoints: EndpointRegistry;
94
+ readonly resources: ResourceStore;
95
+ readonly #resourcesForBuild: ((build: string) => ResourceStore) | undefined;
96
+ readonly operations: OperationStore | undefined;
97
+ readonly credentials: CredentialStore | undefined;
98
+ readonly validators: TypeValidatorRegistryLike;
99
+ readonly #actions: import("@hypit/runtime").RuntimeActionExecutor | undefined;
100
+ readonly #credentialReads = new Map<string, Promise<CredentialValue | undefined>>();
101
+
102
+ constructor(options: NodeDriverOptions = {}) {
103
+ this.producers = options.producers ?? new ProducerRegistry();
104
+ this.endpoints = options.endpoints ?? new EndpointRegistry();
105
+ this.resources = options.resources ?? new MemoryResourceStore();
106
+ this.#resourcesForBuild = options.resourcesForBuild;
107
+ this.operations = options.operations;
108
+ this.credentials = options.credentials;
109
+ this.validators = options.validators ?? new TypeValidatorRegistry();
110
+ this.#actions = options.actions;
111
+ }
112
+
113
+ #resourceStore(build?: string): ResourceStore {
114
+ return build === undefined ? this.resources : this.#resourcesForBuild?.(build) ?? this.resources;
115
+ }
116
+
117
+ async #endpointCredentials(
118
+ registration: EndpointRegistration,
119
+ ): Promise<Readonly<Record<string, EndpointCredential>>> {
120
+ const requested = registration.credentials ?? {};
121
+ if (Object.keys(requested).length === 0) return {};
122
+ if (this.credentials === undefined) {
123
+ throw new Error(`Endpoint ${registration.id} requires a CredentialStore`);
124
+ }
125
+ const resolved: Record<string, EndpointCredential> = {};
126
+ for (const slot of Object.keys(requested).sort()) {
127
+ const ref = requested[slot]!;
128
+ const key = JSON.stringify([ref.store, ref.key]);
129
+ let read = this.#credentialReads.get(key);
130
+ if (read === undefined) {
131
+ read = this.credentials.resolve(ref).finally(() => this.#credentialReads.delete(key));
132
+ this.#credentialReads.set(key, read);
133
+ }
134
+ const value = await read;
135
+ if (value === undefined) {
136
+ throw new Error(`Endpoint ${registration.id} credential ${slot} is unavailable from ${ref.store}:${ref.key}`);
137
+ }
138
+ const writable = await writableCredentialStore(this.credentials, ref);
139
+ resolved[slot] = {
140
+ ...value,
141
+ ...(writable === undefined ? {} : {
142
+ replace: async (replacement: CredentialValue) => await writable.put(ref, replacement),
143
+ }),
144
+ };
145
+ }
146
+ return resolved;
147
+ }
148
+
149
+ #producerInputs(state: BuildState, command: InvokeProducerCommand): Record<string, TypedRecord> {
150
+ const inputs: Record<string, TypedRecord> = {};
151
+ const records = new Map(state.records.map((item) => [item.id, item]));
152
+ for (const [port, id] of Object.entries(command.inputs)) {
153
+ const record = records.get(id);
154
+ if (record === undefined) throw new Error(`${command.id} input ${id} is missing`);
155
+ Object.defineProperty(inputs, port, {
156
+ value: structuredClone(record),
157
+ enumerable: true,
158
+ configurable: true,
159
+ writable: true,
160
+ });
161
+ }
162
+ return inputs;
163
+ }
164
+
165
+ #classify(
166
+ state: BuildState,
167
+ command: CoreCommand,
168
+ ): { readonly executable?: Executable; readonly blocked?: BlockedCommand } {
169
+ if (command.kind === "invoke-producer") {
170
+ const registration = this.producers.producer(command.producer);
171
+ if (registration === undefined) {
172
+ return {
173
+ blocked: {
174
+ command: command.id,
175
+ reason: "missing-producer",
176
+ subject: producerRegistryKey(command.producer),
177
+ },
178
+ };
179
+ }
180
+ return {
181
+ executable: {
182
+ command,
183
+ resources: registration.scheduling?.resources ?? [],
184
+ run: async () =>
185
+ registration.handler({
186
+ command: structuredClone(command),
187
+ producer: structuredClone(command.producer),
188
+ inputs: this.#producerInputs(state, command),
189
+ }),
190
+ },
191
+ };
192
+ }
193
+
194
+ const resolution = this.endpoints.resolve(command.need);
195
+ if (resolution.status === "missing") {
196
+ return {
197
+ blocked: {
198
+ command: command.id,
199
+ reason: "missing-endpoint",
200
+ subject: resolution.endpointId === undefined
201
+ ? `${endpointCapabilityKey(command.need.capability)} -> ${endpointReturnKey(command.need.returns)}`
202
+ : `${endpointCapabilityKey(command.need.capability)} -> ${resolution.endpointId}`,
203
+ },
204
+ };
205
+ }
206
+ if (resolution.status === "unsupported") {
207
+ return {
208
+ blocked: {
209
+ command: command.id,
210
+ reason: "unsupported-endpoint-request",
211
+ subject: resolution.rejections
212
+ .map((rejection) => `${rejection.endpointId}: ${rejection.reason}`)
213
+ .join("; "),
214
+ },
215
+ };
216
+ }
217
+ if (resolution.status === "ambiguous") {
218
+ return {
219
+ blocked: {
220
+ command: command.id,
221
+ reason: "ambiguous-endpoint",
222
+ subject: `${endpointCapabilityKey(command.need.capability)} -> ${resolution.endpointIds.join(", ")}`,
223
+ },
224
+ };
225
+ }
226
+ const registration = resolution.registration;
227
+ if (registration.kind === "asynchronous" && this.operations === undefined) {
228
+ return {
229
+ blocked: {
230
+ command: command.id,
231
+ reason: "missing-operation-store",
232
+ subject: registration.id,
233
+ },
234
+ };
235
+ }
236
+ return {
237
+ executable: {
238
+ command,
239
+ endpointId: registration.id,
240
+ resources: registration.scheduling === undefined ? [{
241
+ id: `endpoint:${registration.id}`,
242
+ limit: 1,
243
+ }] : endpointResourceClaims(registration.scheduling, command.need),
244
+ registration,
245
+ },
246
+ };
247
+ }
248
+
249
+ async #endpointEvent(
250
+ state: BuildState,
251
+ executable: Extract<Executable, { readonly endpointId: string }>,
252
+ result: EndpointFulfillment,
253
+ ): Promise<CommandResult> {
254
+ await validateValue(
255
+ state.program.closure,
256
+ executable.command.need.returns,
257
+ result.value,
258
+ this.validators,
259
+ );
260
+ return {
261
+ kind: "need-fulfilled",
262
+ command: executable.command.id,
263
+ value: result.value,
264
+ } as const;
265
+ }
266
+
267
+ async acceptOperation(
268
+ state: BuildState,
269
+ snapshot: OperationSnapshot,
270
+ ): Promise<CommandResult | undefined> {
271
+ if ((snapshot.status === "completed" || snapshot.status === "pending") && snapshot.completion !== undefined) {
272
+ const command = state.outstanding.find((item) => item.id === snapshot.command);
273
+ if (command?.kind !== "fulfill-need") return undefined;
274
+ await validateValue(state.program.closure, command.need.returns, snapshot.completion.value, this.validators);
275
+ if (snapshot.status === "pending") {
276
+ await this.operations!.update(snapshot.id, { status: "completed", completion: snapshot.completion });
277
+ }
278
+ return { kind: "need-fulfilled", command: snapshot.command, value: snapshot.completion.value };
279
+ }
280
+ if (snapshot.status === "failed") {
281
+ const failure = snapshot.failure;
282
+ if (failure === undefined) throw new Error(`Operation ${snapshot.id} has no failure`);
283
+ const content = {
284
+ kind: "command-failed",
285
+ command: snapshot.command,
286
+ code: failure.code,
287
+ message: failure.message,
288
+ } as const;
289
+ return content;
290
+ }
291
+ if (snapshot.status === "cancelled") {
292
+ const content = {
293
+ kind: "command-failed",
294
+ command: snapshot.command,
295
+ code: "CANCELLED",
296
+ message: `Operation ${snapshot.id} was cancelled by the Runtime capacity controller`,
297
+ } as const;
298
+ return content;
299
+ }
300
+ return undefined;
301
+ }
302
+
303
+ async #executeEndpoint(
304
+ state: BuildState,
305
+ executable: Extract<Executable, { readonly endpointId: string }>,
306
+ context: RuntimeExecutionContext,
307
+ ): Promise<RuntimeExecutionResult> {
308
+ if (executable.registration.kind !== "asynchronous") throw new Error("Endpoint is not asynchronous");
309
+ const operations = this.operations;
310
+ if (operations === undefined) throw new Error("asynchronous Endpoint requires OperationStore");
311
+ const history = await operations.list({ build: context.build, command: executable.command.id });
312
+ if (history.length > 1) throw new Error(`Command ${executable.command.id} has multiple Operations`);
313
+ let operation = history[0];
314
+ if (operation !== undefined && operation.endpoint !== executable.endpointId) {
315
+ throw new Error(`Operation ${operation.id} belongs to ${operation.endpoint}; its execution source cannot change`);
316
+ }
317
+ operation ??= await operations.create({
318
+ id: `op_${randomUUID()}`, build: context.build, command: executable.command.id,
319
+ endpoint: executable.endpointId, status: "pending", submission: "queued", createdAt: Date.now(),
320
+ request: structuredClone(executable.command),
321
+ credentials: structuredClone(executable.registration.credentials ?? {}),
322
+ ...(executable.registration.pool === undefined ? {} : { pool: executable.registration.pool }),
323
+ wakeAt: Date.now(), progress: { phase: "ready-to-submit" },
324
+ });
325
+ if (operation.status === "pending" && operation.completion === undefined) {
326
+ operation = await this.#advanceOperation(operation, executable.registration, context);
327
+ }
328
+ if (operation.remoteEnded) await context.releaseOperationCapacity?.();
329
+ const event = await this.acceptOperation(state, operation);
330
+ return event === undefined ? {
331
+ status: "pending", operation: operation.id,
332
+ ...(operation.wakeAt === undefined ? {} : { wakeAt: operation.wakeAt }),
333
+ } : { status: "completed", event };
334
+ }
335
+
336
+ async #advanceOperation(
337
+ operation: OperationSnapshot,
338
+ registration: EndpointRegistration,
339
+ runtimeContext: RuntimeExecutionContext,
340
+ ): Promise<OperationSnapshot> {
341
+ const operations = this.operations!;
342
+ if (registration.kind !== "asynchronous") throw new Error("Operation Endpoint is not asynchronous");
343
+ if (operation.status !== "pending" || operation.completion !== undefined) return operation;
344
+ if ((operation.wakeAt ?? 0) > Date.now()) return operation;
345
+ const command = operation.request;
346
+ if (command === undefined) throw new Error(`Operation ${operation.id} has no stored request`);
347
+ const endpoint = registration.endpoint;
348
+ const action: import("@hypit/endpoint-kit").EndpointAction = operation.remoteEnded ? "collect"
349
+ : operation.handle !== undefined ? "poll" : "submit";
350
+ if (action === "submit" && operation.submission !== "queued") {
351
+ return await operations.update(operation.id, {
352
+ status: "failed", failure: { code: "SUBMISSION_INTERRUPTED",
353
+ message: "Submission ended without a task receipt; this execution attempt has failed" },
354
+ });
355
+ }
356
+ const invoke = async (): Promise<EndpointOutcome> => {
357
+ const context = {
358
+ command: structuredClone(command), need: structuredClone(command.need),
359
+ resources: this.#resourceStore(operation.build), operation: operation.id,
360
+ credentials: await this.#endpointCredentials({ ...registration, credentials: operation.credentials ?? registration.credentials ?? {} }),
361
+ checkpoint: async (checkpoint: import("@hypit/endpoint-kit").EndpointCheckpoint) => {
362
+ await operations.update(operation.id, { status: "pending", ...checkpoint,
363
+ submission: "accepted", acknowledgedAt: operation.acknowledgedAt ?? Date.now(), wakeAt: Date.now(), progress: { phase: checkpoint.remoteEnded ? "collecting" : "submitted" } });
364
+ if (checkpoint.remoteEnded) await runtimeContext.releaseOperationCapacity?.();
365
+ },
366
+ };
367
+ if (action === "submit") {
368
+ await operations.update(operation.id, { status: "pending", submission: "started", progress: { phase: "submitting" } });
369
+ return await endpoint.start(context);
370
+ }
371
+ const pollContext = { ...context, handle: structuredClone(operation.handle!) };
372
+ if (action === "collect") {
373
+ if (endpoint.collect === undefined) throw new Error(`Endpoint ${registration.id} declared artifacts ready but has no collect action`);
374
+ return await endpoint.collect(pollContext);
375
+ }
376
+ return await endpoint.poll(pollContext);
377
+ };
378
+ let outcome: EndpointOutcome;
379
+ try {
380
+ const resources = registration.scheduling?.actions?.[action] ?? [];
381
+ if (resources.length > 0) {
382
+ if (this.#actions === undefined) throw new Error(`Endpoint ${registration.id} requires Runtime action admission`);
383
+ const result = await this.#actions.run({ build: operation.build, command: operation.command, action, resources }, invoke);
384
+ if (result.status === "deferred") return await operations.update(operation.id, {
385
+ status: "pending", ...(result.wakeAt === undefined ? {} : { wakeAt: result.wakeAt }),
386
+ progress: { phase: "waiting-resource" },
387
+ });
388
+ outcome = result.value;
389
+ } else outcome = await invoke();
390
+ } catch (error) {
391
+ return await operations.update(operation.id, {
392
+ status: "failed", failure: { code: "ENDPOINT_ACTION_FAILED",
393
+ message: `${action} failed: ${failureMessage(error)}` },
394
+ });
395
+ }
396
+ const recorded = await operations.read(operation.id) ?? operation;
397
+ const receipt = outcome.receipt ?? recorded.receipt;
398
+ const facts = receipt === undefined ? {} : {
399
+ receipt, acknowledgedAt: recorded.acknowledgedAt ?? Date.now(),
400
+ };
401
+ if (outcome.status === "pending") {
402
+ return await operations.update(operation.id, {
403
+ status: "pending", ...facts, submission: "accepted", handle: outcome.handle,
404
+ wakeAt: outcome.wakeAt ?? Date.now(),
405
+ ...(outcome.progress === undefined ? {} : { progress: outcome.progress }),
406
+ });
407
+ }
408
+ if (outcome.status === "ready") return await operations.update(operation.id, {
409
+ status: "pending", ...facts, remoteEnded: true, endedAt: Date.now(), handle: outcome.handle,
410
+ wakeAt: Date.now(), progress: { phase: "ready-to-collect" },
411
+ });
412
+ if (outcome.status === "failed") return await operations.update(operation.id, {
413
+ status: "failed", ...facts, failure: outcome.failure,
414
+ });
415
+ return await operations.update(operation.id, {
416
+ status: "pending", ...facts, remoteEnded: true, endedAt: recorded.endedAt ?? Date.now(),
417
+ completion: outcome.result, wakeAt: Date.now(), progress: { phase: "ready-to-accept" },
418
+ });
419
+ }
420
+
421
+ async advanceOperation(operation: OperationSnapshot): Promise<OperationSnapshot> {
422
+ if (operation.request === undefined) throw new Error(`Operation ${operation.id} has no stored request`);
423
+ const selected = this.endpoints.resolve(operation.request.need);
424
+ if (selected.status !== "resolved" || selected.registration.id !== operation.endpoint) {
425
+ throw new Error(`Operation ${operation.id} cannot change its selected Endpoint ${operation.endpoint}`);
426
+ }
427
+ return await this.#advanceOperation(operation, selected.registration, { build: operation.build });
428
+ }
429
+
430
+ async #execute(
431
+ state: BuildState,
432
+ executable: Executable,
433
+ context?: RuntimeExecutionContext,
434
+ ): Promise<RuntimeExecutionResult> {
435
+ if (!("endpointId" in executable)) {
436
+ try {
437
+ const result = (await executable.run()) as ProducerHandlerResult;
438
+ const producer = resolveProducer(state.program.closure, executable.command.producer);
439
+ for (const port of producer.outputs) {
440
+ const value = result.outputs[port.name];
441
+ if (value === undefined) continue;
442
+ await validateValue(state.program.closure, port.type, value, this.validators);
443
+ }
444
+ const content = {
445
+ kind: "producer-completed",
446
+ command: executable.command.id,
447
+ outputs: result.outputs,
448
+ needs: result.needs,
449
+ } as const;
450
+ return {
451
+ status: "completed",
452
+ event: content,
453
+ };
454
+ } catch (error) {
455
+ const producer = executable.command.producer;
456
+ throw new Error(
457
+ `Producer ${producer.module.name}@${producer.module.version}#${producer.name} failed: ${failureMessage(error)}`,
458
+ { cause: error },
459
+ );
460
+ }
461
+ }
462
+ if (executable.registration.kind === "asynchronous") {
463
+ if (context === undefined) throw new Error("asynchronous Endpoint execution requires a stable Build id");
464
+ try {
465
+ return await this.#executeEndpoint(state, executable, context);
466
+ } catch (error) {
467
+ throw new Error(
468
+ `Endpoint ${executable.endpointId} failed ${executable.command.need.capability.name}: ${failureMessage(error)}`,
469
+ { cause: error },
470
+ );
471
+ }
472
+ }
473
+ try {
474
+ const result = await executable.registration.handler({
475
+ command: structuredClone(executable.command),
476
+ need: structuredClone(executable.command.need),
477
+ resources: this.#resourceStore(context?.build),
478
+ credentials: await this.#endpointCredentials(executable.registration),
479
+ });
480
+ return { status: "completed", event: await this.#endpointEvent(state, executable, result) };
481
+ } catch (error) {
482
+ throw new Error(
483
+ `Endpoint ${executable.endpointId} failed ${executable.command.need.capability.name}: ${failureMessage(error)}`,
484
+ { cause: error },
485
+ );
486
+ }
487
+ }
488
+
489
+ /** Regenerate Core commands, then classify only what this Host can execute. */
490
+ prepare(initial: BuildState): RuntimePreparation {
491
+ const state = reduce(initial);
492
+ if (state.status === "complete" || state.status === "failed") {
493
+ return { state, runnable: [], blocked: [] };
494
+ }
495
+ const classifications = state.outstanding.map((command) => ({
496
+ command,
497
+ ...this.#classify(state, command),
498
+ }));
499
+ return {
500
+ state,
501
+ runnable: classifications.flatMap(({ executable }) => executable === undefined ? [] : [{
502
+ command: executable.command,
503
+ resources: executable.resources,
504
+ capacityMode: "endpointId" in executable && executable.registration.kind === "asynchronous"
505
+ ? "asynchronous"
506
+ : "active",
507
+ }]),
508
+ blocked: classifications
509
+ .map((item) => item.blocked)
510
+ .filter((item): item is BlockedCommand => item !== undefined),
511
+ };
512
+ }
513
+
514
+ /** Execute one command emitted by `prepare` in the same scheduling turn. */
515
+ async executeCommand(
516
+ state: BuildState,
517
+ descriptor: RuntimeRunnableCommand,
518
+ context: RuntimeExecutionContext,
519
+ ): Promise<RuntimeExecutionResult> {
520
+ const classified = this.#classify(state, descriptor.command);
521
+ if (classified.executable === undefined) {
522
+ throw new Error(`command ${descriptor.command.id} is no longer executable`);
523
+ }
524
+ return await this.#execute(state, classified.executable, context);
525
+ }
526
+
527
+ /** Stop observing this Operation and make at most one explicit cancellation request. */
528
+ async cancelOperation(initial: BuildState, operation: OperationSnapshot): Promise<OperationSnapshot> {
529
+ const operations = this.operations;
530
+ if (operations === undefined) throw new Error("cancelling an Operation requires OperationStore");
531
+ const current = await operations.read(operation.id) ?? operation;
532
+ if (current.status !== "pending") return current;
533
+ let cancellation: NonNullable<OperationSnapshot["cancellation"]> = { outcome: "unsupported" };
534
+ if (current.handle !== undefined && !current.remoteEnded) {
535
+ try {
536
+ const command = current.request ?? resolveNeedCommand(initial, current.command);
537
+ if (command === undefined) throw new Error(`Operation ${current.id} has no Need Command`);
538
+ const selected = this.endpoints.resolve(command.need);
539
+ if (selected.status !== "resolved" || selected.registration.id !== current.endpoint
540
+ || selected.registration.kind !== "asynchronous") throw new Error("Operation Endpoint changed");
541
+ const result = await selected.registration.endpoint.cancel?.({
542
+ command, need: command.need, operation: current.id, handle: current.handle,
543
+ resources: this.#resourceStore(current.build),
544
+ credentials: await this.#endpointCredentials(selected.registration),
545
+ });
546
+ cancellation = { outcome: result?.status ?? "unsupported" };
547
+ } catch (error) {
548
+ cancellation = { outcome: "failed", message: failureMessage(error) };
549
+ }
550
+ }
551
+ return await operations.update(current.id, { status: "cancelled", cancellation });
552
+ }
553
+
554
+ async run(initial: BuildState, context?: RuntimeExecutionContext): Promise<DriverRunResult> {
555
+ let state = initial;
556
+ const outcomes: DriverExecutionOutcome[] = [];
557
+
558
+ while (true) {
559
+ state = reduce(state);
560
+ if (state.status === "complete") {
561
+ return { status: "complete", state, outcomes, blocked: [] };
562
+ }
563
+ if (state.status === "failed") {
564
+ return { status: "failed", state, outcomes, blocked: [] };
565
+ }
566
+
567
+ const classifications = state.outstanding.map((command) => ({
568
+ command,
569
+ ...this.#classify(state, command),
570
+ }));
571
+ const selected = classifications.find((item) => item.executable !== undefined)?.executable;
572
+ if (selected === undefined) {
573
+ const blocked = classifications
574
+ .map((item) => item.blocked)
575
+ .filter((item): item is BlockedCommand => item !== undefined);
576
+ return { status: "paused", state, outcomes, blocked };
577
+ }
578
+
579
+ try {
580
+ const execution = await this.#execute(state, selected, context);
581
+ if (execution.status === "pending") {
582
+ outcomes.push({
583
+ command: selected.command.id,
584
+ kind: selected.command.kind,
585
+ status: "pending",
586
+ operation: execution.operation,
587
+ ...(execution.wakeAt === undefined ? {} : { wakeAt: execution.wakeAt }),
588
+ });
589
+ return { status: "paused", state, outcomes, blocked: [] };
590
+ }
591
+ if (execution.status === "deferred") {
592
+ throw new Error("direct NodeDriver execution has no Runtime capacity admission to defer");
593
+ }
594
+ const event = execution.event;
595
+ state = reduce(state, event);
596
+ outcomes.push({
597
+ command: selected.command.id,
598
+ kind: selected.command.kind,
599
+ status: "completed",
600
+ });
601
+ } catch (error) {
602
+ outcomes.push({
603
+ command: selected.command.id,
604
+ kind: selected.command.kind,
605
+ status: "error",
606
+ message: error instanceof Error ? error.message : String(error),
607
+ });
608
+ state = reduce(state, {
609
+ kind: "command-failed", command: selected.command.id, code: "EXECUTION_FAILED",
610
+ message: failureMessage(error),
611
+ });
612
+ return { status: "failed", state, outcomes, blocked: [] };
613
+ }
614
+ }
615
+ }
616
+ }
@@ -0,0 +1,10 @@
1
+ export { MemoryResourceStore } from "./resources.js";
2
+ export { NodeDriver } from "./driver.js";
3
+ export type { NodeDriverOptions } from "./driver.js";
4
+ export { evaluateProducerPlan } from "./planning.js";
5
+ export type { ProducerPlanEvaluation } from "./planning.js";
6
+ export {
7
+ ProducerRegistry,
8
+ EndpointRegistry,
9
+ } from "./registry.js";
10
+ export type * from "./types.js";
@@ -0,0 +1,67 @@
1
+ import { BuildMachine } from "@hypit/core";
2
+ import type { BuildDefinition, BuildState } from "@hypit/protocol";
3
+ import { TypeValidatorRegistry } from "@hypit/validation";
4
+ import type { TypeValidatorRegistryLike } from "@hypit/validation";
5
+
6
+ import { NodeDriver } from "./driver.js";
7
+ import { EndpointRegistry, ProducerRegistry } from "./registry.js";
8
+
9
+ export type ProducerPlanEvaluation = {
10
+ /** Disposable Build view after every currently runnable pure Producer was evaluated once. */
11
+ readonly state: BuildState;
12
+ /** Exact Producer Step ids that could not be evaluated, with their direct errors. */
13
+ readonly failures: ReadonlyMap<string, string>;
14
+ };
15
+
16
+ /**
17
+ * Evaluate the closed Build graph without installing any Endpoint.
18
+ *
19
+ * Component Producers are deterministic computation. External Needs remain blocked, while every
20
+ * independent Producer keeps advancing. A failed Producer is attempted once: planning reports the
21
+ * failure instead of looping or turning it into a Build fact.
22
+ */
23
+ export async function evaluateProducerPlan(
24
+ definition: BuildDefinition,
25
+ producers: ProducerRegistry,
26
+ validators: TypeValidatorRegistryLike = new TypeValidatorRegistry(),
27
+ ): Promise<ProducerPlanEvaluation> {
28
+ const driver = new NodeDriver({ producers, endpoints: new EndpointRegistry(), validators });
29
+ const machine = new BuildMachine(definition);
30
+ const attempted = new Set<string>();
31
+ const failures = new Map<string, string>();
32
+
33
+ while (true) {
34
+ const prepared = driver.prepare(machine.view());
35
+ const runnable = prepared.runnable.filter((item) =>
36
+ item.command.kind === "invoke-producer" && !attempted.has(item.command.id));
37
+ if (runnable.length === 0) break;
38
+
39
+ for (const descriptor of runnable) {
40
+ if (descriptor.command.kind !== "invoke-producer") continue;
41
+ attempted.add(descriptor.command.id);
42
+ try {
43
+ const result = await driver.executeCommand(machine.view(), descriptor, { build: "plan" });
44
+ if (result.status !== "completed") {
45
+ failures.set(descriptor.command.step, "the Producer did not complete synchronously");
46
+ continue;
47
+ }
48
+ if (result.event.kind === "command-failed") {
49
+ failures.set(descriptor.command.step, result.event.message);
50
+ continue;
51
+ }
52
+ machine.evaluate(result.event);
53
+ machine.commit();
54
+ } catch (error) {
55
+ failures.set(descriptor.command.step, error instanceof Error ? error.message : String(error));
56
+ }
57
+ }
58
+ }
59
+
60
+ const final = driver.prepare(machine.view());
61
+ for (const blocked of final.blocked) {
62
+ if (blocked.reason !== "missing-producer" || !blocked.command.startsWith("producer:")) continue;
63
+ failures.set(blocked.command.slice("producer:".length), `no Producer for ${blocked.subject} is loaded`);
64
+ }
65
+
66
+ return { state: machine.view(), failures };
67
+ }