@hypit/hypit 0.0.1 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +26 -0
- package/README.md +142 -0
- package/bin/hypit.mjs +46 -0
- package/dist/public/artifact.d.ts +75 -0
- package/dist/public/author-kit.d.ts +559 -0
- package/dist/public/browser-capture.d.ts +56 -0
- package/dist/public/caption.d.ts +751 -0
- package/dist/public/composition.d.ts +672 -0
- package/dist/public/endpoint-kit.d.ts +366 -0
- package/dist/public/generation.d.ts +591 -0
- package/dist/public/hyperframes.d.ts +774 -0
- package/dist/public/media.d.ts +708 -0
- package/dist/public/model-kit.d.ts +523 -0
- package/dist/public/narrative.d.ts +315 -0
- package/dist/public/program-space.d.ts +193 -0
- package/dist/public/runtime-kit.d.ts +427 -0
- package/dist/public/semantic-track.d.ts +418 -0
- package/dist/public/spatial.d.ts +1193 -0
- package/dist/public/speech.d.ts +391 -0
- package/dist/public/studio-adapter.d.ts +686 -0
- package/dist/public/svs.d.ts +311 -0
- package/dist/public/temporal-markup.d.ts +343 -0
- package/dist/public/temporal.d.ts +497 -0
- package/dist/public/text.d.ts +817 -0
- package/dist/public/visual-ir.d.ts +98 -0
- package/docs/public/hypit-logo-dark.svg +36 -0
- package/docs/public/hypit-logo-light.svg +38 -0
- package/examples/README.md +24 -0
- package/examples/minimal-author-package/README.md +18 -0
- package/examples/minimal-author-package/packages/example-component/README.md +44 -0
- package/examples/minimal-author-package/packages/example-component/package.json +27 -0
- package/examples/minimal-author-package/packages/example-component/preview/Box.png +0 -0
- package/examples/minimal-author-package/packages/example-component/preview/build.svrun +6 -0
- package/examples/minimal-author-package/packages/example-component/preview/preview.svml +47 -0
- package/examples/minimal-author-package/packages/example-component/preview/recipes.svs +8 -0
- package/examples/minimal-author-package/packages/example-component/src/activation.ts +10 -0
- package/examples/minimal-author-package/packages/example-component/src/component.ts +44 -0
- package/examples/minimal-author-package/packages/example-component/src/fragment.ts +32 -0
- package/examples/minimal-author-package/packages/example-component/src/index.ts +6 -0
- package/examples/minimal-author-package/packages/example-component/src/manifest.ts +82 -0
- package/examples/minimal-author-package/packages/example-component/src/style.ts +13 -0
- package/examples/minimal-author-package/packages/example-component/src/surface.ts +41 -0
- package/examples/minimal-author-package/packages/example-component/src/temporal.ts +6 -0
- package/examples/minimal-author-package/packages/example-component/tsconfig.json +18 -0
- package/examples/semantic-composition/README.md +35 -0
- package/examples/semantic-composition/chat.svml +25 -0
- package/examples/semantic-composition/chat.svrun +6 -0
- package/examples/semantic-composition/chat.svs +4 -0
- package/examples/semantic-composition/hypit.runtime.json +8 -0
- package/examples/semantic-composition/packages/chat-scene/README.md +29 -0
- package/examples/semantic-composition/packages/chat-scene/package.json +11 -0
- package/examples/semantic-composition/packages/chat-scene/src/activation.ts +112 -0
- package/examples/semantic-composition/packages/chat-scene/src/render.ts +64 -0
- package/examples/semantic-composition/packages/chat-scene/tsconfig.json +18 -0
- package/examples/semantic-composition/packages/responsive-explainer/README.md +45 -0
- package/examples/semantic-composition/packages/responsive-explainer/package.json +11 -0
- package/examples/semantic-composition/packages/responsive-explainer/src/activation.ts +90 -0
- package/examples/semantic-composition/packages/responsive-explainer/src/render.ts +68 -0
- package/examples/semantic-composition/packages/responsive-explainer/tsconfig.json +18 -0
- package/package.json +263 -5
- package/packages/artifact/README.md +10 -0
- package/packages/artifact/package.json +16 -0
- package/packages/artifact/src/activation.ts +8 -0
- package/packages/artifact/src/index.ts +24 -0
- package/packages/audio-track/README.md +43 -0
- package/packages/audio-track/package.json +36 -0
- package/packages/audio-track/src/activation.ts +20 -0
- package/packages/audio-track/src/component.ts +40 -0
- package/packages/audio-track/src/fragment.ts +63 -0
- package/packages/audio-track/src/index.ts +7 -0
- package/packages/audio-track/src/manifest.ts +151 -0
- package/packages/audio-track/src/program.ts +254 -0
- package/packages/audio-track/src/surface.ts +187 -0
- package/packages/audio-track/src/types.ts +62 -0
- package/packages/audio-track-studio/README.md +3 -0
- package/packages/audio-track-studio/package.json +14 -0
- package/packages/audio-track-studio/src/activation.ts +7 -0
- package/packages/audio-track-studio/src/index.ts +72 -0
- package/packages/author-kit/README.md +31 -0
- package/packages/author-kit/package.json +16 -0
- package/packages/author-kit/src/index.ts +59 -0
- package/packages/background-removal/README.md +29 -0
- package/packages/background-removal/package.json +16 -0
- package/packages/background-removal/src/activation.ts +18 -0
- package/packages/background-removal/src/component.ts +32 -0
- package/packages/background-removal/src/fragment.ts +18 -0
- package/packages/background-removal/src/index.ts +6 -0
- package/packages/background-removal/src/manifest.ts +45 -0
- package/packages/background-removal/src/program.ts +19 -0
- package/packages/background-removal/src/surface.ts +27 -0
- package/packages/background-removal/src/types.ts +5 -0
- package/packages/browser-capture/README.md +82 -0
- package/packages/browser-capture/package.json +15 -0
- package/packages/browser-capture/src/browser.ts +19 -0
- package/packages/browser-capture/src/index.ts +198 -0
- package/packages/build-result/package.json +13 -0
- package/packages/build-result/src/decode.ts +286 -0
- package/packages/build-result/src/index.ts +25 -0
- package/packages/build-result/src/store.ts +505 -0
- package/packages/build-result/src/types.ts +354 -0
- package/packages/build-result/src/writer.ts +184 -0
- package/packages/build-result-fs/README.md +29 -0
- package/packages/build-result-fs/package.json +17 -0
- package/packages/build-result-fs/src/activation.ts +62 -0
- package/packages/build-result-fs/src/index.ts +1 -0
- package/packages/build-result-kit/README.md +10 -0
- package/packages/build-result-kit/package.json +15 -0
- package/packages/build-result-kit/src/index.ts +144 -0
- package/packages/build-result-s3/README.md +49 -0
- package/packages/build-result-s3/package.json +19 -0
- package/packages/build-result-s3/src/activation.ts +71 -0
- package/packages/build-result-s3/src/client.ts +254 -0
- package/packages/build-result-s3/src/index.ts +4 -0
- package/packages/build-result-s3/src/repository.ts +361 -0
- package/packages/caption/README.md +77 -0
- package/packages/caption/package.json +28 -0
- package/packages/caption/src/activation.ts +17 -0
- package/packages/caption/src/component.ts +38 -0
- package/packages/caption/src/display.ts +111 -0
- package/packages/caption/src/error.ts +9 -0
- package/packages/caption/src/fragment.ts +26 -0
- package/packages/caption/src/index.ts +33 -0
- package/packages/caption/src/manifest.ts +97 -0
- package/packages/caption/src/style.ts +170 -0
- package/packages/caption/src/surface.ts +96 -0
- package/packages/caption/src/temporalize.ts +124 -0
- package/packages/caption/src/types.ts +71 -0
- package/packages/caption-fine/README.md +108 -0
- package/packages/caption-fine/package.json +30 -0
- package/packages/caption-fine/preview/Track.png +0 -0
- package/packages/caption-fine/src/activation.ts +32 -0
- package/packages/caption-fine/src/component.ts +58 -0
- package/packages/caption-fine/src/fragment.ts +112 -0
- package/packages/caption-fine/src/index.ts +19 -0
- package/packages/caption-fine/src/manifest.ts +383 -0
- package/packages/caption-fine/src/recipe.ts +120 -0
- package/packages/caption-fine/src/render.ts +1133 -0
- package/packages/caption-fine/src/schedule.ts +126 -0
- package/packages/caption-fine/src/spacing.ts +69 -0
- package/packages/caption-fine/src/style.ts +370 -0
- package/packages/caption-fine/src/surface.ts +152 -0
- package/packages/caption-fine/src/types.ts +191 -0
- package/packages/caption-fine-studio/README.md +3 -0
- package/packages/caption-fine-studio/package.json +15 -0
- package/packages/caption-fine-studio/src/activation.ts +7 -0
- package/packages/caption-fine-studio/src/index.ts +163 -0
- package/packages/cli/README.md +51 -0
- package/packages/cli/package.json +33 -0
- package/packages/cli/src/arguments.ts +605 -0
- package/packages/cli/src/build-planning.ts +460 -0
- package/packages/cli/src/command.ts +202 -0
- package/packages/cli/src/commands/environment.ts +391 -0
- package/packages/cli/src/commands/execution.ts +321 -0
- package/packages/cli/src/commands/results.ts +187 -0
- package/packages/cli/src/commands/types.ts +9 -0
- package/packages/cli/src/distribution.ts +74 -0
- package/packages/cli/src/index.ts +30 -0
- package/packages/cli/src/machine-view.ts +28 -0
- package/packages/cli/src/main.ts +654 -0
- package/packages/cli/src/oauth.ts +228 -0
- package/packages/cli/src/observation.ts +203 -0
- package/packages/cli/src/output.ts +1007 -0
- package/packages/cli/src/paths.ts +7 -0
- package/packages/cli/src/project-context.ts +38 -0
- package/packages/cli/src/reachability.ts +91 -0
- package/packages/cli/src/result-export.ts +148 -0
- package/packages/cli/src/result-query.ts +46 -0
- package/packages/cli/src/run-file.ts +186 -0
- package/packages/cli/src/runtime-port.ts +13 -0
- package/packages/cli/src/runtime-selection.ts +94 -0
- package/packages/cli/src/runtime-view.ts +15 -0
- package/packages/cli/src/source-discovery.ts +150 -0
- package/packages/cli/src/source-packages.ts +91 -0
- package/packages/cli/src/view.ts +228 -0
- package/packages/comment-sticker/README.md +41 -0
- package/packages/comment-sticker/package.json +29 -0
- package/packages/comment-sticker/preview/Track.png +0 -0
- package/packages/comment-sticker/src/activation.ts +32 -0
- package/packages/comment-sticker/src/author.ts +148 -0
- package/packages/comment-sticker/src/component.ts +97 -0
- package/packages/comment-sticker/src/fragment.ts +124 -0
- package/packages/comment-sticker/src/index.ts +8 -0
- package/packages/comment-sticker/src/manifest.ts +373 -0
- package/packages/comment-sticker/src/program.ts +610 -0
- package/packages/comment-sticker/src/surface.ts +172 -0
- package/packages/comment-sticker/src/types.ts +109 -0
- package/packages/comment-sticker-studio/README.md +3 -0
- package/packages/comment-sticker-studio/package.json +14 -0
- package/packages/comment-sticker-studio/src/activation.ts +7 -0
- package/packages/comment-sticker-studio/src/index.ts +132 -0
- package/packages/compiler-markup-node/README.md +12 -0
- package/packages/compiler-markup-node/package.json +22 -0
- package/packages/compiler-markup-node/src/index.ts +59 -0
- package/packages/compiler-node/README.md +60 -0
- package/packages/compiler-node/package.json +25 -0
- package/packages/compiler-node/src/compiler.ts +207 -0
- package/packages/compiler-node/src/error.ts +11 -0
- package/packages/compiler-node/src/graph-query.ts +51 -0
- package/packages/compiler-node/src/index.ts +27 -0
- package/packages/compiler-node/src/modules.ts +107 -0
- package/packages/compiler-node/src/run.ts +355 -0
- package/packages/component-kit/README.md +97 -0
- package/packages/component-kit/package.json +13 -0
- package/packages/component-kit/src/index.ts +155 -0
- package/packages/composition/README.md +53 -0
- package/packages/composition/package.json +29 -0
- package/packages/composition/src/activation.ts +3 -0
- package/packages/composition/src/component.ts +10 -0
- package/packages/composition/src/index.ts +18 -0
- package/packages/composition/src/manifest.ts +13 -0
- package/packages/composition/src/schema.ts +194 -0
- package/packages/composition/src/track.ts +1403 -0
- package/packages/core/README.md +22 -0
- package/packages/core/package.json +13 -0
- package/packages/core/src/error.ts +12 -0
- package/packages/core/src/graph.ts +341 -0
- package/packages/core/src/index.ts +32 -0
- package/packages/core/src/link.ts +240 -0
- package/packages/core/src/machine.ts +60 -0
- package/packages/core/src/plan.ts +504 -0
- package/packages/core/src/reducer.ts +428 -0
- package/packages/core/src/reference.ts +25 -0
- package/packages/core/src/slice.ts +108 -0
- package/packages/credential-store-env/README.md +11 -0
- package/packages/credential-store-env/package.json +17 -0
- package/packages/credential-store-env/src/activation.ts +25 -0
- package/packages/credential-store-env/src/index.ts +23 -0
- package/packages/credential-store-os/README.md +13 -0
- package/packages/credential-store-os/package.json +22 -0
- package/packages/credential-store-os/runtime/windows-credential.ps1 +59 -0
- package/packages/credential-store-os/src/activation.ts +32 -0
- package/packages/credential-store-os/src/index.ts +2 -0
- package/packages/credential-store-os/src/store.ts +196 -0
- package/packages/deck-track/README.md +52 -0
- package/packages/deck-track/package.json +35 -0
- package/packages/deck-track/preview/DepthStack.png +0 -0
- package/packages/deck-track/src/activation.ts +32 -0
- package/packages/deck-track/src/author.ts +217 -0
- package/packages/deck-track/src/component.ts +86 -0
- package/packages/deck-track/src/fragment.ts +148 -0
- package/packages/deck-track/src/index.ts +16 -0
- package/packages/deck-track/src/lower.ts +370 -0
- package/packages/deck-track/src/manifest.ts +438 -0
- package/packages/deck-track/src/program.ts +367 -0
- package/packages/deck-track/src/surface.ts +286 -0
- package/packages/deck-track/src/types.ts +119 -0
- package/packages/deck-track-studio/README.md +3 -0
- package/packages/deck-track-studio/package.json +14 -0
- package/packages/deck-track-studio/src/activation.ts +7 -0
- package/packages/deck-track-studio/src/index.ts +134 -0
- package/packages/driver-node/README.md +23 -0
- package/packages/driver-node/package.json +18 -0
- package/packages/driver-node/src/driver.ts +616 -0
- package/packages/driver-node/src/index.ts +10 -0
- package/packages/driver-node/src/planning.ts +67 -0
- package/packages/driver-node/src/registry.ts +234 -0
- package/packages/driver-node/src/resources.ts +36 -0
- package/packages/driver-node/src/types.ts +69 -0
- package/packages/elaborator/README.md +74 -0
- package/packages/elaborator/package.json +16 -0
- package/packages/elaborator/src/author.ts +308 -0
- package/packages/elaborator/src/fragment.ts +505 -0
- package/packages/elaborator/src/frontend-facet.ts +30 -0
- package/packages/elaborator/src/index.ts +78 -0
- package/packages/elaborator/src/source.ts +608 -0
- package/packages/endpoint-kit/README.md +111 -0
- package/packages/endpoint-kit/package.json +14 -0
- package/packages/endpoint-kit/src/index.ts +488 -0
- package/packages/estimate/README.md +32 -0
- package/packages/estimate/package.json +20 -0
- package/packages/estimate/src/activation.ts +11 -0
- package/packages/estimate/src/index.ts +16 -0
- package/packages/estimate/src/manifest.ts +34 -0
- package/packages/estimate/src/policy.ts +70 -0
- package/packages/estimate/src/program.ts +196 -0
- package/packages/estimate/src/types.ts +15 -0
- package/packages/film/README.md +49 -0
- package/packages/film/package.json +34 -0
- package/packages/film/src/activation.ts +16 -0
- package/packages/film/src/component.ts +61 -0
- package/packages/film/src/fragment.ts +83 -0
- package/packages/film/src/index.ts +11 -0
- package/packages/film/src/manifest.ts +152 -0
- package/packages/film/src/program.ts +110 -0
- package/packages/film/src/recipe.ts +24 -0
- package/packages/film/src/surface.ts +146 -0
- package/packages/film/src/types.ts +26 -0
- package/packages/film-studio/package.json +16 -0
- package/packages/film-studio/src/activation.ts +8 -0
- package/packages/film-studio/src/index.ts +17 -0
- package/packages/fonts-open/README.md +77 -0
- package/packages/fonts-open/package.json +130 -0
- package/packages/fonts-open/src/activation.ts +30 -0
- package/packages/fonts-open/src/catalog.ts +317 -0
- package/packages/fonts-open/src/index.ts +13 -0
- package/packages/fonts-open/src/manifest.ts +83 -0
- package/packages/fonts-open/src/surface.ts +239 -0
- package/packages/generation/README.md +19 -0
- package/packages/generation/package.json +23 -0
- package/packages/generation/src/activation.ts +9 -0
- package/packages/generation/src/component.ts +77 -0
- package/packages/generation/src/identity.ts +80 -0
- package/packages/generation/src/index.ts +79 -0
- package/packages/generation/src/manifest.ts +65 -0
- package/packages/generation/src/mapping.ts +231 -0
- package/packages/generation/src/ports.ts +222 -0
- package/packages/generation/src/request.ts +427 -0
- package/packages/generation/src/schema.ts +62 -0
- package/packages/generation/src/types.ts +17 -0
- package/packages/gpt-image/README.md +54 -0
- package/packages/gpt-image/package.json +34 -0
- package/packages/gpt-image/src/activation.ts +39 -0
- package/packages/gpt-image/src/fragment.ts +101 -0
- package/packages/gpt-image/src/index.ts +203 -0
- package/packages/gpt-image/src/surface.ts +194 -0
- package/packages/gpt-image-kits/README.md +44 -0
- package/packages/gpt-image-kits/kits/phone-ugc-v1.svs +34 -0
- package/packages/gpt-image-kits/package.json +15 -0
- package/packages/grok-imagine/README.md +21 -0
- package/packages/grok-imagine/package.json +21 -0
- package/packages/grok-imagine/src/activation.ts +29 -0
- package/packages/grok-imagine/src/index.ts +174 -0
- package/packages/grok-imagine/src/surface.ts +149 -0
- package/packages/host/README.md +5 -0
- package/packages/host/package.json +10 -0
- package/packages/host/src/facet.ts +6 -0
- package/packages/host/src/frontend.ts +56 -0
- package/packages/host/src/index.ts +9 -0
- package/packages/hyperframes/README.md +69 -0
- package/packages/hyperframes/package.json +36 -0
- package/packages/hyperframes/src/activation.ts +8 -0
- package/packages/hyperframes/src/browser-program.ts +79 -0
- package/packages/hyperframes/src/component.ts +32 -0
- package/packages/hyperframes/src/document.ts +827 -0
- package/packages/hyperframes/src/fragment.ts +32 -0
- package/packages/hyperframes/src/index.ts +13 -0
- package/packages/hyperframes/src/manifest.ts +67 -0
- package/packages/hyperframes/src/project.ts +118 -0
- package/packages/hyperframes/src/text.ts +1179 -0
- package/packages/hyperframes/src/types.ts +38 -0
- package/packages/image-compose/README.md +25 -0
- package/packages/image-compose/package.json +18 -0
- package/packages/image-compose/src/activation.ts +21 -0
- package/packages/image-compose/src/component.ts +100 -0
- package/packages/image-compose/src/fragment.ts +54 -0
- package/packages/image-compose/src/index.ts +10 -0
- package/packages/image-compose/src/manifest.ts +119 -0
- package/packages/image-compose/src/program.ts +75 -0
- package/packages/image-compose/src/surface.ts +83 -0
- package/packages/image-compose/src/types.ts +22 -0
- package/packages/image-transform/README.md +29 -0
- package/packages/image-transform/package.json +21 -0
- package/packages/image-transform/src/activation.ts +33 -0
- package/packages/image-transform/src/component.ts +67 -0
- package/packages/image-transform/src/fragment.ts +25 -0
- package/packages/image-transform/src/index.ts +13 -0
- package/packages/image-transform/src/manifest.ts +209 -0
- package/packages/image-transform/src/program.ts +23 -0
- package/packages/image-transform/src/surface.ts +216 -0
- package/packages/image-transform/src/types.ts +20 -0
- package/packages/interview-emoji-reveal/README.md +39 -0
- package/packages/interview-emoji-reveal/package.json +23 -0
- package/packages/interview-emoji-reveal/preview/Track.png +0 -0
- package/packages/interview-emoji-reveal/src/activation.ts +14 -0
- package/packages/interview-emoji-reveal/src/component.ts +45 -0
- package/packages/interview-emoji-reveal/src/fragment.ts +62 -0
- package/packages/interview-emoji-reveal/src/index.ts +16 -0
- package/packages/interview-emoji-reveal/src/manifest.ts +174 -0
- package/packages/interview-emoji-reveal/src/program.ts +242 -0
- package/packages/interview-emoji-reveal/src/style.ts +47 -0
- package/packages/interview-emoji-reveal/src/surface.ts +110 -0
- package/packages/interview-emoji-reveal/src/types.ts +52 -0
- package/packages/markup/README.md +81 -0
- package/packages/markup/package.json +16 -0
- package/packages/markup/src/element.ts +39 -0
- package/packages/markup/src/error.ts +20 -0
- package/packages/markup/src/frontend.ts +518 -0
- package/packages/markup/src/host-facet.ts +115 -0
- package/packages/markup/src/index.ts +25 -0
- package/packages/markup/src/registry.ts +83 -0
- package/packages/markup/src/syntax.ts +271 -0
- package/packages/markup/src/types.ts +246 -0
- package/packages/media/README.md +37 -0
- package/packages/media/package.json +19 -0
- package/packages/media/src/activation.ts +38 -0
- package/packages/media/src/component.ts +16 -0
- package/packages/media/src/frame-range.ts +33 -0
- package/packages/media/src/identity.ts +227 -0
- package/packages/media/src/index.ts +15 -0
- package/packages/media/src/manifest.ts +122 -0
- package/packages/media/src/render.ts +140 -0
- package/packages/media/src/schema.ts +69 -0
- package/packages/media/src/surface.ts +150 -0
- package/packages/media/src/types.ts +121 -0
- package/packages/media-execution/README.md +28 -0
- package/packages/media-execution/package.json +17 -0
- package/packages/media-execution/src/execute.ts +1322 -0
- package/packages/media-execution/src/index.ts +16 -0
- package/packages/media-execution/src/probe.ts +315 -0
- package/packages/media-execution/src/surface.ts +286 -0
- package/packages/media-execution/src/toolchain.ts +81 -0
- package/packages/media-execution/src/webp.ts +200 -0
- package/packages/media-pipeline/README.md +113 -0
- package/packages/media-pipeline/package.json +27 -0
- package/packages/media-pipeline/src/activation.ts +47 -0
- package/packages/media-pipeline/src/audio-plan.ts +113 -0
- package/packages/media-pipeline/src/component.ts +373 -0
- package/packages/media-pipeline/src/fragment.ts +167 -0
- package/packages/media-pipeline/src/index.ts +46 -0
- package/packages/media-pipeline/src/manifest.ts +653 -0
- package/packages/media-pipeline/src/operations.ts +248 -0
- package/packages/media-pipeline/src/selection.ts +110 -0
- package/packages/media-pipeline/src/surface.ts +389 -0
- package/packages/media-pipeline/src/types.ts +175 -0
- package/packages/media-track/README.md +197 -0
- package/packages/media-track/package.json +29 -0
- package/packages/media-track/preview/Track.png +0 -0
- package/packages/media-track/preview/build.svrun +5 -0
- package/packages/media-track/preview/flush.png +0 -0
- package/packages/media-track/preview/preview.svml +47 -0
- package/packages/media-track/preview/recipes.svs +23 -0
- package/packages/media-track/preview/rounded.png +0 -0
- package/packages/media-track/src/activation.ts +20 -0
- package/packages/media-track/src/author.ts +317 -0
- package/packages/media-track/src/component.ts +162 -0
- package/packages/media-track/src/fragment.ts +57 -0
- package/packages/media-track/src/index.ts +65 -0
- package/packages/media-track/src/layers.ts +308 -0
- package/packages/media-track/src/lower.ts +335 -0
- package/packages/media-track/src/manifest.ts +624 -0
- package/packages/media-track/src/motion.ts +387 -0
- package/packages/media-track/src/performance.ts +37 -0
- package/packages/media-track/src/presentation.ts +35 -0
- package/packages/media-track/src/program.ts +565 -0
- package/packages/media-track/src/sampling.ts +118 -0
- package/packages/media-track/src/sequence.ts +403 -0
- package/packages/media-track/src/sounds.ts +71 -0
- package/packages/media-track/src/surface.ts +668 -0
- package/packages/media-track/src/types.ts +311 -0
- package/packages/media-track-studio/README.md +3 -0
- package/packages/media-track-studio/package.json +15 -0
- package/packages/media-track-studio/src/activation.ts +7 -0
- package/packages/media-track-studio/src/index.ts +235 -0
- package/packages/mimo-speech/README.md +33 -0
- package/packages/mimo-speech/package.json +21 -0
- package/packages/mimo-speech/src/activation.ts +32 -0
- package/packages/mimo-speech/src/fragment.ts +11 -0
- package/packages/mimo-speech/src/index.ts +160 -0
- package/packages/mimo-speech/src/surface.ts +193 -0
- package/packages/minimax-h3/README.md +21 -0
- package/packages/minimax-h3/package.json +21 -0
- package/packages/minimax-h3/src/activation.ts +14 -0
- package/packages/minimax-h3/src/index.ts +188 -0
- package/packages/minimax-h3/src/surface.ts +87 -0
- package/packages/model-kit/README.md +52 -0
- package/packages/model-kit/package.json +19 -0
- package/packages/model-kit/src/index.ts +728 -0
- package/packages/nano-banana/README.md +23 -0
- package/packages/nano-banana/package.json +21 -0
- package/packages/nano-banana/src/activation.ts +14 -0
- package/packages/nano-banana/src/index.ts +172 -0
- package/packages/nano-banana/src/surface.ts +120 -0
- package/packages/narrative/README.md +7 -0
- package/packages/narrative/package.json +17 -0
- package/packages/narrative/src/activation.ts +7 -0
- package/packages/narrative/src/component.ts +33 -0
- package/packages/narrative/src/identity.ts +131 -0
- package/packages/narrative/src/index.ts +11 -0
- package/packages/narrative/src/manifest.ts +30 -0
- package/packages/narrative/src/schema.ts +89 -0
- package/packages/narrative/src/types.ts +141 -0
- package/packages/package-loader-node/README.md +23 -0
- package/packages/package-loader-node/package.json +15 -0
- package/packages/package-loader-node/src/contribution.ts +97 -0
- package/packages/package-loader-node/src/distribution-resolution.ts +146 -0
- package/packages/package-loader-node/src/index.ts +27 -0
- package/packages/package-loader-node/src/loader.ts +301 -0
- package/packages/package-loader-node/src/location.ts +279 -0
- package/packages/package-loader-node/src/types.ts +60 -0
- package/packages/program-space/README.md +20 -0
- package/packages/program-space/package.json +17 -0
- package/packages/program-space/src/activation.ts +19 -0
- package/packages/program-space/src/index.ts +107 -0
- package/packages/program-space/src/surface.ts +55 -0
- package/packages/protocol/README.md +11 -0
- package/packages/protocol/package.json +10 -0
- package/packages/protocol/src/build-id.ts +52 -0
- package/packages/protocol/src/build.ts +265 -0
- package/packages/protocol/src/canonical.ts +37 -0
- package/packages/protocol/src/error.ts +11 -0
- package/packages/protocol/src/identity.ts +59 -0
- package/packages/protocol/src/index.ts +9 -0
- package/packages/protocol/src/module.ts +67 -0
- package/packages/protocol/src/value.ts +88 -0
- package/packages/provider-hyperframes-aws-lambda/README.md +30 -0
- package/packages/provider-hyperframes-aws-lambda/package.json +30 -0
- package/packages/provider-hyperframes-aws-lambda/src/activation.ts +97 -0
- package/packages/provider-hyperframes-aws-lambda/src/client.ts +114 -0
- package/packages/provider-hyperframes-aws-lambda/src/index.ts +21 -0
- package/packages/provider-hyperframes-aws-lambda/src/provider.ts +522 -0
- package/packages/provider-hyperframes-local/README.md +129 -0
- package/packages/provider-hyperframes-local/package.json +34 -0
- package/packages/provider-hyperframes-local/src/activation.ts +107 -0
- package/packages/provider-hyperframes-local/src/capture-process.ts +110 -0
- package/packages/provider-hyperframes-local/src/capture-worker.ts +17 -0
- package/packages/provider-hyperframes-local/src/capture.ts +184 -0
- package/packages/provider-hyperframes-local/src/index.ts +10 -0
- package/packages/provider-hyperframes-local/src/options.ts +19 -0
- package/packages/provider-hyperframes-local/src/output.ts +73 -0
- package/packages/provider-hyperframes-local/src/process.ts +83 -0
- package/packages/provider-hyperframes-local/src/program.ts +58 -0
- package/packages/provider-hyperframes-local/src/provider.ts +62 -0
- package/packages/provider-hyperframes-local/src/render.ts +114 -0
- package/packages/provider-hyperframes-local/src/sampling.ts +89 -0
- package/packages/provider-hypihub/README.md +143 -0
- package/packages/provider-hypihub/package.json +26 -0
- package/packages/provider-hypihub/src/activation.ts +91 -0
- package/packages/provider-hypihub/src/index.ts +2 -0
- package/packages/provider-hypihub/src/mapping.ts +145 -0
- package/packages/provider-hypihub/src/oauth.ts +113 -0
- package/packages/provider-hypihub/src/provider.ts +566 -0
- package/packages/provider-hypihub/src/routes.ts +134 -0
- package/packages/provider-hypihub/src/upload.ts +402 -0
- package/packages/provider-image-opencv-local/README.md +16 -0
- package/packages/provider-image-opencv-local/package.json +27 -0
- package/packages/provider-image-opencv-local/runtime/raster_execute.py +299 -0
- package/packages/provider-image-opencv-local/src/activation.ts +61 -0
- package/packages/provider-image-opencv-local/src/deployment.ts +68 -0
- package/packages/provider-image-opencv-local/src/index.ts +2 -0
- package/packages/provider-image-opencv-local/src/program.ts +60 -0
- package/packages/provider-image-opencv-local/src/provider.ts +155 -0
- package/packages/provider-kie/README.md +134 -0
- package/packages/provider-kie/package.json +43 -0
- package/packages/provider-kie/src/activation.ts +71 -0
- package/packages/provider-kie/src/index.ts +10 -0
- package/packages/provider-kie/src/mapping.ts +182 -0
- package/packages/provider-kie/src/provider.ts +657 -0
- package/packages/provider-kie/src/routes.ts +150 -0
- package/packages/provider-media-local/README.md +58 -0
- package/packages/provider-media-local/package.json +28 -0
- package/packages/provider-media-local/src/activation.ts +65 -0
- package/packages/provider-media-local/src/index.ts +2 -0
- package/packages/provider-media-local/src/program.ts +19 -0
- package/packages/provider-media-local/src/provider.ts +150 -0
- package/packages/provider-whisperx-local/README.md +44 -0
- package/packages/provider-whisperx-local/package.json +27 -0
- package/packages/provider-whisperx-local/src/activation.ts +93 -0
- package/packages/provider-whisperx-local/src/index.ts +5 -0
- package/packages/provider-whisperx-local/src/program.ts +157 -0
- package/packages/provider-whisperx-local/src/provider.ts +191 -0
- package/packages/provider-xiaomi-mimo/README.md +32 -0
- package/packages/provider-xiaomi-mimo/package.json +24 -0
- package/packages/provider-xiaomi-mimo/src/activation.ts +57 -0
- package/packages/provider-xiaomi-mimo/src/index.ts +5 -0
- package/packages/provider-xiaomi-mimo/src/provider.ts +214 -0
- package/packages/ranking/README.md +67 -0
- package/packages/ranking/package.json +33 -0
- package/packages/ranking/preview/Column.svg +29 -0
- package/packages/ranking/preview/TierBoard.png +0 -0
- package/packages/ranking/preview/TierBoard.svg +36 -0
- package/packages/ranking/preview/TopThree.png +0 -0
- package/packages/ranking/src/activation.ts +38 -0
- package/packages/ranking/src/component.ts +271 -0
- package/packages/ranking/src/fragment.ts +206 -0
- package/packages/ranking/src/index.ts +26 -0
- package/packages/ranking/src/manifest.ts +807 -0
- package/packages/ranking/src/render.ts +698 -0
- package/packages/ranking/src/schedule.ts +895 -0
- package/packages/ranking/src/style.ts +272 -0
- package/packages/ranking/src/surface.ts +322 -0
- package/packages/ranking/src/tier.ts +176 -0
- package/packages/ranking/src/types.ts +277 -0
- package/packages/ranking-studio/README.md +3 -0
- package/packages/ranking-studio/package.json +14 -0
- package/packages/ranking-studio/src/activation.ts +7 -0
- package/packages/ranking-studio/src/index.ts +255 -0
- package/packages/raster/README.md +7 -0
- package/packages/raster/package.json +14 -0
- package/packages/raster/src/activation.ts +7 -0
- package/packages/raster/src/index.ts +7 -0
- package/packages/raster/src/manifest.ts +14 -0
- package/packages/raster/src/program.ts +128 -0
- package/packages/raster/src/schema.ts +53 -0
- package/packages/raster/src/types.ts +61 -0
- package/packages/render-hyperframes/README.md +58 -0
- package/packages/render-hyperframes/package.json +33 -0
- package/packages/render-hyperframes/src/activation.ts +18 -0
- package/packages/render-hyperframes/src/component.ts +37 -0
- package/packages/render-hyperframes/src/fragment.ts +73 -0
- package/packages/render-hyperframes/src/index.ts +6 -0
- package/packages/render-hyperframes/src/manifest.ts +100 -0
- package/packages/render-hyperframes/src/product.ts +29 -0
- package/packages/render-hyperframes/src/surface.ts +65 -0
- package/packages/resource-store-fs/README.md +13 -0
- package/packages/resource-store-fs/package.json +14 -0
- package/packages/resource-store-fs/src/index.ts +2 -0
- package/packages/resource-store-fs/src/store.ts +154 -0
- package/packages/resource-store-s3/README.md +15 -0
- package/packages/resource-store-s3/package.json +15 -0
- package/packages/resource-store-s3/src/client.ts +138 -0
- package/packages/resource-store-s3/src/index.ts +10 -0
- package/packages/resource-store-s3/src/store.ts +258 -0
- package/packages/run/README.md +23 -0
- package/packages/run/package.json +16 -0
- package/packages/run/src/candidate.ts +33 -0
- package/packages/run/src/facet.ts +59 -0
- package/packages/run/src/frontend-facet.ts +23 -0
- package/packages/run/src/frontend.ts +62 -0
- package/packages/run/src/graph.ts +65 -0
- package/packages/run/src/index.ts +33 -0
- package/packages/run/src/registry.ts +24 -0
- package/packages/run/src/resolve.ts +213 -0
- package/packages/run/src/types.ts +147 -0
- package/packages/run-markup/README.md +60 -0
- package/packages/run-markup/package.json +22 -0
- package/packages/run-markup/src/activation.ts +10 -0
- package/packages/run-markup/src/frontend.ts +16 -0
- package/packages/run-markup/src/index.ts +5 -0
- package/packages/run-markup/src/syntax.ts +304 -0
- package/packages/runtime/README.md +39 -0
- package/packages/runtime/package.json +15 -0
- package/packages/runtime/src/capacity.ts +51 -0
- package/packages/runtime/src/catalog.ts +30 -0
- package/packages/runtime/src/credentials.ts +124 -0
- package/packages/runtime/src/environment.ts +6 -0
- package/packages/runtime/src/execution.ts +125 -0
- package/packages/runtime/src/index.ts +24 -0
- package/packages/runtime/src/operations.ts +99 -0
- package/packages/runtime/src/scheduler.ts +281 -0
- package/packages/runtime/src/submission.ts +24 -0
- package/packages/runtime/src/types.ts +157 -0
- package/packages/runtime-host-node/README.md +25 -0
- package/packages/runtime-host-node/package.json +19 -0
- package/packages/runtime-host-node/src/index.ts +421 -0
- package/packages/runtime-host-node/src/packages.ts +158 -0
- package/packages/runtime-kit/README.md +42 -0
- package/packages/runtime-kit/package.json +16 -0
- package/packages/runtime-kit/src/index.ts +307 -0
- package/packages/runtime-kit/src/request-deadline.ts +17 -0
- package/packages/runtime-local/README.md +119 -0
- package/packages/runtime-local/package.json +33 -0
- package/packages/runtime-local/src/actions.ts +20 -0
- package/packages/runtime-local/src/config.ts +1229 -0
- package/packages/runtime-local/src/control.ts +120 -0
- package/packages/runtime-local/src/credentials.ts +61 -0
- package/packages/runtime-local/src/host.ts +174 -0
- package/packages/runtime-local/src/index.ts +36 -0
- package/packages/runtime-local/src/process-control.ts +59 -0
- package/packages/runtime-local/src/process-logs.ts +33 -0
- package/packages/runtime-local/src/programs.ts +441 -0
- package/packages/runtime-local/src/result-writer.ts +246 -0
- package/packages/runtime-local/src/runtime.ts +342 -0
- package/packages/runtime-local/src/types.ts +100 -0
- package/packages/runtime-local/src/worker-process.ts +343 -0
- package/packages/runtime-local/src/worker.ts +449 -0
- package/packages/screen-overlay/README.md +17 -0
- package/packages/screen-overlay/package.json +31 -0
- package/packages/screen-overlay/preview/Track.png +0 -0
- package/packages/screen-overlay/src/activation.ts +15 -0
- package/packages/screen-overlay/src/component.ts +20 -0
- package/packages/screen-overlay/src/fragment.ts +40 -0
- package/packages/screen-overlay/src/index.ts +7 -0
- package/packages/screen-overlay/src/manifest.ts +305 -0
- package/packages/screen-overlay/src/program.ts +321 -0
- package/packages/screen-overlay/src/surface.ts +90 -0
- package/packages/screen-overlay/src/types.ts +69 -0
- package/packages/screen-overlay-studio/README.md +3 -0
- package/packages/screen-overlay-studio/package.json +14 -0
- package/packages/screen-overlay-studio/src/activation.ts +7 -0
- package/packages/screen-overlay-studio/src/index.ts +80 -0
- package/packages/script/README.md +137 -0
- package/packages/script/package.json +22 -0
- package/packages/script/src/activation.ts +20 -0
- package/packages/script/src/edit.ts +174 -0
- package/packages/script/src/error.ts +13 -0
- package/packages/script/src/format.ts +83 -0
- package/packages/script/src/index.ts +20 -0
- package/packages/script/src/lexical.ts +133 -0
- package/packages/script/src/manifest.ts +95 -0
- package/packages/script/src/narrative.ts +232 -0
- package/packages/script/src/parser.ts +850 -0
- package/packages/script/src/surface.ts +132 -0
- package/packages/script/src/types.ts +125 -0
- package/packages/script-studio/package.json +13 -0
- package/packages/script-studio/src/activation.ts +8 -0
- package/packages/script-studio/src/index.ts +61 -0
- package/packages/seedance/README.md +19 -0
- package/packages/seedance/package.json +22 -0
- package/packages/seedance/src/activation.ts +38 -0
- package/packages/seedance/src/fragment.ts +46 -0
- package/packages/seedance/src/index.ts +329 -0
- package/packages/seedance/src/surface.ts +355 -0
- package/packages/seedance-kits/README.md +153 -0
- package/packages/seedance-kits/kits/broll-v1.svs +52 -0
- package/packages/seedance-kits/kits/call-v1.svs +55 -0
- package/packages/seedance-kits/kits/camera-reference-v1.svs +9 -0
- package/packages/seedance-kits/kits/motion-reference-v1.svs +9 -0
- package/packages/seedance-kits/kits/podcast-v1.svs +55 -0
- package/packages/seedance-kits/kits/speaker-v1.svs +136 -0
- package/packages/seedance-kits/kits/street-interview-v1.svs +49 -0
- package/packages/seedance-kits/package.json +24 -0
- package/packages/seedream/README.md +21 -0
- package/packages/seedream/package.json +21 -0
- package/packages/seedream/src/activation.ts +12 -0
- package/packages/seedream/src/index.ts +162 -0
- package/packages/seedream/src/surface.ts +84 -0
- package/packages/semantic-take-adjust/package.json +21 -0
- package/packages/semantic-take-adjust/src/activation.ts +22 -0
- package/packages/semantic-take-adjust/src/component.ts +31 -0
- package/packages/semantic-take-adjust/src/fragment.ts +24 -0
- package/packages/semantic-take-adjust/src/index.ts +12 -0
- package/packages/semantic-take-adjust/src/manifest.ts +57 -0
- package/packages/semantic-take-adjust/src/program.ts +49 -0
- package/packages/semantic-take-adjust/src/surface.ts +96 -0
- package/packages/semantic-take-adjust/src/types.ts +9 -0
- package/packages/semantic-track/README.md +21 -0
- package/packages/semantic-track/package.json +22 -0
- package/packages/semantic-track/src/activation.ts +8 -0
- package/packages/semantic-track/src/component.ts +24 -0
- package/packages/semantic-track/src/identity.ts +58 -0
- package/packages/semantic-track/src/index.ts +6 -0
- package/packages/semantic-track/src/location.ts +81 -0
- package/packages/semantic-track/src/manifest.ts +38 -0
- package/packages/semantic-track/src/projection.ts +71 -0
- package/packages/semantic-track/src/types.ts +26 -0
- package/packages/source/README.md +13 -0
- package/packages/source/package.json +13 -0
- package/packages/source/src/header.ts +80 -0
- package/packages/source/src/index.ts +17 -0
- package/packages/source/src/unit.ts +38 -0
- package/packages/spatial/README.md +77 -0
- package/packages/spatial/package.json +24 -0
- package/packages/spatial/src/activation.ts +43 -0
- package/packages/spatial/src/author.ts +59 -0
- package/packages/spatial/src/component.ts +45 -0
- package/packages/spatial/src/fragment.ts +36 -0
- package/packages/spatial/src/geometry.ts +238 -0
- package/packages/spatial/src/index.ts +37 -0
- package/packages/spatial/src/manifest.ts +341 -0
- package/packages/spatial/src/region-timeline.ts +69 -0
- package/packages/spatial/src/schema.ts +47 -0
- package/packages/spatial/src/surface.ts +319 -0
- package/packages/spatial/src/types.ts +101 -0
- package/packages/speech/README.md +16 -0
- package/packages/speech/package.json +19 -0
- package/packages/speech/src/activation.ts +7 -0
- package/packages/speech/src/component.ts +43 -0
- package/packages/speech/src/identity.ts +73 -0
- package/packages/speech/src/index.ts +6 -0
- package/packages/speech/src/manifest.ts +30 -0
- package/packages/speech/src/materialize.ts +103 -0
- package/packages/speech/src/schema.ts +42 -0
- package/packages/speech/src/types.ts +54 -0
- package/packages/speech-alignment/README.md +29 -0
- package/packages/speech-alignment/package.json +25 -0
- package/packages/speech-alignment/src/activation.ts +8 -0
- package/packages/speech-alignment/src/align.ts +235 -0
- package/packages/speech-alignment/src/component.ts +37 -0
- package/packages/speech-alignment/src/error.ts +9 -0
- package/packages/speech-alignment/src/index.ts +7 -0
- package/packages/speech-alignment/src/local.ts +64 -0
- package/packages/speech-alignment/src/locate.ts +473 -0
- package/packages/speech-alignment/src/manifest.ts +37 -0
- package/packages/speech-alignment/src/normalize.ts +79 -0
- package/packages/speech-alignment/src/types.ts +30 -0
- package/packages/speech-evidence/README.md +3 -0
- package/packages/speech-evidence/package.json +16 -0
- package/packages/speech-evidence/src/activation.ts +3 -0
- package/packages/speech-evidence/src/index.ts +102 -0
- package/packages/speech-track/README.md +51 -0
- package/packages/speech-track/package.json +28 -0
- package/packages/speech-track/preview/Track.png +0 -0
- package/packages/speech-track/src/activation.ts +19 -0
- package/packages/speech-track/src/component.ts +45 -0
- package/packages/speech-track/src/fragment.ts +74 -0
- package/packages/speech-track/src/index.ts +7 -0
- package/packages/speech-track/src/manifest.ts +73 -0
- package/packages/speech-track/src/program.ts +64 -0
- package/packages/speech-track/src/surface.ts +35 -0
- package/packages/speech-track/src/types.ts +6 -0
- package/packages/speech-track-studio/README.md +3 -0
- package/packages/speech-track-studio/package.json +14 -0
- package/packages/speech-track-studio/src/activation.ts +7 -0
- package/packages/speech-track-studio/src/index.ts +40 -0
- package/packages/store-sqlite/README.md +14 -0
- package/packages/store-sqlite/package.json +18 -0
- package/packages/store-sqlite/src/index.ts +2 -0
- package/packages/store-sqlite/src/store.ts +1101 -0
- package/packages/studio/README.md +125 -0
- package/packages/studio/index.html +10 -0
- package/packages/studio/package.json +50 -0
- package/packages/studio/src/build-library.ts +281 -0
- package/packages/studio/src/companion-assembly.ts +39 -0
- package/packages/studio/src/compile.ts +166 -0
- package/packages/studio/src/domain.ts +139 -0
- package/packages/studio/src/execute.ts +57 -0
- package/packages/studio/src/fallback-companions.ts +98 -0
- package/packages/studio/src/observe.ts +202 -0
- package/packages/studio/src/parameter-values.ts +81 -0
- package/packages/studio/src/parameters.ts +550 -0
- package/packages/studio/src/preview/render.ts +51 -0
- package/packages/studio/src/preview/runtime-shim.ts +184 -0
- package/packages/studio/src/programme.ts +276 -0
- package/packages/studio/src/run.ts +85 -0
- package/packages/studio/src/server.ts +725 -0
- package/packages/studio/src/session.ts +111 -0
- package/packages/studio/src/shared.ts +315 -0
- package/packages/studio/src/snapshot.ts +454 -0
- package/packages/studio/src/source-transaction.ts +57 -0
- package/packages/studio/src/storyboard.ts +133 -0
- package/packages/studio/src/studio-preflight.ts +198 -0
- package/packages/studio/src/studio-registry.ts +406 -0
- package/packages/studio/src/studio-trace.ts +136 -0
- package/packages/studio/src/style.css +1525 -0
- package/packages/studio/src/surface-preview.ts +35 -0
- package/packages/studio/src/temporal-graph.ts +227 -0
- package/packages/studio/src/ui/code.ts +450 -0
- package/packages/studio/src/ui/icons.ts +51 -0
- package/packages/studio/src/ui/library.ts +378 -0
- package/packages/studio/src/ui/main.ts +1001 -0
- package/packages/studio/src/ui/markers.ts +152 -0
- package/packages/studio/src/ui/material-preview.ts +176 -0
- package/packages/studio/src/ui/overlay.ts +144 -0
- package/packages/studio/src/ui/resize.ts +74 -0
- package/packages/studio/src/ui/selection.ts +178 -0
- package/packages/studio/src/ui/stage.ts +231 -0
- package/packages/studio/src/ui/syntax.ts +195 -0
- package/packages/studio/src/ui/timeline.ts +1041 -0
- package/packages/studio/src/ui/writeback.ts +10 -0
- package/packages/studio/src/ui/zoom.ts +129 -0
- package/packages/studio/start.ts +143 -0
- package/packages/studio-adapter/README.md +186 -0
- package/packages/studio-adapter/package.json +14 -0
- package/packages/studio-adapter/src/index.ts +850 -0
- package/packages/svs/README.md +37 -0
- package/packages/svs/package.json +21 -0
- package/packages/svs/src/activation.ts +11 -0
- package/packages/svs/src/format.ts +16 -0
- package/packages/svs/src/frontend.ts +33 -0
- package/packages/svs/src/index.ts +5 -0
- package/packages/svs/src/manifest.ts +17 -0
- package/packages/svs/src/parser.ts +279 -0
- package/packages/svs/src/types.ts +26 -0
- package/packages/temporal/README.md +31 -0
- package/packages/temporal/package.json +20 -0
- package/packages/temporal/src/activation.ts +9 -0
- package/packages/temporal/src/component.ts +68 -0
- package/packages/temporal/src/index.ts +110 -0
- package/packages/temporal/src/location.ts +67 -0
- package/packages/temporal/src/projection.ts +280 -0
- package/packages/temporal/src/rational.ts +80 -0
- package/packages/temporal/src/sample.ts +43 -0
- package/packages/temporal/src/schedule.ts +52 -0
- package/packages/temporal/src/types.ts +124 -0
- package/packages/temporal-markup/README.md +75 -0
- package/packages/temporal-markup/package.json +18 -0
- package/packages/temporal-markup/src/index.ts +537 -0
- package/packages/temporal-markup/src/space.ts +59 -0
- package/packages/text/README.md +59 -0
- package/packages/text/package.json +21 -0
- package/packages/text/src/activation.ts +33 -0
- package/packages/text/src/component.ts +72 -0
- package/packages/text/src/fragment.ts +57 -0
- package/packages/text/src/frontend.ts +39 -0
- package/packages/text/src/index.ts +27 -0
- package/packages/text/src/manifest.ts +170 -0
- package/packages/text/src/program.ts +418 -0
- package/packages/text/src/surface.ts +212 -0
- package/packages/text/src/svs.ts +189 -0
- package/packages/text/src/types.ts +82 -0
- package/packages/transport-aws-lambda/README.md +20 -0
- package/packages/transport-aws-lambda/package.json +14 -0
- package/packages/transport-aws-lambda/src/index.ts +131 -0
- package/packages/typography-track/README.md +50 -0
- package/packages/typography-track/package.json +34 -0
- package/packages/typography-track/preview/Mask.png +0 -0
- package/packages/typography-track/preview/Track.png +0 -0
- package/packages/typography-track/src/activation.ts +36 -0
- package/packages/typography-track/src/component.ts +93 -0
- package/packages/typography-track/src/fragment.ts +30 -0
- package/packages/typography-track/src/index.ts +11 -0
- package/packages/typography-track/src/manifest.ts +556 -0
- package/packages/typography-track/src/program.ts +622 -0
- package/packages/typography-track/src/surface.ts +842 -0
- package/packages/typography-track/src/types.ts +109 -0
- package/packages/typography-track-studio/README.md +3 -0
- package/packages/typography-track-studio/package.json +14 -0
- package/packages/typography-track-studio/src/activation.ts +7 -0
- package/packages/typography-track-studio/src/index.ts +116 -0
- package/packages/validation/README.md +11 -0
- package/packages/validation/package.json +15 -0
- package/packages/validation/src/index.ts +100 -0
- package/packages/video-cli/README.md +181 -0
- package/packages/video-cli/package.json +37 -0
- package/packages/video-cli/src/capture.ts +174 -0
- package/packages/video-cli/src/cli.ts +109 -0
- package/packages/video-cli/src/compiler.ts +32 -0
- package/packages/video-cli/src/creation.ts +449 -0
- package/packages/video-cli/src/distribution.ts +88 -0
- package/packages/video-cli/src/index.ts +50 -0
- package/packages/video-cli/src/media.ts +701 -0
- package/packages/video-cli/src/package-selection.ts +34 -0
- package/packages/video-cli/src/process.ts +71 -0
- package/packages/video-cli/src/studio-distribution.ts +19 -0
- package/packages/video-cli/src/transcript.ts +71 -0
- package/packages/video-cli/src/vocabulary.ts +386 -0
- package/packages/visual-ir/README.md +36 -0
- package/packages/visual-ir/package.json +16 -0
- package/packages/visual-ir/src/activation.ts +3 -0
- package/packages/visual-ir/src/index.ts +7 -0
- package/packages/visual-ir/src/style.ts +222 -0
- package/packages/volcengine-matting/README.md +89 -0
- package/packages/volcengine-matting/package.json +16 -0
- package/packages/volcengine-matting/src/activation.ts +13 -0
- package/packages/volcengine-matting/src/index.ts +45 -0
- package/packages/volcengine-matting/src/surface.ts +48 -0
- package/packages/whisperx/README.md +34 -0
- package/packages/whisperx/package.json +28 -0
- package/packages/whisperx/src/activation.ts +18 -0
- package/packages/whisperx/src/component.ts +64 -0
- package/packages/whisperx/src/evidence.ts +69 -0
- package/packages/whisperx/src/fragment.ts +76 -0
- package/packages/whisperx/src/index.ts +14 -0
- package/packages/whisperx/src/manifest.ts +92 -0
- package/packages/whisperx/src/surface.ts +90 -0
- package/packages/whisperx/src/transcript.ts +97 -0
- package/packages/whisperx/src/types.ts +9 -0
- package/packages/workspace/README.md +4 -0
- package/packages/workspace/package.json +14 -0
- package/packages/workspace/src/index.ts +38 -0
- package/packages/workspace-fs-node/README.md +13 -0
- package/packages/workspace-fs-node/package.json +15 -0
- package/packages/workspace-fs-node/src/index.ts +6 -0
- package/packages/workspace-fs-node/src/workspace.ts +226 -0
- package/packages/yt-dlp/README.md +31 -0
- package/packages/yt-dlp/package.json +10 -0
- package/packages/yt-dlp/src/download.ts +104 -0
- package/packages/yt-dlp/src/index.ts +1 -0
- package/services/image-opencv/README.md +33 -0
- package/services/image-opencv/package.json +14 -0
- package/services/image-opencv/pyproject.toml +13 -0
- package/services/image-opencv/uv.lock +56 -0
- package/services/whisperx/README.md +82 -0
- package/services/whisperx/package.json +15 -0
- package/services/whisperx/pyproject.toml +26 -0
- package/services/whisperx/src/hypit_whisperx_service/__init__.py +6 -0
- package/services/whisperx/src/hypit_whisperx_service/__main__.py +29 -0
- package/services/whisperx/src/hypit_whisperx_service/application.py +88 -0
- package/services/whisperx/src/hypit_whisperx_service/audio.py +66 -0
- package/services/whisperx/src/hypit_whisperx_service/check.py +35 -0
- package/services/whisperx/src/hypit_whisperx_service/config.py +81 -0
- package/services/whisperx/src/hypit_whisperx_service/engine.py +173 -0
- package/services/whisperx/src/hypit_whisperx_service/prepare.py +19 -0
- package/services/whisperx/src/hypit_whisperx_service/resources.py +41 -0
- package/services/whisperx/src/hypit_whisperx_service/server.py +101 -0
- package/services/whisperx/uv.lock +3381 -0
- package/services/yt-dlp/README.md +19 -0
- package/services/yt-dlp/package.json +14 -0
- package/services/yt-dlp/pyproject.toml +13 -0
- package/services/yt-dlp/uv.lock +23 -0
- package/index.js +0 -1
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
BuildResultFileRef,
|
|
3
|
+
BuildResultFileRange,
|
|
4
|
+
BuildResultFinish,
|
|
5
|
+
BuildResultManifest,
|
|
6
|
+
BuildResultPresentationUpdate,
|
|
7
|
+
BuildResultRepository,
|
|
8
|
+
BuildResultSeed,
|
|
9
|
+
BuildResultSync,
|
|
10
|
+
BuildResultWriter,
|
|
11
|
+
BuildResultWriterState,
|
|
12
|
+
RepositoryBuildResultOutput,
|
|
13
|
+
RepositoryBuildResultOutputDescription,
|
|
14
|
+
} from "@hypit/build-result";
|
|
15
|
+
import {
|
|
16
|
+
applyBuildResultPresentation,
|
|
17
|
+
assertBuildResultSeed,
|
|
18
|
+
decodeBuildResultJson,
|
|
19
|
+
decodeBuildResultManifest,
|
|
20
|
+
decodeBuildResultValueDocument,
|
|
21
|
+
decodeBuildResultWriterState,
|
|
22
|
+
encodeBuildResultManifest,
|
|
23
|
+
normalizeBuildResultForwards,
|
|
24
|
+
syncBuildResultOutputs,
|
|
25
|
+
} from "@hypit/build-result";
|
|
26
|
+
import { assertOrderedBuildId, buildIdCreatedAt } from "@hypit/protocol";
|
|
27
|
+
|
|
28
|
+
import { AwsBuildResultS3Client } from "./client.js";
|
|
29
|
+
import type { AwsBuildResultS3ClientOptions, BuildResultS3Client } from "./client.js";
|
|
30
|
+
|
|
31
|
+
export type S3BuildResultRepositoryOptions = AwsBuildResultS3ClientOptions & {
|
|
32
|
+
readonly prefix?: string;
|
|
33
|
+
readonly client?: BuildResultS3Client;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
function assert(condition: unknown, message: string): asserts condition {
|
|
37
|
+
if (!condition) throw new Error(message);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function normalizePrefix(value: string | undefined): string {
|
|
41
|
+
if (value === undefined || value.length === 0) return "";
|
|
42
|
+
const normalized = value.replace(/^\/+|\/+$/gu, "");
|
|
43
|
+
assert(normalized.length > 0 && !normalized.split("/").some((part) => part === "." || part === ".."), "S3 Build Result prefix is invalid");
|
|
44
|
+
return normalized;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function physicalBuild(build: string): string {
|
|
48
|
+
assertOrderedBuildId(build);
|
|
49
|
+
const createdAt = buildIdCreatedAt(build)!;
|
|
50
|
+
const descendingTime = (Number.MAX_SAFE_INTEGER - createdAt).toString().padStart(16, "0");
|
|
51
|
+
return `${descendingTime}-${build}`;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function publicBuild(physical: string): string | undefined {
|
|
55
|
+
if (!/^\d{16}-bld_/u.test(physical)) return undefined;
|
|
56
|
+
const build = physical.slice(17);
|
|
57
|
+
return buildIdCreatedAt(build) === undefined || physicalBuild(build) !== physical ? undefined : build;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function safePath(path: string): string {
|
|
61
|
+
assert(path.length > 0 && !path.startsWith("/") && !path.includes("\\"), "Build Result path must be relative");
|
|
62
|
+
assert(!path.split("/").some((part) => part.length === 0 || part === "." || part === ".."), `Build Result path ${path} is invalid`);
|
|
63
|
+
return path;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function encodeJson(value: unknown): Uint8Array {
|
|
67
|
+
return new TextEncoder().encode(`${JSON.stringify(value, null, 2)}\n`);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
class S3BuildResultWriter implements BuildResultWriter {
|
|
71
|
+
readonly #repository: S3BuildResultRepository;
|
|
72
|
+
readonly #build: string;
|
|
73
|
+
|
|
74
|
+
constructor(repository: S3BuildResultRepository, build: string) {
|
|
75
|
+
this.#repository = repository;
|
|
76
|
+
this.#build = build;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async read(): Promise<BuildResultManifest> {
|
|
80
|
+
const manifest = await this.#repository.read(this.#build);
|
|
81
|
+
assert(manifest !== undefined, `Build Result ${this.#build} does not exist`);
|
|
82
|
+
return manifest;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
async sync(input: BuildResultSync): Promise<BuildResultManifest> {
|
|
86
|
+
const manifest = await this.read();
|
|
87
|
+
if (manifest.outcome !== undefined) return manifest;
|
|
88
|
+
const writer = await this.#repository.readWriter(this.#build);
|
|
89
|
+
assert(writer !== undefined, `Build Result ${this.#build} has no writer state`);
|
|
90
|
+
const updated = await syncBuildResultOutputs({
|
|
91
|
+
manifest,
|
|
92
|
+
writer,
|
|
93
|
+
sync: input,
|
|
94
|
+
target: {
|
|
95
|
+
writeResource: async (path, artifact, source) => {
|
|
96
|
+
const chunks = await source.open(artifact);
|
|
97
|
+
if (chunks === undefined) throw new Error(`Build resource ${artifact.resource} is unavailable`);
|
|
98
|
+
await this.#repository.writeFile(this.#build, path, chunks, artifact.mediaType);
|
|
99
|
+
},
|
|
100
|
+
writeValue: async (path, document) => {
|
|
101
|
+
await this.#repository.writeJson(this.#build, path, document);
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
await this.#repository.writeWriter(this.#build, updated.writer);
|
|
106
|
+
await this.#repository.writeManifest(this.#build, updated.manifest);
|
|
107
|
+
return updated.manifest;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
async finish(input: BuildResultFinish): Promise<BuildResultManifest> {
|
|
111
|
+
const manifest = await this.read();
|
|
112
|
+
if (manifest.outcome !== undefined) {
|
|
113
|
+
assert(manifest.outcome === input.outcome && manifest.failure === input.failure,
|
|
114
|
+
`Build Result ${manifest.id} is already finished with a different outcome`);
|
|
115
|
+
await this.#repository.deleteWriter(this.#build);
|
|
116
|
+
return manifest;
|
|
117
|
+
}
|
|
118
|
+
const now = Date.now();
|
|
119
|
+
const updated: BuildResultManifest = {
|
|
120
|
+
...manifest,
|
|
121
|
+
outcome: input.outcome,
|
|
122
|
+
...(input.operations === undefined ? {} : { operations: input.operations }),
|
|
123
|
+
finishedAt: manifest.finishedAt ?? now,
|
|
124
|
+
...(input.failure === undefined ? {} : { failure: input.failure }),
|
|
125
|
+
};
|
|
126
|
+
await this.#repository.writeManifest(this.#build, updated);
|
|
127
|
+
await this.#repository.deleteWriter(this.#build);
|
|
128
|
+
return updated;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export class S3BuildResultRepository implements BuildResultRepository {
|
|
133
|
+
readonly #client: BuildResultS3Client;
|
|
134
|
+
readonly #prefix: string;
|
|
135
|
+
|
|
136
|
+
constructor(options: S3BuildResultRepositoryOptions) {
|
|
137
|
+
assert(options.bucket.trim().length > 0, "S3 Build Result bucket must not be empty");
|
|
138
|
+
this.#prefix = normalizePrefix(options.prefix);
|
|
139
|
+
this.#client = options.client ?? new AwsBuildResultS3Client(options);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
#key(build: string, path: string): string {
|
|
143
|
+
const relative = `${physicalBuild(build)}/${safePath(path)}`;
|
|
144
|
+
return this.#prefix.length === 0 ? relative : `${this.#prefix}/${relative}`;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
async #readJson(build: string, path: string): Promise<unknown | undefined> {
|
|
148
|
+
const bytes = await this.#client.get(this.#key(build, path));
|
|
149
|
+
return bytes === undefined ? undefined : decodeBuildResultJson(bytes, `${build}/${path}`);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
async writeJson(build: string, path: string, value: unknown): Promise<void> {
|
|
153
|
+
await this.#client.put(this.#key(build, path), encodeJson(value), "application/json");
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
async writeFile(build: string, path: string, chunks: AsyncIterable<Uint8Array>, mediaType: string): Promise<void> {
|
|
157
|
+
await this.#client.putStream(this.#key(build, path), chunks, mediaType);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
async writeManifest(build: string, manifest: BuildResultManifest): Promise<void> {
|
|
161
|
+
await this.writeJson(build, "result.json", encodeBuildResultManifest(manifest));
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
async readWriter(build: string): Promise<BuildResultWriterState | undefined> {
|
|
165
|
+
const subject = `${build}/.writer.json`;
|
|
166
|
+
const value = await this.#readJson(build, ".writer.json");
|
|
167
|
+
return value === undefined ? undefined : decodeBuildResultWriterState(value, subject);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
async writeWriter(build: string, state: BuildResultWriterState): Promise<void> {
|
|
171
|
+
await this.writeJson(build, ".writer.json", state);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
async deleteWriter(build: string): Promise<void> {
|
|
175
|
+
await this.#client.delete(this.#key(build, ".writer.json"));
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
async create(seed: BuildResultSeed): Promise<BuildResultWriter> {
|
|
179
|
+
assertOrderedBuildId(seed.id);
|
|
180
|
+
assertBuildResultSeed(seed);
|
|
181
|
+
assert((await this.read(seed.id)) === undefined, `Build Result ${seed.id} already exists`);
|
|
182
|
+
const forwards = await normalizeBuildResultForwards(this, seed.forwards ?? []);
|
|
183
|
+
const manifest: BuildResultManifest = {
|
|
184
|
+
format: "hypit.build-result@1",
|
|
185
|
+
id: seed.id,
|
|
186
|
+
...(seed.title === undefined ? {} : { title: seed.title }),
|
|
187
|
+
source: seed.source,
|
|
188
|
+
...(seed.run === undefined ? {} : { run: seed.run }),
|
|
189
|
+
targets: [...seed.targets],
|
|
190
|
+
outputs: {},
|
|
191
|
+
};
|
|
192
|
+
try {
|
|
193
|
+
await this.writeWriter(seed.id, {
|
|
194
|
+
resources: {},
|
|
195
|
+
values: {},
|
|
196
|
+
publishedOutputs: seed.publishedOutputs,
|
|
197
|
+
forwards,
|
|
198
|
+
});
|
|
199
|
+
await this.writeManifest(seed.id, manifest);
|
|
200
|
+
} catch (error) {
|
|
201
|
+
await this.#client.delete(this.#key(seed.id, ".writer.json")).catch(() => undefined);
|
|
202
|
+
await this.#client.delete(this.#key(seed.id, "result.json")).catch(() => undefined);
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
205
|
+
return new S3BuildResultWriter(this, seed.id);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
async openWriter(build: string): Promise<BuildResultWriter | undefined> {
|
|
209
|
+
return (await this.read(build)) === undefined ? undefined : new S3BuildResultWriter(this, build);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
async removeIncomplete(build: string): Promise<void> {
|
|
213
|
+
const manifest = await this.read(build);
|
|
214
|
+
if (manifest === undefined) return;
|
|
215
|
+
assert(manifest.outcome === undefined, `Finished Build Result ${build} cannot be removed`);
|
|
216
|
+
const prefix = this.#key(build, "result.json").slice(0, -"result.json".length);
|
|
217
|
+
const keys = await this.#client.list(prefix);
|
|
218
|
+
await Promise.all(keys.filter((key) => key.startsWith(prefix)).map(async (key) => await this.#client.delete(key)));
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
async read(build: string): Promise<BuildResultManifest | undefined> {
|
|
222
|
+
const subject = `${build}/result.json`;
|
|
223
|
+
const value = await this.#readJson(build, "result.json");
|
|
224
|
+
return value === undefined ? undefined : decodeBuildResultManifest(value, build, subject);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
async updatePresentation(
|
|
228
|
+
build: string,
|
|
229
|
+
update: BuildResultPresentationUpdate,
|
|
230
|
+
): Promise<BuildResultManifest> {
|
|
231
|
+
const manifest = await this.read(build);
|
|
232
|
+
assert(manifest !== undefined, `Build Result ${build} does not exist`);
|
|
233
|
+
const updated = applyBuildResultPresentation(manifest, update);
|
|
234
|
+
await this.writeManifest(build, updated);
|
|
235
|
+
return updated;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
async browse(request: { readonly before?: string; readonly limit: number }) {
|
|
239
|
+
assert(Number.isSafeInteger(request.limit) && request.limit > 0, "Build Result browse limit must be positive");
|
|
240
|
+
if (request.before !== undefined) assertOrderedBuildId(request.before);
|
|
241
|
+
const prefix = this.#prefix.length === 0 ? "" : `${this.#prefix}/`;
|
|
242
|
+
const found: Array<BuildResultManifest & { readonly outcome: NonNullable<BuildResultManifest["outcome"]>; readonly finishedAt: number }> = [];
|
|
243
|
+
let after = request.before === undefined ? undefined : `${prefix}${physicalBuild(request.before)}/`;
|
|
244
|
+
while (found.length <= request.limit) {
|
|
245
|
+
const page = await this.#client.list(prefix, {
|
|
246
|
+
limit: Math.min(1_000, Math.max(32, request.limit + 1)),
|
|
247
|
+
delimiter: "/",
|
|
248
|
+
...(after === undefined ? {} : { after }),
|
|
249
|
+
});
|
|
250
|
+
if (page.length === 0) break;
|
|
251
|
+
for (const item of page) {
|
|
252
|
+
after = item;
|
|
253
|
+
if (!item.startsWith(prefix) || !item.endsWith("/")) continue;
|
|
254
|
+
const physical = item.slice(prefix.length, -1);
|
|
255
|
+
if (physical.includes("/")) continue;
|
|
256
|
+
const build = publicBuild(physical);
|
|
257
|
+
if (build === undefined) continue;
|
|
258
|
+
const manifest = await this.read(build);
|
|
259
|
+
if (manifest?.outcome === undefined || manifest.finishedAt === undefined) continue;
|
|
260
|
+
found.push(manifest as typeof found[number]);
|
|
261
|
+
if (found.length > request.limit) break;
|
|
262
|
+
}
|
|
263
|
+
if (found.length > request.limit || page.length < Math.min(1_000, Math.max(32, request.limit + 1))) break;
|
|
264
|
+
}
|
|
265
|
+
const results = found.slice(0, request.limit);
|
|
266
|
+
return {
|
|
267
|
+
results,
|
|
268
|
+
...(found.length > request.limit && results.length > 0 ? { next: results[results.length - 1]!.id } : {}),
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
async describeOutput(build: string, output: string): Promise<RepositoryBuildResultOutputDescription | undefined> {
|
|
273
|
+
const seen = new Set<string>();
|
|
274
|
+
let currentBuild = build;
|
|
275
|
+
let currentOutput = output;
|
|
276
|
+
while (true) {
|
|
277
|
+
const address = `${currentBuild}\u0000${currentOutput}`;
|
|
278
|
+
assert(!seen.has(address), `Build Output forwarding repeats ${currentBuild} / ${currentOutput}`);
|
|
279
|
+
seen.add(address);
|
|
280
|
+
const manifest = await this.read(currentBuild);
|
|
281
|
+
const entry = manifest?.outputs[currentOutput];
|
|
282
|
+
if (entry === undefined) return undefined;
|
|
283
|
+
if (entry.value.kind === "build-output") {
|
|
284
|
+
currentBuild = entry.value.build;
|
|
285
|
+
currentOutput = entry.value.output;
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
return entry.value.kind === "build-file"
|
|
289
|
+
? { type: entry.type, kind: "resource", size: entry.value.size, mediaType: entry.value.mediaType }
|
|
290
|
+
: entry.value.kind === "value"
|
|
291
|
+
? { type: entry.type, kind: "composite" }
|
|
292
|
+
: { type: entry.type, kind: "scalar" };
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
async resolve(build: string, output: string): Promise<RepositoryBuildResultOutput | undefined> {
|
|
297
|
+
const seen = new Set<string>();
|
|
298
|
+
let currentBuild = build;
|
|
299
|
+
let currentOutput = output;
|
|
300
|
+
while (true) {
|
|
301
|
+
const address = `${currentBuild}\u0000${currentOutput}`;
|
|
302
|
+
assert(!seen.has(address), `Build Output forwarding repeats ${currentBuild} / ${currentOutput}`);
|
|
303
|
+
seen.add(address);
|
|
304
|
+
const manifest = await this.read(currentBuild);
|
|
305
|
+
const entry = manifest?.outputs[currentOutput];
|
|
306
|
+
if (entry === undefined) return undefined;
|
|
307
|
+
if (entry.value.kind === "build-output") {
|
|
308
|
+
currentBuild = entry.value.build;
|
|
309
|
+
currentOutput = entry.value.output;
|
|
310
|
+
continue;
|
|
311
|
+
}
|
|
312
|
+
if (entry.value.kind === "value") {
|
|
313
|
+
const rawDocument = await this.#readJson(currentBuild, entry.value.path);
|
|
314
|
+
assert(rawDocument !== undefined, `Build ${currentBuild} value ${entry.value.path} is unavailable`);
|
|
315
|
+
const document = decodeBuildResultValueDocument(
|
|
316
|
+
rawDocument,
|
|
317
|
+
`Build ${currentBuild} Output ${currentOutput}`,
|
|
318
|
+
);
|
|
319
|
+
return {
|
|
320
|
+
build: currentBuild,
|
|
321
|
+
output: currentOutput,
|
|
322
|
+
type: entry.type,
|
|
323
|
+
value: { ...entry.value, document },
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
const terminalKind = (entry.value as { readonly kind?: unknown }).kind;
|
|
327
|
+
assert(terminalKind === "build-file" || terminalKind === "inline",
|
|
328
|
+
`Build ${currentBuild} Output ${currentOutput} has unsupported Result value kind ${String(terminalKind)}`);
|
|
329
|
+
return {
|
|
330
|
+
build: currentBuild,
|
|
331
|
+
output: currentOutput,
|
|
332
|
+
type: entry.type,
|
|
333
|
+
value: entry.value,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
async openFile(
|
|
339
|
+
build: string,
|
|
340
|
+
file: BuildResultFileRef,
|
|
341
|
+
range?: BuildResultFileRange,
|
|
342
|
+
): Promise<AsyncIterable<Uint8Array> | undefined> {
|
|
343
|
+
if (range !== undefined) {
|
|
344
|
+
assert(Number.isSafeInteger(range.start) && range.start >= 0, "Build Result file range start is invalid");
|
|
345
|
+
assert(Number.isSafeInteger(range.endExclusive) && range.endExclusive > range.start,
|
|
346
|
+
"Build Result file range end is invalid");
|
|
347
|
+
assert(range.endExclusive <= file.size, "Build Result file range exceeds the declared file size");
|
|
348
|
+
}
|
|
349
|
+
return await this.#client.open(this.#key(build, file.path), range);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/** Verify that the configured bucket/prefix can be listed without loading Result history. */
|
|
353
|
+
async diagnose(): Promise<void> {
|
|
354
|
+
const prefix = this.#prefix.length === 0 ? "" : `${this.#prefix}/`;
|
|
355
|
+
await this.#client.list(prefix, { limit: 1 });
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
async close(): Promise<void> {
|
|
359
|
+
await this.#client.close?.();
|
|
360
|
+
}
|
|
361
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# `@hypit/caption`
|
|
2
|
+
|
|
3
|
+
External components use `@hypit/hypit/caption` from their `@hypit/hypit` development dependency. The package
|
|
4
|
+
owns the types and helpers below; Source imports retain the `@hypit/caption@1` Module identity.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
The deterministic Caption contract. Script emits one `CaptionDocument` containing display words,
|
|
8
|
+
N:M alignment units and authored `||` cue breaks. Caption applies Styles to complete units selected
|
|
9
|
+
by a Role or a semantic Selection, then joins those units to a `SemanticTrack` for frame timing.
|
|
10
|
+
|
|
11
|
+
```xml
|
|
12
|
+
<caption:Program id="captions" document={story.caption} narrative={story} default={plain}>
|
|
13
|
+
<caption:Use role="HOST" style={impact}/>
|
|
14
|
+
<caption:Use selection={story.selection.emphasis} style={plain}/>
|
|
15
|
+
<caption:Use attribute="emphasis" style={keyword}/>
|
|
16
|
+
</caption:Program>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
There is no planner, model call or frame range in this authoring contract. A Selection is projected
|
|
20
|
+
to complete alignment units before timing; a Selection that cuts through an N:M unit is rejected.
|
|
21
|
+
Script-native word attributes are resolved separately as local word Style runs and do not create
|
|
22
|
+
another timing source. They are part of the common Caption contract for structural Caption families;
|
|
23
|
+
`@hypit/caption-fine` deliberately rejects them because Fine requires one uniform token rule per Cue.
|
|
24
|
+
|
|
25
|
+
`TimedCaptionProjection` is intentionally not a `TemporalWindow` collection. Cue timing is a
|
|
26
|
+
read-only projection of token evidence, not an author-controlled placement window. It nevertheless
|
|
27
|
+
carries the exact `spaceId`, `narrativeId` and `documentId`, so another SemanticTrack or Script cannot
|
|
28
|
+
be substituted silently.
|
|
29
|
+
|
|
30
|
+
## Extending with another rendering family
|
|
31
|
+
|
|
32
|
+
The common public values are defined in [types.ts](src/types.ts), with exports in
|
|
33
|
+
[index.ts](src/index.ts). A family supplies:
|
|
34
|
+
|
|
35
|
+
- a Style decoder producing `CaptionStyleIntent` with its own `rendering.family` and validated
|
|
36
|
+
`rendering.parameters`;
|
|
37
|
+
- an optional family schedule Type and deterministic scheduling Producer;
|
|
38
|
+
- a rendering Producer returning the ordinary `VisualTrack` Type;
|
|
39
|
+
- a Surface/Fragment connecting the common document, program and timing to those Producers.
|
|
40
|
+
|
|
41
|
+
`caption:Program` remains the common author Surface. `Use` selects exactly one of `role`, `selection`
|
|
42
|
+
or `attribute`; `Mute` selects a Role or Selection. For Role/Selection applications, the last matching
|
|
43
|
+
`Use` in Source order selects the complete Style for each unit. It replaces the previous choice
|
|
44
|
+
without merging Style parameters. A Selection can cover a phrase, a whole Segment, several Segments
|
|
45
|
+
or the program through its structural anchors; there is no separate Segment selector.
|
|
46
|
+
|
|
47
|
+
Word attributes produce separate `wordRuns`. Conflicting Styles on the same attributed word are
|
|
48
|
+
rejected; these runs do not use the Role/Selection override rule. A family chooses whether and how
|
|
49
|
+
it supports word-specific runs.
|
|
50
|
+
|
|
51
|
+
Mute applications combine their selected unit ids independently of Style order. They suppress those
|
|
52
|
+
display words, preserving the speech and semantic timeline. Visible lead and tail still belong to
|
|
53
|
+
the family schedule, so muting a word is not a time-based mask of every neighboring Cue.
|
|
54
|
+
|
|
55
|
+
Reuse `captionProducers.temporalizeDocument` with inputs `document`, `semantic` and `program`, or the
|
|
56
|
+
corresponding exported timing Fragment. It emits a `TimedCaptionProjection` whose Cues contain
|
|
57
|
+
`styleId`, `startFrame`, `endFrameExclusive` and measured `units`. Each unit carries `unitId` and its
|
|
58
|
+
own boundaries. Recover display Words and their associations from the same `CaptionDocument`; do
|
|
59
|
+
not infer N:M timing by evenly dividing a Cue or splitting its rendered string.
|
|
60
|
+
|
|
61
|
+
Scheduling may derive visible intervals while preserving those measured boundaries. Use
|
|
62
|
+
`assertCaptionProgramForDocument`, `assertTimedCaptionProjection` and, for visible scheduling,
|
|
63
|
+
`applyCaptionMute` as appropriate. Retain `spaceId`, `narrativeId` and `documentId` in a schedule so
|
|
64
|
+
the renderer can check its inputs. The renderer should consume that schedule without silently
|
|
65
|
+
changing Cue grouping, lead or tail again.
|
|
66
|
+
|
|
67
|
+
`@hypit/caption-fine` provides a working example in its `src/fragment.ts`, `src/schedule.ts` and
|
|
68
|
+
`src/render.ts`: one shared timing join, then family schedule and render operations. A new structural
|
|
69
|
+
family replaces Fine's uniform-word layout and parameters, not the common speech truth. Its own
|
|
70
|
+
Manifest, activation and vocabulary belong to the project package; no change to this common package
|
|
71
|
+
is required merely to add a new visual family.
|
|
72
|
+
|
|
73
|
+
That family can render a standalone Caption Track or coordinate caption text with graphics in a
|
|
74
|
+
shared scene. Its output uses ordinary VisualTrack elements or a renderer program with explicit
|
|
75
|
+
resources. Caption retains the authored words and their semantic relationship while the component
|
|
76
|
+
owns the visual boundary. The Program does not automatically route different families to different
|
|
77
|
+
renderers; choose the implementing component and its coverage explicitly.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hypit/caption",
|
|
3
|
+
"version": "0.0.0-dev",
|
|
4
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
5
|
+
"private": true,
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./src/index.ts"
|
|
9
|
+
},
|
|
10
|
+
"hypit": {
|
|
11
|
+
"activation": "./src/activation.ts"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@hypit/component-kit": "workspace:*",
|
|
15
|
+
"@hypit/elaborator": "workspace:*",
|
|
16
|
+
"@hypit/narrative": "workspace:*",
|
|
17
|
+
"@hypit/protocol": "workspace:*",
|
|
18
|
+
"@hypit/semantic-track": "workspace:*",
|
|
19
|
+
"@hypit/markup": "workspace:*"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@hypit/program-space": "workspace:*",
|
|
23
|
+
"@hypit/script": "workspace:*",
|
|
24
|
+
"@hypit/speech": "workspace:*",
|
|
25
|
+
"@hypit/speech-alignment": "workspace:*",
|
|
26
|
+
"@hypit/speech-evidence": "workspace:*"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createMarkupSurfaceHostFacet } from "@hypit/markup";
|
|
2
|
+
import {
|
|
3
|
+
captionComponent, captionManifest, captionModuleRef,
|
|
4
|
+
decodeCaptionProgramSurface,
|
|
5
|
+
captionMarkupSurfaces,
|
|
6
|
+
} from "./index.js";
|
|
7
|
+
|
|
8
|
+
export const hypitPackage = {
|
|
9
|
+
format: "hypit.node-package@1" as const,
|
|
10
|
+
modules: [{ manifest: captionManifest }],
|
|
11
|
+
components: [captionComponent],
|
|
12
|
+
hostFacets: [
|
|
13
|
+
createMarkupSurfaceHostFacet({ module: captionModuleRef,
|
|
14
|
+
declaration: captionMarkupSurfaces.find((item) => item.name === "program")!, handler: decodeCaptionProgramSurface }),
|
|
15
|
+
],
|
|
16
|
+
};
|
|
17
|
+
export default hypitPackage;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ComponentPackage } from "@hypit/component-kit";
|
|
2
|
+
import type { CaptionDocument } from "@hypit/narrative";
|
|
3
|
+
import type { SemanticTrack } from "@hypit/semantic-track";
|
|
4
|
+
import type { StoredValue } from "@hypit/protocol";
|
|
5
|
+
import { canonicalize } from "@hypit/protocol";
|
|
6
|
+
|
|
7
|
+
import { captionProducers, captionTypes } from "./manifest.js";
|
|
8
|
+
import { assertCaptionProgram } from "./style.js";
|
|
9
|
+
import { assertTimedCaptionProjection, temporalizeCaptionDocument } from "./temporalize.js";
|
|
10
|
+
import type { CaptionProgram, CaptionStyleIntent, TimedCaptionProjection } from "./types.js";
|
|
11
|
+
|
|
12
|
+
function inline<T>(value: StoredValue | undefined, subject: string): T {
|
|
13
|
+
if (value?.kind !== "inline") throw new Error(`${subject} must be inline`);
|
|
14
|
+
return value.value as T;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const captionComponent = {
|
|
18
|
+
producers: [{
|
|
19
|
+
producer: captionProducers.temporalizeDocument,
|
|
20
|
+
handler: ({ inputs }) => ({
|
|
21
|
+
outputs: { caption: { kind: "inline", value: canonicalize(temporalizeCaptionDocument(
|
|
22
|
+
inline<CaptionDocument>(inputs.document?.value, "CaptionDocument"),
|
|
23
|
+
inline<SemanticTrack>(inputs.semantic?.value, "SemanticTrack"),
|
|
24
|
+
inline<CaptionProgram>(inputs.program?.value, "CaptionProgram"),
|
|
25
|
+
)) } },
|
|
26
|
+
needs: {},
|
|
27
|
+
}),
|
|
28
|
+
}],
|
|
29
|
+
validators: [
|
|
30
|
+
{ type: captionTypes.style, handler: ({ value }) => {
|
|
31
|
+
if (value.kind !== "inline") throw new Error("CaptionStyle must be inline");
|
|
32
|
+
const style = value.value as CaptionStyleIntent;
|
|
33
|
+
if (!style.id || !style.rendering?.family) throw new Error("CaptionStyle is invalid");
|
|
34
|
+
} },
|
|
35
|
+
{ type: captionTypes.program, handler: ({ value }) => assertCaptionProgram(inline<CaptionProgram>(value, "CaptionProgram")) },
|
|
36
|
+
{ type: captionTypes.timedProjection, handler: ({ value }) => assertTimedCaptionProjection(inline<TimedCaptionProjection>(value, "TimedCaptionProjection")) },
|
|
37
|
+
],
|
|
38
|
+
} satisfies ComponentPackage;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { CaptionDocument, Narrative, NarrativeSelection } from "@hypit/narrative";
|
|
2
|
+
|
|
3
|
+
function assert(condition: unknown, message: string): asserts condition {
|
|
4
|
+
if (!condition) throw new Error(message);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function assertCaptionDocument(value: CaptionDocument): void {
|
|
8
|
+
assert(value.id.length > 0, "CaptionDocument identity is invalid");
|
|
9
|
+
assert(value.units.length > 0 && value.words.length > 0, "CaptionDocument is empty");
|
|
10
|
+
const words = new Map(value.words.map((word) => [word.id, word]));
|
|
11
|
+
assert(words.size === value.words.length, "CaptionDocument word ids are repeated");
|
|
12
|
+
const units = new Set<string>();
|
|
13
|
+
const orderedWordIds: string[] = [];
|
|
14
|
+
for (const unit of value.units) {
|
|
15
|
+
assert(unit.id.length > 0 && !units.has(unit.id), "CaptionDocument unit ids are repeated");
|
|
16
|
+
units.add(unit.id);
|
|
17
|
+
assert(unit.wordIds.length > 0 && unit.sourceTokenIds.length > 0, `Caption unit ${unit.id} is empty`);
|
|
18
|
+
for (const wordId of unit.wordIds) {
|
|
19
|
+
const word = words.get(wordId);
|
|
20
|
+
assert(word !== undefined && word.unitId === unit.id, `Caption unit ${unit.id} references a foreign word`);
|
|
21
|
+
assert(word.segmentId === unit.segmentId && word.turnId === unit.turnId && word.role === unit.role,
|
|
22
|
+
`Caption unit ${unit.id} disagrees with its word context`);
|
|
23
|
+
orderedWordIds.push(wordId);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
assert(orderedWordIds.join("\0") === value.words.map((word) => word.id).join("\0"),
|
|
27
|
+
"CaptionDocument words must be partitioned by units in order");
|
|
28
|
+
const breakIds = new Set<string>();
|
|
29
|
+
for (const cueBreak of value.cueBreaks) {
|
|
30
|
+
assert(units.has(cueBreak.afterUnitId) && !breakIds.has(cueBreak.afterUnitId),
|
|
31
|
+
"CaptionDocument cue break names an unknown or repeated unit");
|
|
32
|
+
breakIds.add(cueBreak.afterUnitId);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export type CaptionUnitSubset = {
|
|
37
|
+
readonly documentId: string;
|
|
38
|
+
readonly unitIds: readonly string[];
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
function tokenBoundary(narrative: Narrative, anchorId: string, owner: string): number {
|
|
42
|
+
const anchor = narrative.semanticIndex.anchors.find((candidate) => candidate.id === anchorId);
|
|
43
|
+
if (anchor === undefined) throw new Error(`${owner} names unknown semantic anchor ${anchorId}`);
|
|
44
|
+
if (anchor.kind === "program-start") return 0;
|
|
45
|
+
if (anchor.kind === "program-end") return narrative.tokens.length;
|
|
46
|
+
const segment = narrative.segments.find((candidate) => candidate.id === anchor.segmentId);
|
|
47
|
+
if (segment === undefined) throw new Error(`${owner} names an anchor outside its Segment`);
|
|
48
|
+
if (anchor.kind === "segment-start") return segment.tokenStart;
|
|
49
|
+
if (anchor.kind === "segment-end") return segment.tokenEndExclusive;
|
|
50
|
+
const tokenIndex = narrative.tokens.findIndex((token) => token.id === anchor.tokenId);
|
|
51
|
+
if (tokenIndex < 0) throw new Error(`${owner} names an anchor without a Narrative token`);
|
|
52
|
+
return anchor.kind === "token-start" ? tokenIndex : tokenIndex + 1;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** Project a semantic Selection to complete authored N:M Caption units. */
|
|
56
|
+
export function captionUnitsForSelection(
|
|
57
|
+
document: CaptionDocument,
|
|
58
|
+
narrative: Narrative,
|
|
59
|
+
selection: NarrativeSelection,
|
|
60
|
+
): CaptionUnitSubset {
|
|
61
|
+
assertCaptionDocument(document);
|
|
62
|
+
const start = tokenBoundary(narrative, selection.startAnchorId, `Selection ${selection.id}`);
|
|
63
|
+
const end = tokenBoundary(narrative, selection.endAnchorId, `Selection ${selection.id}`);
|
|
64
|
+
assert(end >= start, `Selection ${selection.id} is backwards`);
|
|
65
|
+
const tokenPositions = new Map(narrative.tokens.map((token, index) => [token.id, index]));
|
|
66
|
+
const unitIds: string[] = [];
|
|
67
|
+
for (const unit of document.units) {
|
|
68
|
+
const positions = unit.sourceTokenIds.map((tokenId) => tokenPositions.get(tokenId));
|
|
69
|
+
assert(positions.every((position): position is number => position !== undefined),
|
|
70
|
+
`Caption unit ${unit.id} references a token outside Narrative`);
|
|
71
|
+
const unitStart = Math.min(...positions as number[]);
|
|
72
|
+
const unitEnd = Math.max(...positions as number[]) + 1;
|
|
73
|
+
if (unitStart >= end || unitEnd <= start) continue;
|
|
74
|
+
if (unitStart < start || unitEnd > end) {
|
|
75
|
+
throw new Error(`Caption Selection ${selection.id} partially selects Alignment Unit ${unit.id}`);
|
|
76
|
+
}
|
|
77
|
+
unitIds.push(unit.id);
|
|
78
|
+
}
|
|
79
|
+
if (unitIds.length === 0) throw new Error(`Caption Selection ${selection.id} selects no complete display unit`);
|
|
80
|
+
return { documentId: document.id, unitIds };
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function captionUnitsForRole(document: CaptionDocument, role: string): CaptionUnitSubset {
|
|
84
|
+
assertCaptionDocument(document);
|
|
85
|
+
const unitIds = document.units.filter((unit) => unit.role === role).map((unit) => unit.id);
|
|
86
|
+
if (unitIds.length === 0) throw new Error(`Caption Role ${role} selects no display unit`);
|
|
87
|
+
return { documentId: document.id, unitIds };
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export function captionWordsForAttribute(document: CaptionDocument, attribute: string): readonly string[] {
|
|
91
|
+
assertCaptionDocument(document);
|
|
92
|
+
const name = attribute.trim();
|
|
93
|
+
if (!name) throw new Error("Caption attribute name is empty");
|
|
94
|
+
const wordIds = document.words
|
|
95
|
+
.filter((word) => word.attributes.some((item) => item.name === name))
|
|
96
|
+
.map((word) => word.id);
|
|
97
|
+
if (wordIds.length === 0) throw new Error(`Caption attribute ${name} selects no display word`);
|
|
98
|
+
return wordIds;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function assertCaptionUnitSubset(value: CaptionUnitSubset, document: CaptionDocument): void {
|
|
102
|
+
assertCaptionDocument(document);
|
|
103
|
+
assert(value.documentId === document.id, "Caption unit subset belongs to another document");
|
|
104
|
+
const known = new Set(document.units.map((unit) => unit.id));
|
|
105
|
+
assert(value.unitIds.length > 0 && value.unitIds.every((id) => known.has(id)),
|
|
106
|
+
"Caption unit subset contains an unknown unit");
|
|
107
|
+
const order = new Map(document.units.map((unit, index) => [unit.id, index]));
|
|
108
|
+
const indices = value.unitIds.map((id) => order.get(id)!);
|
|
109
|
+
assert(indices.every((index, position) => position === 0 || index === indices[position - 1]! + 1),
|
|
110
|
+
"Caption unit subset must be an ordered contiguous range");
|
|
111
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { narrativeTypes } from "@hypit/narrative";
|
|
2
|
+
import { semanticTrackTypes } from "@hypit/semantic-track";
|
|
3
|
+
import { sealGraphFragment } from "@hypit/elaborator";
|
|
4
|
+
|
|
5
|
+
import { captionProducers, captionTypes } from "./manifest.js";
|
|
6
|
+
|
|
7
|
+
const input = (name: string) => ({ kind: "fragment-input" as const, name });
|
|
8
|
+
const operation = (id: string) => ({ kind: "fragment-operation" as const, operation: id });
|
|
9
|
+
|
|
10
|
+
export const captionTimingFragment = sealGraphFragment({
|
|
11
|
+
inputs: [
|
|
12
|
+
{ name: "document", type: narrativeTypes.captionDocument },
|
|
13
|
+
{ name: "semantic", type: semanticTrackTypes.track },
|
|
14
|
+
{ name: "program", type: captionTypes.program },
|
|
15
|
+
],
|
|
16
|
+
operations: [{
|
|
17
|
+
id: "temporalize-caption-document",
|
|
18
|
+
producer: captionProducers.temporalizeDocument,
|
|
19
|
+
inputs: { document: input("document"), semantic: input("semantic"), program: input("program") },
|
|
20
|
+
result: { kind: "output", name: "caption" },
|
|
21
|
+
}],
|
|
22
|
+
exports: [{ name: "caption", type: captionTypes.timedProjection, root: operation("temporalize-caption-document") }],
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
/** Kept as the fragment's public name for callers that only know the old export. */
|
|
26
|
+
export const plannedCaptionTimingFragment = captionTimingFragment;
|