@hypit/hypit 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/public/caption.d.ts +206 -183
- package/dist/public/composition.d.ts +25 -3
- package/dist/public/endpoint-kit.d.ts +24 -2
- package/dist/public/generation.d.ts +5 -1
- package/dist/public/hyperframes.d.ts +19 -1
- package/dist/public/narrative.d.ts +17 -3
- package/dist/public/performance.d.ts +1590 -0
- package/dist/public/program-space.d.ts +179 -32
- package/dist/public/runtime-kit.d.ts +21 -8
- package/dist/public/sound.d.ts +822 -0
- package/dist/public/speech.d.ts +41 -0
- package/dist/public/studio-adapter.d.ts +107 -16
- package/dist/public/temporal-markup.d.ts +9 -44
- package/dist/public/temporal.d.ts +37 -28
- package/dist/public/{semantic-track.d.ts → timeline.d.ts} +62 -49
- package/examples/README.md +18 -10
- package/examples/minimal-author-package/packages/example-component/preview/preview.svml +19 -12
- package/examples/minimal-author-package/packages/example-component/src/component.ts +5 -5
- package/examples/minimal-author-package/packages/example-component/src/fragment.ts +3 -5
- package/examples/minimal-author-package/packages/example-component/src/manifest.ts +8 -10
- package/examples/minimal-author-package/packages/example-component/src/surface.ts +2 -2
- package/examples/provider-package/README.md +78 -0
- package/examples/provider-package/hypit.runtime.json +12 -0
- package/examples/provider-package/packages/provider-images/package.json +11 -0
- package/examples/provider-package/packages/provider-images/src/activation.ts +24 -0
- package/examples/provider-package/packages/provider-images/src/provider.ts +122 -0
- package/examples/provider-package/packages/provider-images/tsconfig.json +9 -0
- package/examples/semantic-composition/README.md +6 -0
- package/examples/semantic-composition/chat.svml +6 -5
- package/examples/semantic-composition/packages/chat-scene/README.md +3 -3
- package/examples/semantic-composition/packages/chat-scene/src/activation.ts +18 -21
- package/examples/semantic-composition/packages/chat-scene/src/render.ts +4 -4
- package/examples/semantic-composition/packages/performance-styles/README.md +42 -0
- package/examples/semantic-composition/packages/performance-styles/package.json +25 -0
- package/examples/semantic-composition/packages/performance-styles/src/activation.ts +57 -0
- package/examples/semantic-composition/packages/performance-styles/src/render.ts +54 -0
- package/examples/semantic-composition/packages/performance-styles/src/studio.ts +28 -0
- package/examples/semantic-composition/packages/performance-styles/tsconfig.json +18 -0
- package/examples/semantic-composition/packages/responsive-explainer/README.md +16 -9
- package/examples/semantic-composition/packages/responsive-explainer/src/activation.ts +12 -12
- package/examples/semantic-composition/packages/responsive-explainer/src/render.ts +5 -5
- package/examples/semantic-composition/packages/sound-styles/README.md +36 -0
- package/examples/semantic-composition/packages/sound-styles/package.json +25 -0
- package/examples/semantic-composition/packages/sound-styles/src/activation.ts +53 -0
- package/examples/semantic-composition/packages/sound-styles/src/render.ts +14 -0
- package/examples/semantic-composition/packages/sound-styles/tsconfig.json +18 -0
- package/package.json +35 -15
- package/packages/audio-track/README.md +20 -13
- package/packages/audio-track/package.json +1 -1
- package/packages/audio-track/src/component.ts +4 -4
- package/packages/audio-track/src/fragment.ts +6 -5
- package/packages/audio-track/src/index.ts +1 -1
- package/packages/audio-track/src/manifest.ts +17 -16
- package/packages/audio-track/src/program.ts +21 -25
- package/packages/audio-track/src/surface.ts +19 -18
- package/packages/audio-track-studio/README.md +23 -0
- package/packages/audio-track-studio/src/index.ts +33 -19
- package/packages/author-kit/README.md +1 -1
- package/packages/background-removal/README.md +4 -7
- package/packages/browser-capture/package.json +1 -1
- package/packages/build-result/README.md +69 -0
- package/packages/build-result/package.json +2 -1
- package/packages/build-result/src/decode.ts +12 -8
- package/packages/build-result/src/execution-log.ts +17 -0
- package/packages/build-result/src/file-reference.ts +42 -0
- package/packages/build-result/src/index.ts +4 -0
- package/packages/build-result/src/replace-file-windows.ts +58 -0
- package/packages/build-result/src/replace-file.ts +11 -0
- package/packages/build-result/src/store.ts +58 -14
- package/packages/build-result/src/types.ts +41 -8
- package/packages/build-result/src/writer.ts +12 -1
- package/packages/build-result-fs/README.md +23 -1
- package/packages/build-result-s3/README.md +5 -0
- package/packages/build-result-s3/src/repository.ts +23 -5
- package/packages/caption/README.md +61 -73
- package/packages/caption/package.json +3 -2
- package/packages/caption/src/activation.ts +2 -2
- package/packages/caption/src/component.ts +20 -5
- package/packages/caption/src/display.ts +3 -18
- package/packages/caption/src/fragment.ts +3 -7
- package/packages/caption/src/index.ts +6 -5
- package/packages/caption/src/manifest.ts +29 -46
- package/packages/caption/src/style.ts +24 -135
- package/packages/caption/src/surface.ts +12 -92
- package/packages/caption/src/temporalize.ts +18 -53
- package/packages/caption/src/types.ts +8 -35
- package/packages/caption/src/visibility.ts +23 -0
- package/packages/caption-fine/README.md +31 -11
- package/packages/caption-fine/package.json +4 -2
- package/packages/caption-fine/src/component.ts +3 -3
- package/packages/caption-fine/src/fragment.ts +7 -19
- package/packages/caption-fine/src/index.ts +2 -0
- package/packages/caption-fine/src/manifest.ts +27 -18
- package/packages/caption-fine/src/recipe.ts +7 -0
- package/packages/caption-fine/src/render.ts +62 -49
- package/packages/caption-fine/src/schedule.ts +39 -35
- package/packages/caption-fine/src/style.ts +10 -9
- package/packages/caption-fine/src/surface.ts +62 -35
- package/packages/caption-fine/src/types.ts +2 -0
- package/packages/caption-fine-studio/README.md +24 -2
- package/packages/caption-fine-studio/package.json +10 -3
- package/packages/caption-fine-studio/src/activation.ts +3 -3
- package/packages/caption-fine-studio/src/index.ts +61 -40
- package/packages/cli/README.md +81 -3
- package/packages/cli/package.json +1 -0
- package/packages/cli/src/arguments.ts +39 -15
- package/packages/cli/src/build-planning.ts +9 -3
- package/packages/cli/src/command.ts +7 -1
- package/packages/cli/src/commands/environment.ts +66 -27
- package/packages/cli/src/commands/execution.ts +81 -26
- package/packages/cli/src/commands/results.ts +7 -11
- package/packages/cli/src/index.ts +2 -2
- package/packages/cli/src/machine-view.ts +15 -5
- package/packages/cli/src/main.ts +38 -42
- package/packages/cli/src/observation.ts +7 -1
- package/packages/cli/src/output.ts +92 -34
- package/packages/cli/src/result-export.ts +22 -13
- package/packages/cli/src/run-file.ts +19 -8
- package/packages/cli/src/view.ts +64 -18
- package/packages/comment-sticker/README.md +3 -3
- package/packages/comment-sticker/package.json +1 -1
- package/packages/comment-sticker/src/component.ts +4 -4
- package/packages/comment-sticker/src/fragment.ts +5 -4
- package/packages/comment-sticker/src/manifest.ts +7 -6
- package/packages/comment-sticker/src/program.ts +9 -9
- package/packages/comment-sticker/src/surface.ts +6 -7
- package/packages/comment-sticker-studio/src/index.ts +2 -1
- package/packages/compiler-node/src/compiler.ts +1 -0
- package/packages/composition/README.md +21 -0
- package/packages/composition/src/audio-presentation.ts +44 -0
- package/packages/composition/src/index.ts +3 -0
- package/packages/composition/src/schema.ts +8 -3
- package/packages/composition/src/track.ts +15 -1
- package/packages/credential-store-env/README.md +1 -1
- package/packages/deck-track/README.md +3 -3
- package/packages/deck-track/package.json +1 -1
- package/packages/deck-track/src/component.ts +5 -5
- package/packages/deck-track/src/fragment.ts +6 -5
- package/packages/deck-track/src/lower.ts +12 -12
- package/packages/deck-track/src/manifest.ts +8 -7
- package/packages/deck-track/src/program.ts +13 -16
- package/packages/deck-track/src/surface.ts +9 -10
- package/packages/driver-node/src/driver.ts +41 -3
- package/packages/elevenlabs-speech/README.md +27 -0
- package/packages/{provider-xiaomi-mimo → elevenlabs-speech}/package.json +5 -8
- package/packages/elevenlabs-speech/src/activation.ts +26 -0
- package/packages/elevenlabs-speech/src/fragment.ts +11 -0
- package/packages/elevenlabs-speech/src/index.ts +111 -0
- package/packages/elevenlabs-speech/src/surface.ts +167 -0
- package/packages/endpoint-kit/README.md +24 -0
- package/packages/endpoint-kit/src/index.ts +7 -1
- package/packages/estimate/README.md +56 -3
- package/packages/estimate/src/program.ts +7 -8
- package/packages/film/README.md +12 -7
- package/packages/film/package.json +1 -1
- package/packages/film/src/component.ts +4 -4
- package/packages/film/src/fragment.ts +6 -5
- package/packages/film/src/manifest.ts +11 -10
- package/packages/film/src/program.ts +5 -5
- package/packages/film/src/recipe.ts +2 -1
- package/packages/film/src/surface.ts +6 -6
- package/packages/film-studio/package.json +1 -1
- package/packages/film-studio/src/index.ts +2 -2
- package/packages/fishaudio-speech/README.md +33 -0
- package/packages/fishaudio-speech/package.json +21 -0
- package/packages/fishaudio-speech/src/activation.ts +32 -0
- package/packages/fishaudio-speech/src/fragment.ts +11 -0
- package/packages/fishaudio-speech/src/index.ts +156 -0
- package/packages/fishaudio-speech/src/surface.ts +192 -0
- package/packages/fonts-open/README.md +5 -0
- package/packages/fonts-open/package.json +5 -1
- package/packages/fonts-open/src/studio.ts +21 -0
- package/packages/generation/README.md +11 -1
- package/packages/generation/src/mapping.ts +28 -30
- package/packages/gpt-image/README.md +1 -2
- package/packages/grok-imagine/README.md +1 -2
- package/packages/hyperframes/README.md +7 -3
- package/packages/hyperframes/src/browser-program.ts +11 -2
- package/packages/hyperframes/src/document.ts +15 -2
- package/packages/interview-emoji-reveal/README.md +4 -4
- package/packages/interview-emoji-reveal/package.json +1 -1
- package/packages/interview-emoji-reveal/src/component.ts +4 -4
- package/packages/interview-emoji-reveal/src/fragment.ts +6 -5
- package/packages/interview-emoji-reveal/src/manifest.ts +9 -8
- package/packages/interview-emoji-reveal/src/program.ts +14 -14
- package/packages/interview-emoji-reveal/src/surface.ts +8 -9
- package/packages/media-execution/README.md +7 -3
- package/packages/media-execution/src/audio-presentation.ts +23 -0
- package/packages/media-execution/src/execute.ts +2 -0
- package/packages/media-pipeline/README.md +7 -3
- package/packages/media-pipeline/src/audio-plan.ts +4 -1
- package/packages/media-pipeline/src/component.ts +16 -2
- package/packages/media-pipeline/src/manifest.ts +3 -1
- package/packages/media-pipeline/src/types.ts +2 -1
- package/packages/media-track/README.md +14 -47
- package/packages/media-track/package.json +1 -1
- package/packages/media-track/preview/preview.svml +5 -5
- package/packages/media-track/src/author.ts +12 -6
- package/packages/media-track/src/component.ts +10 -16
- package/packages/media-track/src/fragment.ts +8 -7
- package/packages/media-track/src/index.ts +3 -1
- package/packages/media-track/src/lower.ts +7 -7
- package/packages/media-track/src/manifest.ts +16 -38
- package/packages/media-track/src/program.ts +62 -67
- package/packages/media-track/src/sampling.ts +6 -6
- package/packages/media-track/src/sequence.ts +8 -8
- package/packages/media-track/src/surface.ts +25 -43
- package/packages/media-track-studio/README.md +9 -0
- package/packages/media-track-studio/src/index.ts +23 -13
- package/packages/mimo-speech/README.md +1 -1
- package/packages/minimax-h3/README.md +1 -1
- package/packages/nano-banana/README.md +1 -1
- package/packages/narrative/README.md +23 -1
- package/packages/narrative/src/identity.ts +11 -0
- package/packages/narrative/src/index.ts +3 -0
- package/packages/narrative/src/schema.ts +28 -27
- package/packages/narrative/src/selection.ts +52 -0
- package/packages/narrative/src/types.ts +2 -0
- package/packages/package-loader-node/README.md +30 -0
- package/packages/package-loader-node/package.json +5 -2
- package/packages/package-loader-node/src/distribution-resolution.ts +10 -3
- package/packages/package-loader-node/src/index.ts +1 -0
- package/packages/package-loader-node/src/loader.ts +12 -15
- package/packages/package-loader-node/src/location.ts +27 -1
- package/packages/package-loader-node/src/module-scope.ts +183 -0
- package/packages/package-loader-node/src/types.ts +4 -0
- package/packages/performance/README.md +83 -0
- package/packages/performance/package.json +30 -0
- package/packages/performance/src/activation.ts +11 -0
- package/packages/performance/src/component.ts +46 -0
- package/packages/performance/src/index.ts +6 -0
- package/packages/performance/src/manifest.ts +53 -0
- package/packages/{media-track/src/performance.ts → performance/src/media.ts} +9 -10
- package/packages/performance/src/program.ts +51 -0
- package/packages/performance/src/style.ts +35 -0
- package/packages/performance/src/surface.ts +99 -0
- package/packages/performance-studio/README.md +25 -0
- package/packages/performance-studio/package.json +21 -0
- package/packages/performance-studio/src/activation.ts +6 -0
- package/packages/performance-studio/src/index.ts +84 -0
- package/packages/program-space/README.md +9 -18
- package/packages/program-space/src/activation.ts +1 -5
- package/packages/program-space/src/index.ts +2 -11
- package/packages/program-space/src/surface.ts +1 -20
- package/packages/project-context-node/README.md +20 -0
- package/packages/project-context-node/package.json +10 -0
- package/packages/project-context-node/src/index.ts +3 -0
- package/packages/{cli → project-context-node}/src/runtime-selection.ts +7 -2
- package/packages/provider-hyperframes-local/README.md +43 -15
- package/packages/provider-hyperframes-local/src/activation.ts +4 -3
- package/packages/provider-hyperframes-local/src/capture-process.ts +26 -4
- package/packages/provider-hyperframes-local/src/capture.ts +96 -26
- package/packages/provider-hyperframes-local/src/concurrency.ts +86 -0
- package/packages/provider-hyperframes-local/src/opaque-capture.ts +92 -0
- package/packages/provider-hyperframes-local/src/options.ts +2 -0
- package/packages/provider-hyperframes-local/src/program.ts +6 -3
- package/packages/provider-hyperframes-local/src/progress.ts +53 -0
- package/packages/provider-hyperframes-local/src/provider.ts +18 -5
- package/packages/provider-hyperframes-local/src/render.ts +48 -7
- package/packages/provider-hypihub/README.md +48 -17
- package/packages/provider-hypihub/package.json +2 -0
- package/packages/provider-hypihub/src/mapping.ts +31 -7
- package/packages/provider-hypihub/src/oauth.ts +6 -0
- package/packages/provider-hypihub/src/provider.ts +25 -13
- package/packages/provider-hypihub/src/routes.ts +1 -2
- package/packages/provider-hypihub/src/upload.ts +2 -0
- package/packages/provider-media-local/README.md +3 -4
- package/packages/provider-whisperx-local/README.md +57 -0
- package/packages/provider-whisperx-local/src/program.ts +1 -0
- package/packages/provider-whisperx-local/src/provider.ts +3 -0
- package/packages/ranking/README.md +8 -6
- package/packages/ranking/package.json +1 -1
- package/packages/ranking/src/component.ts +6 -6
- package/packages/ranking/src/fragment.ts +11 -7
- package/packages/ranking/src/manifest.ts +21 -14
- package/packages/ranking/src/render.ts +33 -35
- package/packages/ranking/src/schedule.ts +16 -19
- package/packages/ranking/src/surface.ts +12 -13
- package/packages/ranking-studio/README.md +29 -0
- package/packages/ranking-studio/package.json +8 -3
- package/packages/ranking-studio/src/index.ts +71 -12
- package/packages/render-hyperframes/README.md +7 -7
- package/packages/render-hyperframes/package.json +1 -1
- package/packages/render-hyperframes/src/component.ts +11 -1
- package/packages/render-hyperframes/src/fragment.ts +7 -4
- package/packages/render-hyperframes/src/manifest.ts +4 -4
- package/packages/render-hyperframes/src/surface.ts +6 -6
- package/packages/runtime/README.md +8 -1
- package/packages/runtime/src/catalog.ts +2 -0
- package/packages/runtime/src/execution.ts +15 -4
- package/packages/runtime/src/index.ts +2 -1
- package/packages/runtime/src/log.ts +51 -0
- package/packages/runtime/src/types.ts +5 -8
- package/packages/runtime-host-node/README.md +30 -0
- package/packages/runtime-host-node/package.json +1 -0
- package/packages/runtime-host-node/src/index.ts +25 -9
- package/packages/runtime-host-node/src/packages.ts +47 -50
- package/packages/runtime-kit/README.md +5 -0
- package/packages/runtime-kit/src/index.ts +3 -1
- package/packages/runtime-local/README.md +111 -4
- package/packages/runtime-local/src/config.ts +202 -56
- package/packages/runtime-local/src/control.ts +9 -1
- package/packages/runtime-local/src/executor.ts +66 -0
- package/packages/runtime-local/src/host.ts +37 -17
- package/packages/runtime-local/src/log.ts +48 -0
- package/packages/runtime-local/src/programs.ts +41 -25
- package/packages/runtime-local/src/result-writer.ts +2 -0
- package/packages/runtime-local/src/runtime.ts +10 -6
- package/packages/runtime-local/src/supervisor.ts +142 -0
- package/packages/runtime-local/src/types.ts +9 -2
- package/packages/runtime-local/src/worker-process.ts +7 -24
- package/packages/runtime-local/src/worker.ts +55 -83
- package/packages/screen-overlay/README.md +3 -3
- package/packages/screen-overlay/package.json +1 -1
- package/packages/screen-overlay/src/component.ts +3 -3
- package/packages/screen-overlay/src/fragment.ts +5 -4
- package/packages/screen-overlay/src/manifest.ts +7 -6
- package/packages/screen-overlay/src/program.ts +9 -9
- package/packages/screen-overlay/src/surface.ts +6 -7
- package/packages/script/README.md +37 -2
- package/packages/script/src/edit.ts +123 -73
- package/packages/script/src/lexical.ts +40 -6
- package/packages/script/src/manifest.ts +2 -2
- package/packages/script/src/narrative.ts +1 -0
- package/packages/script/src/parser.ts +36 -8
- package/packages/script/src/surface.ts +4 -3
- package/packages/script/src/types.ts +5 -1
- package/packages/script-studio/package.json +9 -3
- package/packages/script-studio/src/index.ts +2 -0
- package/packages/script-studio/src/projection.ts +105 -0
- package/packages/seedance/README.md +30 -1
- package/packages/seedance/src/index.ts +18 -7
- package/packages/seedance/src/surface.ts +17 -4
- package/packages/seedance-kits/README.md +10 -2
- package/packages/seedance-kits/kits/speaker-v1.svs +5 -5
- package/packages/seedream/README.md +1 -1
- package/packages/sound/README.md +81 -0
- package/packages/sound/package.json +25 -0
- package/packages/sound/src/activation.ts +11 -0
- package/packages/sound/src/component.ts +28 -0
- package/packages/sound/src/index.ts +5 -0
- package/packages/sound/src/manifest.ts +47 -0
- package/packages/sound/src/program.ts +84 -0
- package/packages/sound/src/style.ts +34 -0
- package/packages/sound/src/surface.ts +90 -0
- package/packages/sound-studio/README.md +22 -0
- package/packages/sound-studio/package.json +20 -0
- package/packages/sound-studio/src/activation.ts +6 -0
- package/packages/sound-studio/src/index.ts +74 -0
- package/packages/speech/README.md +2 -2
- package/packages/speech-alignment/src/align.ts +45 -21
- package/packages/speech-alignment/src/local.ts +8 -0
- package/packages/speech-alignment/src/locate.ts +1 -1
- package/packages/store-sqlite/README.md +7 -0
- package/packages/store-sqlite/src/store.ts +84 -83
- package/packages/studio/INSPECTOR.md +117 -0
- package/packages/studio/README.md +149 -14
- package/packages/studio/package.json +8 -7
- package/packages/studio/src/build-library.ts +99 -84
- package/packages/studio/src/companion-assembly.ts +1 -0
- package/packages/studio/src/domain.ts +1 -1
- package/packages/studio/src/fallback-companions.ts +3 -3
- package/packages/studio/src/feedback-server.ts +51 -0
- package/packages/studio/src/feedback-store.ts +66 -0
- package/packages/studio/src/feedback.ts +60 -0
- package/packages/studio/src/library-media.ts +19 -0
- package/packages/studio/src/parameter-values.ts +83 -1
- package/packages/studio/src/parameters.ts +132 -43
- package/packages/studio/src/preview/render.ts +5 -1
- package/packages/studio/src/preview/runtime-shim.ts +49 -3
- package/packages/studio/src/programme.ts +14 -30
- package/packages/studio/src/server.ts +66 -34
- package/packages/studio/src/shared.ts +24 -8
- package/packages/studio/src/snapshot.ts +21 -132
- package/packages/studio/src/studio-preflight.ts +3 -3
- package/packages/studio/src/studio-registry.ts +72 -6
- package/packages/studio/src/style.css +342 -190
- package/packages/studio/src/temporal-edit.ts +131 -0
- package/packages/studio/src/ui/artifact-name.ts +80 -0
- package/packages/studio/src/ui/artifact-preview.ts +99 -0
- package/packages/studio/src/ui/comments.ts +233 -0
- package/packages/studio/src/ui/icons.ts +10 -1
- package/packages/studio/src/ui/library.ts +373 -192
- package/packages/studio/src/ui/main.ts +291 -110
- package/packages/studio/src/ui/material-preview.ts +1 -1
- package/packages/studio/src/ui/overlay.ts +31 -26
- package/packages/studio/src/ui/scrub-preview.ts +108 -0
- package/packages/studio/src/ui/sidebar-panel.ts +31 -0
- package/packages/studio/src/ui/stage.ts +188 -9
- package/packages/studio/src/ui/timeline.ts +187 -281
- package/packages/studio/start.ts +19 -5
- package/packages/studio-adapter/README.md +151 -11
- package/packages/studio-adapter/src/index.ts +126 -14
- package/packages/temporal/README.md +6 -6
- package/packages/temporal/package.json +1 -1
- package/packages/temporal/src/component.ts +5 -6
- package/packages/temporal/src/index.ts +8 -6
- package/packages/temporal/src/location.ts +11 -11
- package/packages/temporal/src/projection.ts +19 -19
- package/packages/temporal/src/rational.ts +4 -4
- package/packages/temporal-markup/EDITING.md +183 -0
- package/packages/temporal-markup/README.md +31 -11
- package/packages/temporal-markup/package.json +1 -1
- package/packages/temporal-markup/src/index.ts +20 -25
- package/packages/temporal-markup/src/space.ts +10 -41
- package/packages/timeline/README.md +31 -0
- package/packages/{semantic-track → timeline}/package.json +1 -1
- package/packages/timeline/src/activation.ts +8 -0
- package/packages/timeline/src/component.ts +24 -0
- package/packages/timeline/src/identity.ts +60 -0
- package/packages/timeline/src/index.ts +6 -0
- package/packages/{semantic-track → timeline}/src/location.ts +20 -20
- package/packages/timeline/src/manifest.ts +39 -0
- package/packages/{semantic-track → timeline}/src/projection.ts +14 -14
- package/packages/timeline/src/types.ts +24 -0
- package/packages/timeline-author/README.md +68 -0
- package/packages/{speech-track → timeline-author}/package.json +6 -4
- package/packages/timeline-author/src/activation.ts +22 -0
- package/packages/{speech-track → timeline-author}/src/component.ts +15 -13
- package/packages/{speech-track → timeline-author}/src/fragment.ts +14 -23
- package/packages/timeline-author/src/index.ts +7 -0
- package/packages/timeline-author/src/manifest.ts +78 -0
- package/packages/timeline-author/src/program.ts +107 -0
- package/packages/timeline-author/src/surface.ts +46 -0
- package/packages/timeline-author/src/types.ts +6 -0
- package/packages/typography-track/README.md +4 -4
- package/packages/typography-track/package.json +1 -1
- package/packages/typography-track/src/component.ts +4 -4
- package/packages/typography-track/src/fragment.ts +4 -3
- package/packages/typography-track/src/manifest.ts +11 -9
- package/packages/typography-track/src/program.ts +15 -15
- package/packages/typography-track/src/surface.ts +17 -18
- package/packages/typography-track-studio/package.json +8 -3
- package/packages/typography-track-studio/src/index.ts +5 -1
- package/packages/video-cli/README.md +16 -4
- package/packages/video-cli/package.json +2 -1
- package/packages/video-cli/src/creation.ts +25 -9
- package/packages/video-cli/src/index.ts +1 -1
- package/packages/video-cli/src/studio-distribution.ts +2 -1
- package/packages/volcengine-matting/README.md +3 -3
- package/packages/whisperx/README.md +8 -1
- package/packages/workspace/src/index.ts +2 -0
- package/packages/workspace-fs-node/README.md +4 -1
- package/packages/workspace-fs-node/src/workspace.ts +3 -1
- package/services/whisperx/README.md +14 -0
- package/services/whisperx/pyproject.toml +2 -0
- package/services/whisperx/uv.lock +20 -20
- package/packages/provider-hyperframes-aws-lambda/README.md +0 -30
- package/packages/provider-hyperframes-aws-lambda/package.json +0 -30
- package/packages/provider-hyperframes-aws-lambda/src/activation.ts +0 -97
- package/packages/provider-hyperframes-aws-lambda/src/client.ts +0 -114
- package/packages/provider-hyperframes-aws-lambda/src/index.ts +0 -21
- package/packages/provider-hyperframes-aws-lambda/src/provider.ts +0 -522
- package/packages/provider-kie/README.md +0 -134
- package/packages/provider-kie/package.json +0 -43
- package/packages/provider-kie/src/activation.ts +0 -71
- package/packages/provider-kie/src/index.ts +0 -10
- package/packages/provider-kie/src/mapping.ts +0 -182
- package/packages/provider-kie/src/provider.ts +0 -657
- package/packages/provider-kie/src/routes.ts +0 -150
- package/packages/provider-xiaomi-mimo/README.md +0 -32
- package/packages/provider-xiaomi-mimo/src/activation.ts +0 -57
- package/packages/provider-xiaomi-mimo/src/index.ts +0 -5
- package/packages/provider-xiaomi-mimo/src/provider.ts +0 -214
- package/packages/runtime/src/environment.ts +0 -6
- package/packages/semantic-track/README.md +0 -21
- package/packages/semantic-track/src/activation.ts +0 -8
- package/packages/semantic-track/src/component.ts +0 -24
- package/packages/semantic-track/src/identity.ts +0 -58
- package/packages/semantic-track/src/index.ts +0 -6
- package/packages/semantic-track/src/manifest.ts +0 -38
- package/packages/semantic-track/src/types.ts +0 -26
- package/packages/speech-track/README.md +0 -51
- package/packages/speech-track/src/activation.ts +0 -19
- package/packages/speech-track/src/index.ts +0 -7
- package/packages/speech-track/src/manifest.ts +0 -73
- package/packages/speech-track/src/program.ts +0 -64
- package/packages/speech-track/src/surface.ts +0 -35
- package/packages/speech-track/src/types.ts +0 -6
- package/packages/speech-track-studio/README.md +0 -3
- package/packages/speech-track-studio/package.json +0 -14
- package/packages/speech-track-studio/src/activation.ts +0 -7
- package/packages/speech-track-studio/src/index.ts +0 -40
- /package/packages/{cli → project-context-node}/src/project-context.ts +0 -0
- /package/packages/{speech-track → timeline-author}/preview/Track.png +0 -0
|
@@ -0,0 +1,1590 @@
|
|
|
1
|
+
/** Opaque identity for one admitted byte resource. Equal bytes may have different identities. */
|
|
2
|
+
type ResourceId = `res_${string}`;
|
|
3
|
+
type RecordId = string;
|
|
4
|
+
type LogicalOutputId = string;
|
|
5
|
+
type NeedId = string;
|
|
6
|
+
type StepId = string;
|
|
7
|
+
type CommandId = string;
|
|
8
|
+
type ModuleRef = {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly version: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* A Type is its owning Module and its name, and nothing else is compared. Two Types whose values
|
|
14
|
+
* carry identical shapes are distinct, so one is refused where the other is declared — there is no
|
|
15
|
+
* structural fallback to fall back to.
|
|
16
|
+
*/
|
|
17
|
+
type TypeRef = {
|
|
18
|
+
readonly module: ModuleRef;
|
|
19
|
+
readonly name: string;
|
|
20
|
+
};
|
|
21
|
+
type ProducerRef = {
|
|
22
|
+
readonly module: ModuleRef;
|
|
23
|
+
readonly name: string;
|
|
24
|
+
};
|
|
25
|
+
type CapabilityRef = {
|
|
26
|
+
readonly module: ModuleRef;
|
|
27
|
+
readonly name: string;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
type CanonicalValue = null | boolean | number | string | readonly CanonicalValue[] | {
|
|
31
|
+
readonly [key: string]: CanonicalValue;
|
|
32
|
+
};
|
|
33
|
+
type BlobRef = {
|
|
34
|
+
readonly kind: "blob";
|
|
35
|
+
/** One admitted resource instance. Equal bytes admitted twice keep distinct identities. */
|
|
36
|
+
readonly resource: ResourceId;
|
|
37
|
+
readonly size: number;
|
|
38
|
+
readonly mediaType: string;
|
|
39
|
+
};
|
|
40
|
+
type StoredValue = {
|
|
41
|
+
readonly kind: "inline";
|
|
42
|
+
readonly value: CanonicalValue;
|
|
43
|
+
} | BlobRef;
|
|
44
|
+
type ValueSchema = {
|
|
45
|
+
readonly kind: "null";
|
|
46
|
+
} | {
|
|
47
|
+
readonly kind: "boolean";
|
|
48
|
+
} | {
|
|
49
|
+
readonly kind: "number";
|
|
50
|
+
readonly integer?: boolean;
|
|
51
|
+
readonly minimum?: number;
|
|
52
|
+
readonly maximum?: number;
|
|
53
|
+
} | {
|
|
54
|
+
readonly kind: "string";
|
|
55
|
+
readonly enum?: readonly string[];
|
|
56
|
+
readonly minLength?: number;
|
|
57
|
+
readonly maxLength?: number;
|
|
58
|
+
/** UI-neutral semantic format shared by authoring, validation and tools. */
|
|
59
|
+
readonly format?: "color";
|
|
60
|
+
} | {
|
|
61
|
+
readonly kind: "literal";
|
|
62
|
+
readonly value: CanonicalValue;
|
|
63
|
+
} | {
|
|
64
|
+
readonly kind: "array";
|
|
65
|
+
readonly items: ValueSchema;
|
|
66
|
+
readonly minItems?: number;
|
|
67
|
+
readonly maxItems?: number;
|
|
68
|
+
} | {
|
|
69
|
+
readonly kind: "object";
|
|
70
|
+
readonly fields: Readonly<Record<string, ObjectFieldSchema>>;
|
|
71
|
+
readonly allowUnknown?: boolean;
|
|
72
|
+
} | {
|
|
73
|
+
readonly kind: "oneOf";
|
|
74
|
+
readonly variants: readonly ValueSchema[];
|
|
75
|
+
} | {
|
|
76
|
+
readonly kind: "blob";
|
|
77
|
+
readonly mediaTypes?: readonly string[];
|
|
78
|
+
readonly maxBytes?: number;
|
|
79
|
+
};
|
|
80
|
+
type ObjectFieldSchema = {
|
|
81
|
+
readonly schema: ValueSchema;
|
|
82
|
+
readonly optional?: boolean;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
type ModuleDependency = {
|
|
86
|
+
readonly module: ModuleRef;
|
|
87
|
+
};
|
|
88
|
+
type TypeDeclaration = {
|
|
89
|
+
readonly name: string;
|
|
90
|
+
};
|
|
91
|
+
type PortDeclaration = {
|
|
92
|
+
readonly name: string;
|
|
93
|
+
readonly type: TypeRef;
|
|
94
|
+
};
|
|
95
|
+
type NeedPortDeclaration = {
|
|
96
|
+
readonly name: string;
|
|
97
|
+
readonly capability: CapabilityRef;
|
|
98
|
+
readonly returns: TypeRef;
|
|
99
|
+
};
|
|
100
|
+
type CapabilityDeclaration = {
|
|
101
|
+
readonly name: string;
|
|
102
|
+
readonly returns: TypeRef;
|
|
103
|
+
};
|
|
104
|
+
type ProducerDeclaration = {
|
|
105
|
+
readonly name: string;
|
|
106
|
+
readonly inputs: readonly PortDeclaration[];
|
|
107
|
+
readonly outputs: readonly PortDeclaration[];
|
|
108
|
+
readonly needs: readonly NeedPortDeclaration[];
|
|
109
|
+
};
|
|
110
|
+
type ModuleManifest = {
|
|
111
|
+
readonly format: "hypit.module@1";
|
|
112
|
+
readonly name: string;
|
|
113
|
+
readonly version: string;
|
|
114
|
+
readonly dependencies: readonly ModuleDependency[];
|
|
115
|
+
readonly types: readonly TypeDeclaration[];
|
|
116
|
+
readonly capabilities: readonly CapabilityDeclaration[];
|
|
117
|
+
readonly producers: readonly ProducerDeclaration[];
|
|
118
|
+
};
|
|
119
|
+
type ResolvedModule = {
|
|
120
|
+
readonly manifest: ModuleManifest;
|
|
121
|
+
};
|
|
122
|
+
type ResolvedModuleClosure = {
|
|
123
|
+
readonly format: "hypit.closure@1";
|
|
124
|
+
readonly modules: readonly ResolvedModule[];
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
type SourceRange = {
|
|
128
|
+
readonly start: number;
|
|
129
|
+
readonly end: number;
|
|
130
|
+
};
|
|
131
|
+
/** One typed value in the graph; semantic validation happens at the Host admission boundary. */
|
|
132
|
+
type TypedRecord = {
|
|
133
|
+
readonly id: RecordId;
|
|
134
|
+
readonly type: TypeRef;
|
|
135
|
+
readonly value: StoredValue;
|
|
136
|
+
};
|
|
137
|
+
type Need = {
|
|
138
|
+
readonly id: NeedId;
|
|
139
|
+
readonly capability: CapabilityRef;
|
|
140
|
+
readonly returns: TypeRef;
|
|
141
|
+
readonly constraints: CanonicalValue;
|
|
142
|
+
readonly result: RecordId;
|
|
143
|
+
};
|
|
144
|
+
type NeedBinding = {
|
|
145
|
+
readonly id: NeedId;
|
|
146
|
+
readonly result: RecordId;
|
|
147
|
+
};
|
|
148
|
+
type BuildTarget = {
|
|
149
|
+
readonly output: LogicalOutputId;
|
|
150
|
+
};
|
|
151
|
+
type BuildOutputBinding = {
|
|
152
|
+
readonly output: LogicalOutputId;
|
|
153
|
+
readonly record: RecordId;
|
|
154
|
+
readonly type: TypeRef;
|
|
155
|
+
};
|
|
156
|
+
type ProducerStep = {
|
|
157
|
+
readonly id: StepId;
|
|
158
|
+
readonly producer: ProducerRef;
|
|
159
|
+
readonly inputs: Readonly<Record<string, RecordId>>;
|
|
160
|
+
readonly outputs: Readonly<Record<string, RecordId>>;
|
|
161
|
+
readonly needs: Readonly<Record<string, NeedBinding>>;
|
|
162
|
+
};
|
|
163
|
+
type BuildGoal = {
|
|
164
|
+
readonly record: RecordId;
|
|
165
|
+
readonly type: TypeRef;
|
|
166
|
+
};
|
|
167
|
+
type BuildPlan = {
|
|
168
|
+
readonly format: "hypit.plan@1";
|
|
169
|
+
readonly steps: readonly ProducerStep[];
|
|
170
|
+
readonly goals: readonly BuildGoal[];
|
|
171
|
+
/** Every Logical Output reached by the selected execution, independent of how it was supplied. */
|
|
172
|
+
readonly outputBindings: readonly BuildOutputBinding[];
|
|
173
|
+
};
|
|
174
|
+
type LinkedProgram = {
|
|
175
|
+
readonly closure: ResolvedModuleClosure;
|
|
176
|
+
readonly records: readonly TypedRecord[];
|
|
177
|
+
};
|
|
178
|
+
type StepState = {
|
|
179
|
+
readonly id: StepId;
|
|
180
|
+
readonly status: "pending" | "complete";
|
|
181
|
+
};
|
|
182
|
+
type InvokeProducerCommand = {
|
|
183
|
+
readonly kind: "invoke-producer";
|
|
184
|
+
readonly id: CommandId;
|
|
185
|
+
readonly step: StepId;
|
|
186
|
+
readonly producer: ProducerRef;
|
|
187
|
+
readonly inputs: Readonly<Record<string, RecordId>>;
|
|
188
|
+
};
|
|
189
|
+
type FulfillNeedCommand = {
|
|
190
|
+
readonly kind: "fulfill-need";
|
|
191
|
+
readonly id: CommandId;
|
|
192
|
+
readonly need: Need;
|
|
193
|
+
};
|
|
194
|
+
type CoreCommand = InvokeProducerCommand | FulfillNeedCommand;
|
|
195
|
+
type BuildDiagnostic = {
|
|
196
|
+
readonly code: string;
|
|
197
|
+
readonly message: string;
|
|
198
|
+
readonly subject?: string;
|
|
199
|
+
};
|
|
200
|
+
/** Materialized read/execution view. Durable Stores persist Definition + Facts, never this object. */
|
|
201
|
+
type BuildState = {
|
|
202
|
+
readonly format: "hypit.build@1";
|
|
203
|
+
readonly program: LinkedProgram;
|
|
204
|
+
readonly plan: BuildPlan;
|
|
205
|
+
readonly targets: readonly BuildTarget[];
|
|
206
|
+
readonly status: "active" | "complete" | "failed";
|
|
207
|
+
readonly records: readonly TypedRecord[];
|
|
208
|
+
readonly steps: readonly StepState[];
|
|
209
|
+
readonly needs: readonly Need[];
|
|
210
|
+
readonly outstanding: readonly CoreCommand[];
|
|
211
|
+
readonly diagnostics: readonly BuildDiagnostic[];
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
type FragmentInputRef = {
|
|
215
|
+
readonly kind: "fragment-input";
|
|
216
|
+
readonly name: string;
|
|
217
|
+
};
|
|
218
|
+
type FragmentOperationRef = {
|
|
219
|
+
readonly kind: "fragment-operation";
|
|
220
|
+
readonly operation: string;
|
|
221
|
+
};
|
|
222
|
+
type FragmentValueRef = FragmentInputRef | FragmentOperationRef;
|
|
223
|
+
type FragmentOperationResult = {
|
|
224
|
+
readonly kind: "output";
|
|
225
|
+
readonly name: string;
|
|
226
|
+
} | {
|
|
227
|
+
readonly kind: "need";
|
|
228
|
+
readonly name: string;
|
|
229
|
+
};
|
|
230
|
+
type FragmentOperation = {
|
|
231
|
+
readonly id: string;
|
|
232
|
+
readonly producer: ProducerRef;
|
|
233
|
+
readonly inputs: Readonly<Record<string, FragmentValueRef>>;
|
|
234
|
+
readonly result: FragmentOperationResult;
|
|
235
|
+
};
|
|
236
|
+
type FragmentExport = {
|
|
237
|
+
readonly name: string;
|
|
238
|
+
readonly type: TypeRef;
|
|
239
|
+
readonly root: FragmentOperationRef;
|
|
240
|
+
};
|
|
241
|
+
type GraphFragment = {
|
|
242
|
+
readonly format: "hypit.fragment@1";
|
|
243
|
+
readonly id: string;
|
|
244
|
+
readonly inputs: readonly {
|
|
245
|
+
readonly name: string;
|
|
246
|
+
readonly type: TypeRef;
|
|
247
|
+
}[];
|
|
248
|
+
readonly operations: readonly FragmentOperation[];
|
|
249
|
+
readonly exports: readonly FragmentExport[];
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
/** A reference to an authored fact that already exists in the Linked Program. */
|
|
253
|
+
type AuthorRecordRef = {
|
|
254
|
+
readonly kind: "record";
|
|
255
|
+
readonly id: string;
|
|
256
|
+
};
|
|
257
|
+
/** A symbolic reference to one public export of another component instance. */
|
|
258
|
+
type AuthorComponentOutputRef = {
|
|
259
|
+
readonly kind: "component-output";
|
|
260
|
+
readonly component: string;
|
|
261
|
+
readonly output: string;
|
|
262
|
+
};
|
|
263
|
+
type AuthorValueRef = AuthorRecordRef | AuthorComponentOutputRef;
|
|
264
|
+
/**
|
|
265
|
+
* One author-visible component call. `outputs` binds every public Fragment export to a Logical Output.
|
|
266
|
+
*/
|
|
267
|
+
type AuthorComponent = {
|
|
268
|
+
readonly id: string;
|
|
269
|
+
readonly fragment: string;
|
|
270
|
+
readonly inputs: Readonly<Record<string, AuthorValueRef>>;
|
|
271
|
+
readonly outputs: Readonly<Record<string, string>>;
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
type SourceAssetRequest = {
|
|
275
|
+
readonly from: string;
|
|
276
|
+
readonly mediaType: string;
|
|
277
|
+
/** Package-owned bytes admitted by the compiler before a Workspace is consulted. */
|
|
278
|
+
readonly bytes?: Uint8Array;
|
|
279
|
+
readonly range?: SourceRange;
|
|
280
|
+
};
|
|
281
|
+
type ResolvedSourceAsset = {
|
|
282
|
+
readonly artifact: BlobRef;
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
/** A semantic source dependency requested by a Frontend or package-owned Surface. */
|
|
286
|
+
type AuthorSourceAssetRequest = SourceAssetRequest;
|
|
287
|
+
type ResolvedAuthorSourceAsset = ResolvedSourceAsset;
|
|
288
|
+
/**
|
|
289
|
+
* One author-visible identity whose uniqueness is part of a domain's public
|
|
290
|
+
* contract. The Frontend only carries the declaration; the owning Surface
|
|
291
|
+
* chooses the Type namespace and the Source closure enforces it generically.
|
|
292
|
+
*/
|
|
293
|
+
type AuthorSourceIdentity = {
|
|
294
|
+
readonly namespace: TypeRef;
|
|
295
|
+
readonly id: string;
|
|
296
|
+
};
|
|
297
|
+
type Awaitable$1<T> = T | Promise<T>;
|
|
298
|
+
|
|
299
|
+
type MarkupReference = {
|
|
300
|
+
readonly kind: "reference";
|
|
301
|
+
readonly path: string;
|
|
302
|
+
};
|
|
303
|
+
type MarkupAttributeValue = string | MarkupReference;
|
|
304
|
+
type StructuredText = {
|
|
305
|
+
readonly kind: "text";
|
|
306
|
+
readonly value: string;
|
|
307
|
+
readonly range: SourceRange;
|
|
308
|
+
};
|
|
309
|
+
type StructuredElement = {
|
|
310
|
+
readonly kind: "element";
|
|
311
|
+
readonly name: string;
|
|
312
|
+
readonly attributes: Readonly<Record<string, MarkupAttributeValue>>;
|
|
313
|
+
/** Exact ranges of literal/reference values in the opening tag. */
|
|
314
|
+
readonly attributeValueRanges?: Readonly<Record<string, SourceRange>>;
|
|
315
|
+
readonly children: readonly StructuredNode[];
|
|
316
|
+
readonly range: SourceRange;
|
|
317
|
+
};
|
|
318
|
+
type StructuredNode = StructuredText | StructuredElement;
|
|
319
|
+
type SurfaceRecordDraft = {
|
|
320
|
+
readonly id: string;
|
|
321
|
+
readonly type: TypeRef;
|
|
322
|
+
readonly value: StoredValue;
|
|
323
|
+
readonly range: SourceRange;
|
|
324
|
+
};
|
|
325
|
+
/** Source-local diagnostics are removed before the component enters semantic elaboration. */
|
|
326
|
+
type SurfaceComponentDraft = AuthorComponent & {
|
|
327
|
+
readonly range: SourceRange;
|
|
328
|
+
};
|
|
329
|
+
type SurfaceDecodeOutput = {
|
|
330
|
+
readonly records: readonly SurfaceRecordDraft[];
|
|
331
|
+
readonly components: readonly SurfaceComponentDraft[];
|
|
332
|
+
readonly fragments: readonly GraphFragment[];
|
|
333
|
+
/** Domain-owned public identities that must be unique in the Source closure. */
|
|
334
|
+
readonly identities?: readonly AuthorSourceIdentity[];
|
|
335
|
+
/**
|
|
336
|
+
* Public source bindings contributed by this Surface invocation. Omit to
|
|
337
|
+
* publish every generated binding; use an explicit list to keep plumbing
|
|
338
|
+
* addressable inside the source without exposing it from the source.
|
|
339
|
+
*/
|
|
340
|
+
readonly exports?: readonly string[];
|
|
341
|
+
};
|
|
342
|
+
type StructuredSurfaceInput = {
|
|
343
|
+
readonly sourceName: string;
|
|
344
|
+
readonly element: StructuredElement;
|
|
345
|
+
/**
|
|
346
|
+
* Resolve an explicitly written author reference. Imported record values are
|
|
347
|
+
* available because their source has already been compiled and admitted.
|
|
348
|
+
* A component output has a ref and Type but no compile-time Record value.
|
|
349
|
+
*/
|
|
350
|
+
readonly resolveReference: (path: string) => SurfaceResolvedReference | undefined;
|
|
351
|
+
readonly resolveAsset: (request: AuthorSourceAssetRequest) => Awaitable$1<ResolvedAuthorSourceAsset>;
|
|
352
|
+
};
|
|
353
|
+
type SurfaceResolvedReference = {
|
|
354
|
+
readonly path: string;
|
|
355
|
+
readonly ref: AuthorValueRef;
|
|
356
|
+
readonly type: TypeRef;
|
|
357
|
+
readonly record?: TypedRecord;
|
|
358
|
+
};
|
|
359
|
+
type StructuredSurfaceHandler = (input: StructuredSurfaceInput) => Awaitable$1<SurfaceDecodeOutput>;
|
|
360
|
+
type SurfaceAttributeKind = "identifier" | "literal" | "reference" | "expression";
|
|
361
|
+
type SurfaceRecipePropertyVocabulary = {
|
|
362
|
+
readonly name: string;
|
|
363
|
+
readonly required: boolean;
|
|
364
|
+
readonly summary: string;
|
|
365
|
+
/** The author value's public structure; it contains no editor presentation. */
|
|
366
|
+
readonly schema?: ValueSchema;
|
|
367
|
+
readonly values?: readonly string[];
|
|
368
|
+
/** Decoded author default; when a schema is present this value conforms to that public structure. */
|
|
369
|
+
readonly fallback?: CanonicalValue;
|
|
370
|
+
};
|
|
371
|
+
type SurfaceAttributeVocabulary = {
|
|
372
|
+
readonly name: string;
|
|
373
|
+
readonly kind: SurfaceAttributeKind;
|
|
374
|
+
readonly required: boolean;
|
|
375
|
+
readonly summary: string;
|
|
376
|
+
readonly values?: readonly string[];
|
|
377
|
+
readonly accepts?: readonly TypeRef[];
|
|
378
|
+
readonly recipe?: readonly SurfaceRecipePropertyVocabulary[];
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
/** Author-time closure: bound references become ordinary graph edges at each Use. */
|
|
382
|
+
type PerformanceStyle = {
|
|
383
|
+
readonly fragment: GraphFragment;
|
|
384
|
+
readonly bindings: Readonly<Record<string, {
|
|
385
|
+
readonly type: SurfaceResolvedReference["type"];
|
|
386
|
+
readonly ref: SurfaceResolvedReference["ref"];
|
|
387
|
+
}>>;
|
|
388
|
+
};
|
|
389
|
+
declare function performanceStyle(fragment: GraphFragment, bindings?: PerformanceStyle["bindings"]): PerformanceStyle;
|
|
390
|
+
|
|
391
|
+
type Awaitable<T> = T | Promise<T>;
|
|
392
|
+
type TypeValidatorContext = {
|
|
393
|
+
readonly type: TypeRef;
|
|
394
|
+
readonly value: StoredValue;
|
|
395
|
+
};
|
|
396
|
+
type TypeValidatorHandler = (context: TypeValidatorContext) => void | Promise<void>;
|
|
397
|
+
type ProducerHandlerResult = {
|
|
398
|
+
readonly outputs: Readonly<Record<string, StoredValue>>;
|
|
399
|
+
readonly needs: Readonly<Record<string, CanonicalValue>>;
|
|
400
|
+
};
|
|
401
|
+
/**
|
|
402
|
+
* Pure compute context. Artifact bytes, credentials, network and stores are deliberately absent;
|
|
403
|
+
* those effects must cross an explicit Need into a Provider.
|
|
404
|
+
*/
|
|
405
|
+
type ProducerHandlerContext = {
|
|
406
|
+
readonly command: InvokeProducerCommand;
|
|
407
|
+
readonly producer: ProducerRef;
|
|
408
|
+
readonly inputs: Readonly<Record<string, TypedRecord>>;
|
|
409
|
+
};
|
|
410
|
+
type ProducerHandler = (context: ProducerHandlerContext) => Awaitable<ProducerHandlerResult>;
|
|
411
|
+
/** Enumerable deterministic Producer handler owned by its package. */
|
|
412
|
+
type ProducerFacet = {
|
|
413
|
+
readonly producer: ProducerRef;
|
|
414
|
+
readonly handler: ProducerHandler;
|
|
415
|
+
};
|
|
416
|
+
/** One input whose value will exist only after an upstream Build step has run. */
|
|
417
|
+
type PlannedNeedInput = {
|
|
418
|
+
readonly input: string;
|
|
419
|
+
readonly record: string;
|
|
420
|
+
readonly sourceStep?: string;
|
|
421
|
+
/** Capability-owned semantic role when the value represents media, such as image or audio. */
|
|
422
|
+
readonly role?: string;
|
|
423
|
+
};
|
|
424
|
+
/**
|
|
425
|
+
* The complete support-relevant request known before external work starts. Values produced later
|
|
426
|
+
* are represented by input slots; their eventual StoredValues are execution bindings, not missing
|
|
427
|
+
* author intent. A slot may be a Resource or a structured value.
|
|
428
|
+
*/
|
|
429
|
+
type PlannedNeedSpecification = {
|
|
430
|
+
readonly constraints: CanonicalValue;
|
|
431
|
+
readonly pendingInputs: readonly PlannedNeedInput[];
|
|
432
|
+
};
|
|
433
|
+
/** Package-owned, presentation-neutral reading of one request. */
|
|
434
|
+
type PlannedNeedPresentation = {
|
|
435
|
+
readonly fields: Readonly<Record<string, readonly CanonicalValue[]>>;
|
|
436
|
+
readonly references: Readonly<Record<string, number>>;
|
|
437
|
+
};
|
|
438
|
+
type PlannedNeedFacet = {
|
|
439
|
+
readonly producer: ProducerRef;
|
|
440
|
+
readonly port: string;
|
|
441
|
+
readonly capability: CapabilityRef;
|
|
442
|
+
plan(input: {
|
|
443
|
+
readonly state: BuildState;
|
|
444
|
+
readonly step: string;
|
|
445
|
+
readonly port: string;
|
|
446
|
+
}): PlannedNeedSpecification | undefined;
|
|
447
|
+
present?(specification: PlannedNeedSpecification): PlannedNeedPresentation;
|
|
448
|
+
};
|
|
449
|
+
/** Package-owned semantic validator. */
|
|
450
|
+
type TypeValidatorFacet = {
|
|
451
|
+
readonly type: TypeRef;
|
|
452
|
+
readonly handler: TypeValidatorHandler;
|
|
453
|
+
};
|
|
454
|
+
/** Trusted deterministic implementation package; it selects no Provider or Runtime infrastructure. */
|
|
455
|
+
type ComponentPackage = {
|
|
456
|
+
readonly producers?: readonly ProducerFacet[];
|
|
457
|
+
readonly validators?: readonly TypeValidatorFacet[];
|
|
458
|
+
/** Planning knowledge owned by the package that declares the external request. */
|
|
459
|
+
readonly plannedNeeds?: readonly PlannedNeedFacet[];
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
type MediaRational = {
|
|
463
|
+
readonly numerator: number;
|
|
464
|
+
readonly denominator: number;
|
|
465
|
+
};
|
|
466
|
+
type SynchronizedMedia = {
|
|
467
|
+
readonly timeline: {
|
|
468
|
+
readonly frameRate: MediaRational;
|
|
469
|
+
readonly frameCount: number;
|
|
470
|
+
};
|
|
471
|
+
readonly visual?: {
|
|
472
|
+
readonly artifact: BlobRef;
|
|
473
|
+
readonly width: number;
|
|
474
|
+
readonly height: number;
|
|
475
|
+
};
|
|
476
|
+
readonly audio?: {
|
|
477
|
+
readonly artifact: BlobRef;
|
|
478
|
+
};
|
|
479
|
+
};
|
|
480
|
+
|
|
481
|
+
type FontArtifactRef = {
|
|
482
|
+
/** One logical face may be split into independently addressed Unicode-range sources. */
|
|
483
|
+
readonly sources: readonly {
|
|
484
|
+
readonly artifact: BlobRef;
|
|
485
|
+
readonly unicodeRange?: string;
|
|
486
|
+
}[];
|
|
487
|
+
readonly weight: number;
|
|
488
|
+
readonly style: "normal" | "italic" | "oblique";
|
|
489
|
+
};
|
|
490
|
+
type CompositableSurfaceRef = {
|
|
491
|
+
readonly artifact: BlobRef;
|
|
492
|
+
readonly width: number;
|
|
493
|
+
readonly height: number;
|
|
494
|
+
readonly colorSpace: "srgb";
|
|
495
|
+
readonly alphaMode: "opaque" | "straight";
|
|
496
|
+
readonly timing: {
|
|
497
|
+
readonly kind: "still";
|
|
498
|
+
} | {
|
|
499
|
+
readonly kind: "frames";
|
|
500
|
+
readonly frameRate: {
|
|
501
|
+
readonly numerator: number;
|
|
502
|
+
readonly denominator: number;
|
|
503
|
+
};
|
|
504
|
+
readonly frameCount: number;
|
|
505
|
+
};
|
|
506
|
+
};
|
|
507
|
+
|
|
508
|
+
type ProgramSpace = {
|
|
509
|
+
/** Author-visible identity of this film time axis. */
|
|
510
|
+
readonly id: string;
|
|
511
|
+
readonly durationSec: number;
|
|
512
|
+
readonly frameRate: {
|
|
513
|
+
readonly numerator: number;
|
|
514
|
+
readonly denominator: number;
|
|
515
|
+
};
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
/** Structural style vocabulary. Renderer programs own their richer layout and code formats. */
|
|
519
|
+
declare const VISUAL_IR_V1: "hypit.visual-ir@1";
|
|
520
|
+
|
|
521
|
+
type FrameSpan$1 = {
|
|
522
|
+
readonly startFrame: number;
|
|
523
|
+
readonly endFrameExclusive: number;
|
|
524
|
+
};
|
|
525
|
+
/** One inline style declaration inside a Present-owned element tree. */
|
|
526
|
+
type VisualStyleDeclaration = {
|
|
527
|
+
readonly name: string;
|
|
528
|
+
readonly value: string | number;
|
|
529
|
+
};
|
|
530
|
+
type VisualAttribute = {
|
|
531
|
+
readonly name: string;
|
|
532
|
+
readonly value: string;
|
|
533
|
+
};
|
|
534
|
+
type VisualEasing = "linear" | "ease-in" | "ease-out" | "ease-in-out";
|
|
535
|
+
/**
|
|
536
|
+
* A frame-exact, code-free animation owned by one element. Keyframe offsets
|
|
537
|
+
* are relative to the containing Present and therefore remain deterministic
|
|
538
|
+
* under local and hosted rendering.
|
|
539
|
+
*/
|
|
540
|
+
type VisualKeyframe = {
|
|
541
|
+
readonly atFrame: number;
|
|
542
|
+
readonly easing?: VisualEasing;
|
|
543
|
+
readonly style: readonly VisualStyleDeclaration[];
|
|
544
|
+
};
|
|
545
|
+
type VisualAnimation = {
|
|
546
|
+
readonly keyframes: readonly VisualKeyframe[];
|
|
547
|
+
};
|
|
548
|
+
type VisualElementBase = {
|
|
549
|
+
readonly id: string;
|
|
550
|
+
readonly parent?: string;
|
|
551
|
+
readonly order: number;
|
|
552
|
+
readonly style: readonly VisualStyleDeclaration[];
|
|
553
|
+
readonly attributes?: readonly VisualAttribute[];
|
|
554
|
+
readonly animation?: VisualAnimation;
|
|
555
|
+
};
|
|
556
|
+
type VisualBoxElement = VisualElementBase & {
|
|
557
|
+
readonly kind: "box";
|
|
558
|
+
};
|
|
559
|
+
/** A renderer-interpreted local program. Its format and payload belong to its rendering package. */
|
|
560
|
+
type VisualProgramElement = VisualElementBase & {
|
|
561
|
+
readonly kind: "program";
|
|
562
|
+
readonly program: {
|
|
563
|
+
readonly format: string;
|
|
564
|
+
readonly payload: {
|
|
565
|
+
readonly [key: string]: CanonicalValue;
|
|
566
|
+
};
|
|
567
|
+
readonly artifacts: readonly BlobRef[];
|
|
568
|
+
};
|
|
569
|
+
};
|
|
570
|
+
/** A strictly local two-input mask. Both roots are direct owned children in the same Present. */
|
|
571
|
+
type VisualMaskElement = VisualElementBase & {
|
|
572
|
+
readonly kind: "mask";
|
|
573
|
+
readonly mode: "alpha" | "luminance";
|
|
574
|
+
readonly maskElement: string;
|
|
575
|
+
readonly contentElement: string;
|
|
576
|
+
};
|
|
577
|
+
type VisualTextElement = VisualElementBase & {
|
|
578
|
+
readonly kind: "text";
|
|
579
|
+
readonly text: string;
|
|
580
|
+
/** Exact ordered fallback faces. Terminal Visual IR never depends on environment fonts. */
|
|
581
|
+
readonly fonts: readonly FontArtifactRef[];
|
|
582
|
+
/**
|
|
583
|
+
* Ordered glyph Paint, in the same vocabulary Text Flow uses.
|
|
584
|
+
*
|
|
585
|
+
* Style alone can only say `-webkit-text-stroke`, which centres an outline on the glyph edge and
|
|
586
|
+
* therefore spends half its width inside the letter. An outline that is asked to sit outside the
|
|
587
|
+
* letter cannot be expressed that way at all. Declaring the Paint instead lets the renderer build
|
|
588
|
+
* the placement that was asked for, and `stroke` before `fill` orders them.
|
|
589
|
+
*/
|
|
590
|
+
readonly paints?: readonly VisualTextPaintLayer[];
|
|
591
|
+
};
|
|
592
|
+
type VisualTextDirection = "auto" | "ltr" | "rtl";
|
|
593
|
+
type VisualTextWritingMode = "horizontal-tb" | "vertical-rl" | "vertical-lr";
|
|
594
|
+
type VisualTextTypography = {
|
|
595
|
+
/** Exact ordered faces. Author-package prototype families must resolve before this boundary. */
|
|
596
|
+
readonly fonts: readonly FontArtifactRef[];
|
|
597
|
+
readonly sizePx: number;
|
|
598
|
+
readonly weight: number;
|
|
599
|
+
readonly style: "normal" | "italic" | "oblique";
|
|
600
|
+
readonly axes: readonly {
|
|
601
|
+
readonly tag: string;
|
|
602
|
+
readonly value: number;
|
|
603
|
+
}[];
|
|
604
|
+
readonly features: readonly {
|
|
605
|
+
readonly tag: string;
|
|
606
|
+
readonly enabled: boolean;
|
|
607
|
+
}[];
|
|
608
|
+
readonly synthesis: "none" | "weight" | "style" | "weight-style";
|
|
609
|
+
readonly kerning: "auto" | "normal" | "none";
|
|
610
|
+
readonly trackingPx: number;
|
|
611
|
+
readonly wordSpacingPx: number;
|
|
612
|
+
readonly lineHeight: number;
|
|
613
|
+
readonly language?: string;
|
|
614
|
+
readonly direction: VisualTextDirection;
|
|
615
|
+
readonly writingMode: VisualTextWritingMode;
|
|
616
|
+
readonly baselineShiftPx: number;
|
|
617
|
+
readonly tabSize: number;
|
|
618
|
+
readonly indentationPx: number;
|
|
619
|
+
readonly paragraphBeforePx: number;
|
|
620
|
+
readonly paragraphAfterPx: number;
|
|
621
|
+
readonly transform: "none" | "uppercase" | "lowercase" | "capitalize";
|
|
622
|
+
readonly variantCaps: "normal" | "small-caps" | "all-small-caps";
|
|
623
|
+
readonly verticalAlign: "baseline" | "super" | "sub";
|
|
624
|
+
readonly decorations: readonly VisualTextDecoration[];
|
|
625
|
+
readonly cjk: {
|
|
626
|
+
readonly textSpacing: "normal" | "none";
|
|
627
|
+
readonly punctuationTrim: "none" | "start" | "end" | "adjacent" | "all";
|
|
628
|
+
};
|
|
629
|
+
};
|
|
630
|
+
/** Explicit run override. Omitted properties inherit; authored text never changes. */
|
|
631
|
+
type VisualTextRunStyle = {
|
|
632
|
+
readonly typography?: Partial<VisualTextTypography>;
|
|
633
|
+
readonly paints?: readonly VisualTextPaintLayer[];
|
|
634
|
+
};
|
|
635
|
+
type VisualTextInline = {
|
|
636
|
+
readonly kind: "text";
|
|
637
|
+
readonly id: string;
|
|
638
|
+
readonly text: string;
|
|
639
|
+
readonly style?: VisualTextRunStyle;
|
|
640
|
+
readonly language?: string;
|
|
641
|
+
readonly direction?: VisualTextDirection;
|
|
642
|
+
} | {
|
|
643
|
+
readonly kind: "break";
|
|
644
|
+
readonly id: string;
|
|
645
|
+
};
|
|
646
|
+
type VisualTextDocument = {
|
|
647
|
+
readonly paragraphs: readonly {
|
|
648
|
+
readonly id: string;
|
|
649
|
+
readonly inlines: readonly VisualTextInline[];
|
|
650
|
+
readonly style?: VisualTextRunStyle;
|
|
651
|
+
}[];
|
|
652
|
+
};
|
|
653
|
+
type VisualColorPaint = {
|
|
654
|
+
readonly kind: "solid";
|
|
655
|
+
readonly color: string;
|
|
656
|
+
} | {
|
|
657
|
+
readonly kind: "linear-gradient";
|
|
658
|
+
readonly angleDeg: number;
|
|
659
|
+
readonly stops: readonly {
|
|
660
|
+
readonly offset: number;
|
|
661
|
+
readonly color: string;
|
|
662
|
+
readonly opacity: number;
|
|
663
|
+
}[];
|
|
664
|
+
} | {
|
|
665
|
+
readonly kind: "radial-gradient";
|
|
666
|
+
readonly center: {
|
|
667
|
+
readonly x: number;
|
|
668
|
+
readonly y: number;
|
|
669
|
+
};
|
|
670
|
+
readonly stops: readonly {
|
|
671
|
+
readonly offset: number;
|
|
672
|
+
readonly color: string;
|
|
673
|
+
readonly opacity: number;
|
|
674
|
+
}[];
|
|
675
|
+
};
|
|
676
|
+
type VisualTextDecoration = {
|
|
677
|
+
readonly line: "underline" | "overline" | "line-through";
|
|
678
|
+
readonly paint: VisualColorPaint;
|
|
679
|
+
readonly style: "solid" | "double" | "dotted" | "dashed" | "wavy";
|
|
680
|
+
readonly thicknessPx?: number;
|
|
681
|
+
readonly offsetPx?: number;
|
|
682
|
+
readonly skipInk: boolean;
|
|
683
|
+
};
|
|
684
|
+
type VisualTextBoxDecoration = {
|
|
685
|
+
readonly fill?: VisualColorPaint;
|
|
686
|
+
readonly border?: {
|
|
687
|
+
readonly paint: VisualColorPaint;
|
|
688
|
+
readonly widthsPx: {
|
|
689
|
+
readonly top: number;
|
|
690
|
+
readonly right: number;
|
|
691
|
+
readonly bottom: number;
|
|
692
|
+
readonly left: number;
|
|
693
|
+
};
|
|
694
|
+
readonly style: "solid" | "dashed" | "dotted";
|
|
695
|
+
};
|
|
696
|
+
readonly paddingPx: {
|
|
697
|
+
readonly top: number;
|
|
698
|
+
readonly right: number;
|
|
699
|
+
readonly bottom: number;
|
|
700
|
+
readonly left: number;
|
|
701
|
+
};
|
|
702
|
+
readonly radiiPx: {
|
|
703
|
+
readonly topLeft: number;
|
|
704
|
+
readonly topRight: number;
|
|
705
|
+
readonly bottomRight: number;
|
|
706
|
+
readonly bottomLeft: number;
|
|
707
|
+
};
|
|
708
|
+
readonly shadows: readonly {
|
|
709
|
+
readonly paint: VisualColorPaint;
|
|
710
|
+
readonly offsetX: number;
|
|
711
|
+
readonly offsetY: number;
|
|
712
|
+
readonly blurPx: number;
|
|
713
|
+
readonly spreadPx: number;
|
|
714
|
+
}[];
|
|
715
|
+
readonly tail?: {
|
|
716
|
+
readonly side: "top" | "right" | "bottom" | "left";
|
|
717
|
+
readonly offset: number;
|
|
718
|
+
readonly widthPx: number;
|
|
719
|
+
readonly heightPx: number;
|
|
720
|
+
readonly paint: VisualColorPaint;
|
|
721
|
+
};
|
|
722
|
+
};
|
|
723
|
+
type VisualTextPaintTarget = "frame" | "content" | "paragraph" | "line" | "run" | "word" | "grapheme";
|
|
724
|
+
/** Ordered renderer-neutral text Paint. Repetition and array order are semantic. */
|
|
725
|
+
type VisualTextPaintLayer = {
|
|
726
|
+
readonly kind: "fill";
|
|
727
|
+
readonly paint: VisualColorPaint;
|
|
728
|
+
} | {
|
|
729
|
+
readonly kind: "stroke";
|
|
730
|
+
readonly paint: VisualColorPaint;
|
|
731
|
+
readonly widthPx: number;
|
|
732
|
+
readonly placement: "inside" | "center" | "outside";
|
|
733
|
+
} | {
|
|
734
|
+
readonly kind: "shadow";
|
|
735
|
+
readonly paint: VisualColorPaint;
|
|
736
|
+
readonly offsetX: number;
|
|
737
|
+
readonly offsetY: number;
|
|
738
|
+
readonly blurPx: number;
|
|
739
|
+
readonly spreadPx: number;
|
|
740
|
+
} | {
|
|
741
|
+
readonly kind: "glow";
|
|
742
|
+
readonly paint: VisualColorPaint;
|
|
743
|
+
readonly blurPx: number;
|
|
744
|
+
readonly spreadPx: number;
|
|
745
|
+
} | {
|
|
746
|
+
readonly kind: "box";
|
|
747
|
+
readonly target: VisualTextPaintTarget;
|
|
748
|
+
readonly continuity: "isolated" | "joined";
|
|
749
|
+
readonly decoration: VisualTextBoxDecoration;
|
|
750
|
+
};
|
|
751
|
+
type VisualTextFlow = {
|
|
752
|
+
readonly form: {
|
|
753
|
+
readonly kind: "point";
|
|
754
|
+
readonly anchorInline: "start" | "center" | "end";
|
|
755
|
+
readonly anchorBlock: "start" | "center" | "end";
|
|
756
|
+
} | {
|
|
757
|
+
readonly kind: "area";
|
|
758
|
+
};
|
|
759
|
+
readonly inlineSize: "hug" | "fixed";
|
|
760
|
+
readonly blockSize: "hug" | "fixed";
|
|
761
|
+
readonly paddingPx: {
|
|
762
|
+
readonly inlineStart: number;
|
|
763
|
+
readonly inlineEnd: number;
|
|
764
|
+
readonly blockStart: number;
|
|
765
|
+
readonly blockEnd: number;
|
|
766
|
+
};
|
|
767
|
+
readonly inlineAlign: "start" | "center" | "end" | "justify";
|
|
768
|
+
readonly blockAlign: "start" | "center" | "end";
|
|
769
|
+
readonly wrap: "none" | "word" | "grapheme";
|
|
770
|
+
readonly overflow: "visible" | "clip" | "ellipsis" | "shrink";
|
|
771
|
+
readonly maxLines?: number;
|
|
772
|
+
readonly minimumScale?: number;
|
|
773
|
+
readonly clipToFrame: boolean;
|
|
774
|
+
readonly columns: number;
|
|
775
|
+
readonly columnGapPx: number;
|
|
776
|
+
readonly metricEdge: "line-box" | "cap-height" | "ink";
|
|
777
|
+
};
|
|
778
|
+
type VisualTextSequenceAnimation = {
|
|
779
|
+
readonly id: string;
|
|
780
|
+
readonly unit: "paragraph" | "line" | "run" | "word" | "grapheme";
|
|
781
|
+
readonly range: {
|
|
782
|
+
readonly start: number;
|
|
783
|
+
readonly endExclusive: number;
|
|
784
|
+
};
|
|
785
|
+
readonly order: "forward" | "reverse" | "random";
|
|
786
|
+
readonly startFrame: number;
|
|
787
|
+
readonly unitDurationFrames: number;
|
|
788
|
+
readonly staggerFrames: number;
|
|
789
|
+
readonly cycles: number;
|
|
790
|
+
readonly seed?: number;
|
|
791
|
+
readonly keyframes: readonly {
|
|
792
|
+
readonly atProgress: number;
|
|
793
|
+
readonly easing?: VisualEasing;
|
|
794
|
+
readonly style: readonly VisualStyleDeclaration[];
|
|
795
|
+
}[];
|
|
796
|
+
};
|
|
797
|
+
/** Exact terminal text flow. It contains no author Style/Recipe reference or renderer callback. */
|
|
798
|
+
type VisualTextFlowElement = VisualElementBase & {
|
|
799
|
+
readonly kind: "text-flow";
|
|
800
|
+
readonly document: VisualTextDocument;
|
|
801
|
+
readonly typography: VisualTextTypography;
|
|
802
|
+
readonly paints: readonly VisualTextPaintLayer[];
|
|
803
|
+
readonly flow: VisualTextFlow;
|
|
804
|
+
readonly sequences: readonly VisualTextSequenceAnimation[];
|
|
805
|
+
};
|
|
806
|
+
type VisualVectorPathCommand = {
|
|
807
|
+
readonly kind: "move" | "line";
|
|
808
|
+
readonly x: number;
|
|
809
|
+
readonly y: number;
|
|
810
|
+
} | {
|
|
811
|
+
readonly kind: "quadratic";
|
|
812
|
+
readonly controlX: number;
|
|
813
|
+
readonly controlY: number;
|
|
814
|
+
readonly x: number;
|
|
815
|
+
readonly y: number;
|
|
816
|
+
} | {
|
|
817
|
+
readonly kind: "cubic";
|
|
818
|
+
readonly control1X: number;
|
|
819
|
+
readonly control1Y: number;
|
|
820
|
+
readonly control2X: number;
|
|
821
|
+
readonly control2Y: number;
|
|
822
|
+
readonly x: number;
|
|
823
|
+
readonly y: number;
|
|
824
|
+
} | {
|
|
825
|
+
readonly kind: "close";
|
|
826
|
+
};
|
|
827
|
+
type VisualPathTextElement = VisualElementBase & {
|
|
828
|
+
readonly kind: "path-text";
|
|
829
|
+
readonly document: VisualTextDocument;
|
|
830
|
+
readonly typography: VisualTextTypography;
|
|
831
|
+
readonly paints: readonly VisualTextPaintLayer[];
|
|
832
|
+
readonly path: readonly VisualVectorPathCommand[];
|
|
833
|
+
readonly side: "left" | "right";
|
|
834
|
+
readonly orientation: "follow" | "upright";
|
|
835
|
+
readonly startMarginPx: number;
|
|
836
|
+
readonly endMarginPx: number;
|
|
837
|
+
readonly align: "start" | "center" | "end";
|
|
838
|
+
readonly reverse: boolean;
|
|
839
|
+
readonly overflow: "visible" | "clip";
|
|
840
|
+
readonly sequences: readonly VisualTextSequenceAnimation[];
|
|
841
|
+
readonly marginAnimation?: {
|
|
842
|
+
readonly keyframes: readonly {
|
|
843
|
+
readonly atFrame: number;
|
|
844
|
+
readonly startMarginPx: number;
|
|
845
|
+
readonly easing?: VisualEasing;
|
|
846
|
+
}[];
|
|
847
|
+
};
|
|
848
|
+
};
|
|
849
|
+
type VisualSamplingRational = {
|
|
850
|
+
readonly numerator: number;
|
|
851
|
+
readonly denominator: number;
|
|
852
|
+
};
|
|
853
|
+
/**
|
|
854
|
+
* One exact piece of a timed visual's source-time function. Target frames are
|
|
855
|
+
* relative to the containing Present. A gap means the material is invisible.
|
|
856
|
+
*/
|
|
857
|
+
type VisualSamplingSegment = {
|
|
858
|
+
readonly target: FrameSpan$1;
|
|
859
|
+
/** Absolute source-frame position at target.startFrame. */
|
|
860
|
+
readonly sourceFrame: VisualSamplingRational;
|
|
861
|
+
/** Source frames advanced per Program frame; zero is an exact held frame. */
|
|
862
|
+
readonly rate: VisualSamplingRational;
|
|
863
|
+
readonly loop?: FrameSpan$1;
|
|
864
|
+
};
|
|
865
|
+
type VisualTimedSampling = {
|
|
866
|
+
readonly sourceFrameRate: VisualSamplingRational;
|
|
867
|
+
readonly sourceFrameCount: number;
|
|
868
|
+
readonly segments: readonly VisualSamplingSegment[];
|
|
869
|
+
};
|
|
870
|
+
type VisualMediaElement = VisualElementBase & {
|
|
871
|
+
readonly kind: "image" | "video";
|
|
872
|
+
readonly artifact: BlobRef;
|
|
873
|
+
/** Exact frame-domain mapping for timed media. */
|
|
874
|
+
readonly sampling?: VisualTimedSampling;
|
|
875
|
+
readonly muted?: boolean;
|
|
876
|
+
};
|
|
877
|
+
/** A package-materialized visual surface with content-bound compositing metadata, not an untyped media guess. */
|
|
878
|
+
type VisualSurfaceElement = VisualElementBase & {
|
|
879
|
+
readonly kind: "surface";
|
|
880
|
+
readonly surface: CompositableSurfaceRef;
|
|
881
|
+
readonly sampling?: VisualTimedSampling;
|
|
882
|
+
};
|
|
883
|
+
/**
|
|
884
|
+
* Structural elements and explicit renderer programs compose in one owned tree.
|
|
885
|
+
*
|
|
886
|
+
* A Present holds exactly one root; everything else names a `parent`, which can be a box,
|
|
887
|
+
* mask or program. **Position is measured from that parent, not from the Canvas.** A component that computes
|
|
888
|
+
* its layout in Canvas pixels and then nests its elements has to subtract the parent's own origin,
|
|
889
|
+
* or every child lands offset by it — which draws without complaint and is wrong by exactly the
|
|
890
|
+
* distance the parent sits from the corner.
|
|
891
|
+
*/
|
|
892
|
+
type VisualElement = VisualBoxElement | VisualProgramElement | VisualMaskElement | VisualTextElement | VisualTextFlowElement | VisualPathTextElement | VisualMediaElement | VisualSurfaceElement;
|
|
893
|
+
type VisualPresent = {
|
|
894
|
+
readonly id: string;
|
|
895
|
+
/** Optional domain entity implemented by this renderer Present. */
|
|
896
|
+
readonly subjectId?: string;
|
|
897
|
+
readonly span: FrameSpan$1;
|
|
898
|
+
/** Optional visible subranges in program frames; span remains the animation and sampling origin. */
|
|
899
|
+
readonly visibility?: readonly FrameSpan$1[];
|
|
900
|
+
/** Absolute paint position for this Present, not for its authoring Track. */
|
|
901
|
+
readonly stacking: {
|
|
902
|
+
readonly order: number;
|
|
903
|
+
readonly tieBreak: string;
|
|
904
|
+
};
|
|
905
|
+
readonly elements: readonly VisualElement[];
|
|
906
|
+
};
|
|
907
|
+
type VisualTrack = {
|
|
908
|
+
readonly kind: "visual";
|
|
909
|
+
/** ProgramSpace identity this terminal placement was rendered against. */
|
|
910
|
+
readonly programSpaceId: string;
|
|
911
|
+
/** The one terminal visual language shared by official video components. */
|
|
912
|
+
readonly visualIr: typeof VISUAL_IR_V1;
|
|
913
|
+
readonly id: string;
|
|
914
|
+
/** Author-owned contributions that Composition may interleave by absolute z. */
|
|
915
|
+
readonly presents: readonly VisualPresent[];
|
|
916
|
+
};
|
|
917
|
+
|
|
918
|
+
/** One authored Script token located in one normalized Take's local frame domain. */
|
|
919
|
+
type SemanticTakeToken = {
|
|
920
|
+
readonly tokenId: string;
|
|
921
|
+
readonly segmentId: string;
|
|
922
|
+
readonly text: string;
|
|
923
|
+
readonly startAnchorId: string;
|
|
924
|
+
readonly endAnchorId: string;
|
|
925
|
+
readonly startFrame: number;
|
|
926
|
+
readonly endFrameExclusive: number;
|
|
927
|
+
};
|
|
928
|
+
/**
|
|
929
|
+
* A self-contained semantic media product. Media bytes remain ordinary BlobRefs
|
|
930
|
+
* inside SynchronizedMedia; the authored word surface and its local frame
|
|
931
|
+
* coordinates travel with this Take instead of requiring a second Script edge.
|
|
932
|
+
*/
|
|
933
|
+
type SemanticTake = {
|
|
934
|
+
/** Author-visible Script identity carried through every semantic projection. */
|
|
935
|
+
readonly narrativeId: string;
|
|
936
|
+
readonly media: SynchronizedMedia;
|
|
937
|
+
readonly segment: {
|
|
938
|
+
readonly segmentId: string;
|
|
939
|
+
readonly startAnchorId: string;
|
|
940
|
+
readonly endAnchorId: string;
|
|
941
|
+
readonly startFrame: number;
|
|
942
|
+
readonly endFrameExclusive: number;
|
|
943
|
+
};
|
|
944
|
+
readonly tokens: readonly SemanticTakeToken[];
|
|
945
|
+
readonly anchors: readonly {
|
|
946
|
+
readonly identity: string;
|
|
947
|
+
readonly frame: number;
|
|
948
|
+
}[];
|
|
949
|
+
};
|
|
950
|
+
|
|
951
|
+
type TimelineItem = {
|
|
952
|
+
readonly take: SemanticTake;
|
|
953
|
+
readonly startFrame: number;
|
|
954
|
+
};
|
|
955
|
+
/** One complete film time range, with prepared material placed where it belongs. */
|
|
956
|
+
type Timeline = ProgramSpace & {
|
|
957
|
+
readonly narrativeId?: string;
|
|
958
|
+
readonly items: readonly TimelineItem[];
|
|
959
|
+
};
|
|
960
|
+
|
|
961
|
+
/** Exact author duration. Decimal source spelling is reduced before reaching this value. */
|
|
962
|
+
type TemporalDuration = {
|
|
963
|
+
readonly unit: "frames";
|
|
964
|
+
readonly value: number;
|
|
965
|
+
} | {
|
|
966
|
+
readonly unit: "milliseconds";
|
|
967
|
+
readonly value: number;
|
|
968
|
+
} | {
|
|
969
|
+
readonly unit: "seconds";
|
|
970
|
+
readonly numerator: number;
|
|
971
|
+
readonly denominator: number;
|
|
972
|
+
};
|
|
973
|
+
/** A single projected boundary before it is resolved into ProgramSpace. */
|
|
974
|
+
type TemporalInstantExpression = {
|
|
975
|
+
readonly ref: "program.start";
|
|
976
|
+
readonly offset?: TemporalDuration;
|
|
977
|
+
} | {
|
|
978
|
+
readonly ref: "program.end";
|
|
979
|
+
readonly offset?: TemporalDuration;
|
|
980
|
+
} | {
|
|
981
|
+
readonly ref: "selection.start";
|
|
982
|
+
readonly offset?: TemporalDuration;
|
|
983
|
+
} | {
|
|
984
|
+
readonly ref: "selection.end";
|
|
985
|
+
readonly offset?: TemporalDuration;
|
|
986
|
+
} | {
|
|
987
|
+
readonly ref: "segment.start";
|
|
988
|
+
readonly offset?: TemporalDuration;
|
|
989
|
+
} | {
|
|
990
|
+
readonly ref: "segment.end";
|
|
991
|
+
readonly offset?: TemporalDuration;
|
|
992
|
+
} | {
|
|
993
|
+
readonly ref: "moment.cue";
|
|
994
|
+
readonly offset?: TemporalDuration;
|
|
995
|
+
} | {
|
|
996
|
+
readonly ref: "absolute";
|
|
997
|
+
readonly at: TemporalDuration;
|
|
998
|
+
readonly offset?: TemporalDuration;
|
|
999
|
+
};
|
|
1000
|
+
/** Runtime dependency used to resolve an Instant. This is not its authoring authority. */
|
|
1001
|
+
type TemporalSource = {
|
|
1002
|
+
readonly spaceId: string;
|
|
1003
|
+
/** Present when the boundary originates in a Script. */
|
|
1004
|
+
readonly narrativeId?: string;
|
|
1005
|
+
readonly kind: "program" | "selection" | "segment" | "moment";
|
|
1006
|
+
readonly id: string;
|
|
1007
|
+
};
|
|
1008
|
+
/**
|
|
1009
|
+
* The author-owned inverse of one projected Instant. Runtime dependencies and
|
|
1010
|
+
* author authority are deliberately separate: an expression may read an
|
|
1011
|
+
* anchor while remaining writable only at its author parameter.
|
|
1012
|
+
*/
|
|
1013
|
+
type TemporalInstantAuthority = {
|
|
1014
|
+
readonly kind: "semantic";
|
|
1015
|
+
readonly boundary: "start" | "end" | "cue";
|
|
1016
|
+
} | {
|
|
1017
|
+
readonly kind: "parameter";
|
|
1018
|
+
readonly binding: string;
|
|
1019
|
+
readonly relation: "direct" | "after-start" | "before-end";
|
|
1020
|
+
} | {
|
|
1021
|
+
readonly kind: "fixed";
|
|
1022
|
+
};
|
|
1023
|
+
type FrameSpan = {
|
|
1024
|
+
readonly startFrame: number;
|
|
1025
|
+
readonly endFrameExclusive: number;
|
|
1026
|
+
};
|
|
1027
|
+
type ProjectedInstant = {
|
|
1028
|
+
readonly id: string;
|
|
1029
|
+
readonly subjectId: string;
|
|
1030
|
+
readonly source: TemporalSource;
|
|
1031
|
+
readonly projection: TemporalInstantExpression;
|
|
1032
|
+
readonly authority: TemporalInstantAuthority;
|
|
1033
|
+
readonly frame: number;
|
|
1034
|
+
};
|
|
1035
|
+
type ProjectedWindow = {
|
|
1036
|
+
readonly id: string;
|
|
1037
|
+
readonly subjectId: string;
|
|
1038
|
+
readonly start: ProjectedInstant;
|
|
1039
|
+
readonly end: ProjectedInstant;
|
|
1040
|
+
readonly span: FrameSpan;
|
|
1041
|
+
};
|
|
1042
|
+
/** Public projection protocol composed from two independently traced Instants. */
|
|
1043
|
+
type TemporalWindow = ProjectedWindow;
|
|
1044
|
+
|
|
1045
|
+
type PerformanceUse = {
|
|
1046
|
+
readonly window: TemporalWindow;
|
|
1047
|
+
readonly visual: VisualTrack;
|
|
1048
|
+
};
|
|
1049
|
+
type PerformanceSet = {
|
|
1050
|
+
readonly uses: readonly PerformanceUse[];
|
|
1051
|
+
};
|
|
1052
|
+
declare function appendPerformanceUse(set: PerformanceSet, window: TemporalWindow, visual: VisualTrack): PerformanceSet;
|
|
1053
|
+
declare function intersectVisibility(left: readonly FrameSpan$1[], right: readonly FrameSpan$1[]): FrameSpan$1[];
|
|
1054
|
+
declare function performancePresentId(useId: string, presentId: string): string;
|
|
1055
|
+
/** Keep original animation/sample origins. Only the visibility mask changes. */
|
|
1056
|
+
declare function resolvePerformance(timeline: Timeline, id: string, set: PerformanceSet): VisualTrack;
|
|
1057
|
+
|
|
1058
|
+
type CanvasSpace = {
|
|
1059
|
+
readonly widthPx: number;
|
|
1060
|
+
readonly heightPx: number;
|
|
1061
|
+
readonly origin: "top-left";
|
|
1062
|
+
readonly xDirection: "right";
|
|
1063
|
+
readonly yDirection: "down";
|
|
1064
|
+
readonly pixelAspect: "square";
|
|
1065
|
+
};
|
|
1066
|
+
type SpatialFrame = {
|
|
1067
|
+
readonly xPx: number;
|
|
1068
|
+
readonly yPx: number;
|
|
1069
|
+
readonly widthPx: number;
|
|
1070
|
+
readonly heightPx: number;
|
|
1071
|
+
};
|
|
1072
|
+
type SpatialPathCommand = {
|
|
1073
|
+
readonly kind: "move";
|
|
1074
|
+
readonly xPx: number;
|
|
1075
|
+
readonly yPx: number;
|
|
1076
|
+
} | {
|
|
1077
|
+
readonly kind: "line";
|
|
1078
|
+
readonly xPx: number;
|
|
1079
|
+
readonly yPx: number;
|
|
1080
|
+
} | {
|
|
1081
|
+
readonly kind: "quadratic";
|
|
1082
|
+
readonly controlX: number;
|
|
1083
|
+
readonly controlY: number;
|
|
1084
|
+
readonly xPx: number;
|
|
1085
|
+
readonly yPx: number;
|
|
1086
|
+
} | {
|
|
1087
|
+
readonly kind: "cubic";
|
|
1088
|
+
readonly control1X: number;
|
|
1089
|
+
readonly control1Y: number;
|
|
1090
|
+
readonly control2X: number;
|
|
1091
|
+
readonly control2Y: number;
|
|
1092
|
+
readonly xPx: number;
|
|
1093
|
+
readonly yPx: number;
|
|
1094
|
+
} | {
|
|
1095
|
+
readonly kind: "close";
|
|
1096
|
+
};
|
|
1097
|
+
type SpatialPath = {
|
|
1098
|
+
readonly commands: readonly SpatialPathCommand[];
|
|
1099
|
+
};
|
|
1100
|
+
type IntrinsicExtent = {
|
|
1101
|
+
readonly widthPx: number;
|
|
1102
|
+
readonly heightPx: number;
|
|
1103
|
+
};
|
|
1104
|
+
type NormalizedPoint = {
|
|
1105
|
+
readonly x: number;
|
|
1106
|
+
readonly y: number;
|
|
1107
|
+
};
|
|
1108
|
+
type ContentFit = {
|
|
1109
|
+
readonly sizing: "contain" | "cover" | "fit-width" | "fit-height" | "native" | "scale-down" | "stretch";
|
|
1110
|
+
readonly framePoint: NormalizedPoint;
|
|
1111
|
+
readonly contentPoint: NormalizedPoint;
|
|
1112
|
+
readonly offsetPx: {
|
|
1113
|
+
readonly x: number;
|
|
1114
|
+
readonly y: number;
|
|
1115
|
+
};
|
|
1116
|
+
readonly constraint: "bounded" | "free";
|
|
1117
|
+
};
|
|
1118
|
+
|
|
1119
|
+
/** Intrinsic visual truth resolved before Media authoring; never a Provider or lineage envelope. */
|
|
1120
|
+
type MediaVisualSource = {
|
|
1121
|
+
readonly kind: "still";
|
|
1122
|
+
readonly artifact: BlobRef;
|
|
1123
|
+
readonly extent: IntrinsicExtent;
|
|
1124
|
+
} | {
|
|
1125
|
+
readonly kind: "timed";
|
|
1126
|
+
readonly artifact: BlobRef;
|
|
1127
|
+
readonly extent: IntrinsicExtent;
|
|
1128
|
+
readonly frameRate: MediaRational;
|
|
1129
|
+
readonly frameCount: number;
|
|
1130
|
+
readonly audio?: {
|
|
1131
|
+
readonly artifact: BlobRef;
|
|
1132
|
+
readonly sampleFrames: number;
|
|
1133
|
+
};
|
|
1134
|
+
} | {
|
|
1135
|
+
readonly kind: "surface";
|
|
1136
|
+
readonly surface: CompositableSurfaceRef;
|
|
1137
|
+
readonly extent: IntrinsicExtent;
|
|
1138
|
+
};
|
|
1139
|
+
type MediaVisualTrim = {
|
|
1140
|
+
readonly startFrame: number;
|
|
1141
|
+
readonly endFrameExclusive: number;
|
|
1142
|
+
};
|
|
1143
|
+
type MediaVisualOccupancy = {
|
|
1144
|
+
readonly mode: "once";
|
|
1145
|
+
readonly align: "start" | "end";
|
|
1146
|
+
} | {
|
|
1147
|
+
readonly mode: "hold";
|
|
1148
|
+
readonly align: "start" | "end";
|
|
1149
|
+
} | {
|
|
1150
|
+
readonly mode: "loop";
|
|
1151
|
+
readonly align: "start" | "end";
|
|
1152
|
+
} | {
|
|
1153
|
+
readonly mode: "stretch";
|
|
1154
|
+
};
|
|
1155
|
+
type MediaGradientStop = {
|
|
1156
|
+
readonly offset: number;
|
|
1157
|
+
readonly color: string;
|
|
1158
|
+
};
|
|
1159
|
+
type MediaPaint = {
|
|
1160
|
+
readonly kind: "solid";
|
|
1161
|
+
readonly color: string;
|
|
1162
|
+
} | {
|
|
1163
|
+
readonly kind: "linear-gradient";
|
|
1164
|
+
readonly angleDeg: number;
|
|
1165
|
+
readonly stops: readonly MediaGradientStop[];
|
|
1166
|
+
} | {
|
|
1167
|
+
readonly kind: "radial-gradient";
|
|
1168
|
+
readonly center: {
|
|
1169
|
+
readonly x: number;
|
|
1170
|
+
readonly y: number;
|
|
1171
|
+
};
|
|
1172
|
+
readonly stops: readonly MediaGradientStop[];
|
|
1173
|
+
};
|
|
1174
|
+
type MediaSampleAppearance = {
|
|
1175
|
+
readonly opacity: number;
|
|
1176
|
+
readonly filter: {
|
|
1177
|
+
readonly blurPx: number;
|
|
1178
|
+
readonly brightness: number;
|
|
1179
|
+
readonly contrast: number;
|
|
1180
|
+
readonly saturation: number;
|
|
1181
|
+
};
|
|
1182
|
+
};
|
|
1183
|
+
type MediaSamplingKeyframe = {
|
|
1184
|
+
/** Normalized position inside the resolved Item/member envelope. */
|
|
1185
|
+
readonly atProgress: number;
|
|
1186
|
+
readonly zoom: number;
|
|
1187
|
+
readonly offsetX: number;
|
|
1188
|
+
readonly offsetY: number;
|
|
1189
|
+
readonly rotationDeg: number;
|
|
1190
|
+
readonly easing?: "linear" | "ease-in" | "ease-out" | "ease-in-out";
|
|
1191
|
+
};
|
|
1192
|
+
type MediaSamplingMotion = {
|
|
1193
|
+
readonly keyframes: readonly MediaSamplingKeyframe[];
|
|
1194
|
+
};
|
|
1195
|
+
type MediaPaintLayerProgram = {
|
|
1196
|
+
readonly id: string;
|
|
1197
|
+
readonly kind: "paint";
|
|
1198
|
+
readonly paint: MediaPaint;
|
|
1199
|
+
readonly opacity: number;
|
|
1200
|
+
};
|
|
1201
|
+
type MediaSampleLayerProgram = {
|
|
1202
|
+
readonly id: string;
|
|
1203
|
+
readonly kind: "sample";
|
|
1204
|
+
readonly sampling?: VisualTimedSampling;
|
|
1205
|
+
readonly source: MediaVisualSource;
|
|
1206
|
+
readonly fit: ContentFit;
|
|
1207
|
+
readonly trim?: MediaVisualTrim;
|
|
1208
|
+
readonly occupancy?: MediaVisualOccupancy;
|
|
1209
|
+
readonly appearance: MediaSampleAppearance;
|
|
1210
|
+
readonly samplingMotion?: MediaSamplingMotion;
|
|
1211
|
+
};
|
|
1212
|
+
type MediaLayerProgram = MediaPaintLayerProgram | MediaSampleLayerProgram;
|
|
1213
|
+
type MediaSampleLayerSpec = {
|
|
1214
|
+
readonly id: string;
|
|
1215
|
+
readonly trim?: MediaVisualTrim;
|
|
1216
|
+
readonly occupancy?: MediaVisualOccupancy;
|
|
1217
|
+
readonly appearance: MediaSampleAppearance;
|
|
1218
|
+
readonly samplingMotion?: MediaSamplingMotion;
|
|
1219
|
+
};
|
|
1220
|
+
type MediaLayerSet = {
|
|
1221
|
+
readonly layers: readonly MediaLayerProgram[];
|
|
1222
|
+
};
|
|
1223
|
+
type MediaPadding = {
|
|
1224
|
+
readonly topPx: number;
|
|
1225
|
+
readonly rightPx: number;
|
|
1226
|
+
readonly bottomPx: number;
|
|
1227
|
+
readonly leftPx: number;
|
|
1228
|
+
};
|
|
1229
|
+
type MediaFrameClip = {
|
|
1230
|
+
readonly kind: "none";
|
|
1231
|
+
} | {
|
|
1232
|
+
readonly kind: "frame";
|
|
1233
|
+
} | {
|
|
1234
|
+
readonly kind: "rounded";
|
|
1235
|
+
readonly radiusPx: number;
|
|
1236
|
+
} | {
|
|
1237
|
+
readonly kind: "path";
|
|
1238
|
+
readonly path: SpatialPath;
|
|
1239
|
+
};
|
|
1240
|
+
type MediaFramePresentation = {
|
|
1241
|
+
readonly clip: MediaFrameClip;
|
|
1242
|
+
readonly padding: MediaPadding;
|
|
1243
|
+
readonly border?: {
|
|
1244
|
+
readonly widthPx: number;
|
|
1245
|
+
readonly style: "solid" | "dashed" | "dotted";
|
|
1246
|
+
readonly color: string;
|
|
1247
|
+
};
|
|
1248
|
+
readonly shadows: readonly {
|
|
1249
|
+
readonly offsetX: number;
|
|
1250
|
+
readonly offsetY: number;
|
|
1251
|
+
readonly blurPx: number;
|
|
1252
|
+
readonly spreadPx: number;
|
|
1253
|
+
readonly color: string;
|
|
1254
|
+
}[];
|
|
1255
|
+
};
|
|
1256
|
+
type MediaMotionDirection = "left" | "right" | "up" | "down";
|
|
1257
|
+
type MediaEdgeMotion = {
|
|
1258
|
+
readonly operator: "fade" | "slide" | "scale" | "pop" | "bounce" | "blur-reveal" | "wipe" | "flip" | "spin";
|
|
1259
|
+
readonly durationFrames: number;
|
|
1260
|
+
readonly easing: "linear" | "ease-in" | "ease-out" | "ease-in-out";
|
|
1261
|
+
readonly direction?: MediaMotionDirection;
|
|
1262
|
+
readonly amount?: number;
|
|
1263
|
+
readonly origin?: "outside-canvas";
|
|
1264
|
+
};
|
|
1265
|
+
type MediaSustainMotion = {
|
|
1266
|
+
readonly operator: "float" | "breathe" | "pulse" | "wobble" | "shake" | "drift";
|
|
1267
|
+
readonly amount: number;
|
|
1268
|
+
readonly cycles: number;
|
|
1269
|
+
readonly direction?: MediaMotionDirection;
|
|
1270
|
+
};
|
|
1271
|
+
type MediaLifecycleMotion = {
|
|
1272
|
+
readonly enter?: MediaEdgeMotion;
|
|
1273
|
+
readonly sustain: readonly MediaSustainMotion[];
|
|
1274
|
+
readonly exit?: MediaEdgeMotion;
|
|
1275
|
+
};
|
|
1276
|
+
type MediaSourceAudioProjection = {
|
|
1277
|
+
readonly fromLayer: string;
|
|
1278
|
+
readonly gain: number;
|
|
1279
|
+
};
|
|
1280
|
+
type MediaSoundSource = {
|
|
1281
|
+
readonly artifact: BlobRef;
|
|
1282
|
+
readonly sampleFrames: number;
|
|
1283
|
+
};
|
|
1284
|
+
type MediaSoundTrigger = {
|
|
1285
|
+
readonly kind: "enter";
|
|
1286
|
+
} | {
|
|
1287
|
+
readonly kind: "exit";
|
|
1288
|
+
} | {
|
|
1289
|
+
readonly kind: "handoff";
|
|
1290
|
+
readonly handoffId: string;
|
|
1291
|
+
};
|
|
1292
|
+
type MediaSoundSpec = {
|
|
1293
|
+
readonly id: string;
|
|
1294
|
+
readonly trigger: MediaSoundTrigger;
|
|
1295
|
+
readonly gain: number;
|
|
1296
|
+
};
|
|
1297
|
+
type MediaSoundEvent = MediaSoundSpec & {
|
|
1298
|
+
readonly source: MediaSoundSource;
|
|
1299
|
+
};
|
|
1300
|
+
type MediaSoundSet = {
|
|
1301
|
+
readonly sounds: readonly MediaSoundEvent[];
|
|
1302
|
+
};
|
|
1303
|
+
type MediaAbsoluteStacking = {
|
|
1304
|
+
readonly order: number;
|
|
1305
|
+
readonly tieBreak: string;
|
|
1306
|
+
};
|
|
1307
|
+
type MediaItemSpec = {
|
|
1308
|
+
readonly id: string;
|
|
1309
|
+
readonly presentation: MediaFramePresentation;
|
|
1310
|
+
readonly motion: MediaLifecycleMotion;
|
|
1311
|
+
readonly stackingOrder: number;
|
|
1312
|
+
readonly sourceAudio?: MediaSourceAudioProjection;
|
|
1313
|
+
};
|
|
1314
|
+
type MediaItemProgram = {
|
|
1315
|
+
readonly id: string;
|
|
1316
|
+
/** Author-owned Item realized by this externally projected window. */
|
|
1317
|
+
readonly subjectId: string;
|
|
1318
|
+
readonly span: FrameSpan$1;
|
|
1319
|
+
readonly frame: SpatialFrame;
|
|
1320
|
+
readonly presentation: MediaFramePresentation;
|
|
1321
|
+
readonly layers: readonly MediaLayerProgram[];
|
|
1322
|
+
readonly motion: MediaLifecycleMotion;
|
|
1323
|
+
readonly stacking: MediaAbsoluteStacking;
|
|
1324
|
+
readonly sourceAudio?: MediaSourceAudioProjection;
|
|
1325
|
+
readonly sounds: readonly MediaSoundEvent[];
|
|
1326
|
+
};
|
|
1327
|
+
type MediaHandoffOperator = "cut" | "crossfade" | "push" | "wipe" | "cover" | "page-turn";
|
|
1328
|
+
type MediaHandoffProgram = {
|
|
1329
|
+
readonly id: string;
|
|
1330
|
+
readonly fromMemberId: string;
|
|
1331
|
+
readonly toMemberId: string;
|
|
1332
|
+
readonly operator: MediaHandoffOperator;
|
|
1333
|
+
readonly durationFrames: number;
|
|
1334
|
+
readonly boundaryRatio: number;
|
|
1335
|
+
readonly span: FrameSpan$1;
|
|
1336
|
+
readonly direction?: MediaMotionDirection;
|
|
1337
|
+
readonly audio: "cut" | "crossfade";
|
|
1338
|
+
};
|
|
1339
|
+
type MediaSequenceMemberProgram = {
|
|
1340
|
+
readonly id: string;
|
|
1341
|
+
readonly activationFrame: number;
|
|
1342
|
+
readonly logicalSpan: FrameSpan$1;
|
|
1343
|
+
readonly visualSpan: FrameSpan$1;
|
|
1344
|
+
readonly layers: readonly MediaLayerProgram[];
|
|
1345
|
+
readonly sourceAudio?: MediaSourceAudioProjection;
|
|
1346
|
+
};
|
|
1347
|
+
type MediaSequenceProgram = {
|
|
1348
|
+
readonly id: string;
|
|
1349
|
+
readonly span: FrameSpan$1;
|
|
1350
|
+
readonly terminalFrame: number;
|
|
1351
|
+
readonly frame: SpatialFrame;
|
|
1352
|
+
readonly presentation: MediaFramePresentation;
|
|
1353
|
+
readonly members: readonly MediaSequenceMemberProgram[];
|
|
1354
|
+
readonly handoffs: readonly MediaHandoffProgram[];
|
|
1355
|
+
readonly motion: MediaLifecycleMotion;
|
|
1356
|
+
readonly stacking: MediaAbsoluteStacking;
|
|
1357
|
+
readonly sounds: readonly MediaSoundEvent[];
|
|
1358
|
+
};
|
|
1359
|
+
type MediaTrackHeader = {
|
|
1360
|
+
readonly id: string;
|
|
1361
|
+
};
|
|
1362
|
+
type MediaTrackSet = {
|
|
1363
|
+
readonly items: readonly MediaItemProgram[];
|
|
1364
|
+
readonly sequences: readonly MediaSequenceProgram[];
|
|
1365
|
+
};
|
|
1366
|
+
|
|
1367
|
+
/** Component entry point: timing has already been projected by @hypit/temporal. */
|
|
1368
|
+
declare function appendMediaItem(set: MediaTrackSet, header: MediaTrackHeader, timeline: Timeline, canvas: CanvasSpace, layers: MediaLayerSet, frame: MediaItemProgram["frame"], spec: MediaItemSpec, sounds: MediaSoundSet, window: ProjectedWindow): MediaTrackSet;
|
|
1369
|
+
|
|
1370
|
+
declare function ordinaryPerformance(input: {
|
|
1371
|
+
timeline: Timeline;
|
|
1372
|
+
canvas: CanvasSpace;
|
|
1373
|
+
window: TemporalWindow;
|
|
1374
|
+
frame: SpatialFrame;
|
|
1375
|
+
fit: ContentFit;
|
|
1376
|
+
sample: MediaSampleLayerSpec;
|
|
1377
|
+
spec: MediaItemSpec;
|
|
1378
|
+
}): VisualTrack;
|
|
1379
|
+
declare const performanceComponent: ComponentPackage;
|
|
1380
|
+
|
|
1381
|
+
declare const ordinaryPerformanceFragment: GraphFragment;
|
|
1382
|
+
declare const decodePerformanceStyleSurface: StructuredSurfaceHandler;
|
|
1383
|
+
declare const decodePerformanceTrackSurface: StructuredSurfaceHandler;
|
|
1384
|
+
|
|
1385
|
+
declare const performanceModuleRef: {
|
|
1386
|
+
readonly name: "@hypit/performance";
|
|
1387
|
+
readonly version: "1";
|
|
1388
|
+
};
|
|
1389
|
+
declare const performanceTypes: Record<"style" | "set" | "header", TypeRef>;
|
|
1390
|
+
declare const performanceProducers: Record<"create" | "append" | "resolve" | "ordinary", ProducerRef>;
|
|
1391
|
+
declare const ordinaryInputs: ({
|
|
1392
|
+
name: string;
|
|
1393
|
+
type: {
|
|
1394
|
+
module: {
|
|
1395
|
+
readonly name: "@hypit/timeline";
|
|
1396
|
+
readonly version: "1";
|
|
1397
|
+
};
|
|
1398
|
+
name: string;
|
|
1399
|
+
};
|
|
1400
|
+
} | {
|
|
1401
|
+
name: string;
|
|
1402
|
+
type: {
|
|
1403
|
+
module: {
|
|
1404
|
+
readonly name: "@hypit/spatial";
|
|
1405
|
+
readonly version: "1";
|
|
1406
|
+
};
|
|
1407
|
+
name: string;
|
|
1408
|
+
};
|
|
1409
|
+
} | {
|
|
1410
|
+
name: string;
|
|
1411
|
+
type: {
|
|
1412
|
+
module: {
|
|
1413
|
+
readonly name: "@hypit/temporal";
|
|
1414
|
+
readonly version: "1";
|
|
1415
|
+
};
|
|
1416
|
+
name: string;
|
|
1417
|
+
};
|
|
1418
|
+
} | {
|
|
1419
|
+
name: string;
|
|
1420
|
+
type: {
|
|
1421
|
+
module: {
|
|
1422
|
+
readonly name: "@hypit/media-track";
|
|
1423
|
+
readonly version: "1";
|
|
1424
|
+
};
|
|
1425
|
+
name: string;
|
|
1426
|
+
};
|
|
1427
|
+
})[];
|
|
1428
|
+
declare const performanceManifest: ModuleManifest;
|
|
1429
|
+
declare const performanceMarkupSurfaces: readonly [{
|
|
1430
|
+
readonly name: "style";
|
|
1431
|
+
readonly tag: "Style";
|
|
1432
|
+
readonly mode: "structured";
|
|
1433
|
+
readonly outputs: readonly [TypeRef, {
|
|
1434
|
+
module: {
|
|
1435
|
+
readonly name: "@hypit/spatial";
|
|
1436
|
+
readonly version: "1";
|
|
1437
|
+
};
|
|
1438
|
+
name: string;
|
|
1439
|
+
}, {
|
|
1440
|
+
module: {
|
|
1441
|
+
readonly name: "@hypit/media-track";
|
|
1442
|
+
readonly version: "1";
|
|
1443
|
+
};
|
|
1444
|
+
name: string;
|
|
1445
|
+
}, {
|
|
1446
|
+
module: {
|
|
1447
|
+
readonly name: "@hypit/media-track";
|
|
1448
|
+
readonly version: "1";
|
|
1449
|
+
};
|
|
1450
|
+
name: string;
|
|
1451
|
+
}];
|
|
1452
|
+
readonly vocabulary: {
|
|
1453
|
+
readonly summary: "Defines ordinary A-roll framing using Media appearance properties.";
|
|
1454
|
+
readonly example: "<performance:Style id=\"full\" frame={layout.full} appearance={recipes.media.presenter}/>";
|
|
1455
|
+
readonly attributes: readonly [{
|
|
1456
|
+
readonly name: "id";
|
|
1457
|
+
readonly kind: "identifier";
|
|
1458
|
+
readonly required: true;
|
|
1459
|
+
readonly summary: "Style name.";
|
|
1460
|
+
}, {
|
|
1461
|
+
readonly name: "frame";
|
|
1462
|
+
readonly kind: "reference";
|
|
1463
|
+
readonly required: true;
|
|
1464
|
+
readonly accepts: readonly [{
|
|
1465
|
+
module: {
|
|
1466
|
+
readonly name: "@hypit/spatial";
|
|
1467
|
+
readonly version: "1";
|
|
1468
|
+
};
|
|
1469
|
+
name: string;
|
|
1470
|
+
}];
|
|
1471
|
+
readonly summary: "Destination Frame.";
|
|
1472
|
+
}, {
|
|
1473
|
+
readonly name: "appearance";
|
|
1474
|
+
readonly kind: "reference";
|
|
1475
|
+
readonly required: true;
|
|
1476
|
+
readonly accepts: readonly [{
|
|
1477
|
+
module: {
|
|
1478
|
+
readonly name: "@hypit/svs";
|
|
1479
|
+
readonly version: "1";
|
|
1480
|
+
};
|
|
1481
|
+
name: string;
|
|
1482
|
+
}];
|
|
1483
|
+
readonly summary: "Media appearance Recipe: fitting, clipping, border and color.";
|
|
1484
|
+
}];
|
|
1485
|
+
};
|
|
1486
|
+
}, {
|
|
1487
|
+
readonly name: "track";
|
|
1488
|
+
readonly tag: "Track";
|
|
1489
|
+
readonly mode: "structured";
|
|
1490
|
+
readonly outputs: readonly [{
|
|
1491
|
+
module: {
|
|
1492
|
+
readonly name: "@hypit/composition";
|
|
1493
|
+
readonly version: "1";
|
|
1494
|
+
};
|
|
1495
|
+
name: string;
|
|
1496
|
+
}, TypeRef, TypeRef, {
|
|
1497
|
+
module: {
|
|
1498
|
+
readonly name: "@hypit/temporal";
|
|
1499
|
+
readonly version: "1";
|
|
1500
|
+
};
|
|
1501
|
+
name: string;
|
|
1502
|
+
}, {
|
|
1503
|
+
module: {
|
|
1504
|
+
readonly name: "@hypit/temporal";
|
|
1505
|
+
readonly version: "1";
|
|
1506
|
+
};
|
|
1507
|
+
name: string;
|
|
1508
|
+
}, {
|
|
1509
|
+
module: {
|
|
1510
|
+
readonly name: "@hypit/temporal";
|
|
1511
|
+
readonly version: "1";
|
|
1512
|
+
};
|
|
1513
|
+
name: string;
|
|
1514
|
+
}, {
|
|
1515
|
+
module: {
|
|
1516
|
+
readonly name: "@hypit/temporal";
|
|
1517
|
+
readonly version: "1";
|
|
1518
|
+
};
|
|
1519
|
+
name: string;
|
|
1520
|
+
}];
|
|
1521
|
+
readonly vocabulary: {
|
|
1522
|
+
readonly summary: "Presents Timeline footage through ordered Use rules, retaining source playback time.";
|
|
1523
|
+
readonly example: "<performance:Track id=\"presenter\" timeline={program.timeline} canvas={canvas}><performance:Use style={full}/></performance:Track>";
|
|
1524
|
+
readonly attributes: readonly [{
|
|
1525
|
+
readonly name: "id";
|
|
1526
|
+
readonly kind: "identifier";
|
|
1527
|
+
readonly required: true;
|
|
1528
|
+
readonly summary: "Presentation name.";
|
|
1529
|
+
}, {
|
|
1530
|
+
readonly name: "timeline";
|
|
1531
|
+
readonly kind: "reference";
|
|
1532
|
+
readonly required: true;
|
|
1533
|
+
readonly accepts: readonly [{
|
|
1534
|
+
module: {
|
|
1535
|
+
readonly name: "@hypit/timeline";
|
|
1536
|
+
readonly version: "1";
|
|
1537
|
+
};
|
|
1538
|
+
name: string;
|
|
1539
|
+
}];
|
|
1540
|
+
readonly summary: "Placed material and film time.";
|
|
1541
|
+
}, {
|
|
1542
|
+
readonly name: "canvas";
|
|
1543
|
+
readonly kind: "reference";
|
|
1544
|
+
readonly required: true;
|
|
1545
|
+
readonly accepts: readonly [{
|
|
1546
|
+
module: {
|
|
1547
|
+
readonly name: "@hypit/spatial";
|
|
1548
|
+
readonly version: "1";
|
|
1549
|
+
};
|
|
1550
|
+
name: string;
|
|
1551
|
+
}];
|
|
1552
|
+
readonly summary: "Composition Canvas.";
|
|
1553
|
+
}];
|
|
1554
|
+
readonly children: readonly [{
|
|
1555
|
+
readonly tag: "Use";
|
|
1556
|
+
readonly cardinality: "many";
|
|
1557
|
+
readonly summary: "Last matching Use wins. No time selector means the whole Timeline.";
|
|
1558
|
+
readonly attributes: readonly [{
|
|
1559
|
+
readonly name: "id";
|
|
1560
|
+
readonly kind: "identifier";
|
|
1561
|
+
readonly required: false;
|
|
1562
|
+
readonly summary: "Optional occurrence identity.";
|
|
1563
|
+
}, {
|
|
1564
|
+
readonly name: "style";
|
|
1565
|
+
readonly kind: "reference";
|
|
1566
|
+
readonly required: true;
|
|
1567
|
+
readonly accepts: readonly [TypeRef];
|
|
1568
|
+
readonly summary: "Ordinary or project-authored presentation Style.";
|
|
1569
|
+
}, ...SurfaceAttributeVocabulary[]];
|
|
1570
|
+
}];
|
|
1571
|
+
};
|
|
1572
|
+
}];
|
|
1573
|
+
|
|
1574
|
+
type ItemArguments = Parameters<typeof appendMediaItem>;
|
|
1575
|
+
type PerformanceInput = {
|
|
1576
|
+
set: ItemArguments[0];
|
|
1577
|
+
header: ItemArguments[1];
|
|
1578
|
+
timeline: ItemArguments[2];
|
|
1579
|
+
canvas: ItemArguments[3];
|
|
1580
|
+
layers: ItemArguments[4];
|
|
1581
|
+
frame: ItemArguments[5];
|
|
1582
|
+
spec: ItemArguments[6];
|
|
1583
|
+
sounds: ItemArguments[7];
|
|
1584
|
+
window: ItemArguments[8];
|
|
1585
|
+
};
|
|
1586
|
+
/** One framed unit and lifecycle containing all selected performance spans. */
|
|
1587
|
+
declare function appendMediaPerformance(input: PerformanceInput, fit: ContentFit, sample: MediaSampleLayerSpec): MediaTrackSet;
|
|
1588
|
+
|
|
1589
|
+
export { appendMediaPerformance, appendPerformanceUse, decodePerformanceStyleSurface, decodePerformanceTrackSurface, intersectVisibility, ordinaryInputs, ordinaryPerformance, ordinaryPerformanceFragment, performanceComponent, performanceManifest, performanceMarkupSurfaces, performanceModuleRef, performancePresentId, performanceProducers, performanceStyle, performanceTypes, resolvePerformance };
|
|
1590
|
+
export type { PerformanceSet, PerformanceStyle, PerformanceUse };
|