@hypit/hypit 0.1.4 → 0.1.6
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 +4 -2
- 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 +77 -15
- 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 +8 -1
- package/examples/semantic-composition/chat.svml +6 -5
- package/examples/semantic-composition/hypit.runtime.json +1 -1
- 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 +28 -17
- 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 +11 -0
- package/packages/build-result/src/decode.ts +2 -0
- package/packages/build-result/src/execution-log.ts +17 -0
- package/packages/build-result/src/index.ts +1 -0
- package/packages/build-result/src/store.ts +14 -1
- package/packages/build-result/src/types.ts +3 -0
- package/packages/build-result-s3/src/repository.ts +4 -0
- 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 +21 -9
- 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 +26 -17
- package/packages/caption-fine/src/recipe.ts +7 -0
- package/packages/caption-fine/src/render.ts +14 -13
- 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 +3 -1
- package/packages/caption-fine-studio/src/activation.ts +3 -3
- package/packages/caption-fine-studio/src/index.ts +54 -42
- package/packages/cli/README.md +57 -4
- package/packages/cli/package.json +1 -0
- package/packages/cli/src/arguments.ts +25 -6
- package/packages/cli/src/build-planning.ts +3 -2
- package/packages/cli/src/command.ts +6 -0
- package/packages/cli/src/commands/environment.ts +28 -18
- 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 +3 -2
- package/packages/cli/src/main.ts +34 -42
- package/packages/cli/src/observation.ts +7 -1
- package/packages/cli/src/output.ts +65 -23
- package/packages/cli/src/view.ts +66 -19
- 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/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/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 +10 -7
- 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/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 +16 -11
- 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/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 +22 -26
- package/packages/ranking/src/schedule.ts +16 -19
- package/packages/ranking/src/surface.ts +12 -13
- package/packages/ranking-studio/README.md +18 -0
- package/packages/ranking-studio/src/index.ts +61 -9
- 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/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 +24 -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 +109 -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 +2 -1
- package/packages/runtime-local/src/result-writer.ts +2 -0
- package/packages/runtime-local/src/runtime.ts +8 -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 +30 -5
- package/packages/script/src/manifest.ts +4 -3
- package/packages/script/src/narrative.ts +1 -0
- package/packages/script/src/parser.ts +45 -6
- package/packages/script/src/surface.ts +4 -3
- package/packages/script/src/types.ts +1 -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 +7 -1
- 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/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 +15 -2
- package/packages/studio/LOCALIZATION.md +98 -0
- package/packages/studio/README.md +101 -14
- package/packages/studio/locales/en.json +197 -0
- package/packages/studio/locales/zh-CN.json +191 -0
- package/packages/studio/package.json +8 -7
- 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/localization-node.ts +46 -0
- package/packages/studio/src/localization.ts +85 -0
- package/packages/studio/src/parameter-values.ts +43 -1
- package/packages/studio/src/parameters.ts +114 -24
- 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 +10 -6
- package/packages/studio/src/shared.ts +4 -2
- package/packages/studio/src/snapshot.ts +21 -132
- package/packages/studio/src/studio-preflight.ts +3 -3
- package/packages/studio/src/studio-registry.ts +50 -6
- package/packages/studio/src/style.css +223 -50
- package/packages/studio/src/ui/artifact-name.ts +8 -6
- package/packages/studio/src/ui/artifact-preview.ts +5 -4
- package/packages/studio/src/ui/code.ts +17 -16
- package/packages/studio/src/ui/comments.ts +234 -0
- package/packages/studio/src/ui/dropdown.ts +68 -0
- package/packages/studio/src/ui/i18n.ts +109 -0
- package/packages/studio/src/ui/icons.ts +6 -0
- package/packages/studio/src/ui/library.ts +76 -65
- package/packages/studio/src/ui/main.ts +223 -211
- package/packages/studio/src/ui/overlay.ts +12 -8
- package/packages/studio/src/ui/scrub-preview.ts +110 -0
- package/packages/studio/src/ui/stage.ts +93 -29
- package/packages/studio/src/ui/timeline.ts +190 -118
- package/packages/studio/start.ts +41 -22
- package/packages/studio-adapter/README.md +130 -11
- package/packages/studio-adapter/src/index.ts +100 -13
- 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 +2 -2
- package/packages/temporal-markup/README.md +27 -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/video-cli/README.md +4 -1
- package/packages/video-cli/package.json +2 -1
- package/packages/video-cli/src/creation.ts +14 -4
- 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 +1 -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,197 @@
|
|
|
1
|
+
{
|
|
2
|
+
"locale": "en",
|
|
3
|
+
"name": "English",
|
|
4
|
+
"direction": "ltr",
|
|
5
|
+
"messages": {
|
|
6
|
+
"app.comments": "Comments",
|
|
7
|
+
"app.language": "Language",
|
|
8
|
+
"app.studio": "Studio",
|
|
9
|
+
"app.studio-view": "Studio view",
|
|
10
|
+
"comments.all": "All",
|
|
11
|
+
"comments.caught-up": "All caught up",
|
|
12
|
+
"comments.delete-comment": "Delete comment",
|
|
13
|
+
"comments.done": "Done",
|
|
14
|
+
"comments.draw-soon": "Draw — coming later",
|
|
15
|
+
"comments.edit-comment": "Edit comment",
|
|
16
|
+
"comments.edit-comment-text": "Edit comment text",
|
|
17
|
+
"comments.emoji-soon": "Emoji — coming later",
|
|
18
|
+
"comments.empty": "A note starts here",
|
|
19
|
+
"comments.empty-hint": "Pause on a frame and describe what you would like to change.",
|
|
20
|
+
"comments.filter-comments": "Filter comments",
|
|
21
|
+
"comments.filter-hint": "Switch filters to see the other comments.",
|
|
22
|
+
"comments.go-to-this-frame": "Go to this frame",
|
|
23
|
+
"comments.loading-comments": "Loading comments…",
|
|
24
|
+
"comments.mark-complete": "Mark complete",
|
|
25
|
+
"comments.no-completed-comments": "No completed comments",
|
|
26
|
+
"comments.open": "Open",
|
|
27
|
+
"comments.placeholder": "What would you like to change?",
|
|
28
|
+
"comments.read-failed": "Could not read comments.",
|
|
29
|
+
"comments.refresh-comments": "Refresh comments",
|
|
30
|
+
"comments.reopen-comment": "Reopen comment",
|
|
31
|
+
"comments.save-failed": "Could not save comment.",
|
|
32
|
+
"comments.send-comment": "Send comment",
|
|
33
|
+
"comments.send-shortcut": "Send comment (Enter)",
|
|
34
|
+
"comments.use-current-frame": "Use current frame",
|
|
35
|
+
"comments.write-a-comment": "Write a comment",
|
|
36
|
+
"common.cancel": "Cancel",
|
|
37
|
+
"common.cancelled": "Cancelled",
|
|
38
|
+
"common.compile-failed": "Compile failed",
|
|
39
|
+
"common.completed": "Completed",
|
|
40
|
+
"common.copied": "Copied",
|
|
41
|
+
"common.failed": "Failed",
|
|
42
|
+
"common.invalid-value": "Invalid value",
|
|
43
|
+
"common.needs-attention": "Needs attention",
|
|
44
|
+
"common.queued": "Queued",
|
|
45
|
+
"common.refresh": "Refresh",
|
|
46
|
+
"common.running": "Running",
|
|
47
|
+
"common.save": "Save",
|
|
48
|
+
"common.save-failed": "Save failed",
|
|
49
|
+
"common.saved": "Saved",
|
|
50
|
+
"common.saving": "Saving",
|
|
51
|
+
"common.waiting": "Waiting",
|
|
52
|
+
"inspector.add-color": "Add color",
|
|
53
|
+
"inspector.add-item": "Add item",
|
|
54
|
+
"inspector.anchor.program-end": "Timeline end{detail}",
|
|
55
|
+
"inspector.anchor.program-start": "Timeline start{detail}",
|
|
56
|
+
"inspector.anchor.segment-end": "Segment end{detail}",
|
|
57
|
+
"inspector.anchor.segment-start": "Segment start{detail}",
|
|
58
|
+
"inspector.anchor.token-end": "Word end{detail}",
|
|
59
|
+
"inspector.anchor.token-start": "Word start{detail}",
|
|
60
|
+
"inspector.aspect-ratio": "Aspect ratio",
|
|
61
|
+
"inspector.author": "Author",
|
|
62
|
+
"inspector.build": "Build",
|
|
63
|
+
"inspector.candidates": "Candidates",
|
|
64
|
+
"inspector.canvas": "Canvas",
|
|
65
|
+
"inspector.duration": "Duration",
|
|
66
|
+
"inspector.empty": "No details for this selection",
|
|
67
|
+
"inspector.end": "End",
|
|
68
|
+
"inspector.end-anchor": "End semantic anchor",
|
|
69
|
+
"inspector.frame-rate": "Frame rate",
|
|
70
|
+
"inspector.frames": "Frames",
|
|
71
|
+
"inspector.how": "How",
|
|
72
|
+
"inspector.invalid-fields": "Complete the required fields with valid values to save.",
|
|
73
|
+
"inspector.item-count": {
|
|
74
|
+
"one": "{count} item",
|
|
75
|
+
"other": "{count} items"
|
|
76
|
+
},
|
|
77
|
+
"inspector.moment": "Moment",
|
|
78
|
+
"inspector.moment-anchor": "Moment semantic anchor",
|
|
79
|
+
"inspector.move-down": "Move down",
|
|
80
|
+
"inspector.move-up": "Move up",
|
|
81
|
+
"inspector.project": "Project",
|
|
82
|
+
"inspector.properties": "Properties",
|
|
83
|
+
"inspector.remove-item": "Remove item",
|
|
84
|
+
"inspector.resolution": "Resolution",
|
|
85
|
+
"inspector.run": "Run",
|
|
86
|
+
"inspector.semantic-anchors": "Semantic anchors",
|
|
87
|
+
"inspector.sources": "Sources",
|
|
88
|
+
"inspector.start": "Start",
|
|
89
|
+
"inspector.start-anchor": "Start semantic anchor",
|
|
90
|
+
"inspector.structured-value": "Structured value",
|
|
91
|
+
"inspector.targets": "Targets",
|
|
92
|
+
"inspector.timeline": "Timeline",
|
|
93
|
+
"inspector.timing": "Timing",
|
|
94
|
+
"inspector.tracks": "Tracks",
|
|
95
|
+
"inspector.use-color": "Use {color}",
|
|
96
|
+
"inspector.when": "When",
|
|
97
|
+
"inspector.where": "Where",
|
|
98
|
+
"library.all-media": "All media",
|
|
99
|
+
"library.all-tasks": "All tasks",
|
|
100
|
+
"library.artifacts": "Artifacts",
|
|
101
|
+
"library.audio": "Audio",
|
|
102
|
+
"library.clear-task-filter": "Clear task filter",
|
|
103
|
+
"library.data": "Data",
|
|
104
|
+
"library.display-name": "Display name",
|
|
105
|
+
"library.enter-name": "Enter a name.",
|
|
106
|
+
"library.finished": "Finished",
|
|
107
|
+
"library.image": "Image",
|
|
108
|
+
"library.images": "Images",
|
|
109
|
+
"library.in-progress": "In progress",
|
|
110
|
+
"library.loading-media": "Loading media…",
|
|
111
|
+
"library.loading-more": "Loading more…",
|
|
112
|
+
"library.loading-tasks": "Loading tasks…",
|
|
113
|
+
"library.media-categories": "Media categories",
|
|
114
|
+
"library.media-category": "Media category",
|
|
115
|
+
"library.media-hint": "Images, videos and audio published as file Outputs appear here, including those from ongoing Builds.",
|
|
116
|
+
"library.name-failed": "Could not save the name",
|
|
117
|
+
"library.name-pending": "{name}\nNaming is available when this Build finishes",
|
|
118
|
+
"library.no-files-in-this-category": "No files in this category",
|
|
119
|
+
"library.no-media": "No media",
|
|
120
|
+
"library.no-tasks-here": "No tasks here",
|
|
121
|
+
"library.no-tasks-in-progress": "No tasks in progress",
|
|
122
|
+
"library.preview-name": "Preview {name}",
|
|
123
|
+
"library.preview-unavailable": "Preview unavailable",
|
|
124
|
+
"library.referenced-source-files": "Referenced source files",
|
|
125
|
+
"library.refresh-failed": "Refresh failed: {detail}",
|
|
126
|
+
"library.refresh-failed-retained": "Refresh failed: {detail} · Previous view retained",
|
|
127
|
+
"library.refresh-interrupted": "Refresh interrupted",
|
|
128
|
+
"library.refresh-media": "Refresh media",
|
|
129
|
+
"library.refresh-tasks": "Refresh tasks",
|
|
130
|
+
"library.refreshing": "Refreshing…",
|
|
131
|
+
"library.rename-hint": "{name}\nDouble-click or press F2 to rename",
|
|
132
|
+
"library.return-to-task": "Return to task",
|
|
133
|
+
"library.source": "Source",
|
|
134
|
+
"library.studio-library": "Studio library",
|
|
135
|
+
"library.task-categories": "Task categories",
|
|
136
|
+
"library.task-return": "{name} · Return to task",
|
|
137
|
+
"library.tasks": "Tasks",
|
|
138
|
+
"library.unavailable": "Library unavailable",
|
|
139
|
+
"library.updated": "Updated {time}",
|
|
140
|
+
"library.video": "Video",
|
|
141
|
+
"library.video-loading-preview": "Video · Loading preview",
|
|
142
|
+
"library.videos": "Videos",
|
|
143
|
+
"library.view-media": "View media",
|
|
144
|
+
"library.view-task-media": "View task media",
|
|
145
|
+
"player.audio-waveform": "Audio waveform",
|
|
146
|
+
"player.back-5-seconds": "Back 5 seconds",
|
|
147
|
+
"player.back-to-composition": "Back to composition",
|
|
148
|
+
"player.composition-time": "Composition time",
|
|
149
|
+
"player.elements-at-this-point": "Elements at this point",
|
|
150
|
+
"player.forward-5-seconds": "Forward 5 seconds",
|
|
151
|
+
"player.frame-loading": "Loading frame…",
|
|
152
|
+
"player.frame-unavailable": "Frame unavailable",
|
|
153
|
+
"player.hovered-frame": "Hovered frame",
|
|
154
|
+
"player.media-failed": "This media could not be opened in the browser.",
|
|
155
|
+
"player.media-time": "Media time",
|
|
156
|
+
"player.mute": "Mute",
|
|
157
|
+
"player.next-frame": "Next frame",
|
|
158
|
+
"player.pause": "Pause",
|
|
159
|
+
"player.play": "Play",
|
|
160
|
+
"player.preview": "Preview",
|
|
161
|
+
"player.previous-frame": "Previous frame",
|
|
162
|
+
"player.unmute": "Unmute",
|
|
163
|
+
"source.changed-outside-studio": "Changed outside Studio",
|
|
164
|
+
"source.edit-source": "Edit source",
|
|
165
|
+
"source.keep-lines-unwrapped": "Keep lines unwrapped",
|
|
166
|
+
"source.read-source": "Read source",
|
|
167
|
+
"source.save-failed-status": "Save failed ({status})",
|
|
168
|
+
"source.saving-before-switch": "Saving before switch",
|
|
169
|
+
"source.svml-source": "SVML source",
|
|
170
|
+
"source.unsaved": "Unsaved",
|
|
171
|
+
"source.wrap-lines": "Wrap lines",
|
|
172
|
+
"tasks.copy-error": "Copy error",
|
|
173
|
+
"tasks.copy-manually": "Select the text to copy",
|
|
174
|
+
"tasks.no-runtime": "No Runtime is selected. Saved tasks are available under Finished.",
|
|
175
|
+
"tasks.progress": "{completed}/{total} steps complete",
|
|
176
|
+
"tasks.refresh-hint": "Refresh to read the latest task status.",
|
|
177
|
+
"tasks.saved-only": "Saved project Results · no Runtime selected",
|
|
178
|
+
"timeline.fit-timeline": "Fit timeline",
|
|
179
|
+
"timeline.moment-name": "Moment {name}",
|
|
180
|
+
"timeline.overlapping-timeline-objects": "Overlapping timeline objects",
|
|
181
|
+
"timeline.resize-timeline-track-labels": "Resize timeline track labels",
|
|
182
|
+
"timeline.resize-track-labels": "Resize track labels",
|
|
183
|
+
"timeline.segment-name": "Segment {name}",
|
|
184
|
+
"timeline.segments": "Segments",
|
|
185
|
+
"timeline.select": "Select",
|
|
186
|
+
"timeline.selection-name": "Selection {name}",
|
|
187
|
+
"timeline.selections-and-moments": "Selections and Moments",
|
|
188
|
+
"timeline.words": "Words",
|
|
189
|
+
"timeline.zoom-in": "Zoom in",
|
|
190
|
+
"timeline.zoom-out": "Zoom out",
|
|
191
|
+
"inspector.color-picker": "{label} picker",
|
|
192
|
+
"timeline.segment-count": {
|
|
193
|
+
"one": "{count} segment",
|
|
194
|
+
"other": "{count} segments"
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
{
|
|
2
|
+
"locale": "zh-CN",
|
|
3
|
+
"name": "简体中文",
|
|
4
|
+
"direction": "ltr",
|
|
5
|
+
"messages": {
|
|
6
|
+
"app.comments": "评论",
|
|
7
|
+
"app.language": "语言",
|
|
8
|
+
"app.studio": "工作台",
|
|
9
|
+
"app.studio-view": "工作区视图",
|
|
10
|
+
"comments.all": "全部",
|
|
11
|
+
"comments.caught-up": "评论都已处理",
|
|
12
|
+
"comments.delete-comment": "删除评论",
|
|
13
|
+
"comments.done": "已完成",
|
|
14
|
+
"comments.draw-soon": "批注 · 即将支持",
|
|
15
|
+
"comments.edit-comment": "编辑评论",
|
|
16
|
+
"comments.edit-comment-text": "编辑评论内容",
|
|
17
|
+
"comments.emoji-soon": "表情 · 即将支持",
|
|
18
|
+
"comments.empty": "留下第一条评论",
|
|
19
|
+
"comments.empty-hint": "暂停在想调整的画面,说说你的想法。",
|
|
20
|
+
"comments.filter-comments": "筛选评论",
|
|
21
|
+
"comments.filter-hint": "切换筛选,查看其他评论。",
|
|
22
|
+
"comments.go-to-this-frame": "跳转到这一帧",
|
|
23
|
+
"comments.loading-comments": "加载评论中…",
|
|
24
|
+
"comments.mark-complete": "标为已完成",
|
|
25
|
+
"comments.no-completed-comments": "暂无已完成评论",
|
|
26
|
+
"comments.open": "待处理",
|
|
27
|
+
"comments.placeholder": "想调整哪里?",
|
|
28
|
+
"comments.read-failed": "无法读取评论。",
|
|
29
|
+
"comments.refresh-comments": "刷新评论",
|
|
30
|
+
"comments.reopen-comment": "标为待处理",
|
|
31
|
+
"comments.save-failed": "无法保存评论。",
|
|
32
|
+
"comments.send-comment": "发送评论",
|
|
33
|
+
"comments.send-shortcut": "发送评论(Enter)",
|
|
34
|
+
"comments.use-current-frame": "使用当前帧",
|
|
35
|
+
"comments.write-a-comment": "写评论",
|
|
36
|
+
"common.cancel": "取消",
|
|
37
|
+
"common.cancelled": "已取消",
|
|
38
|
+
"common.compile-failed": "编译失败",
|
|
39
|
+
"common.completed": "已完成",
|
|
40
|
+
"common.copied": "已复制",
|
|
41
|
+
"common.failed": "失败",
|
|
42
|
+
"common.invalid-value": "无效的值",
|
|
43
|
+
"common.needs-attention": "需要处理",
|
|
44
|
+
"common.queued": "排队中",
|
|
45
|
+
"common.refresh": "刷新",
|
|
46
|
+
"common.running": "运行中",
|
|
47
|
+
"common.save": "保存",
|
|
48
|
+
"common.save-failed": "保存失败",
|
|
49
|
+
"common.saved": "已保存",
|
|
50
|
+
"common.saving": "保存中",
|
|
51
|
+
"common.waiting": "等待中",
|
|
52
|
+
"inspector.add-color": "添加颜色",
|
|
53
|
+
"inspector.add-item": "添加条目",
|
|
54
|
+
"inspector.anchor.program-end": "时间线终点{detail}",
|
|
55
|
+
"inspector.anchor.program-start": "时间线起点{detail}",
|
|
56
|
+
"inspector.anchor.segment-end": "段尾{detail}",
|
|
57
|
+
"inspector.anchor.segment-start": "段头{detail}",
|
|
58
|
+
"inspector.anchor.token-end": "词尾{detail}",
|
|
59
|
+
"inspector.anchor.token-start": "词头{detail}",
|
|
60
|
+
"inspector.aspect-ratio": "画幅比例",
|
|
61
|
+
"inspector.author": "源文件",
|
|
62
|
+
"inspector.build": "构建",
|
|
63
|
+
"inspector.candidates": "候选实现",
|
|
64
|
+
"inspector.canvas": "画布",
|
|
65
|
+
"inspector.duration": "时长",
|
|
66
|
+
"inspector.empty": "当前选中项没有详细信息",
|
|
67
|
+
"inspector.end": "终点",
|
|
68
|
+
"inspector.end-anchor": "终点语义锚点",
|
|
69
|
+
"inspector.frame-rate": "帧率",
|
|
70
|
+
"inspector.frames": "帧数",
|
|
71
|
+
"inspector.how": "样式",
|
|
72
|
+
"inspector.invalid-fields": "请正确填写必填项后保存。",
|
|
73
|
+
"inspector.item-count": "{count} 项",
|
|
74
|
+
"inspector.moment": "时刻",
|
|
75
|
+
"inspector.moment-anchor": "时刻语义锚点",
|
|
76
|
+
"inspector.move-down": "下移",
|
|
77
|
+
"inspector.move-up": "上移",
|
|
78
|
+
"inspector.project": "项目",
|
|
79
|
+
"inspector.properties": "属性",
|
|
80
|
+
"inspector.remove-item": "移除条目",
|
|
81
|
+
"inspector.resolution": "分辨率",
|
|
82
|
+
"inspector.run": "运行方案",
|
|
83
|
+
"inspector.semantic-anchors": "语义锚点",
|
|
84
|
+
"inspector.sources": "引用文件",
|
|
85
|
+
"inspector.start": "起点",
|
|
86
|
+
"inspector.start-anchor": "起点语义锚点",
|
|
87
|
+
"inspector.structured-value": "结构化值",
|
|
88
|
+
"inspector.targets": "目标产物",
|
|
89
|
+
"inspector.timeline": "时间线",
|
|
90
|
+
"inspector.timing": "时间",
|
|
91
|
+
"inspector.tracks": "轨道",
|
|
92
|
+
"inspector.use-color": "使用 {color}",
|
|
93
|
+
"inspector.when": "时间",
|
|
94
|
+
"inspector.where": "位置",
|
|
95
|
+
"library.all-media": "全部素材",
|
|
96
|
+
"library.all-tasks": "全部任务",
|
|
97
|
+
"library.artifacts": "产物",
|
|
98
|
+
"library.audio": "音频",
|
|
99
|
+
"library.clear-task-filter": "清除任务筛选",
|
|
100
|
+
"library.data": "数据",
|
|
101
|
+
"library.display-name": "显示名称",
|
|
102
|
+
"library.enter-name": "请输入名称。",
|
|
103
|
+
"library.finished": "已结束",
|
|
104
|
+
"library.image": "图片",
|
|
105
|
+
"library.images": "图片",
|
|
106
|
+
"library.in-progress": "进行中",
|
|
107
|
+
"library.loading-media": "加载素材中…",
|
|
108
|
+
"library.loading-more": "加载更多…",
|
|
109
|
+
"library.loading-tasks": "加载任务中…",
|
|
110
|
+
"library.media-categories": "素材分类",
|
|
111
|
+
"library.media-category": "素材分类",
|
|
112
|
+
"library.media-hint": "这里展示已产出的图片、视频和音频,也包括正在构建的任务产物。",
|
|
113
|
+
"library.name-failed": "无法保存名称",
|
|
114
|
+
"library.name-pending": "{name}\n构建完成后可以重命名",
|
|
115
|
+
"library.no-files-in-this-category": "此分类暂无素材",
|
|
116
|
+
"library.no-media": "暂无素材",
|
|
117
|
+
"library.no-tasks-here": "暂无任务",
|
|
118
|
+
"library.no-tasks-in-progress": "没有进行中的任务",
|
|
119
|
+
"library.preview-name": "预览 {name}",
|
|
120
|
+
"library.preview-unavailable": "暂时无法预览",
|
|
121
|
+
"library.referenced-source-files": "引用的源文件",
|
|
122
|
+
"library.refresh-failed": "刷新失败:{detail}",
|
|
123
|
+
"library.refresh-failed-retained": "刷新失败:{detail} · 已保留上次视图",
|
|
124
|
+
"library.refresh-interrupted": "刷新已中断",
|
|
125
|
+
"library.refresh-media": "刷新素材",
|
|
126
|
+
"library.refresh-tasks": "刷新任务",
|
|
127
|
+
"library.refreshing": "刷新中…",
|
|
128
|
+
"library.rename-hint": "{name}\n双击或按 F2 重命名",
|
|
129
|
+
"library.return-to-task": "返回任务",
|
|
130
|
+
"library.source": "源文件",
|
|
131
|
+
"library.studio-library": "项目资源",
|
|
132
|
+
"library.task-categories": "任务分类",
|
|
133
|
+
"library.task-return": "{name} · 返回任务",
|
|
134
|
+
"library.tasks": "任务",
|
|
135
|
+
"library.unavailable": "资源暂时不可用",
|
|
136
|
+
"library.updated": "更新于 {time}",
|
|
137
|
+
"library.video": "视频",
|
|
138
|
+
"library.video-loading-preview": "视频 · 加载预览中",
|
|
139
|
+
"library.videos": "视频",
|
|
140
|
+
"library.view-media": "查看产物",
|
|
141
|
+
"library.view-task-media": "查看任务产物",
|
|
142
|
+
"player.audio-waveform": "音频波形",
|
|
143
|
+
"player.back-5-seconds": "后退 5 秒",
|
|
144
|
+
"player.back-to-composition": "返回作品",
|
|
145
|
+
"player.composition-time": "作品播放进度",
|
|
146
|
+
"player.elements-at-this-point": "此处的元素",
|
|
147
|
+
"player.forward-5-seconds": "前进 5 秒",
|
|
148
|
+
"player.frame-loading": "加载画面中…",
|
|
149
|
+
"player.frame-unavailable": "画面暂时不可用",
|
|
150
|
+
"player.hovered-frame": "悬停画面",
|
|
151
|
+
"player.media-failed": "浏览器无法打开此素材。",
|
|
152
|
+
"player.media-time": "素材播放进度",
|
|
153
|
+
"player.mute": "静音",
|
|
154
|
+
"player.next-frame": "下一帧",
|
|
155
|
+
"player.pause": "暂停",
|
|
156
|
+
"player.play": "播放",
|
|
157
|
+
"player.preview": "预览",
|
|
158
|
+
"player.previous-frame": "上一帧",
|
|
159
|
+
"player.unmute": "取消静音",
|
|
160
|
+
"source.changed-outside-studio": "文件已在外部更改",
|
|
161
|
+
"source.edit-source": "编辑源文件",
|
|
162
|
+
"source.keep-lines-unwrapped": "不自动换行",
|
|
163
|
+
"source.read-source": "查看源文件",
|
|
164
|
+
"source.save-failed-status": "保存失败({status})",
|
|
165
|
+
"source.saving-before-switch": "切换前保存中",
|
|
166
|
+
"source.svml-source": "SVML 源文件",
|
|
167
|
+
"source.unsaved": "未保存",
|
|
168
|
+
"source.wrap-lines": "自动换行",
|
|
169
|
+
"tasks.copy-error": "复制错误信息",
|
|
170
|
+
"tasks.copy-manually": "请选择文字复制",
|
|
171
|
+
"tasks.no-runtime": "尚未选择运行环境,可在「已结束」中查看保存的任务。",
|
|
172
|
+
"tasks.progress": "已完成 {completed}/{total} 步",
|
|
173
|
+
"tasks.refresh-hint": "点击刷新,查看最新任务状态。",
|
|
174
|
+
"tasks.saved-only": "项目中保存的结果 · 未选择运行环境",
|
|
175
|
+
"timeline.fit-timeline": "适配时间线",
|
|
176
|
+
"timeline.moment-name": "时刻 {name}",
|
|
177
|
+
"timeline.overlapping-timeline-objects": "重叠的时间线对象",
|
|
178
|
+
"timeline.resize-timeline-track-labels": "调整轨道名称区宽度",
|
|
179
|
+
"timeline.resize-track-labels": "调整轨道名称区宽度",
|
|
180
|
+
"timeline.segment-name": "片段 {name}",
|
|
181
|
+
"timeline.segments": "片段",
|
|
182
|
+
"timeline.select": "选择",
|
|
183
|
+
"timeline.selection-name": "区间 {name}",
|
|
184
|
+
"timeline.selections-and-moments": "区间与时刻",
|
|
185
|
+
"timeline.words": "词语",
|
|
186
|
+
"timeline.zoom-in": "放大",
|
|
187
|
+
"timeline.zoom-out": "缩小",
|
|
188
|
+
"inspector.color-picker": "{label}取色器",
|
|
189
|
+
"timeline.segment-count": "{count} 个片段"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
@@ -12,34 +12,35 @@
|
|
|
12
12
|
"@hypit/build-result": "workspace:*",
|
|
13
13
|
"@hypit/caption-fine-studio": "workspace:*",
|
|
14
14
|
"@hypit/cli": "workspace:*",
|
|
15
|
+
"@hypit/comment-sticker-studio": "workspace:*",
|
|
15
16
|
"@hypit/compiler-node": "workspace:*",
|
|
16
17
|
"@hypit/component-kit": "workspace:*",
|
|
17
18
|
"@hypit/composition": "workspace:*",
|
|
18
|
-
"@hypit/comment-sticker-studio": "workspace:*",
|
|
19
19
|
"@hypit/core": "workspace:*",
|
|
20
|
-
"@hypit/driver-node": "workspace:*",
|
|
21
20
|
"@hypit/deck-track-studio": "workspace:*",
|
|
21
|
+
"@hypit/driver-node": "workspace:*",
|
|
22
22
|
"@hypit/elaborator": "workspace:*",
|
|
23
23
|
"@hypit/film-studio": "workspace:*",
|
|
24
24
|
"@hypit/hyperframes": "workspace:*",
|
|
25
25
|
"@hypit/markup": "workspace:*",
|
|
26
26
|
"@hypit/media-track-studio": "workspace:*",
|
|
27
|
-
"@hypit/narrative": "workspace:*",
|
|
28
27
|
"@hypit/package-loader-node": "workspace:*",
|
|
28
|
+
"@hypit/performance-studio": "workspace:*",
|
|
29
|
+
"@hypit/sound-studio": "workspace:*",
|
|
29
30
|
"@hypit/program-space": "workspace:*",
|
|
31
|
+
"@hypit/project-context-node": "workspace:*",
|
|
30
32
|
"@hypit/protocol": "workspace:*",
|
|
31
33
|
"@hypit/ranking-studio": "workspace:*",
|
|
32
34
|
"@hypit/run": "workspace:*",
|
|
33
35
|
"@hypit/runtime": "workspace:*",
|
|
34
36
|
"@hypit/runtime-host-node": "workspace:*",
|
|
35
|
-
"@hypit/script-studio": "workspace:*",
|
|
36
37
|
"@hypit/screen-overlay-studio": "workspace:*",
|
|
38
|
+
"@hypit/script-studio": "workspace:*",
|
|
37
39
|
"@hypit/speech": "workspace:*",
|
|
38
|
-
"@hypit/
|
|
40
|
+
"@hypit/studio-adapter": "workspace:*",
|
|
39
41
|
"@hypit/svs": "workspace:*",
|
|
40
42
|
"@hypit/temporal": "workspace:*",
|
|
41
|
-
"@hypit/
|
|
42
|
-
"@hypit/speech-track-studio": "workspace:*",
|
|
43
|
+
"@hypit/timeline": "workspace:*",
|
|
43
44
|
"@hypit/typography-track-studio": "workspace:*",
|
|
44
45
|
"@hypit/validation": "workspace:*",
|
|
45
46
|
"@hypit/video-cli": "workspace:*",
|
|
@@ -33,7 +33,7 @@ export type StudioDomain = {
|
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
35
|
* Assemble Studio from the same recursive package selection as the official CLI.
|
|
36
|
-
* The application
|
|
36
|
+
* The application assembles the video-domain view; selected packages contribute Studio Companions through host facets.
|
|
37
37
|
*/
|
|
38
38
|
export async function loadStudioDomain(input: {
|
|
39
39
|
readonly run: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { StudioTrackCompanion, StudioTrackCompanionContext, StudioEntityDraft } from "@hypit/studio-adapter";
|
|
2
2
|
import { artifactPreview, previewLayer, temporalLineageFor, temporalSemanticSource } from "@hypit/studio-adapter";
|
|
3
3
|
import { compositionTypes } from "@hypit/composition";
|
|
4
|
-
import {
|
|
4
|
+
import { timelineTypes } from "@hypit/timeline";
|
|
5
5
|
|
|
6
6
|
type TerminalVisualTrack = {
|
|
7
7
|
readonly presents?: readonly {
|
|
@@ -79,8 +79,8 @@ function projectTerminalAudio(context: StudioTrackCompanionContext): readonly St
|
|
|
79
79
|
/** Cross-domain terminal protocols understood even when no Companion is installed. */
|
|
80
80
|
export const fallbackStudioTrackCompanions: readonly StudioTrackCompanion[] = [
|
|
81
81
|
{
|
|
82
|
-
id: "@hypit/studio#
|
|
83
|
-
family: "semantic", tone: "teal", label: "
|
|
82
|
+
id: "@hypit/studio#timeline", role: "timeline", output: { type: timelineTypes.track },
|
|
83
|
+
family: "semantic", tone: "teal", label: "Timeline", icon: "brand",
|
|
84
84
|
lane: { heightPx: 45 },
|
|
85
85
|
},
|
|
86
86
|
{
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { watch } from "node:fs";
|
|
2
|
+
import { relative } from "node:path";
|
|
3
|
+
import type { Plugin } from "vite";
|
|
4
|
+
import { createFeedbackStore, FeedbackConflict } from "./feedback-store.js";
|
|
5
|
+
import { readFeedbackMutation } from "./feedback.js";
|
|
6
|
+
import type { FeedbackDocument, FeedbackView } from "./feedback.js";
|
|
7
|
+
|
|
8
|
+
/** Review storage is separate from compilation, Results and Agent delivery. */
|
|
9
|
+
export function studioFeedbackPlugin(workspaceRoot: string, runPath: string): Plugin {
|
|
10
|
+
const store = createFeedbackStore(workspaceRoot);
|
|
11
|
+
const run = relative(workspaceRoot, runPath).replaceAll("\\", "/");
|
|
12
|
+
const view = (document: FeedbackDocument): FeedbackView => ({
|
|
13
|
+
file: "FEEDBACK.json", run, comments: document.comments.filter((comment) => comment.run === run),
|
|
14
|
+
});
|
|
15
|
+
return {
|
|
16
|
+
name: "hypit-studio-feedback",
|
|
17
|
+
configureServer(server) {
|
|
18
|
+
const watcher = watch(workspaceRoot, (_event, filename) => {
|
|
19
|
+
if (filename === null || filename.toString() === "FEEDBACK.json") {
|
|
20
|
+
server.ws.send({ type: "custom", event: "studio:feedback-changed", data: {} });
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
server.httpServer?.once("close", () => watcher.close());
|
|
24
|
+
server.middlewares.use((request, response, next) => {
|
|
25
|
+
if (new URL(request.url ?? "/", "http://studio.hypit.local").pathname !== "/__studio/feedback") return next();
|
|
26
|
+
response.setHeader("content-type", "application/json; charset=utf-8");
|
|
27
|
+
response.setHeader("cache-control", "no-store");
|
|
28
|
+
void (async () => {
|
|
29
|
+
try {
|
|
30
|
+
if (request.method === "GET") {
|
|
31
|
+
response.end(JSON.stringify(view(await store.read())));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (request.method !== "POST") { response.statusCode = 405; response.end(); return; }
|
|
35
|
+
const chunks: Buffer[] = [];
|
|
36
|
+
for await (const chunk of request) chunks.push(Buffer.from(chunk));
|
|
37
|
+
const mutation = readFeedbackMutation(JSON.parse(Buffer.concat(chunks).toString("utf8")));
|
|
38
|
+
const comment = mutation.type === "delete" ? mutation.before : mutation.comment;
|
|
39
|
+
if (comment.run !== run) throw new Error("The comment belongs to another Run.");
|
|
40
|
+
const result = view(await store.mutate(mutation));
|
|
41
|
+
response.end(JSON.stringify(result));
|
|
42
|
+
server.ws.send({ type: "custom", event: "studio:feedback-changed", data: {} });
|
|
43
|
+
} catch (error) {
|
|
44
|
+
response.statusCode = error instanceof FeedbackConflict ? 409 : 400;
|
|
45
|
+
response.end(JSON.stringify({ error: error instanceof Error ? error.message : String(error) }));
|
|
46
|
+
}
|
|
47
|
+
})();
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { isDeepStrictEqual } from "node:util";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
3
|
+
import { readFile, rename, unlink, writeFile } from "node:fs/promises";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { readFeedbackDocument } from "./feedback.js";
|
|
6
|
+
import type { FeedbackDocument, FeedbackMutation } from "./feedback.js";
|
|
7
|
+
|
|
8
|
+
export class FeedbackConflict extends Error {}
|
|
9
|
+
|
|
10
|
+
/** The file is authoritative; every operation reads it afresh and edits one note. */
|
|
11
|
+
export function createFeedbackStore(workspaceRoot: string) {
|
|
12
|
+
const path = join(workspaceRoot, "FEEDBACK.json");
|
|
13
|
+
let pending: Promise<unknown> = Promise.resolve();
|
|
14
|
+
const readText = async (): Promise<string | undefined> => {
|
|
15
|
+
try { return await readFile(path, "utf8"); }
|
|
16
|
+
catch (error) {
|
|
17
|
+
if ((error as NodeJS.ErrnoException).code === "ENOENT") return undefined;
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const decode = (text: string | undefined): FeedbackDocument => text === undefined
|
|
22
|
+
? { comments: [] } : readFeedbackDocument(JSON.parse(text));
|
|
23
|
+
|
|
24
|
+
const apply = async (mutation: FeedbackMutation): Promise<FeedbackDocument> => {
|
|
25
|
+
const previous = await readText();
|
|
26
|
+
const document = decode(previous);
|
|
27
|
+
const comments = [...document.comments];
|
|
28
|
+
if (mutation.type === "add") {
|
|
29
|
+
if (comments.some((comment) => comment.id === mutation.comment.id)) throw new FeedbackConflict("This comment already exists.");
|
|
30
|
+
comments.push(mutation.comment);
|
|
31
|
+
} else {
|
|
32
|
+
const index = comments.findIndex((comment) => comment.id === mutation.before.id);
|
|
33
|
+
if (index < 0 || !isDeepStrictEqual(comments[index], mutation.before)) {
|
|
34
|
+
throw new FeedbackConflict("This comment changed outside this view. Your unsaved text is kept in the editor; reopen the comment to edit its latest version.");
|
|
35
|
+
}
|
|
36
|
+
if (mutation.type === "delete") comments.splice(index, 1);
|
|
37
|
+
else {
|
|
38
|
+
if (mutation.comment.id !== mutation.before.id || mutation.comment.run !== mutation.before.run) {
|
|
39
|
+
throw new Error("Editing a comment preserves its id and Run.");
|
|
40
|
+
}
|
|
41
|
+
comments[index] = mutation.comment;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const next = { ...document, comments };
|
|
45
|
+
const temporary = join(workspaceRoot, `.FEEDBACK.${randomUUID()}.tmp`);
|
|
46
|
+
try {
|
|
47
|
+
await writeFile(temporary, `${JSON.stringify(next, null, 2)}\n`, { encoding: "utf8", flag: "wx" });
|
|
48
|
+
if (await readText() !== previous) throw new FeedbackConflict("FEEDBACK.json changed while saving. Your draft is kept; please try again.");
|
|
49
|
+
await rename(temporary, path);
|
|
50
|
+
} finally {
|
|
51
|
+
await unlink(temporary).catch((error: NodeJS.ErrnoException) => { if (error.code !== "ENOENT") throw error; });
|
|
52
|
+
}
|
|
53
|
+
return next;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
path,
|
|
58
|
+
read: async (): Promise<FeedbackDocument> => decode(await readText()),
|
|
59
|
+
mutate(mutation: FeedbackMutation): Promise<FeedbackDocument> {
|
|
60
|
+
// Serialize browser submissions, without keeping a second copy of the document.
|
|
61
|
+
const result = pending.then(() => apply(mutation));
|
|
62
|
+
pending = result.catch(() => undefined);
|
|
63
|
+
return result;
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/** Project-owned review notes. Times are seconds in the reviewed Run. */
|
|
2
|
+
export type FeedbackComment = {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly run: string;
|
|
5
|
+
readonly at: number;
|
|
6
|
+
readonly text: string;
|
|
7
|
+
readonly resolved?: boolean;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export type FeedbackDocument = { readonly comments: readonly FeedbackComment[] };
|
|
11
|
+
export type FeedbackView = FeedbackDocument & { readonly file: string; readonly run: string };
|
|
12
|
+
export type FeedbackMutation =
|
|
13
|
+
| { readonly type: "add"; readonly comment: FeedbackComment }
|
|
14
|
+
| { readonly type: "replace"; readonly before: FeedbackComment; readonly comment: FeedbackComment }
|
|
15
|
+
| { readonly type: "delete"; readonly before: FeedbackComment };
|
|
16
|
+
|
|
17
|
+
function record(value: unknown): value is Record<string, unknown> {
|
|
18
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function nonempty(value: unknown): value is string {
|
|
22
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function time(value: unknown): value is number {
|
|
26
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function readFeedbackComment(value: unknown): FeedbackComment {
|
|
30
|
+
if (!record(value) || !nonempty(value.id) || !nonempty(value.run) || !nonempty(value.text) || !time(value.at)) {
|
|
31
|
+
throw new Error("Each comment needs an id, run, non-empty text and a non-negative time in seconds.");
|
|
32
|
+
}
|
|
33
|
+
if (value.resolved !== undefined && typeof value.resolved !== "boolean") throw new Error("Comment resolved must be true or false.");
|
|
34
|
+
// Preserve any project-added fields when Studio edits this document.
|
|
35
|
+
return value as FeedbackComment;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function readFeedbackDocument(value: unknown): FeedbackDocument {
|
|
39
|
+
if (!record(value) || !Array.isArray(value.comments)) throw new Error("FEEDBACK.json needs a comments array.");
|
|
40
|
+
const ids = new Set<string>();
|
|
41
|
+
for (const entry of value.comments) {
|
|
42
|
+
const comment = readFeedbackComment(entry);
|
|
43
|
+
if (ids.has(comment.id)) throw new Error(`Duplicate comment id: ${comment.id}`);
|
|
44
|
+
ids.add(comment.id);
|
|
45
|
+
}
|
|
46
|
+
return value as FeedbackDocument;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function readFeedbackMutation(value: unknown): FeedbackMutation {
|
|
50
|
+
if (!record(value)) throw new Error("Expected a comment operation.");
|
|
51
|
+
if (value.type === "add") return { type: "add", comment: readFeedbackComment(value.comment) };
|
|
52
|
+
if (value.type === "delete") return { type: "delete", before: readFeedbackComment(value.before) };
|
|
53
|
+
if (value.type === "replace") return { type: "replace", before: readFeedbackComment(value.before), comment: readFeedbackComment(value.comment) };
|
|
54
|
+
throw new Error("Unknown comment operation.");
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function feedbackClock(seconds: number): string {
|
|
58
|
+
const ticks = Math.round(seconds * 100);
|
|
59
|
+
return `${String(Math.floor(ticks / 6000)).padStart(2, "0")}:${String(Math.floor(ticks / 100) % 60).padStart(2, "0")}.${String(ticks % 100).padStart(2, "0")}`;
|
|
60
|
+
}
|