@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.
- package/LICENSE +26 -0
- package/README.md +203 -0
- package/README.zh-CN.md +195 -0
- package/bin/hypit.mjs +46 -0
- package/dist/public/artifact.d.ts +75 -0
- package/dist/public/author-kit.d.ts +559 -0
- package/dist/public/browser-capture.d.ts +56 -0
- package/dist/public/caption.d.ts +751 -0
- package/dist/public/composition.d.ts +672 -0
- package/dist/public/endpoint-kit.d.ts +366 -0
- package/dist/public/generation.d.ts +591 -0
- package/dist/public/hyperframes.d.ts +774 -0
- package/dist/public/media.d.ts +708 -0
- package/dist/public/model-kit.d.ts +523 -0
- package/dist/public/narrative.d.ts +315 -0
- package/dist/public/program-space.d.ts +193 -0
- package/dist/public/runtime-kit.d.ts +427 -0
- package/dist/public/semantic-track.d.ts +418 -0
- package/dist/public/spatial.d.ts +1193 -0
- package/dist/public/speech.d.ts +391 -0
- package/dist/public/studio-adapter.d.ts +686 -0
- package/dist/public/svs.d.ts +311 -0
- package/dist/public/temporal-markup.d.ts +343 -0
- package/dist/public/temporal.d.ts +497 -0
- package/dist/public/text.d.ts +817 -0
- package/dist/public/visual-ir.d.ts +98 -0
- package/docs/public/hypit-logo-dark.svg +36 -0
- package/docs/public/hypit-logo-light.svg +38 -0
- package/examples/README.md +24 -0
- package/examples/minimal-author-package/README.md +18 -0
- package/examples/minimal-author-package/packages/example-component/README.md +44 -0
- package/examples/minimal-author-package/packages/example-component/package.json +27 -0
- package/examples/minimal-author-package/packages/example-component/preview/Box.png +0 -0
- package/examples/minimal-author-package/packages/example-component/preview/build.svrun +6 -0
- package/examples/minimal-author-package/packages/example-component/preview/preview.svml +47 -0
- package/examples/minimal-author-package/packages/example-component/preview/recipes.svs +8 -0
- package/examples/minimal-author-package/packages/example-component/src/activation.ts +10 -0
- package/examples/minimal-author-package/packages/example-component/src/component.ts +44 -0
- package/examples/minimal-author-package/packages/example-component/src/fragment.ts +32 -0
- package/examples/minimal-author-package/packages/example-component/src/index.ts +6 -0
- package/examples/minimal-author-package/packages/example-component/src/manifest.ts +82 -0
- package/examples/minimal-author-package/packages/example-component/src/style.ts +13 -0
- package/examples/minimal-author-package/packages/example-component/src/surface.ts +41 -0
- package/examples/minimal-author-package/packages/example-component/src/temporal.ts +6 -0
- package/examples/minimal-author-package/packages/example-component/tsconfig.json +18 -0
- package/examples/semantic-composition/README.md +35 -0
- package/examples/semantic-composition/chat.svml +25 -0
- package/examples/semantic-composition/chat.svrun +6 -0
- package/examples/semantic-composition/chat.svs +4 -0
- package/examples/semantic-composition/hypit.runtime.json +8 -0
- package/examples/semantic-composition/packages/chat-scene/README.md +29 -0
- package/examples/semantic-composition/packages/chat-scene/package.json +11 -0
- package/examples/semantic-composition/packages/chat-scene/src/activation.ts +112 -0
- package/examples/semantic-composition/packages/chat-scene/src/render.ts +64 -0
- package/examples/semantic-composition/packages/chat-scene/tsconfig.json +18 -0
- package/examples/semantic-composition/packages/responsive-explainer/README.md +45 -0
- package/examples/semantic-composition/packages/responsive-explainer/package.json +11 -0
- package/examples/semantic-composition/packages/responsive-explainer/src/activation.ts +90 -0
- package/examples/semantic-composition/packages/responsive-explainer/src/render.ts +68 -0
- package/examples/semantic-composition/packages/responsive-explainer/tsconfig.json +18 -0
- package/package.json +259 -7
- package/packages/artifact/README.md +10 -0
- package/packages/artifact/package.json +16 -0
- package/packages/artifact/src/activation.ts +8 -0
- package/packages/artifact/src/index.ts +24 -0
- package/packages/audio-track/README.md +43 -0
- package/packages/audio-track/package.json +36 -0
- package/packages/audio-track/src/activation.ts +20 -0
- package/packages/audio-track/src/component.ts +40 -0
- package/packages/audio-track/src/fragment.ts +63 -0
- package/packages/audio-track/src/index.ts +7 -0
- package/packages/audio-track/src/manifest.ts +151 -0
- package/packages/audio-track/src/program.ts +254 -0
- package/packages/audio-track/src/surface.ts +187 -0
- package/packages/audio-track/src/types.ts +62 -0
- package/packages/audio-track-studio/README.md +3 -0
- package/packages/audio-track-studio/package.json +14 -0
- package/packages/audio-track-studio/src/activation.ts +7 -0
- package/packages/audio-track-studio/src/index.ts +72 -0
- package/packages/author-kit/README.md +31 -0
- package/packages/author-kit/package.json +16 -0
- package/packages/author-kit/src/index.ts +59 -0
- package/packages/background-removal/README.md +29 -0
- package/packages/background-removal/package.json +16 -0
- package/packages/background-removal/src/activation.ts +18 -0
- package/packages/background-removal/src/component.ts +32 -0
- package/packages/background-removal/src/fragment.ts +18 -0
- package/packages/background-removal/src/index.ts +6 -0
- package/packages/background-removal/src/manifest.ts +45 -0
- package/packages/background-removal/src/program.ts +19 -0
- package/packages/background-removal/src/surface.ts +27 -0
- package/packages/background-removal/src/types.ts +5 -0
- package/packages/browser-capture/README.md +82 -0
- package/packages/browser-capture/package.json +15 -0
- package/packages/browser-capture/src/browser.ts +19 -0
- package/packages/browser-capture/src/index.ts +198 -0
- package/packages/build-result/package.json +13 -0
- package/packages/build-result/src/decode.ts +286 -0
- package/packages/build-result/src/index.ts +25 -0
- package/packages/build-result/src/store.ts +505 -0
- package/packages/build-result/src/types.ts +354 -0
- package/packages/build-result/src/writer.ts +184 -0
- package/packages/build-result-fs/README.md +29 -0
- package/packages/build-result-fs/package.json +17 -0
- package/packages/build-result-fs/src/activation.ts +62 -0
- package/packages/build-result-fs/src/index.ts +1 -0
- package/packages/build-result-kit/README.md +10 -0
- package/packages/build-result-kit/package.json +15 -0
- package/packages/build-result-kit/src/index.ts +144 -0
- package/packages/build-result-s3/README.md +49 -0
- package/packages/build-result-s3/package.json +19 -0
- package/packages/build-result-s3/src/activation.ts +71 -0
- package/packages/build-result-s3/src/client.ts +254 -0
- package/packages/build-result-s3/src/index.ts +4 -0
- package/packages/build-result-s3/src/repository.ts +361 -0
- package/packages/caption/README.md +77 -0
- package/packages/caption/package.json +28 -0
- package/packages/caption/src/activation.ts +17 -0
- package/packages/caption/src/component.ts +38 -0
- package/packages/caption/src/display.ts +111 -0
- package/packages/caption/src/error.ts +9 -0
- package/packages/caption/src/fragment.ts +26 -0
- package/packages/caption/src/index.ts +33 -0
- package/packages/caption/src/manifest.ts +97 -0
- package/packages/caption/src/style.ts +170 -0
- package/packages/caption/src/surface.ts +96 -0
- package/packages/caption/src/temporalize.ts +124 -0
- package/packages/caption/src/types.ts +71 -0
- package/packages/caption-fine/README.md +108 -0
- package/packages/caption-fine/package.json +30 -0
- package/packages/caption-fine/preview/Track.png +0 -0
- package/packages/caption-fine/src/activation.ts +32 -0
- package/packages/caption-fine/src/component.ts +58 -0
- package/packages/caption-fine/src/fragment.ts +112 -0
- package/packages/caption-fine/src/index.ts +19 -0
- package/packages/caption-fine/src/manifest.ts +383 -0
- package/packages/caption-fine/src/recipe.ts +120 -0
- package/packages/caption-fine/src/render.ts +1133 -0
- package/packages/caption-fine/src/schedule.ts +126 -0
- package/packages/caption-fine/src/spacing.ts +69 -0
- package/packages/caption-fine/src/style.ts +370 -0
- package/packages/caption-fine/src/surface.ts +152 -0
- package/packages/caption-fine/src/types.ts +191 -0
- package/packages/caption-fine-studio/README.md +3 -0
- package/packages/caption-fine-studio/package.json +15 -0
- package/packages/caption-fine-studio/src/activation.ts +7 -0
- package/packages/caption-fine-studio/src/index.ts +163 -0
- package/packages/cli/README.md +51 -0
- package/packages/cli/package.json +33 -0
- package/packages/cli/src/arguments.ts +605 -0
- package/packages/cli/src/build-planning.ts +460 -0
- package/packages/cli/src/command.ts +202 -0
- package/packages/cli/src/commands/environment.ts +391 -0
- package/packages/cli/src/commands/execution.ts +321 -0
- package/packages/cli/src/commands/results.ts +187 -0
- package/packages/cli/src/commands/types.ts +9 -0
- package/packages/cli/src/distribution.ts +74 -0
- package/packages/cli/src/index.ts +30 -0
- package/packages/cli/src/machine-view.ts +28 -0
- package/packages/cli/src/main.ts +654 -0
- package/packages/cli/src/oauth.ts +228 -0
- package/packages/cli/src/observation.ts +203 -0
- package/packages/cli/src/output.ts +1007 -0
- package/packages/cli/src/paths.ts +7 -0
- package/packages/cli/src/project-context.ts +38 -0
- package/packages/cli/src/reachability.ts +91 -0
- package/packages/cli/src/result-export.ts +148 -0
- package/packages/cli/src/result-query.ts +46 -0
- package/packages/cli/src/run-file.ts +186 -0
- package/packages/cli/src/runtime-port.ts +13 -0
- package/packages/cli/src/runtime-selection.ts +94 -0
- package/packages/cli/src/runtime-view.ts +15 -0
- package/packages/cli/src/source-discovery.ts +150 -0
- package/packages/cli/src/source-packages.ts +91 -0
- package/packages/cli/src/view.ts +228 -0
- package/packages/comment-sticker/README.md +41 -0
- package/packages/comment-sticker/package.json +29 -0
- package/packages/comment-sticker/preview/Track.png +0 -0
- package/packages/comment-sticker/src/activation.ts +32 -0
- package/packages/comment-sticker/src/author.ts +148 -0
- package/packages/comment-sticker/src/component.ts +97 -0
- package/packages/comment-sticker/src/fragment.ts +124 -0
- package/packages/comment-sticker/src/index.ts +8 -0
- package/packages/comment-sticker/src/manifest.ts +373 -0
- package/packages/comment-sticker/src/program.ts +610 -0
- package/packages/comment-sticker/src/surface.ts +172 -0
- package/packages/comment-sticker/src/types.ts +109 -0
- package/packages/comment-sticker-studio/README.md +3 -0
- package/packages/comment-sticker-studio/package.json +14 -0
- package/packages/comment-sticker-studio/src/activation.ts +7 -0
- package/packages/comment-sticker-studio/src/index.ts +132 -0
- package/packages/compiler-markup-node/README.md +12 -0
- package/packages/compiler-markup-node/package.json +22 -0
- package/packages/compiler-markup-node/src/index.ts +59 -0
- package/packages/compiler-node/README.md +60 -0
- package/packages/compiler-node/package.json +25 -0
- package/packages/compiler-node/src/compiler.ts +207 -0
- package/packages/compiler-node/src/error.ts +11 -0
- package/packages/compiler-node/src/graph-query.ts +51 -0
- package/packages/compiler-node/src/index.ts +27 -0
- package/packages/compiler-node/src/modules.ts +107 -0
- package/packages/compiler-node/src/run.ts +355 -0
- package/packages/component-kit/README.md +97 -0
- package/packages/component-kit/package.json +13 -0
- package/packages/component-kit/src/index.ts +155 -0
- package/packages/composition/README.md +53 -0
- package/packages/composition/package.json +29 -0
- package/packages/composition/src/activation.ts +3 -0
- package/packages/composition/src/component.ts +10 -0
- package/packages/composition/src/index.ts +18 -0
- package/packages/composition/src/manifest.ts +13 -0
- package/packages/composition/src/schema.ts +194 -0
- package/packages/composition/src/track.ts +1403 -0
- package/packages/core/README.md +22 -0
- package/packages/core/package.json +13 -0
- package/packages/core/src/error.ts +12 -0
- package/packages/core/src/graph.ts +341 -0
- package/packages/core/src/index.ts +32 -0
- package/packages/core/src/link.ts +240 -0
- package/packages/core/src/machine.ts +60 -0
- package/packages/core/src/plan.ts +504 -0
- package/packages/core/src/reducer.ts +428 -0
- package/packages/core/src/reference.ts +25 -0
- package/packages/core/src/slice.ts +108 -0
- package/packages/credential-store-env/README.md +11 -0
- package/packages/credential-store-env/package.json +17 -0
- package/packages/credential-store-env/src/activation.ts +25 -0
- package/packages/credential-store-env/src/index.ts +23 -0
- package/packages/credential-store-os/README.md +13 -0
- package/packages/credential-store-os/package.json +22 -0
- package/packages/credential-store-os/runtime/windows-credential.ps1 +59 -0
- package/packages/credential-store-os/src/activation.ts +32 -0
- package/packages/credential-store-os/src/index.ts +2 -0
- package/packages/credential-store-os/src/store.ts +196 -0
- package/packages/deck-track/README.md +52 -0
- package/packages/deck-track/package.json +35 -0
- package/packages/deck-track/preview/DepthStack.png +0 -0
- package/packages/deck-track/src/activation.ts +32 -0
- package/packages/deck-track/src/author.ts +217 -0
- package/packages/deck-track/src/component.ts +86 -0
- package/packages/deck-track/src/fragment.ts +148 -0
- package/packages/deck-track/src/index.ts +16 -0
- package/packages/deck-track/src/lower.ts +370 -0
- package/packages/deck-track/src/manifest.ts +438 -0
- package/packages/deck-track/src/program.ts +367 -0
- package/packages/deck-track/src/surface.ts +286 -0
- package/packages/deck-track/src/types.ts +119 -0
- package/packages/deck-track-studio/README.md +3 -0
- package/packages/deck-track-studio/package.json +14 -0
- package/packages/deck-track-studio/src/activation.ts +7 -0
- package/packages/deck-track-studio/src/index.ts +134 -0
- package/packages/driver-node/README.md +23 -0
- package/packages/driver-node/package.json +18 -0
- package/packages/driver-node/src/driver.ts +616 -0
- package/packages/driver-node/src/index.ts +10 -0
- package/packages/driver-node/src/planning.ts +67 -0
- package/packages/driver-node/src/registry.ts +234 -0
- package/packages/driver-node/src/resources.ts +36 -0
- package/packages/driver-node/src/types.ts +69 -0
- package/packages/elaborator/README.md +74 -0
- package/packages/elaborator/package.json +16 -0
- package/packages/elaborator/src/author.ts +308 -0
- package/packages/elaborator/src/fragment.ts +505 -0
- package/packages/elaborator/src/frontend-facet.ts +30 -0
- package/packages/elaborator/src/index.ts +78 -0
- package/packages/elaborator/src/source.ts +608 -0
- package/packages/endpoint-kit/README.md +111 -0
- package/packages/endpoint-kit/package.json +14 -0
- package/packages/endpoint-kit/src/index.ts +488 -0
- package/packages/estimate/README.md +32 -0
- package/packages/estimate/package.json +20 -0
- package/packages/estimate/src/activation.ts +11 -0
- package/packages/estimate/src/index.ts +16 -0
- package/packages/estimate/src/manifest.ts +34 -0
- package/packages/estimate/src/policy.ts +70 -0
- package/packages/estimate/src/program.ts +196 -0
- package/packages/estimate/src/types.ts +15 -0
- package/packages/film/README.md +49 -0
- package/packages/film/package.json +34 -0
- package/packages/film/src/activation.ts +16 -0
- package/packages/film/src/component.ts +61 -0
- package/packages/film/src/fragment.ts +83 -0
- package/packages/film/src/index.ts +11 -0
- package/packages/film/src/manifest.ts +152 -0
- package/packages/film/src/program.ts +110 -0
- package/packages/film/src/recipe.ts +24 -0
- package/packages/film/src/surface.ts +146 -0
- package/packages/film/src/types.ts +26 -0
- package/packages/film-studio/package.json +16 -0
- package/packages/film-studio/src/activation.ts +8 -0
- package/packages/film-studio/src/index.ts +17 -0
- package/packages/fonts-open/README.md +77 -0
- package/packages/fonts-open/package.json +130 -0
- package/packages/fonts-open/src/activation.ts +30 -0
- package/packages/fonts-open/src/catalog.ts +317 -0
- package/packages/fonts-open/src/index.ts +13 -0
- package/packages/fonts-open/src/manifest.ts +83 -0
- package/packages/fonts-open/src/surface.ts +239 -0
- package/packages/generation/README.md +19 -0
- package/packages/generation/package.json +23 -0
- package/packages/generation/src/activation.ts +9 -0
- package/packages/generation/src/component.ts +77 -0
- package/packages/generation/src/identity.ts +80 -0
- package/packages/generation/src/index.ts +79 -0
- package/packages/generation/src/manifest.ts +65 -0
- package/packages/generation/src/mapping.ts +231 -0
- package/packages/generation/src/ports.ts +222 -0
- package/packages/generation/src/request.ts +427 -0
- package/packages/generation/src/schema.ts +62 -0
- package/packages/generation/src/types.ts +17 -0
- package/packages/gpt-image/README.md +54 -0
- package/packages/gpt-image/package.json +34 -0
- package/packages/gpt-image/src/activation.ts +39 -0
- package/packages/gpt-image/src/fragment.ts +101 -0
- package/packages/gpt-image/src/index.ts +203 -0
- package/packages/gpt-image/src/surface.ts +194 -0
- package/packages/gpt-image-kits/README.md +44 -0
- package/packages/gpt-image-kits/kits/phone-ugc-v1.svs +34 -0
- package/packages/gpt-image-kits/package.json +15 -0
- package/packages/grok-imagine/README.md +21 -0
- package/packages/grok-imagine/package.json +21 -0
- package/packages/grok-imagine/src/activation.ts +29 -0
- package/packages/grok-imagine/src/index.ts +174 -0
- package/packages/grok-imagine/src/surface.ts +149 -0
- package/packages/host/README.md +5 -0
- package/packages/host/package.json +10 -0
- package/packages/host/src/facet.ts +6 -0
- package/packages/host/src/frontend.ts +56 -0
- package/packages/host/src/index.ts +9 -0
- package/packages/hyperframes/README.md +69 -0
- package/packages/hyperframes/package.json +36 -0
- package/packages/hyperframes/src/activation.ts +8 -0
- package/packages/hyperframes/src/browser-program.ts +79 -0
- package/packages/hyperframes/src/component.ts +32 -0
- package/packages/hyperframes/src/document.ts +827 -0
- package/packages/hyperframes/src/fragment.ts +32 -0
- package/packages/hyperframes/src/index.ts +13 -0
- package/packages/hyperframes/src/manifest.ts +67 -0
- package/packages/hyperframes/src/project.ts +118 -0
- package/packages/hyperframes/src/text.ts +1179 -0
- package/packages/hyperframes/src/types.ts +38 -0
- package/packages/image-compose/README.md +25 -0
- package/packages/image-compose/package.json +18 -0
- package/packages/image-compose/src/activation.ts +21 -0
- package/packages/image-compose/src/component.ts +100 -0
- package/packages/image-compose/src/fragment.ts +54 -0
- package/packages/image-compose/src/index.ts +10 -0
- package/packages/image-compose/src/manifest.ts +119 -0
- package/packages/image-compose/src/program.ts +75 -0
- package/packages/image-compose/src/surface.ts +83 -0
- package/packages/image-compose/src/types.ts +22 -0
- package/packages/image-transform/README.md +29 -0
- package/packages/image-transform/package.json +21 -0
- package/packages/image-transform/src/activation.ts +33 -0
- package/packages/image-transform/src/component.ts +67 -0
- package/packages/image-transform/src/fragment.ts +25 -0
- package/packages/image-transform/src/index.ts +13 -0
- package/packages/image-transform/src/manifest.ts +209 -0
- package/packages/image-transform/src/program.ts +23 -0
- package/packages/image-transform/src/surface.ts +216 -0
- package/packages/image-transform/src/types.ts +20 -0
- package/packages/interview-emoji-reveal/README.md +39 -0
- package/packages/interview-emoji-reveal/package.json +23 -0
- package/packages/interview-emoji-reveal/preview/Track.png +0 -0
- package/packages/interview-emoji-reveal/src/activation.ts +14 -0
- package/packages/interview-emoji-reveal/src/component.ts +45 -0
- package/packages/interview-emoji-reveal/src/fragment.ts +62 -0
- package/packages/interview-emoji-reveal/src/index.ts +16 -0
- package/packages/interview-emoji-reveal/src/manifest.ts +174 -0
- package/packages/interview-emoji-reveal/src/program.ts +242 -0
- package/packages/interview-emoji-reveal/src/style.ts +47 -0
- package/packages/interview-emoji-reveal/src/surface.ts +110 -0
- package/packages/interview-emoji-reveal/src/types.ts +52 -0
- package/packages/markup/README.md +81 -0
- package/packages/markup/package.json +16 -0
- package/packages/markup/src/element.ts +39 -0
- package/packages/markup/src/error.ts +20 -0
- package/packages/markup/src/frontend.ts +518 -0
- package/packages/markup/src/host-facet.ts +115 -0
- package/packages/markup/src/index.ts +25 -0
- package/packages/markup/src/registry.ts +83 -0
- package/packages/markup/src/syntax.ts +271 -0
- package/packages/markup/src/types.ts +246 -0
- package/packages/media/README.md +37 -0
- package/packages/media/package.json +19 -0
- package/packages/media/src/activation.ts +38 -0
- package/packages/media/src/component.ts +16 -0
- package/packages/media/src/frame-range.ts +33 -0
- package/packages/media/src/identity.ts +227 -0
- package/packages/media/src/index.ts +15 -0
- package/packages/media/src/manifest.ts +122 -0
- package/packages/media/src/render.ts +140 -0
- package/packages/media/src/schema.ts +69 -0
- package/packages/media/src/surface.ts +150 -0
- package/packages/media/src/types.ts +121 -0
- package/packages/media-execution/README.md +28 -0
- package/packages/media-execution/package.json +17 -0
- package/packages/media-execution/src/execute.ts +1322 -0
- package/packages/media-execution/src/index.ts +16 -0
- package/packages/media-execution/src/probe.ts +315 -0
- package/packages/media-execution/src/surface.ts +286 -0
- package/packages/media-execution/src/toolchain.ts +81 -0
- package/packages/media-execution/src/webp.ts +200 -0
- package/packages/media-pipeline/README.md +113 -0
- package/packages/media-pipeline/package.json +27 -0
- package/packages/media-pipeline/src/activation.ts +47 -0
- package/packages/media-pipeline/src/audio-plan.ts +113 -0
- package/packages/media-pipeline/src/component.ts +373 -0
- package/packages/media-pipeline/src/fragment.ts +167 -0
- package/packages/media-pipeline/src/index.ts +46 -0
- package/packages/media-pipeline/src/manifest.ts +653 -0
- package/packages/media-pipeline/src/operations.ts +248 -0
- package/packages/media-pipeline/src/selection.ts +110 -0
- package/packages/media-pipeline/src/surface.ts +389 -0
- package/packages/media-pipeline/src/types.ts +175 -0
- package/packages/media-track/README.md +197 -0
- package/packages/media-track/package.json +29 -0
- package/packages/media-track/preview/Track.png +0 -0
- package/packages/media-track/preview/build.svrun +5 -0
- package/packages/media-track/preview/flush.png +0 -0
- package/packages/media-track/preview/preview.svml +47 -0
- package/packages/media-track/preview/recipes.svs +23 -0
- package/packages/media-track/preview/rounded.png +0 -0
- package/packages/media-track/src/activation.ts +20 -0
- package/packages/media-track/src/author.ts +317 -0
- package/packages/media-track/src/component.ts +162 -0
- package/packages/media-track/src/fragment.ts +57 -0
- package/packages/media-track/src/index.ts +65 -0
- package/packages/media-track/src/layers.ts +308 -0
- package/packages/media-track/src/lower.ts +335 -0
- package/packages/media-track/src/manifest.ts +624 -0
- package/packages/media-track/src/motion.ts +387 -0
- package/packages/media-track/src/performance.ts +37 -0
- package/packages/media-track/src/presentation.ts +35 -0
- package/packages/media-track/src/program.ts +565 -0
- package/packages/media-track/src/sampling.ts +118 -0
- package/packages/media-track/src/sequence.ts +403 -0
- package/packages/media-track/src/sounds.ts +71 -0
- package/packages/media-track/src/surface.ts +668 -0
- package/packages/media-track/src/types.ts +311 -0
- package/packages/media-track-studio/README.md +3 -0
- package/packages/media-track-studio/package.json +15 -0
- package/packages/media-track-studio/src/activation.ts +7 -0
- package/packages/media-track-studio/src/index.ts +235 -0
- package/packages/mimo-speech/README.md +33 -0
- package/packages/mimo-speech/package.json +21 -0
- package/packages/mimo-speech/src/activation.ts +32 -0
- package/packages/mimo-speech/src/fragment.ts +11 -0
- package/packages/mimo-speech/src/index.ts +160 -0
- package/packages/mimo-speech/src/surface.ts +193 -0
- package/packages/minimax-h3/README.md +21 -0
- package/packages/minimax-h3/package.json +21 -0
- package/packages/minimax-h3/src/activation.ts +14 -0
- package/packages/minimax-h3/src/index.ts +188 -0
- package/packages/minimax-h3/src/surface.ts +87 -0
- package/packages/model-kit/README.md +52 -0
- package/packages/model-kit/package.json +19 -0
- package/packages/model-kit/src/index.ts +728 -0
- package/packages/nano-banana/README.md +23 -0
- package/packages/nano-banana/package.json +21 -0
- package/packages/nano-banana/src/activation.ts +14 -0
- package/packages/nano-banana/src/index.ts +172 -0
- package/packages/nano-banana/src/surface.ts +120 -0
- package/packages/narrative/README.md +7 -0
- package/packages/narrative/package.json +17 -0
- package/packages/narrative/src/activation.ts +7 -0
- package/packages/narrative/src/component.ts +33 -0
- package/packages/narrative/src/identity.ts +131 -0
- package/packages/narrative/src/index.ts +11 -0
- package/packages/narrative/src/manifest.ts +30 -0
- package/packages/narrative/src/schema.ts +89 -0
- package/packages/narrative/src/types.ts +141 -0
- package/packages/package-loader-node/README.md +23 -0
- package/packages/package-loader-node/package.json +15 -0
- package/packages/package-loader-node/src/contribution.ts +97 -0
- package/packages/package-loader-node/src/distribution-resolution.ts +146 -0
- package/packages/package-loader-node/src/index.ts +27 -0
- package/packages/package-loader-node/src/loader.ts +301 -0
- package/packages/package-loader-node/src/location.ts +279 -0
- package/packages/package-loader-node/src/types.ts +60 -0
- package/packages/program-space/README.md +20 -0
- package/packages/program-space/package.json +17 -0
- package/packages/program-space/src/activation.ts +19 -0
- package/packages/program-space/src/index.ts +107 -0
- package/packages/program-space/src/surface.ts +55 -0
- package/packages/protocol/README.md +11 -0
- package/packages/protocol/package.json +10 -0
- package/packages/protocol/src/build-id.ts +52 -0
- package/packages/protocol/src/build.ts +265 -0
- package/packages/protocol/src/canonical.ts +37 -0
- package/packages/protocol/src/error.ts +11 -0
- package/packages/protocol/src/identity.ts +59 -0
- package/packages/protocol/src/index.ts +9 -0
- package/packages/protocol/src/module.ts +67 -0
- package/packages/protocol/src/value.ts +88 -0
- package/packages/provider-hyperframes-aws-lambda/README.md +30 -0
- package/packages/provider-hyperframes-aws-lambda/package.json +30 -0
- package/packages/provider-hyperframes-aws-lambda/src/activation.ts +97 -0
- package/packages/provider-hyperframes-aws-lambda/src/client.ts +114 -0
- package/packages/provider-hyperframes-aws-lambda/src/index.ts +21 -0
- package/packages/provider-hyperframes-aws-lambda/src/provider.ts +522 -0
- package/packages/provider-hyperframes-local/README.md +129 -0
- package/packages/provider-hyperframes-local/package.json +34 -0
- package/packages/provider-hyperframes-local/src/activation.ts +107 -0
- package/packages/provider-hyperframes-local/src/capture-process.ts +110 -0
- package/packages/provider-hyperframes-local/src/capture-worker.ts +17 -0
- package/packages/provider-hyperframes-local/src/capture.ts +184 -0
- package/packages/provider-hyperframes-local/src/index.ts +10 -0
- package/packages/provider-hyperframes-local/src/options.ts +19 -0
- package/packages/provider-hyperframes-local/src/output.ts +73 -0
- package/packages/provider-hyperframes-local/src/process.ts +83 -0
- package/packages/provider-hyperframes-local/src/program.ts +58 -0
- package/packages/provider-hyperframes-local/src/provider.ts +62 -0
- package/packages/provider-hyperframes-local/src/render.ts +114 -0
- package/packages/provider-hyperframes-local/src/sampling.ts +89 -0
- package/packages/provider-hypihub/README.md +143 -0
- package/packages/provider-hypihub/package.json +26 -0
- package/packages/provider-hypihub/src/activation.ts +91 -0
- package/packages/provider-hypihub/src/index.ts +2 -0
- package/packages/provider-hypihub/src/mapping.ts +145 -0
- package/packages/provider-hypihub/src/oauth.ts +113 -0
- package/packages/provider-hypihub/src/provider.ts +566 -0
- package/packages/provider-hypihub/src/routes.ts +134 -0
- package/packages/provider-hypihub/src/upload.ts +402 -0
- package/packages/provider-image-opencv-local/README.md +16 -0
- package/packages/provider-image-opencv-local/package.json +27 -0
- package/packages/provider-image-opencv-local/runtime/raster_execute.py +299 -0
- package/packages/provider-image-opencv-local/src/activation.ts +61 -0
- package/packages/provider-image-opencv-local/src/deployment.ts +68 -0
- package/packages/provider-image-opencv-local/src/index.ts +2 -0
- package/packages/provider-image-opencv-local/src/program.ts +60 -0
- package/packages/provider-image-opencv-local/src/provider.ts +155 -0
- package/packages/provider-kie/README.md +134 -0
- package/packages/provider-kie/package.json +43 -0
- package/packages/provider-kie/src/activation.ts +71 -0
- package/packages/provider-kie/src/index.ts +10 -0
- package/packages/provider-kie/src/mapping.ts +182 -0
- package/packages/provider-kie/src/provider.ts +657 -0
- package/packages/provider-kie/src/routes.ts +150 -0
- package/packages/provider-media-local/README.md +58 -0
- package/packages/provider-media-local/package.json +28 -0
- package/packages/provider-media-local/src/activation.ts +65 -0
- package/packages/provider-media-local/src/index.ts +2 -0
- package/packages/provider-media-local/src/program.ts +19 -0
- package/packages/provider-media-local/src/provider.ts +150 -0
- package/packages/provider-whisperx-local/README.md +44 -0
- package/packages/provider-whisperx-local/package.json +27 -0
- package/packages/provider-whisperx-local/src/activation.ts +93 -0
- package/packages/provider-whisperx-local/src/index.ts +5 -0
- package/packages/provider-whisperx-local/src/program.ts +157 -0
- package/packages/provider-whisperx-local/src/provider.ts +191 -0
- package/packages/provider-xiaomi-mimo/README.md +32 -0
- package/packages/provider-xiaomi-mimo/package.json +24 -0
- package/packages/provider-xiaomi-mimo/src/activation.ts +57 -0
- package/packages/provider-xiaomi-mimo/src/index.ts +5 -0
- package/packages/provider-xiaomi-mimo/src/provider.ts +214 -0
- package/packages/ranking/README.md +67 -0
- package/packages/ranking/package.json +33 -0
- package/packages/ranking/preview/Column.svg +29 -0
- package/packages/ranking/preview/TierBoard.png +0 -0
- package/packages/ranking/preview/TierBoard.svg +36 -0
- package/packages/ranking/preview/TopThree.png +0 -0
- package/packages/ranking/src/activation.ts +38 -0
- package/packages/ranking/src/component.ts +271 -0
- package/packages/ranking/src/fragment.ts +206 -0
- package/packages/ranking/src/index.ts +26 -0
- package/packages/ranking/src/manifest.ts +807 -0
- package/packages/ranking/src/render.ts +698 -0
- package/packages/ranking/src/schedule.ts +895 -0
- package/packages/ranking/src/style.ts +272 -0
- package/packages/ranking/src/surface.ts +322 -0
- package/packages/ranking/src/tier.ts +176 -0
- package/packages/ranking/src/types.ts +277 -0
- package/packages/ranking-studio/README.md +3 -0
- package/packages/ranking-studio/package.json +14 -0
- package/packages/ranking-studio/src/activation.ts +7 -0
- package/packages/ranking-studio/src/index.ts +255 -0
- package/packages/raster/README.md +7 -0
- package/packages/raster/package.json +14 -0
- package/packages/raster/src/activation.ts +7 -0
- package/packages/raster/src/index.ts +7 -0
- package/packages/raster/src/manifest.ts +14 -0
- package/packages/raster/src/program.ts +128 -0
- package/packages/raster/src/schema.ts +53 -0
- package/packages/raster/src/types.ts +61 -0
- package/packages/render-hyperframes/README.md +58 -0
- package/packages/render-hyperframes/package.json +33 -0
- package/packages/render-hyperframes/src/activation.ts +18 -0
- package/packages/render-hyperframes/src/component.ts +37 -0
- package/packages/render-hyperframes/src/fragment.ts +73 -0
- package/packages/render-hyperframes/src/index.ts +6 -0
- package/packages/render-hyperframes/src/manifest.ts +100 -0
- package/packages/render-hyperframes/src/product.ts +29 -0
- package/packages/render-hyperframes/src/surface.ts +65 -0
- package/packages/resource-store-fs/README.md +13 -0
- package/packages/resource-store-fs/package.json +14 -0
- package/packages/resource-store-fs/src/index.ts +2 -0
- package/packages/resource-store-fs/src/store.ts +154 -0
- package/packages/resource-store-s3/README.md +15 -0
- package/packages/resource-store-s3/package.json +15 -0
- package/packages/resource-store-s3/src/client.ts +138 -0
- package/packages/resource-store-s3/src/index.ts +10 -0
- package/packages/resource-store-s3/src/store.ts +258 -0
- package/packages/run/README.md +23 -0
- package/packages/run/package.json +16 -0
- package/packages/run/src/candidate.ts +33 -0
- package/packages/run/src/facet.ts +59 -0
- package/packages/run/src/frontend-facet.ts +23 -0
- package/packages/run/src/frontend.ts +62 -0
- package/packages/run/src/graph.ts +65 -0
- package/packages/run/src/index.ts +33 -0
- package/packages/run/src/registry.ts +24 -0
- package/packages/run/src/resolve.ts +213 -0
- package/packages/run/src/types.ts +147 -0
- package/packages/run-markup/README.md +60 -0
- package/packages/run-markup/package.json +22 -0
- package/packages/run-markup/src/activation.ts +10 -0
- package/packages/run-markup/src/frontend.ts +16 -0
- package/packages/run-markup/src/index.ts +5 -0
- package/packages/run-markup/src/syntax.ts +304 -0
- package/packages/runtime/README.md +39 -0
- package/packages/runtime/package.json +15 -0
- package/packages/runtime/src/capacity.ts +51 -0
- package/packages/runtime/src/catalog.ts +30 -0
- package/packages/runtime/src/credentials.ts +124 -0
- package/packages/runtime/src/environment.ts +6 -0
- package/packages/runtime/src/execution.ts +125 -0
- package/packages/runtime/src/index.ts +24 -0
- package/packages/runtime/src/operations.ts +99 -0
- package/packages/runtime/src/scheduler.ts +281 -0
- package/packages/runtime/src/submission.ts +24 -0
- package/packages/runtime/src/types.ts +157 -0
- package/packages/runtime-host-node/README.md +25 -0
- package/packages/runtime-host-node/package.json +19 -0
- package/packages/runtime-host-node/src/index.ts +421 -0
- package/packages/runtime-host-node/src/packages.ts +158 -0
- package/packages/runtime-kit/README.md +42 -0
- package/packages/runtime-kit/package.json +16 -0
- package/packages/runtime-kit/src/index.ts +307 -0
- package/packages/runtime-kit/src/request-deadline.ts +17 -0
- package/packages/runtime-local/README.md +119 -0
- package/packages/runtime-local/package.json +33 -0
- package/packages/runtime-local/src/actions.ts +20 -0
- package/packages/runtime-local/src/config.ts +1229 -0
- package/packages/runtime-local/src/control.ts +120 -0
- package/packages/runtime-local/src/credentials.ts +61 -0
- package/packages/runtime-local/src/host.ts +174 -0
- package/packages/runtime-local/src/index.ts +36 -0
- package/packages/runtime-local/src/process-control.ts +59 -0
- package/packages/runtime-local/src/process-logs.ts +33 -0
- package/packages/runtime-local/src/programs.ts +441 -0
- package/packages/runtime-local/src/result-writer.ts +246 -0
- package/packages/runtime-local/src/runtime.ts +342 -0
- package/packages/runtime-local/src/types.ts +100 -0
- package/packages/runtime-local/src/worker-process.ts +343 -0
- package/packages/runtime-local/src/worker.ts +449 -0
- package/packages/screen-overlay/README.md +17 -0
- package/packages/screen-overlay/package.json +31 -0
- package/packages/screen-overlay/preview/Track.png +0 -0
- package/packages/screen-overlay/src/activation.ts +15 -0
- package/packages/screen-overlay/src/component.ts +20 -0
- package/packages/screen-overlay/src/fragment.ts +40 -0
- package/packages/screen-overlay/src/index.ts +7 -0
- package/packages/screen-overlay/src/manifest.ts +305 -0
- package/packages/screen-overlay/src/program.ts +321 -0
- package/packages/screen-overlay/src/surface.ts +90 -0
- package/packages/screen-overlay/src/types.ts +69 -0
- package/packages/screen-overlay-studio/README.md +3 -0
- package/packages/screen-overlay-studio/package.json +14 -0
- package/packages/screen-overlay-studio/src/activation.ts +7 -0
- package/packages/screen-overlay-studio/src/index.ts +80 -0
- package/packages/script/README.md +137 -0
- package/packages/script/package.json +22 -0
- package/packages/script/src/activation.ts +20 -0
- package/packages/script/src/edit.ts +174 -0
- package/packages/script/src/error.ts +13 -0
- package/packages/script/src/format.ts +83 -0
- package/packages/script/src/index.ts +20 -0
- package/packages/script/src/lexical.ts +133 -0
- package/packages/script/src/manifest.ts +95 -0
- package/packages/script/src/narrative.ts +232 -0
- package/packages/script/src/parser.ts +850 -0
- package/packages/script/src/surface.ts +132 -0
- package/packages/script/src/types.ts +125 -0
- package/packages/script-studio/package.json +13 -0
- package/packages/script-studio/src/activation.ts +8 -0
- package/packages/script-studio/src/index.ts +61 -0
- package/packages/seedance/README.md +19 -0
- package/packages/seedance/package.json +22 -0
- package/packages/seedance/src/activation.ts +38 -0
- package/packages/seedance/src/fragment.ts +46 -0
- package/packages/seedance/src/index.ts +329 -0
- package/packages/seedance/src/surface.ts +355 -0
- package/packages/seedance-kits/README.md +153 -0
- package/packages/seedance-kits/kits/broll-v1.svs +52 -0
- package/packages/seedance-kits/kits/call-v1.svs +55 -0
- package/packages/seedance-kits/kits/camera-reference-v1.svs +9 -0
- package/packages/seedance-kits/kits/motion-reference-v1.svs +9 -0
- package/packages/seedance-kits/kits/podcast-v1.svs +55 -0
- package/packages/seedance-kits/kits/speaker-v1.svs +136 -0
- package/packages/seedance-kits/kits/street-interview-v1.svs +49 -0
- package/packages/seedance-kits/package.json +24 -0
- package/packages/seedream/README.md +21 -0
- package/packages/seedream/package.json +21 -0
- package/packages/seedream/src/activation.ts +12 -0
- package/packages/seedream/src/index.ts +162 -0
- package/packages/seedream/src/surface.ts +84 -0
- package/packages/semantic-take-adjust/package.json +21 -0
- package/packages/semantic-take-adjust/src/activation.ts +22 -0
- package/packages/semantic-take-adjust/src/component.ts +31 -0
- package/packages/semantic-take-adjust/src/fragment.ts +24 -0
- package/packages/semantic-take-adjust/src/index.ts +12 -0
- package/packages/semantic-take-adjust/src/manifest.ts +57 -0
- package/packages/semantic-take-adjust/src/program.ts +49 -0
- package/packages/semantic-take-adjust/src/surface.ts +96 -0
- package/packages/semantic-take-adjust/src/types.ts +9 -0
- package/packages/semantic-track/README.md +21 -0
- package/packages/semantic-track/package.json +22 -0
- package/packages/semantic-track/src/activation.ts +8 -0
- package/packages/semantic-track/src/component.ts +24 -0
- package/packages/semantic-track/src/identity.ts +58 -0
- package/packages/semantic-track/src/index.ts +6 -0
- package/packages/semantic-track/src/location.ts +81 -0
- package/packages/semantic-track/src/manifest.ts +38 -0
- package/packages/semantic-track/src/projection.ts +71 -0
- package/packages/semantic-track/src/types.ts +26 -0
- package/packages/source/README.md +13 -0
- package/packages/source/package.json +13 -0
- package/packages/source/src/header.ts +80 -0
- package/packages/source/src/index.ts +17 -0
- package/packages/source/src/unit.ts +38 -0
- package/packages/spatial/README.md +77 -0
- package/packages/spatial/package.json +24 -0
- package/packages/spatial/src/activation.ts +43 -0
- package/packages/spatial/src/author.ts +59 -0
- package/packages/spatial/src/component.ts +45 -0
- package/packages/spatial/src/fragment.ts +36 -0
- package/packages/spatial/src/geometry.ts +238 -0
- package/packages/spatial/src/index.ts +37 -0
- package/packages/spatial/src/manifest.ts +341 -0
- package/packages/spatial/src/region-timeline.ts +69 -0
- package/packages/spatial/src/schema.ts +47 -0
- package/packages/spatial/src/surface.ts +319 -0
- package/packages/spatial/src/types.ts +101 -0
- package/packages/speech/README.md +16 -0
- package/packages/speech/package.json +19 -0
- package/packages/speech/src/activation.ts +7 -0
- package/packages/speech/src/component.ts +43 -0
- package/packages/speech/src/identity.ts +73 -0
- package/packages/speech/src/index.ts +6 -0
- package/packages/speech/src/manifest.ts +30 -0
- package/packages/speech/src/materialize.ts +103 -0
- package/packages/speech/src/schema.ts +42 -0
- package/packages/speech/src/types.ts +54 -0
- package/packages/speech-alignment/README.md +29 -0
- package/packages/speech-alignment/package.json +25 -0
- package/packages/speech-alignment/src/activation.ts +8 -0
- package/packages/speech-alignment/src/align.ts +235 -0
- package/packages/speech-alignment/src/component.ts +37 -0
- package/packages/speech-alignment/src/error.ts +9 -0
- package/packages/speech-alignment/src/index.ts +7 -0
- package/packages/speech-alignment/src/local.ts +64 -0
- package/packages/speech-alignment/src/locate.ts +473 -0
- package/packages/speech-alignment/src/manifest.ts +37 -0
- package/packages/speech-alignment/src/normalize.ts +79 -0
- package/packages/speech-alignment/src/types.ts +30 -0
- package/packages/speech-evidence/README.md +3 -0
- package/packages/speech-evidence/package.json +16 -0
- package/packages/speech-evidence/src/activation.ts +3 -0
- package/packages/speech-evidence/src/index.ts +102 -0
- package/packages/speech-track/README.md +51 -0
- package/packages/speech-track/package.json +28 -0
- package/packages/speech-track/preview/Track.png +0 -0
- package/packages/speech-track/src/activation.ts +19 -0
- package/packages/speech-track/src/component.ts +45 -0
- package/packages/speech-track/src/fragment.ts +74 -0
- package/packages/speech-track/src/index.ts +7 -0
- package/packages/speech-track/src/manifest.ts +73 -0
- package/packages/speech-track/src/program.ts +64 -0
- package/packages/speech-track/src/surface.ts +35 -0
- package/packages/speech-track/src/types.ts +6 -0
- package/packages/speech-track-studio/README.md +3 -0
- package/packages/speech-track-studio/package.json +14 -0
- package/packages/speech-track-studio/src/activation.ts +7 -0
- package/packages/speech-track-studio/src/index.ts +40 -0
- package/packages/store-sqlite/README.md +14 -0
- package/packages/store-sqlite/package.json +18 -0
- package/packages/store-sqlite/src/index.ts +2 -0
- package/packages/store-sqlite/src/store.ts +1101 -0
- package/packages/studio/README.md +125 -0
- package/packages/studio/index.html +10 -0
- package/packages/studio/package.json +50 -0
- package/packages/studio/src/build-library.ts +281 -0
- package/packages/studio/src/companion-assembly.ts +39 -0
- package/packages/studio/src/compile.ts +166 -0
- package/packages/studio/src/domain.ts +139 -0
- package/packages/studio/src/execute.ts +57 -0
- package/packages/studio/src/fallback-companions.ts +98 -0
- package/packages/studio/src/observe.ts +202 -0
- package/packages/studio/src/parameter-values.ts +81 -0
- package/packages/studio/src/parameters.ts +550 -0
- package/packages/studio/src/preview/render.ts +51 -0
- package/packages/studio/src/preview/runtime-shim.ts +184 -0
- package/packages/studio/src/programme.ts +276 -0
- package/packages/studio/src/run.ts +85 -0
- package/packages/studio/src/server.ts +725 -0
- package/packages/studio/src/session.ts +111 -0
- package/packages/studio/src/shared.ts +315 -0
- package/packages/studio/src/snapshot.ts +454 -0
- package/packages/studio/src/source-transaction.ts +57 -0
- package/packages/studio/src/storyboard.ts +133 -0
- package/packages/studio/src/studio-preflight.ts +198 -0
- package/packages/studio/src/studio-registry.ts +406 -0
- package/packages/studio/src/studio-trace.ts +136 -0
- package/packages/studio/src/style.css +1525 -0
- package/packages/studio/src/surface-preview.ts +35 -0
- package/packages/studio/src/temporal-graph.ts +227 -0
- package/packages/studio/src/ui/code.ts +450 -0
- package/packages/studio/src/ui/icons.ts +51 -0
- package/packages/studio/src/ui/library.ts +378 -0
- package/packages/studio/src/ui/main.ts +1001 -0
- package/packages/studio/src/ui/markers.ts +152 -0
- package/packages/studio/src/ui/material-preview.ts +176 -0
- package/packages/studio/src/ui/overlay.ts +144 -0
- package/packages/studio/src/ui/resize.ts +74 -0
- package/packages/studio/src/ui/selection.ts +178 -0
- package/packages/studio/src/ui/stage.ts +231 -0
- package/packages/studio/src/ui/syntax.ts +195 -0
- package/packages/studio/src/ui/timeline.ts +1041 -0
- package/packages/studio/src/ui/writeback.ts +10 -0
- package/packages/studio/src/ui/zoom.ts +129 -0
- package/packages/studio/start.ts +143 -0
- package/packages/studio-adapter/README.md +186 -0
- package/packages/studio-adapter/package.json +14 -0
- package/packages/studio-adapter/src/index.ts +850 -0
- package/packages/svs/README.md +37 -0
- package/packages/svs/package.json +21 -0
- package/packages/svs/src/activation.ts +11 -0
- package/packages/svs/src/format.ts +16 -0
- package/packages/svs/src/frontend.ts +33 -0
- package/packages/svs/src/index.ts +5 -0
- package/packages/svs/src/manifest.ts +17 -0
- package/packages/svs/src/parser.ts +279 -0
- package/packages/svs/src/types.ts +26 -0
- package/packages/temporal/README.md +31 -0
- package/packages/temporal/package.json +20 -0
- package/packages/temporal/src/activation.ts +9 -0
- package/packages/temporal/src/component.ts +68 -0
- package/packages/temporal/src/index.ts +110 -0
- package/packages/temporal/src/location.ts +67 -0
- package/packages/temporal/src/projection.ts +280 -0
- package/packages/temporal/src/rational.ts +80 -0
- package/packages/temporal/src/sample.ts +43 -0
- package/packages/temporal/src/schedule.ts +52 -0
- package/packages/temporal/src/types.ts +124 -0
- package/packages/temporal-markup/README.md +75 -0
- package/packages/temporal-markup/package.json +18 -0
- package/packages/temporal-markup/src/index.ts +537 -0
- package/packages/temporal-markup/src/space.ts +59 -0
- package/packages/text/README.md +59 -0
- package/packages/text/package.json +21 -0
- package/packages/text/src/activation.ts +33 -0
- package/packages/text/src/component.ts +72 -0
- package/packages/text/src/fragment.ts +57 -0
- package/packages/text/src/frontend.ts +39 -0
- package/packages/text/src/index.ts +27 -0
- package/packages/text/src/manifest.ts +170 -0
- package/packages/text/src/program.ts +418 -0
- package/packages/text/src/surface.ts +212 -0
- package/packages/text/src/svs.ts +189 -0
- package/packages/text/src/types.ts +82 -0
- package/packages/transport-aws-lambda/README.md +20 -0
- package/packages/transport-aws-lambda/package.json +14 -0
- package/packages/transport-aws-lambda/src/index.ts +131 -0
- package/packages/typography-track/README.md +50 -0
- package/packages/typography-track/package.json +34 -0
- package/packages/typography-track/preview/Mask.png +0 -0
- package/packages/typography-track/preview/Track.png +0 -0
- package/packages/typography-track/src/activation.ts +36 -0
- package/packages/typography-track/src/component.ts +93 -0
- package/packages/typography-track/src/fragment.ts +30 -0
- package/packages/typography-track/src/index.ts +11 -0
- package/packages/typography-track/src/manifest.ts +556 -0
- package/packages/typography-track/src/program.ts +622 -0
- package/packages/typography-track/src/surface.ts +842 -0
- package/packages/typography-track/src/types.ts +109 -0
- package/packages/typography-track-studio/README.md +3 -0
- package/packages/typography-track-studio/package.json +14 -0
- package/packages/typography-track-studio/src/activation.ts +7 -0
- package/packages/typography-track-studio/src/index.ts +116 -0
- package/packages/validation/README.md +11 -0
- package/packages/validation/package.json +15 -0
- package/packages/validation/src/index.ts +100 -0
- package/packages/video-cli/README.md +181 -0
- package/packages/video-cli/package.json +37 -0
- package/packages/video-cli/src/capture.ts +174 -0
- package/packages/video-cli/src/cli.ts +109 -0
- package/packages/video-cli/src/compiler.ts +32 -0
- package/packages/video-cli/src/creation.ts +449 -0
- package/packages/video-cli/src/distribution.ts +88 -0
- package/packages/video-cli/src/index.ts +50 -0
- package/packages/video-cli/src/media.ts +701 -0
- package/packages/video-cli/src/package-selection.ts +34 -0
- package/packages/video-cli/src/process.ts +71 -0
- package/packages/video-cli/src/studio-distribution.ts +19 -0
- package/packages/video-cli/src/transcript.ts +71 -0
- package/packages/video-cli/src/vocabulary.ts +386 -0
- package/packages/visual-ir/README.md +36 -0
- package/packages/visual-ir/package.json +16 -0
- package/packages/visual-ir/src/activation.ts +3 -0
- package/packages/visual-ir/src/index.ts +7 -0
- package/packages/visual-ir/src/style.ts +222 -0
- package/packages/volcengine-matting/README.md +89 -0
- package/packages/volcengine-matting/package.json +16 -0
- package/packages/volcengine-matting/src/activation.ts +13 -0
- package/packages/volcengine-matting/src/index.ts +45 -0
- package/packages/volcengine-matting/src/surface.ts +48 -0
- package/packages/whisperx/README.md +34 -0
- package/packages/whisperx/package.json +28 -0
- package/packages/whisperx/src/activation.ts +18 -0
- package/packages/whisperx/src/component.ts +64 -0
- package/packages/whisperx/src/evidence.ts +69 -0
- package/packages/whisperx/src/fragment.ts +76 -0
- package/packages/whisperx/src/index.ts +14 -0
- package/packages/whisperx/src/manifest.ts +92 -0
- package/packages/whisperx/src/surface.ts +90 -0
- package/packages/whisperx/src/transcript.ts +97 -0
- package/packages/whisperx/src/types.ts +9 -0
- package/packages/workspace/README.md +4 -0
- package/packages/workspace/package.json +14 -0
- package/packages/workspace/src/index.ts +38 -0
- package/packages/workspace-fs-node/README.md +13 -0
- package/packages/workspace-fs-node/package.json +15 -0
- package/packages/workspace-fs-node/src/index.ts +6 -0
- package/packages/workspace-fs-node/src/workspace.ts +226 -0
- package/packages/yt-dlp/README.md +31 -0
- package/packages/yt-dlp/package.json +10 -0
- package/packages/yt-dlp/src/download.ts +104 -0
- package/packages/yt-dlp/src/index.ts +1 -0
- package/services/image-opencv/README.md +33 -0
- package/services/image-opencv/package.json +14 -0
- package/services/image-opencv/pyproject.toml +13 -0
- package/services/image-opencv/uv.lock +56 -0
- package/services/whisperx/README.md +82 -0
- package/services/whisperx/package.json +15 -0
- package/services/whisperx/pyproject.toml +26 -0
- package/services/whisperx/src/hypit_whisperx_service/__init__.py +6 -0
- package/services/whisperx/src/hypit_whisperx_service/__main__.py +29 -0
- package/services/whisperx/src/hypit_whisperx_service/application.py +88 -0
- package/services/whisperx/src/hypit_whisperx_service/audio.py +66 -0
- package/services/whisperx/src/hypit_whisperx_service/check.py +35 -0
- package/services/whisperx/src/hypit_whisperx_service/config.py +81 -0
- package/services/whisperx/src/hypit_whisperx_service/engine.py +173 -0
- package/services/whisperx/src/hypit_whisperx_service/prepare.py +19 -0
- package/services/whisperx/src/hypit_whisperx_service/resources.py +41 -0
- package/services/whisperx/src/hypit_whisperx_service/server.py +101 -0
- package/services/whisperx/uv.lock +3381 -0
- package/services/yt-dlp/README.md +19 -0
- package/services/yt-dlp/package.json +14 -0
- package/services/yt-dlp/pyproject.toml +13 -0
- package/services/yt-dlp/uv.lock +23 -0
- package/index.js +0 -1
|
@@ -0,0 +1,624 @@
|
|
|
1
|
+
import { temporalContextAttributeVocabulary } from "@hypit/temporal-markup";
|
|
2
|
+
import { visualTimedSamplingSchema } from "@hypit/composition";
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
|
|
5
|
+
import { artifactDependency, artifactTypes } from "@hypit/artifact";
|
|
6
|
+
import { compositionDependency, compositionTypes } from "@hypit/composition";
|
|
7
|
+
import {
|
|
8
|
+
compositableSurfaceSchema,
|
|
9
|
+
mediaDependency,
|
|
10
|
+
mediaTypes,
|
|
11
|
+
} from "@hypit/media";
|
|
12
|
+
import { narrativeDependency, narrativeTypes } from "@hypit/narrative";
|
|
13
|
+
import { programSpaceDependency, programSpaceTypes } from "@hypit/program-space";
|
|
14
|
+
import type { ModuleManifest, ProducerRef, TypeRef, ValueSchema } from "@hypit/protocol";
|
|
15
|
+
import { semanticTrackDependency, semanticTrackTypes } from "@hypit/semantic-track";
|
|
16
|
+
import {
|
|
17
|
+
contentFitSchema,
|
|
18
|
+
intrinsicExtentSchema,
|
|
19
|
+
spatialDependency,
|
|
20
|
+
spatialFrameSchema,
|
|
21
|
+
spatialTypes,
|
|
22
|
+
} from "@hypit/spatial";
|
|
23
|
+
import { svsRecipeType } from "@hypit/svs";
|
|
24
|
+
import { temporalDependency, temporalTypes } from "@hypit/temporal";
|
|
25
|
+
import { temporalWindowAttributeVocabulary } from "@hypit/temporal-markup";
|
|
26
|
+
|
|
27
|
+
const previewImage = (file: string) => ({
|
|
28
|
+
mediaType: "image/png",
|
|
29
|
+
path: `preview/${file}`,
|
|
30
|
+
open: async () => Uint8Array.from(await readFile(new URL(`../preview/${file}`, import.meta.url))),
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
export const mediaTrackModuleRef = { name: "@hypit/media-track", version: "1" } as const;
|
|
34
|
+
export const mediaTrackTypes = {
|
|
35
|
+
header: { module: mediaTrackModuleRef, name: "MediaTrackHeader" },
|
|
36
|
+
paintLayerSpec: { module: mediaTrackModuleRef, name: "MediaPaintLayerSpec" },
|
|
37
|
+
sampleLayerSpec: { module: mediaTrackModuleRef, name: "MediaSampleLayerSpec" },
|
|
38
|
+
layerSet: { module: mediaTrackModuleRef, name: "MediaLayerSet" },
|
|
39
|
+
soundSpec: { module: mediaTrackModuleRef, name: "MediaSoundSpec" },
|
|
40
|
+
soundSet: { module: mediaTrackModuleRef, name: "MediaSoundSet" },
|
|
41
|
+
itemSpec: { module: mediaTrackModuleRef, name: "MediaItemSpec" },
|
|
42
|
+
memberSpec: { module: mediaTrackModuleRef, name: "MediaSequenceMemberSpec" },
|
|
43
|
+
memberSet: { module: mediaTrackModuleRef, name: "MediaSequenceMemberSet" },
|
|
44
|
+
handoffSpec: { module: mediaTrackModuleRef, name: "MediaHandoffSpec" },
|
|
45
|
+
sequenceSpec: { module: mediaTrackModuleRef, name: "MediaSequenceSpec" },
|
|
46
|
+
set: { module: mediaTrackModuleRef, name: "MediaTrackSet" },
|
|
47
|
+
program: { module: mediaTrackModuleRef, name: "MediaTrackProgram" },
|
|
48
|
+
} satisfies Record<string, TypeRef>;
|
|
49
|
+
|
|
50
|
+
export const mediaTrackProducers = {
|
|
51
|
+
appendPerformance: { module: mediaTrackModuleRef, name: "append-media-performance" },
|
|
52
|
+
createLayers: { module: mediaTrackModuleRef, name: "create-media-layer-set" },
|
|
53
|
+
appendPaintLayer: { module: mediaTrackModuleRef, name: "append-media-paint-layer" },
|
|
54
|
+
appendStillLayer: { module: mediaTrackModuleRef, name: "append-still-media-layer" },
|
|
55
|
+
appendTimedLayer: { module: mediaTrackModuleRef, name: "append-timed-media-layer" },
|
|
56
|
+
appendSurfaceLayer: { module: mediaTrackModuleRef, name: "append-surface-media-layer" },
|
|
57
|
+
createSounds: { module: mediaTrackModuleRef, name: "create-media-sound-set" },
|
|
58
|
+
appendSound: { module: mediaTrackModuleRef, name: "append-media-sound" },
|
|
59
|
+
createSet: { module: mediaTrackModuleRef, name: "create-media-track-set" },
|
|
60
|
+
appendItem: { module: mediaTrackModuleRef, name: "append-media-item" },
|
|
61
|
+
bindItemClipPath: { module: mediaTrackModuleRef, name: "bind-media-item-clip-path" },
|
|
62
|
+
bindSequenceClipPath: { module: mediaTrackModuleRef, name: "bind-media-sequence-clip-path" },
|
|
63
|
+
createMembers: { module: mediaTrackModuleRef, name: "create-media-sequence-member-set" },
|
|
64
|
+
appendMember: { module: mediaTrackModuleRef, name: "append-media-sequence-member" },
|
|
65
|
+
appendSequence: { module: mediaTrackModuleRef, name: "append-media-sequence" },
|
|
66
|
+
finalize: { module: mediaTrackModuleRef, name: "finalize-media-track" },
|
|
67
|
+
projectVisual: { module: mediaTrackModuleRef, name: "project-media-visual-track" },
|
|
68
|
+
projectAudio: { module: mediaTrackModuleRef, name: "project-media-audio-track" },
|
|
69
|
+
} satisfies Record<string, ProducerRef>;
|
|
70
|
+
|
|
71
|
+
const string = { kind: "string", minLength: 1 } as const;
|
|
72
|
+
const number = { kind: "number" } as const;
|
|
73
|
+
const unsigned = { kind: "number", minimum: 0 } as const;
|
|
74
|
+
const integer = { kind: "number", integer: true } as const;
|
|
75
|
+
const unsignedInteger = { kind: "number", integer: true, minimum: 0 } as const;
|
|
76
|
+
const positiveInteger = { kind: "number", integer: true, minimum: 1 } as const;
|
|
77
|
+
const object = (fields: Readonly<Record<string, { readonly schema: ValueSchema; readonly optional?: boolean }>>): ValueSchema => ({ kind: "object", fields });
|
|
78
|
+
const blob = object({
|
|
79
|
+
kind: { schema: { kind: "literal", value: "blob" } },
|
|
80
|
+
resource: { schema: { kind: "string", minLength: 5, maxLength: 256 } },
|
|
81
|
+
size: { schema: unsignedInteger },
|
|
82
|
+
mediaType: { schema: string },
|
|
83
|
+
});
|
|
84
|
+
const rational = object({ numerator: { schema: positiveInteger }, denominator: { schema: positiveInteger } });
|
|
85
|
+
const extent = intrinsicExtentSchema;
|
|
86
|
+
const trim = object({ startFrame: { schema: unsignedInteger }, endFrameExclusive: { schema: positiveInteger } });
|
|
87
|
+
const occupancy: ValueSchema = { kind: "oneOf", variants: [
|
|
88
|
+
...["once", "hold", "loop"].map((mode) => object({
|
|
89
|
+
mode: { schema: { kind: "literal", value: mode } },
|
|
90
|
+
align: { schema: { kind: "string", enum: ["start", "end"] } },
|
|
91
|
+
})),
|
|
92
|
+
object({ mode: { schema: { kind: "literal", value: "stretch" } } }),
|
|
93
|
+
] };
|
|
94
|
+
const stops = { kind: "array", minItems: 2, items: object({ offset: { schema: unsigned }, color: { schema: string } }) } as const;
|
|
95
|
+
const paint: ValueSchema = { kind: "oneOf", variants: [
|
|
96
|
+
object({ kind: { schema: { kind: "literal", value: "solid" } }, color: { schema: string } }),
|
|
97
|
+
object({ kind: { schema: { kind: "literal", value: "linear-gradient" } }, angleDeg: { schema: number }, stops: { schema: stops } }),
|
|
98
|
+
object({ kind: { schema: { kind: "literal", value: "radial-gradient" } }, center: { schema: object({ x: { schema: unsigned }, y: { schema: unsigned } }) }, stops: { schema: stops } }),
|
|
99
|
+
] };
|
|
100
|
+
export const mediaSampleAppearanceSchema: ValueSchema = object({
|
|
101
|
+
opacity: { schema: unsigned },
|
|
102
|
+
filter: { schema: object({
|
|
103
|
+
blurPx: { schema: unsigned }, brightness: { schema: unsigned }, contrast: { schema: unsigned }, saturation: { schema: unsigned },
|
|
104
|
+
}) },
|
|
105
|
+
});
|
|
106
|
+
const samplingKeyframe = object({
|
|
107
|
+
atProgress: { schema: { kind: "number", minimum: 0, maximum: 1 } }, zoom: { schema: { kind: "number", minimum: 0.000001 } },
|
|
108
|
+
offsetX: { schema: number }, offsetY: { schema: number }, rotationDeg: { schema: number },
|
|
109
|
+
easing: { schema: { kind: "string", enum: ["linear", "ease-in", "ease-out", "ease-in-out"] }, optional: true },
|
|
110
|
+
});
|
|
111
|
+
export const mediaSamplingMotionSchema: ValueSchema = object({
|
|
112
|
+
keyframes: { schema: { kind: "array", minItems: 2, items: samplingKeyframe } },
|
|
113
|
+
});
|
|
114
|
+
export const mediaPaintLayerSpecSchema: ValueSchema = object({
|
|
115
|
+
|
|
116
|
+
id: { schema: string }, paint: { schema: paint }, opacity: { schema: unsigned },
|
|
117
|
+
});
|
|
118
|
+
export const mediaSampleLayerSpecSchema: ValueSchema = object({
|
|
119
|
+
|
|
120
|
+
id: { schema: string }, trim: { schema: trim, optional: true }, occupancy: { schema: occupancy, optional: true },
|
|
121
|
+
appearance: { schema: mediaSampleAppearanceSchema }, samplingMotion: { schema: mediaSamplingMotionSchema, optional: true },
|
|
122
|
+
});
|
|
123
|
+
const audioSource = object({ artifact: { schema: blob }, sampleFrames: { schema: positiveInteger } });
|
|
124
|
+
const visualSource: ValueSchema = { kind: "oneOf", variants: [
|
|
125
|
+
object({ kind: { schema: { kind: "literal", value: "still" } }, artifact: { schema: blob }, extent: { schema: extent } }),
|
|
126
|
+
object({
|
|
127
|
+
kind: { schema: { kind: "literal", value: "timed" } }, artifact: { schema: blob }, extent: { schema: extent },
|
|
128
|
+
frameRate: { schema: rational }, frameCount: { schema: positiveInteger }, audio: { schema: audioSource, optional: true },
|
|
129
|
+
}),
|
|
130
|
+
object({ kind: { schema: { kind: "literal", value: "surface" } }, surface: { schema: compositableSurfaceSchema }, extent: { schema: extent } }),
|
|
131
|
+
] };
|
|
132
|
+
const paintLayer = object({ id: { schema: string }, kind: { schema: { kind: "literal", value: "paint" } }, paint: { schema: paint }, opacity: { schema: unsigned } });
|
|
133
|
+
const sampleLayer = object({
|
|
134
|
+
id: { schema: string }, kind: { schema: { kind: "literal", value: "sample" } }, source: { schema: visualSource },
|
|
135
|
+
sampling: { schema: visualTimedSamplingSchema, optional: true },
|
|
136
|
+
fit: { schema: contentFitSchema }, trim: { schema: trim, optional: true }, occupancy: { schema: occupancy, optional: true },
|
|
137
|
+
appearance: { schema: mediaSampleAppearanceSchema }, samplingMotion: { schema: mediaSamplingMotionSchema, optional: true },
|
|
138
|
+
});
|
|
139
|
+
const layer = { kind: "oneOf", variants: [paintLayer, sampleLayer] } as const;
|
|
140
|
+
export const mediaLayerSetSchema: ValueSchema = object({
|
|
141
|
+
|
|
142
|
+
layers: { schema: { kind: "array", items: layer } },
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
const path = { kind: "object", fields: {}, allowUnknown: true } as const;
|
|
146
|
+
const clip: ValueSchema = { kind: "oneOf", variants: [
|
|
147
|
+
object({ kind: { schema: { kind: "literal", value: "none" } } }),
|
|
148
|
+
object({ kind: { schema: { kind: "literal", value: "frame" } } }),
|
|
149
|
+
object({ kind: { schema: { kind: "literal", value: "rounded" } }, radiusPx: { schema: unsigned } }),
|
|
150
|
+
object({ kind: { schema: { kind: "literal", value: "path" } }, path: { schema: path } }),
|
|
151
|
+
] };
|
|
152
|
+
const padding = object({ topPx: { schema: unsigned }, rightPx: { schema: unsigned }, bottomPx: { schema: unsigned }, leftPx: { schema: unsigned } });
|
|
153
|
+
export const mediaFramePresentationSchema: ValueSchema = object({
|
|
154
|
+
clip: { schema: clip }, padding: { schema: padding },
|
|
155
|
+
border: { schema: object({ widthPx: { schema: unsigned }, style: { schema: { kind: "string", enum: ["solid", "dashed", "dotted"] } }, color: { schema: string } }), optional: true },
|
|
156
|
+
shadows: { schema: { kind: "array", items: object({ offsetX: { schema: number }, offsetY: { schema: number }, blurPx: { schema: unsigned }, spreadPx: { schema: number }, color: { schema: string } }) } },
|
|
157
|
+
});
|
|
158
|
+
const edgeMotion = object({
|
|
159
|
+
operator: { schema: { kind: "string", enum: ["fade", "slide", "scale", "pop", "bounce", "blur-reveal", "wipe", "flip", "spin"] } },
|
|
160
|
+
durationFrames: { schema: positiveInteger }, easing: { schema: { kind: "string", enum: ["linear", "ease-in", "ease-out", "ease-in-out"] } },
|
|
161
|
+
direction: { schema: { kind: "string", enum: ["left", "right", "up", "down"] }, optional: true }, amount: { schema: number, optional: true },
|
|
162
|
+
origin: { schema: { kind: "literal", value: "outside-canvas" }, optional: true },
|
|
163
|
+
});
|
|
164
|
+
const sustainMotion = object({
|
|
165
|
+
operator: { schema: { kind: "string", enum: ["float", "breathe", "pulse", "wobble", "shake", "drift"] } },
|
|
166
|
+
amount: { schema: unsigned }, cycles: { schema: positiveInteger },
|
|
167
|
+
direction: { schema: { kind: "string", enum: ["left", "right", "up", "down"] }, optional: true },
|
|
168
|
+
});
|
|
169
|
+
export const mediaLifecycleMotionSchema: ValueSchema = object({
|
|
170
|
+
enter: { schema: edgeMotion, optional: true }, sustain: { schema: { kind: "array", items: sustainMotion } },
|
|
171
|
+
exit: { schema: edgeMotion, optional: true },
|
|
172
|
+
});
|
|
173
|
+
const soundTrigger: ValueSchema = { kind: "oneOf", variants: [
|
|
174
|
+
object({ kind: { schema: { kind: "literal", value: "enter" } } }),
|
|
175
|
+
object({ kind: { schema: { kind: "literal", value: "exit" } } }),
|
|
176
|
+
object({ kind: { schema: { kind: "literal", value: "handoff" } }, handoffId: { schema: string } }),
|
|
177
|
+
] };
|
|
178
|
+
export const mediaSoundSpecSchema: ValueSchema = object({
|
|
179
|
+
|
|
180
|
+
id: { schema: string }, trigger: { schema: soundTrigger }, gain: { schema: unsigned },
|
|
181
|
+
});
|
|
182
|
+
const soundEvent = object({ id: { schema: string }, trigger: { schema: soundTrigger }, source: { schema: audioSource }, gain: { schema: unsigned } });
|
|
183
|
+
export const mediaSoundSetSchema: ValueSchema = object({
|
|
184
|
+
|
|
185
|
+
sounds: { schema: { kind: "array", items: soundEvent } },
|
|
186
|
+
});
|
|
187
|
+
export const mediaItemSpecSchema: ValueSchema = object({
|
|
188
|
+
id: { schema: string },
|
|
189
|
+
presentation: { schema: mediaFramePresentationSchema }, motion: { schema: mediaLifecycleMotionSchema }, stackingOrder: { schema: integer },
|
|
190
|
+
sourceAudio: { schema: object({ fromLayer: { schema: string }, gain: { schema: unsigned } }), optional: true },
|
|
191
|
+
});
|
|
192
|
+
const sourceAudio = object({ fromLayer: { schema: string }, gain: { schema: unsigned } });
|
|
193
|
+
export const mediaSequenceMemberSpecSchema: ValueSchema = object({
|
|
194
|
+
|
|
195
|
+
id: { schema: string },
|
|
196
|
+
sourceAudio: { schema: sourceAudio, optional: true },
|
|
197
|
+
});
|
|
198
|
+
const unresolvedMember = object({
|
|
199
|
+
id: { schema: string }, activationFrame: { schema: unsignedInteger },
|
|
200
|
+
layers: { schema: { kind: "array", minItems: 1, items: layer } },
|
|
201
|
+
sourceAudio: { schema: sourceAudio, optional: true },
|
|
202
|
+
});
|
|
203
|
+
export const mediaSequenceMemberSetSchema: ValueSchema = object({
|
|
204
|
+
|
|
205
|
+
members: { schema: { kind: "array", items: unresolvedMember } },
|
|
206
|
+
});
|
|
207
|
+
const direction = { kind: "string", enum: ["left", "right", "up", "down"] } as const;
|
|
208
|
+
const handoffFields = {
|
|
209
|
+
id: { schema: string }, fromMemberId: { schema: string }, toMemberId: { schema: string },
|
|
210
|
+
operator: { schema: { kind: "string", enum: ["cut", "crossfade", "push", "wipe", "cover", "page-turn"] } },
|
|
211
|
+
durationFrames: { schema: unsignedInteger }, boundaryRatio: { schema: unsigned },
|
|
212
|
+
direction: { schema: direction, optional: true }, audio: { schema: { kind: "string", enum: ["cut", "crossfade"] } },
|
|
213
|
+
} as const;
|
|
214
|
+
export const mediaHandoffSpecSchema: ValueSchema = object({
|
|
215
|
+
...handoffFields,
|
|
216
|
+
});
|
|
217
|
+
export const mediaSequenceSpecSchema: ValueSchema = object({
|
|
218
|
+
|
|
219
|
+
id: { schema: string }, presentation: { schema: mediaFramePresentationSchema },
|
|
220
|
+
motion: { schema: mediaLifecycleMotionSchema }, stackingOrder: { schema: integer },
|
|
221
|
+
handoffs: { schema: { kind: "array", minItems: 1, items: mediaHandoffSpecSchema } },
|
|
222
|
+
});
|
|
223
|
+
const frameSpan = object({ startFrame: { schema: unsignedInteger }, endFrameExclusive: { schema: positiveInteger } });
|
|
224
|
+
const resolvedItem = object({
|
|
225
|
+
id: { schema: string }, span: { schema: frameSpan }, frame: { schema: spatialFrameSchema },
|
|
226
|
+
presentation: { schema: mediaFramePresentationSchema }, layers: { schema: { kind: "array", minItems: 1, items: layer } }, motion: { schema: mediaLifecycleMotionSchema },
|
|
227
|
+
stacking: { schema: object({ order: { schema: integer }, tieBreak: { schema: string } }) },
|
|
228
|
+
sourceAudio: { schema: object({ fromLayer: { schema: string }, gain: { schema: unsigned } }), optional: true },
|
|
229
|
+
sounds: { schema: { kind: "array", items: soundEvent } },
|
|
230
|
+
});
|
|
231
|
+
const resolvedMember = object({
|
|
232
|
+
id: { schema: string }, activationFrame: { schema: unsignedInteger }, logicalSpan: { schema: frameSpan },
|
|
233
|
+
visualSpan: { schema: frameSpan }, layers: { schema: { kind: "array", minItems: 1, items: layer } },
|
|
234
|
+
sourceAudio: { schema: sourceAudio, optional: true },
|
|
235
|
+
});
|
|
236
|
+
const resolvedHandoff = object({ ...handoffFields, span: { schema: frameSpan } });
|
|
237
|
+
const resolvedSequence = object({
|
|
238
|
+
id: { schema: string }, span: { schema: frameSpan }, terminalFrame: { schema: positiveInteger },
|
|
239
|
+
frame: { schema: spatialFrameSchema }, presentation: { schema: mediaFramePresentationSchema },
|
|
240
|
+
members: { schema: { kind: "array", minItems: 2, items: resolvedMember } },
|
|
241
|
+
handoffs: { schema: { kind: "array", minItems: 1, items: resolvedHandoff } },
|
|
242
|
+
motion: { schema: mediaLifecycleMotionSchema }, stacking: { schema: object({ order: { schema: integer }, tieBreak: { schema: string } }) },
|
|
243
|
+
sounds: { schema: { kind: "array", items: soundEvent } },
|
|
244
|
+
});
|
|
245
|
+
export const mediaTrackSetSchema: ValueSchema = object({
|
|
246
|
+
items: { schema: { kind: "array", items: resolvedItem } },
|
|
247
|
+
sequences: { schema: { kind: "array", items: resolvedSequence } },
|
|
248
|
+
});
|
|
249
|
+
export const mediaTrackProgramSchema: ValueSchema = object({
|
|
250
|
+
id: { schema: string },
|
|
251
|
+
items: { schema: { kind: "array", items: resolvedItem } }, sequences: { schema: { kind: "array", items: resolvedSequence } },
|
|
252
|
+
});
|
|
253
|
+
export const mediaTrackHeaderSchema: ValueSchema = object({
|
|
254
|
+
id: { schema: string },
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
const itemInputs = [
|
|
258
|
+
{ name: "set", type: mediaTrackTypes.set }, { name: "header", type: mediaTrackTypes.header },
|
|
259
|
+
{ name: "space", type: programSpaceTypes.programSpace }, { name: "canvas", type: spatialTypes.canvas },
|
|
260
|
+
{ name: "layers", type: mediaTrackTypes.layerSet },
|
|
261
|
+
{ name: "frame", type: spatialTypes.frame }, { name: "spec", type: mediaTrackTypes.itemSpec },
|
|
262
|
+
{ name: "sounds", type: mediaTrackTypes.soundSet }, { name: "window", type: temporalTypes.window },
|
|
263
|
+
] as const;
|
|
264
|
+
const memberInputs = [
|
|
265
|
+
{ name: "members", type: mediaTrackTypes.memberSet }, { name: "space", type: programSpaceTypes.programSpace }, { name: "layers", type: mediaTrackTypes.layerSet },
|
|
266
|
+
{ name: "spec", type: mediaTrackTypes.memberSpec }, { name: "activation", type: temporalTypes.instant },
|
|
267
|
+
] as const;
|
|
268
|
+
const sequenceInputs = [
|
|
269
|
+
{ name: "set", type: mediaTrackTypes.set }, { name: "header", type: mediaTrackTypes.header },
|
|
270
|
+
{ name: "space", type: programSpaceTypes.programSpace }, { name: "canvas", type: spatialTypes.canvas },
|
|
271
|
+
{ name: "members", type: mediaTrackTypes.memberSet },
|
|
272
|
+
{ name: "frame", type: spatialTypes.frame }, { name: "spec", type: mediaTrackTypes.sequenceSpec },
|
|
273
|
+
{ name: "sounds", type: mediaTrackTypes.soundSet }, { name: "terminal", type: temporalTypes.instant },
|
|
274
|
+
] as const;
|
|
275
|
+
|
|
276
|
+
const appearanceRecipeProperties = [
|
|
277
|
+
{ name: "fit", required: false, fallback: "contain",
|
|
278
|
+
values: ["contain", "cover", "fit-width", "fit-height", "native", "scale-down", "stretch"],
|
|
279
|
+
summary: "Scales the source into the fitting area left inside the Frame after border and padding." },
|
|
280
|
+
{ name: "frame-x", required: false, fallback: "0.5",
|
|
281
|
+
summary: "Places the destination alignment point across the fitting area, from 0 at its left edge to 1 at its right." },
|
|
282
|
+
{ name: "frame-y", required: false, fallback: "0.5",
|
|
283
|
+
summary: "Places the destination alignment point down the fitting area, from 0 at its top edge to 1 at its bottom." },
|
|
284
|
+
{ name: "content-x", required: false, fallback: "0.5",
|
|
285
|
+
summary: "Places the anchor point across the scaled source, from 0 at its left edge to 1 at its right." },
|
|
286
|
+
{ name: "content-y", required: false, fallback: "0.5",
|
|
287
|
+
summary: "Places the anchor point down the scaled source, from 0 at its top edge to 1 at its bottom." },
|
|
288
|
+
{ name: "fit-offset-x", required: false, fallback: "0",
|
|
289
|
+
summary: "Shifts the fitted source horizontally in pixels once the two anchor points meet." },
|
|
290
|
+
{ name: "fit-offset-y", required: false, fallback: "0",
|
|
291
|
+
summary: "Shifts the fitted source vertically in pixels once the two anchor points meet." },
|
|
292
|
+
{ name: "fit-constraint", required: false, values: ["bounded", "free"], fallback: "bounded",
|
|
293
|
+
summary: "With bounded, large content keeps the fitting area covered on each axis and small content stays inside it; free preserves the authored alignment and offsets. Clipping is controlled separately." },
|
|
294
|
+
{ name: "opacity", required: false, fallback: "1",
|
|
295
|
+
summary: "Sets how opaque the sampled picture is drawn." },
|
|
296
|
+
{ name: "blur", required: false, fallback: "0",
|
|
297
|
+
summary: "Blurs the sampled picture by a pixel radius." },
|
|
298
|
+
{ name: "brightness", required: false, fallback: "1",
|
|
299
|
+
summary: "Scales the brightness of the sampled picture." },
|
|
300
|
+
{ name: "contrast", required: false, fallback: "1",
|
|
301
|
+
summary: "Scales the contrast of the sampled picture." },
|
|
302
|
+
{ name: "saturation", required: false, fallback: "1",
|
|
303
|
+
summary: "Scales the saturation of the sampled picture." },
|
|
304
|
+
{ name: "playback", required: false, fallback: "once-start",
|
|
305
|
+
values: ["once-start", "once-end", "hold-start", "hold-end", "loop-start", "loop-end", "stretch"],
|
|
306
|
+
summary: "Decides how timed material occupies a window it does not match and which edge it aligns to." },
|
|
307
|
+
{ name: "trim-start", required: false,
|
|
308
|
+
summary: "Starts timed material at this whole frame of its own timeline, and is written with `trim-end`." },
|
|
309
|
+
{ name: "trim-end", required: false,
|
|
310
|
+
summary: "Ends timed material before this whole frame of its own timeline, and is written with `trim-start`." },
|
|
311
|
+
{ name: "stack-order", required: true,
|
|
312
|
+
summary: "Sets this unit's absolute stacking order in the Film, higher drawing in front." },
|
|
313
|
+
{ name: "clip", required: false, values: ["none", "frame", "rounded"], fallback: "frame",
|
|
314
|
+
summary: "Decides how the picture is clipped to the Frame." },
|
|
315
|
+
{ name: "radius", required: false, fallback: "0",
|
|
316
|
+
summary: "Rounds the clipped corners by a pixel radius, and is read only for a `rounded` clip." },
|
|
317
|
+
{ name: "padding", required: false, fallback: "0",
|
|
318
|
+
summary: "Insets the picture from the Frame edges. It admits one, two or four values — all sides, then vertical and horizontal, then each side — which no single number can carry, so it is written as text: `padding: \"14\"` and `padding: \"8 12\"`. A bare number is refused." },
|
|
319
|
+
{ name: "border-width", required: false, fallback: "0",
|
|
320
|
+
summary: "Draws a border of this pixel width, and draws none at `0`." },
|
|
321
|
+
{ name: "border-style", required: false, values: ["solid", "dashed", "dotted"], fallback: "solid",
|
|
322
|
+
summary: "Chooses how the border is stroked." },
|
|
323
|
+
{ name: "border-color", required: false,
|
|
324
|
+
summary: "Paints the border, which a non-zero `border-width` requires." },
|
|
325
|
+
{ name: "shadows", required: false, fallback: "none",
|
|
326
|
+
summary: "Casts shadows behind the Frame, written as `x y blur spread color` entries separated by semicolons." },
|
|
327
|
+
{ name: "frame-paint", required: false, fallback: "transparent",
|
|
328
|
+
summary: "Fills the whole Frame behind every layer with a color, `linear(angle;stops)` or `radial(x,y;stops)`." },
|
|
329
|
+
] as const;
|
|
330
|
+
|
|
331
|
+
const motionRecipeProperties = [
|
|
332
|
+
{ name: "enter", required: false, fallback: "none",
|
|
333
|
+
values: ["none", "fade", "slide", "scale", "pop", "bounce", "blur-reveal", "wipe", "flip", "spin"],
|
|
334
|
+
summary: "Chooses the operator the unit enters on." },
|
|
335
|
+
{ name: "enter-frames", required: false,
|
|
336
|
+
summary: "Sets how many frames the entrance runs, which every entrance operator requires." },
|
|
337
|
+
{ name: "enter-easing", required: false, values: ["linear", "ease-in", "ease-out", "ease-in-out"], fallback: "ease-in-out",
|
|
338
|
+
summary: "Shapes how the entrance accelerates." },
|
|
339
|
+
{ name: "enter-direction", required: false, values: ["left", "right", "up", "down"],
|
|
340
|
+
summary: "Points a directional entrance the way it travels." },
|
|
341
|
+
{ name: "enter-amount", required: false,
|
|
342
|
+
summary: "Sets how far the entrance operator displaces the unit." },
|
|
343
|
+
{ name: "enter-origin", required: false, values: ["outside-canvas"],
|
|
344
|
+
summary: "Starts the entrance beyond the Canvas rather than at the Frame." },
|
|
345
|
+
{ name: "sustain", required: false, fallback: "none",
|
|
346
|
+
summary: "Holds the unit in continuous motion for its whole window, written as `operator amount cycles` entries, each taking an optional direction, separated by commas." },
|
|
347
|
+
{ name: "exit", required: false, fallback: "none",
|
|
348
|
+
values: ["none", "fade", "slide", "scale", "pop", "bounce", "blur-reveal", "wipe", "flip", "spin"],
|
|
349
|
+
summary: "Chooses the operator the unit leaves on." },
|
|
350
|
+
{ name: "exit-frames", required: false,
|
|
351
|
+
summary: "Sets how many frames the exit runs, which every exit operator requires." },
|
|
352
|
+
{ name: "exit-easing", required: false, values: ["linear", "ease-in", "ease-out", "ease-in-out"], fallback: "ease-in-out",
|
|
353
|
+
summary: "Shapes how the exit accelerates." },
|
|
354
|
+
{ name: "exit-direction", required: false, values: ["left", "right", "up", "down"],
|
|
355
|
+
summary: "Points a directional exit the way it travels." },
|
|
356
|
+
{ name: "exit-amount", required: false,
|
|
357
|
+
summary: "Sets how far the exit operator displaces the unit." },
|
|
358
|
+
{ name: "exit-origin", required: false, values: ["outside-canvas"],
|
|
359
|
+
summary: "Sends the exit beyond the Canvas rather than to the Frame." },
|
|
360
|
+
] as const;
|
|
361
|
+
|
|
362
|
+
export const mediaTrackMarkupSurfaces = [{
|
|
363
|
+
name: "track", tag: "Track", mode: "structured",
|
|
364
|
+
outputs: [spatialTypes.fit, mediaTrackTypes.header, mediaTrackTypes.paintLayerSpec, mediaTrackTypes.sampleLayerSpec,
|
|
365
|
+
mediaTrackTypes.layerSet, mediaTrackTypes.soundSpec, mediaTrackTypes.soundSet,
|
|
366
|
+
mediaTrackTypes.itemSpec, mediaTrackTypes.memberSpec, mediaTrackTypes.memberSet,
|
|
367
|
+
mediaTrackTypes.handoffSpec, mediaTrackTypes.sequenceSpec, mediaTrackTypes.set,
|
|
368
|
+
temporalTypes.instantSpec, temporalTypes.windowSpec, temporalTypes.instant, temporalTypes.window, mediaTrackTypes.program,
|
|
369
|
+
compositionTypes.visualTrack, compositionTypes.audioTrack],
|
|
370
|
+
vocabulary: {
|
|
371
|
+
summary: "Show the semantic performance, place independent media Items, and compose replacement Sequences on a shared film time axis and Canvas. Publishes a VisualTrack and, when audio is authored, an AudioTrack.",
|
|
372
|
+
appearance: "Pictures and layered compositions occupy authored Frames on the Canvas. Each source is scaled and aligned inside its Frame's border and padding; a contain fit can leave space, while cover can crop. Paint and sampled Layers draw in Source order under a shared rectangular, rounded or Path clip, with optional border and shadows. Lifecycle motion moves the framed unit; Sampling pans, zooms or rotates the picture inside it. Each Item has an independent window. A Sequence shares one outer Frame while Members replace its contents through cut, crossfade, push, wipe, cover or page-turn Handoffs. Source playback determines whether moving content covers the whole assigned span. Absolute stack order decides which overlapping unit draws in front.",
|
|
373
|
+
preview: previewImage("Track.png"),
|
|
374
|
+
attributes: [
|
|
375
|
+
{ name: "id", kind: "identifier", required: true,
|
|
376
|
+
summary: "Names this Track and prefixes the identity of every Item, Sequence, layer and sound that does not name itself." },
|
|
377
|
+
...temporalContextAttributeVocabulary,
|
|
378
|
+
{ name: "canvas", kind: "reference", required: true, accepts: [spatialTypes.canvas],
|
|
379
|
+
summary: "Chooses the Canvas every Frame on this Track is measured inside." },
|
|
380
|
+
],
|
|
381
|
+
children: [
|
|
382
|
+
{ tag: "Performance", cardinality: "many",
|
|
383
|
+
summary: "Shows the enclosing Track's semantic performance during a chosen interval, preserving each Take's original source position under one frame and continuous motion. Accepts Sampling and Sound children.",
|
|
384
|
+
attributes: [
|
|
385
|
+
{ name: "id", kind: "identifier", required: false,
|
|
386
|
+
summary: "Names this presentation; otherwise its identity follows the shared Item/Performance order." },
|
|
387
|
+
{ name: "frame", kind: "reference", required: true, accepts: [spatialTypes.frame],
|
|
388
|
+
summary: "Places the performance picture on the Canvas." },
|
|
389
|
+
{ name: "appearance", kind: "reference", required: true, accepts: [svsRecipeType],
|
|
390
|
+
summary: "Uses the Media fitting, picture styling, frame paint, clipping, border and shadow properties. Source time follows the semantic performance.",
|
|
391
|
+
recipe: appearanceRecipeProperties.filter(property => !["playback", "trim-start", "trim-end"].includes(property.name)) },
|
|
392
|
+
{ name: "motion", kind: "reference", required: false, accepts: [svsRecipeType],
|
|
393
|
+
summary: "Moves the whole framed presentation over its Window, across Take boundaries.",
|
|
394
|
+
recipe: motionRecipeProperties },
|
|
395
|
+
{ name: "clip", kind: "reference", required: false, accepts: [spatialTypes.path],
|
|
396
|
+
summary: "Clips the presentation to an authored Path." },
|
|
397
|
+
...temporalWindowAttributeVocabulary,
|
|
398
|
+
] },
|
|
399
|
+
{ tag: "Item", cardinality: "many",
|
|
400
|
+
summary: "One independently timed picture on its own Frame, from a direct source or ordered Paint and Layer children, carrying its own Sampling and Sound children.",
|
|
401
|
+
attributes: [
|
|
402
|
+
{ name: "id", kind: "identifier", required: false,
|
|
403
|
+
summary: "Names this Item; the Track derives `<track>.item.<index>` when it is absent." },
|
|
404
|
+
{ name: "frame", kind: "reference", required: true, accepts: [spatialTypes.frame],
|
|
405
|
+
summary: "Chooses the Frame the Item occupies on the Canvas." },
|
|
406
|
+
{ name: "appearance", kind: "reference", required: true, accepts: [svsRecipeType],
|
|
407
|
+
summary: "Chooses the Recipe for fitting, source occupancy, frame Paint, clipping, borders and shadows, and the Recipe every sample Layer falls back to.",
|
|
408
|
+
recipe: appearanceRecipeProperties },
|
|
409
|
+
{ name: "motion", kind: "reference", required: false, accepts: [svsRecipeType],
|
|
410
|
+
summary: "Chooses the Recipe for the whole Item's enter, sustain and exit motion.",
|
|
411
|
+
recipe: motionRecipeProperties },
|
|
412
|
+
{ name: "clip", kind: "reference", required: false, accepts: [spatialTypes.path],
|
|
413
|
+
summary: "Clips the Item to an authored Path." },
|
|
414
|
+
{ name: "image", kind: "reference", required: false, accepts: [artifactTypes.blob],
|
|
415
|
+
summary: "Shows a durationless still image as the Item's direct source." },
|
|
416
|
+
{ name: "media", kind: "reference", required: false, accepts: [mediaTypes.synchronized],
|
|
417
|
+
summary: "Shows an explicitly prepared timed source." },
|
|
418
|
+
{ name: "surface", kind: "reference", required: false, accepts: [mediaTypes.compositableSurface],
|
|
419
|
+
summary: "Shows an alpha-aware still or timed Surface." },
|
|
420
|
+
{ name: "extent", kind: "reference", required: false, accepts: [spatialTypes.extent],
|
|
421
|
+
summary: "Gives the still image its authored pixel Extent. The `fit` scales this Extent into the Frame, so what it decides is the shape: its width-to-height ratio has to be the picture's, and the pixel numbers themselves only have to hold that ratio. A generated picture's own size is the generator's to choose and is not knowable when the Source is written, so write the ratio you asked that generator for." },
|
|
422
|
+
{ name: "source-audio", kind: "literal", required: false,
|
|
423
|
+
summary: "Names the layer whose source audio this Item emits." },
|
|
424
|
+
{ name: "audio-gain", kind: "literal", required: false,
|
|
425
|
+
summary: "Scales the selected source audio by a linear gain; defaults to `1`." },
|
|
426
|
+
...temporalWindowAttributeVocabulary,
|
|
427
|
+
] },
|
|
428
|
+
{ tag: "Sequence", cardinality: "many",
|
|
429
|
+
summary: "One Frame whose Members replace each other at explicit activation points, written as ordered Member, Handoff and Sound children.",
|
|
430
|
+
attributes: [
|
|
431
|
+
{ name: "id", kind: "identifier", required: false,
|
|
432
|
+
summary: "Names this Sequence; the Track derives `<track>.sequence.<index>` when it is absent." },
|
|
433
|
+
{ name: "frame", kind: "reference", required: true, accepts: [spatialTypes.frame],
|
|
434
|
+
summary: "Chooses the Frame every Member occupies." },
|
|
435
|
+
{ name: "appearance", kind: "reference", required: true, accepts: [svsRecipeType],
|
|
436
|
+
summary: "Chooses the Recipe for fitting, frame Paint, clipping, borders and shadows, and the Recipe every Member falls back to.",
|
|
437
|
+
recipe: appearanceRecipeProperties },
|
|
438
|
+
{ name: "motion", kind: "reference", required: false, accepts: [svsRecipeType],
|
|
439
|
+
summary: "Chooses the Recipe for the whole Sequence's enter, sustain and exit motion.",
|
|
440
|
+
recipe: motionRecipeProperties },
|
|
441
|
+
{ name: "clip", kind: "reference", required: false, accepts: [spatialTypes.path],
|
|
442
|
+
summary: "Clips the Sequence to an authored Path." },
|
|
443
|
+
{ name: "until", kind: "expression", required: true,
|
|
444
|
+
accepts: [narrativeTypes.moment, narrativeTypes.selection, narrativeTypes.excerpt],
|
|
445
|
+
summary: "Ends the Sequence at a Moment, a Selection/Segment boundary, or an authored time such as 8s." },
|
|
446
|
+
{ name: "until-boundary", kind: "literal", required: false, values: ["start", "end"],
|
|
447
|
+
summary: "Chooses which edge of the ending Selection or Segment ends the Sequence; defaults to `end` and is refused for a Moment." },
|
|
448
|
+
] },
|
|
449
|
+
],
|
|
450
|
+
ports: [
|
|
451
|
+
{ name: "program", type: mediaTrackTypes.program,
|
|
452
|
+
summary: "The resolved Item and Sequence schedule consumed by both rendered facets." },
|
|
453
|
+
{ name: "visual", type: compositionTypes.visualTrack,
|
|
454
|
+
summary: "The rendered picture, an ordinary peer VisualTrack." },
|
|
455
|
+
{ name: "audio", type: compositionTypes.audioTrack,
|
|
456
|
+
summary: "The rendered sound, published only when a source audio selection or a Sound is authored." },
|
|
457
|
+
],
|
|
458
|
+
example: `<pipeline:Normalize id="cutaway-bags" source={bags-take.video}
|
|
459
|
+
video="primary-moving" audio="none" span-authority="video" clock={clock}/>
|
|
460
|
+
|
|
461
|
+
<media-track:Track id="cutaways" semantic={speech.semantic} canvas={vertical}>
|
|
462
|
+
<media-track:Performance during="program" frame={full} appearance={recipes.media.presenter}/>
|
|
463
|
+
<media-track:Item id="bags" media={cutaway-bags.media} during={story.selection.bags}
|
|
464
|
+
frame={full} appearance={recipes.media.cutaway} motion={recipes.motion.cut}/>
|
|
465
|
+
</media-track:Track>`,
|
|
466
|
+
notes: [
|
|
467
|
+
"A Track requires at least one Performance, Item or Sequence and accepts no text content.",
|
|
468
|
+
"Performance and Item use one window form: `during`, `at` with `for`, `until` with `for`, or `start` with `end`. Bind `selection`, `segment` and/or `moment` only when the start/end expressions use them; different endpoints can use different bindings.",
|
|
469
|
+
"Performance uses the Track's existing semantic input. `during=\"program\"` shows all its prepared Takes in order; a Segment or Selection shows that interval at the corresponding source positions. Speech Track.audio independently supplies the original sound. Sampling pans, zooms or rotates the fitted picture across the whole selected Window.",
|
|
470
|
+
"A point expression is `program.start`, `program.end`, `selection.start`, `selection.end`, `segment.start`, `segment.end` or `moment.cue`, each optionally offset by `+` or `-` and a duration, or a bare duration read as an absolute position.",
|
|
471
|
+
"A unit that names a direct source names exactly one of `image`, `media` or `surface`; `extent` is required with `image` and refused otherwise.",
|
|
472
|
+
"`audio-gain` is refused without selected source audio.",
|
|
473
|
+
"`clip` is refused on a Performance, Item or Sequence whose Recipe already states a clip.",
|
|
474
|
+
"An `appearance` or `motion` Recipe is refused when it carries a property outside its own set.",
|
|
475
|
+
"`playback`, `trim-start` and `trim-end` are refused on durationless still material, and `trim-start` and `trim-end` are written together or not at all.",
|
|
476
|
+
"An `enter` or an `exit` operator requires its own `enter-frames` or `exit-frames`.",
|
|
477
|
+
"An Item written with a direct source accepts `<Sampling>` and `<Sound>` children; an Item written without one accepts `<Paint>`, `<Layer>` and `<Sound>` children, and requires at least one Paint or Layer.",
|
|
478
|
+
"A Sequence requires at least two `<Member>` children, exactly one `<Handoff>` for every adjacent Member pair, and accepts `<Sound>` children.",
|
|
479
|
+
"Sequence `until` selects a Moment, a Selection or Segment boundary, or an authored time such as 8s. `until-boundary` defaults to end for a Selection or Segment.",
|
|
480
|
+
"A Member is one picture in the replacement order:",
|
|
481
|
+
[
|
|
482
|
+
"| Attribute | Kind | Required | Meaning |",
|
|
483
|
+
"|---|---|---|---|",
|
|
484
|
+
"| `id` | identifier | no | Names this Member; the Sequence derives `<sequence>.member.<index>` otherwise |",
|
|
485
|
+
"| `at` | reference or time | one timing form | A Moment, Selection or Segment boundary, or an authored time that activates this Member |",
|
|
486
|
+
"| `boundary` | literal (start, end) | with a Selection or Segment | Which edge activates this Member; refused for a Moment |",
|
|
487
|
+
"| `instant` | expression | one timing form | Explicit point expression instead of `at`; bind selection, segment or moment if the expression uses it |",
|
|
488
|
+
"| `appearance` | reference (@hypit/svs@1#Recipe) | no | This Member's own Recipe in place of the Sequence's |",
|
|
489
|
+
"| `image` | reference (@hypit/artifact@1#BlobArtifact) | one source form | A durationless still image, which also requires `extent` |",
|
|
490
|
+
"| `media` | reference (@hypit/media@1#SynchronizedMedia) | one source form | An explicitly prepared timed source |",
|
|
491
|
+
"| `surface` | reference (@hypit/media@1#CompositableSurfaceRef) | one source form | An alpha-aware still or timed Surface |",
|
|
492
|
+
"| `extent` | reference (@hypit/spatial@1#IntrinsicExtent) | with `image` | The authored pixel extent of the still image |",
|
|
493
|
+
"| `source-audio` | literal | no | Names the layer whose source audio this Member emits |",
|
|
494
|
+
"| `audio-gain` | literal | with selected source audio | Linear gain applied to the selected source audio; defaults to `1` |",
|
|
495
|
+
].join("\n"),
|
|
496
|
+
"A Member written with a direct source accepts `<Sampling>` children; a Member written without one accepts `<Paint>` and `<Layer>` children, and requires at least one of them.",
|
|
497
|
+
"A Member `appearance` Recipe accepts the same properties as its Sequence's, of which the fit properties, the sample properties and `frame-paint` are read; clipping, padding, borders, shadows and `stack-order` stay with the Sequence Recipe.",
|
|
498
|
+
"A Handoff is written empty and carries the transition between one Member pair:",
|
|
499
|
+
[
|
|
500
|
+
"| Attribute | Kind | Required | Meaning |",
|
|
501
|
+
"|---|---|---|---|",
|
|
502
|
+
"| `id` | identifier | no | Names this Handoff; the Sequence derives `<sequence>.handoff.<index>` otherwise |",
|
|
503
|
+
"| `from` | literal | yes | The outgoing Member id; Handoffs are ordered by adjacent Member pair |",
|
|
504
|
+
"| `transition` | reference (@hypit/svs@1#Recipe) | yes | The Recipe for the handoff operator, its length, its boundary and its audio treatment |",
|
|
505
|
+
].join("\n"),
|
|
506
|
+
"A `transition` Recipe carries exactly these properties:",
|
|
507
|
+
[
|
|
508
|
+
"| Property | Required | Default | Meaning |",
|
|
509
|
+
"|---|---|---|---|",
|
|
510
|
+
"| `operator` | yes | — | How the outgoing Member gives way to the incoming one. One of cut, crossfade, push, wipe, cover, page-turn. |",
|
|
511
|
+
"| `duration-frames` | yes | — | How many frames the handoff runs. |",
|
|
512
|
+
"| `boundary-ratio` | no | `0.5` | Where the activation point sits inside the handoff, from 0 at its first frame to 1 at its last. |",
|
|
513
|
+
"| `direction` | no | — | Points a directional handoff the way it travels. One of left, right, up, down. |",
|
|
514
|
+
"| `audio` | no | `cut` | Decides whether source audio cuts or crossfades across the handoff. One of cut, crossfade. |",
|
|
515
|
+
].join("\n"),
|
|
516
|
+
"A Paint child is written empty and paints one layer:",
|
|
517
|
+
[
|
|
518
|
+
"| Attribute | Kind | Required | Meaning |",
|
|
519
|
+
"|---|---|---|---|",
|
|
520
|
+
"| `id` | identifier | no | Names this layer; the Track derives one from the unit and the layer position otherwise |",
|
|
521
|
+
"| `appearance` | reference (@hypit/svs@1#Recipe) | yes | The solid or gradient paint and the opacity this layer is filled with |",
|
|
522
|
+
].join("\n"),
|
|
523
|
+
"A Paint `appearance` Recipe carries exactly these properties:",
|
|
524
|
+
[
|
|
525
|
+
"| Property | Required | Default | Meaning |",
|
|
526
|
+
"|---|---|---|---|",
|
|
527
|
+
"| `paint` | yes | — | Fills the layer with a color, `linear(angle;stops)` or `radial(x,y;stops)`, each gradient carrying at least two `color@offset` stops. |",
|
|
528
|
+
"| `opacity` | no | `1` | Sets how opaque the fill is drawn. |",
|
|
529
|
+
].join("\n"),
|
|
530
|
+
"A Layer child samples one source into the unit's Frame:",
|
|
531
|
+
[
|
|
532
|
+
"| Attribute | Kind | Required | Meaning |",
|
|
533
|
+
"|---|---|---|---|",
|
|
534
|
+
"| `id` | identifier | no | Names this layer, which `source-audio` selects by; the Track derives one from the unit and the layer position otherwise |",
|
|
535
|
+
"| `image` | reference (@hypit/artifact@1#BlobArtifact) | one source form | A durationless still image, which also requires `extent` |",
|
|
536
|
+
"| `media` | reference (@hypit/media@1#SynchronizedMedia) | one source form | An explicitly prepared timed source |",
|
|
537
|
+
"| `surface` | reference (@hypit/media@1#CompositableSurfaceRef) | one source form | An alpha-aware still or timed Surface |",
|
|
538
|
+
"| `extent` | reference (@hypit/spatial@1#IntrinsicExtent) | with `image` | The authored pixel extent of the still image |",
|
|
539
|
+
"| `appearance` | reference (@hypit/svs@1#Recipe) | no | This layer's own Recipe in place of the unit's |",
|
|
540
|
+
].join("\n"),
|
|
541
|
+
"A Layer `appearance` Recipe carries the fit properties and the sample properties and nothing else, so a Layer states its own Recipe rather than inheriting the unit's, which requires `stack-order`.",
|
|
542
|
+
"A Sampling child is written empty and states one keyframe of sampling motion:",
|
|
543
|
+
[
|
|
544
|
+
"| Attribute | Kind | Required | Meaning |",
|
|
545
|
+
"|---|---|---|---|",
|
|
546
|
+
"| `at` | literal | yes | Where the keyframe sits in the unit's window, written as `start`, `end` or a percentage inside `0%`..`100%` |",
|
|
547
|
+
"| `zoom` | literal | no | The sampling scale at this keyframe; defaults to `1` |",
|
|
548
|
+
"| `x` | literal | no | The horizontal sampling offset at this keyframe; defaults to `0` |",
|
|
549
|
+
"| `y` | literal | no | The vertical sampling offset at this keyframe; defaults to `0` |",
|
|
550
|
+
"| `rotate` | literal | no | The sampling rotation in degrees at this keyframe; defaults to `0` |",
|
|
551
|
+
"| `easing` | literal (linear, ease-in, ease-out, ease-in-out) | no | How the sampling moves out of this keyframe |",
|
|
552
|
+
].join("\n"),
|
|
553
|
+
"A Sound child is written empty and plays one prepared source on one trigger:",
|
|
554
|
+
[
|
|
555
|
+
"| Attribute | Kind | Required | Meaning |",
|
|
556
|
+
"|---|---|---|---|",
|
|
557
|
+
"| `id` | identifier | no | Names this sound; the Track derives one from the unit and the sound position otherwise |",
|
|
558
|
+
"| `source` | reference (@hypit/media@1#SynchronizedMedia) | yes | The explicitly prepared audio this sound plays |",
|
|
559
|
+
"| `at` | literal (enter, exit) | one trigger form | Plays the sound as the unit enters or as it exits |",
|
|
560
|
+
"| `handoff` | literal | one trigger form | Plays the sound on the named Handoff of the surrounding Sequence |",
|
|
561
|
+
"| `gain` | literal | no | Linear gain applied to this sound; defaults to `1` |",
|
|
562
|
+
].join("\n"),
|
|
563
|
+
"A Sound states exactly one trigger form, and `handoff` only names a Handoff of the Sequence it is written in.",
|
|
564
|
+
"A direct prepared source is sampled into a layer named `content`; use `source-audio=\"content\"` to include its audio. Layered units select a Layer id. Raw `video` and `audio=\"include\"` attributes are not accepted.",
|
|
565
|
+
],
|
|
566
|
+
},
|
|
567
|
+
}] as const;
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
export const mediaTrackManifest: ModuleManifest = {
|
|
571
|
+
format: "hypit.module@1",
|
|
572
|
+
name: mediaTrackModuleRef.name,
|
|
573
|
+
version: mediaTrackModuleRef.version,
|
|
574
|
+
dependencies: [
|
|
575
|
+
artifactDependency,
|
|
576
|
+
mediaDependency,
|
|
577
|
+
narrativeDependency,
|
|
578
|
+
programSpaceDependency,
|
|
579
|
+
semanticTrackDependency,
|
|
580
|
+
temporalDependency,
|
|
581
|
+
spatialDependency,
|
|
582
|
+
compositionDependency,
|
|
583
|
+
],
|
|
584
|
+
types: [
|
|
585
|
+
{ name: mediaTrackTypes.header.name },
|
|
586
|
+
{ name: mediaTrackTypes.paintLayerSpec.name },
|
|
587
|
+
{ name: mediaTrackTypes.sampleLayerSpec.name },
|
|
588
|
+
{ name: mediaTrackTypes.layerSet.name },
|
|
589
|
+
{ name: mediaTrackTypes.soundSpec.name },
|
|
590
|
+
{ name: mediaTrackTypes.soundSet.name },
|
|
591
|
+
{ name: mediaTrackTypes.itemSpec.name },
|
|
592
|
+
{ name: mediaTrackTypes.memberSpec.name },
|
|
593
|
+
{ name: mediaTrackTypes.memberSet.name },
|
|
594
|
+
{ name: mediaTrackTypes.handoffSpec.name },
|
|
595
|
+
{ name: mediaTrackTypes.sequenceSpec.name },
|
|
596
|
+
{ name: mediaTrackTypes.set.name },
|
|
597
|
+
{ name: mediaTrackTypes.program.name },
|
|
598
|
+
],
|
|
599
|
+
capabilities: [],
|
|
600
|
+
producers: [
|
|
601
|
+
{ name: mediaTrackProducers.createLayers.name, inputs: [], outputs: [{ name: "layers", type: mediaTrackTypes.layerSet }], needs: [] },
|
|
602
|
+
{ name: mediaTrackProducers.appendPaintLayer.name, inputs: [{ name: "layers", type: mediaTrackTypes.layerSet }, { name: "spec", type: mediaTrackTypes.paintLayerSpec }], outputs: [{ name: "layers", type: mediaTrackTypes.layerSet }], needs: [] },
|
|
603
|
+
{ name: mediaTrackProducers.appendStillLayer.name, inputs: [{ name: "layers", type: mediaTrackTypes.layerSet }, { name: "source", type: artifactTypes.blob }, { name: "extent", type: spatialTypes.extent }, { name: "fit", type: spatialTypes.fit }, { name: "spec", type: mediaTrackTypes.sampleLayerSpec }], outputs: [{ name: "layers", type: mediaTrackTypes.layerSet }], needs: [] },
|
|
604
|
+
{ name: mediaTrackProducers.appendTimedLayer.name, inputs: [{ name: "layers", type: mediaTrackTypes.layerSet }, { name: "source", type: mediaTypes.synchronized }, { name: "fit", type: spatialTypes.fit }, { name: "spec", type: mediaTrackTypes.sampleLayerSpec }], outputs: [{ name: "layers", type: mediaTrackTypes.layerSet }], needs: [] },
|
|
605
|
+
{ name: mediaTrackProducers.appendSurfaceLayer.name, inputs: [{ name: "layers", type: mediaTrackTypes.layerSet }, { name: "source", type: mediaTypes.compositableSurface }, { name: "fit", type: spatialTypes.fit }, { name: "spec", type: mediaTrackTypes.sampleLayerSpec }], outputs: [{ name: "layers", type: mediaTrackTypes.layerSet }], needs: [] },
|
|
606
|
+
{ name: mediaTrackProducers.createSounds.name, inputs: [], outputs: [{ name: "sounds", type: mediaTrackTypes.soundSet }], needs: [] },
|
|
607
|
+
{ name: mediaTrackProducers.appendSound.name, inputs: [{ name: "sounds", type: mediaTrackTypes.soundSet }, { name: "source", type: mediaTypes.synchronized }, { name: "spec", type: mediaTrackTypes.soundSpec }], outputs: [{ name: "sounds", type: mediaTrackTypes.soundSet }], needs: [] },
|
|
608
|
+
{ name: mediaTrackProducers.createSet.name, inputs: [], outputs: [{ name: "set", type: mediaTrackTypes.set }], needs: [] },
|
|
609
|
+
{ name: mediaTrackProducers.appendPerformance.name, inputs: [...itemInputs,
|
|
610
|
+
{ name: "semantic", type: semanticTrackTypes.track }, { name: "fit", type: spatialTypes.fit },
|
|
611
|
+
{ name: "sampleSpec", type: mediaTrackTypes.sampleLayerSpec }], outputs: [{ name: "set", type: mediaTrackTypes.set }], needs: [] },
|
|
612
|
+
{ name: mediaTrackProducers.appendItem.name, inputs: itemInputs, outputs: [{ name: "set", type: mediaTrackTypes.set }], needs: [] },
|
|
613
|
+
{ name: mediaTrackProducers.bindItemClipPath.name, inputs: [{ name: "spec", type: mediaTrackTypes.itemSpec }, { name: "path", type: spatialTypes.path }], outputs: [{ name: "spec", type: mediaTrackTypes.itemSpec }], needs: [] },
|
|
614
|
+
{ name: mediaTrackProducers.bindSequenceClipPath.name, inputs: [{ name: "spec", type: mediaTrackTypes.sequenceSpec }, { name: "path", type: spatialTypes.path }], outputs: [{ name: "spec", type: mediaTrackTypes.sequenceSpec }], needs: [] },
|
|
615
|
+
{ name: mediaTrackProducers.createMembers.name, inputs: [], outputs: [{ name: "members", type: mediaTrackTypes.memberSet }], needs: [] },
|
|
616
|
+
{ name: mediaTrackProducers.appendMember.name, inputs: memberInputs, outputs: [{ name: "members", type: mediaTrackTypes.memberSet }], needs: [] },
|
|
617
|
+
{ name: mediaTrackProducers.appendSequence.name, inputs: sequenceInputs, outputs: [{ name: "set", type: mediaTrackTypes.set }], needs: [] },
|
|
618
|
+
{ name: mediaTrackProducers.finalize.name, inputs: [{ name: "set", type: mediaTrackTypes.set }, { name: "header", type: mediaTrackTypes.header }, { name: "space", type: programSpaceTypes.programSpace }], outputs: [{ name: "program", type: mediaTrackTypes.program }], needs: [] },
|
|
619
|
+
{ name: mediaTrackProducers.projectVisual.name, inputs: [{ name: "space", type: programSpaceTypes.programSpace }, { name: "program", type: mediaTrackTypes.program }], outputs: [{ name: "track", type: compositionTypes.visualTrack }], needs: [] },
|
|
620
|
+
{ name: mediaTrackProducers.projectAudio.name, inputs: [{ name: "space", type: programSpaceTypes.programSpace }, { name: "program", type: mediaTrackTypes.program }], outputs: [{ name: "track", type: compositionTypes.audioTrack }], needs: [] },
|
|
621
|
+
],
|
|
622
|
+
};
|
|
623
|
+
|
|
624
|
+
export const mediaTrackDependency = { module: mediaTrackModuleRef } as const;
|