@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
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
"@hypit/composition": "workspace:*",
|
|
16
16
|
"@hypit/narrative": "workspace:*",
|
|
17
17
|
"@hypit/studio-adapter": "workspace:*",
|
|
18
|
-
"@hypit/fonts-open": "workspace:*"
|
|
18
|
+
"@hypit/fonts-open": "workspace:*",
|
|
19
|
+
"@hypit/caption": "workspace:*",
|
|
20
|
+
"@hypit/timeline": "workspace:*"
|
|
19
21
|
}
|
|
20
22
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { captionFineStudioTrackCompanions } from "./index.js";
|
|
1
|
+
import { createStudioCompanionHostFacet } from "@hypit/studio-adapter";
|
|
2
|
+
import { captionFineStudioTrackCompanions, captionFineStudioParameterCompanions } from "./index.js";
|
|
3
3
|
|
|
4
4
|
export default {
|
|
5
5
|
format: "hypit.node-package@1" as const,
|
|
6
|
-
hostFacets: [
|
|
6
|
+
hostFacets: [createStudioCompanionHostFacet({ tracks: captionFineStudioTrackCompanions, parameters: captionFineStudioParameterCompanions })],
|
|
7
7
|
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { temporalTypes } from "@hypit/temporal";
|
|
2
|
+
import type { CaptionProgram, TimedCaptionProjection } from "@hypit/caption";
|
|
1
3
|
import { openFontStudioFields } from "@hypit/fonts-open/studio";
|
|
2
|
-
import { captionFineMarkupSurfaces, captionFineModuleRef } from "@hypit/caption-fine";
|
|
4
|
+
import { fineCaptionEditableDefaults, captionFineMarkupSurfaces, captionFineModuleRef } from "@hypit/caption-fine";
|
|
3
5
|
import type { FineCaptionSchedule } from "@hypit/caption-fine";
|
|
4
6
|
import { compositionTypes } from "@hypit/composition";
|
|
5
7
|
import { narrativeTypes } from "@hypit/narrative";
|
|
@@ -10,11 +12,11 @@ import type {
|
|
|
10
12
|
StudioEntityDraft,
|
|
11
13
|
StudioInspectorFieldDeclaration,
|
|
12
14
|
} from "@hypit/studio-adapter";
|
|
13
|
-
import { requiredReferencedValue, requiredSurfaceValue
|
|
15
|
+
import { authoredChildFor, temporalLineageFor, temporalSemanticSource, requiredReferencedValue, requiredSurfaceValue } from "@hypit/studio-adapter";
|
|
14
16
|
|
|
15
17
|
const styleSurface = captionFineMarkupSurfaces.find((surface) => surface.name === "style");
|
|
16
18
|
|
|
17
|
-
const fontInspector = openFontStudioFields("
|
|
19
|
+
const fontInspector = openFontStudioFields("style");
|
|
18
20
|
|
|
19
21
|
const recipeVocabulary = styleSurface?.vocabulary.attributes
|
|
20
22
|
.find((attribute) => attribute.name === "recipe")?.recipe ?? [];
|
|
@@ -95,7 +97,7 @@ export const captionFineInspectorFields: readonly StudioInspectorFieldDeclaratio
|
|
|
95
97
|
if (placement === undefined) throw new Error(`Caption Studio has no explicit Inspector declaration for ${property.name}.`);
|
|
96
98
|
const options = valuesFor(property);
|
|
97
99
|
return {
|
|
98
|
-
binding: `
|
|
100
|
+
binding: `style.${property.name}`,
|
|
99
101
|
label: title(property.name),
|
|
100
102
|
...placement,
|
|
101
103
|
summary: property.summary,
|
|
@@ -118,39 +120,40 @@ function cueText(document: CaptionDocument | undefined, unitIds: readonly string
|
|
|
118
120
|
.trim();
|
|
119
121
|
}
|
|
120
122
|
|
|
121
|
-
function
|
|
123
|
+
export function projectCaptionContents(context: StudioTrackCompanionContext): readonly StudioEntityDraft[] {
|
|
124
|
+
const content = requiredSurfaceValue(context, "content") as TimedCaptionProjection;
|
|
122
125
|
const schedule = requiredSurfaceValue(context, "schedule") as FineCaptionSchedule;
|
|
123
126
|
const document = requiredReferencedValue(context, "document", narrativeTypes.captionDocument) as CaptionDocument;
|
|
124
|
-
if (document.id !==
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
127
|
+
if (document.id !== content.documentId) throw new Error("Caption content belongs to another CaptionDocument.");
|
|
128
|
+
return content.cues.map((cue, index): StudioEntityDraft => ({
|
|
129
|
+
id: `${context.track.outputRef}:cue:${cue.id}`, authoredId: cue.id,
|
|
130
|
+
display: { title: `#${index + 1}`, layers: [{ kind: "text", role: "content", text: cueText(document, cue.units.map(unit => unit.unitId)) }] },
|
|
131
|
+
startFrame: cue.startFrame, endFrameExclusive: cue.endFrameExclusive, stackOrder: 0,
|
|
132
|
+
renderIds: schedule.cues.filter(item => item.cueId === cue.id).map(item => item.id),
|
|
133
|
+
presentation: { entity: "caption-cue", chrome: "standard" },
|
|
134
|
+
inspector: [{ id: "range", label: "Range", domain: "when", section: { id: "cue", label: "Cue" }, value: `${cue.startFrame}–${cue.endFrameExclusive}`, unit: "f" }],
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export function projectCaption(context: StudioTrackCompanionContext): readonly StudioEntityDraft[] {
|
|
139
|
+
const program = requiredSurfaceValue(context, "program") as CaptionProgram;
|
|
140
|
+
const uses: StudioEntityDraft[] = program.uses.map((use, index) => {
|
|
141
|
+
const authoredId = use.window.subjectId;
|
|
142
|
+
const child = authoredChildFor(context, authoredId, [temporalTypes.windowSpec]);
|
|
143
|
+
if (child === undefined) throw new Error(`Caption Use ${authoredId} has no author provenance.`);
|
|
144
|
+
const temporal = temporalLineageFor(context, authoredId, "window");
|
|
145
|
+
const semantic = temporalSemanticSource(temporal);
|
|
131
146
|
return {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
presentId: cue.id,
|
|
140
|
-
renderIds: [cue.id],
|
|
141
|
-
}),
|
|
142
|
-
authoredId,
|
|
143
|
-
...(context.placement === undefined ? {} : { elementRange: context.placement.range }),
|
|
144
|
-
display: {
|
|
145
|
-
title: "Caption",
|
|
146
|
-
layers: label.length === 0 ? [] : [textLayer(label)],
|
|
147
|
-
},
|
|
148
|
-
startFrame: cue.visibleStartFrame,
|
|
149
|
-
endFrameExclusive: cue.visibleEndFrameExclusive,
|
|
150
|
-
presentation: { entity: "caption-cue", chrome: "standard" },
|
|
151
|
-
parameterReferences: { program: cue.styleId },
|
|
147
|
+
id: `${context.track.outputRef}:use:${authoredId}`, authoredId,
|
|
148
|
+
display: { title: use.styleId, layers: [] },
|
|
149
|
+
...use.window.span, stackOrder: index, elementRange: child.range,
|
|
150
|
+
...(temporal === undefined ? {} : { temporal }),
|
|
151
|
+
...(semantic === undefined ? {} : { markerId: semantic.id }),
|
|
152
|
+
presentation: { entity: "caption-use", chrome: "standard" }, band: "uses",
|
|
153
|
+
inspector: [{ id: "range", label: "Range", domain: "when", section: { id: "placement", label: "Placement" }, value: `${use.window.span.startFrame}–${use.window.span.endFrameExclusive}`, unit: "f" }],
|
|
152
154
|
};
|
|
153
155
|
});
|
|
156
|
+
return [...projectCaptionContents(context), ...uses];
|
|
154
157
|
}
|
|
155
158
|
|
|
156
159
|
export const captionFineStudioTrackCompanions: readonly StudioTrackCompanion[] = [
|
|
@@ -158,15 +161,24 @@ export const captionFineStudioTrackCompanions: readonly StudioTrackCompanion[] =
|
|
|
158
161
|
id: "track", role: "track",
|
|
159
162
|
output: { type: compositionTypes.visualTrack, surface: "track", modules: [captionFineModuleRef] },
|
|
160
163
|
family: "caption", tone: "magenta", icon: "captions",
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
],
|
|
168
|
-
|
|
169
|
-
requiredValues: ["schedule"], project: projectCaption,
|
|
170
|
-
lane: { heightPx: 48 },
|
|
164
|
+
lane: { heightPx: 36 },
|
|
165
|
+
bands: [{
|
|
166
|
+
id: "uses", placement: "after", heightPx: 15, display: "label",
|
|
167
|
+
bindings: [{ name: "style", companion: true }],
|
|
168
|
+
inspector: [{ binding: "style", label: "Style", domain: "how", section: { id: "style", label: "Style" }, control: "text" }],
|
|
169
|
+
}],
|
|
170
|
+
requiredValues: ["content", "schedule", "program"], project: projectCaption,
|
|
171
|
+
|
|
171
172
|
},
|
|
172
173
|
];
|
|
174
|
+
|
|
175
|
+
export const captionFineStudioParameterCompanions: readonly import("@hypit/studio-adapter").StudioParameterCompanion[] = [{
|
|
176
|
+
id: "style", match: { module: captionFineModuleRef, surface: "style" },
|
|
177
|
+
bindings: [fontInspector.binding, { name: "recipe", recipe: { bindings: recipeVocabulary.map(({ name }) => ({ name,
|
|
178
|
+
...(Object.hasOwn(fineCaptionEditableDefaults, name) ? { fallback: fineCaptionEditableDefaults[name as keyof typeof fineCaptionEditableDefaults] } : {}),
|
|
179
|
+
})) } }],
|
|
180
|
+
inspector: [
|
|
181
|
+
...fontInspector.fields.map(field => ({ ...field, binding: field.binding.replace(/^style\./u, "") })),
|
|
182
|
+
...captionFineInspectorFields.map(field => ({ ...field, binding: field.binding.replace(/^style\./u, "recipe.") })),
|
|
183
|
+
],
|
|
184
|
+
}];
|
package/packages/cli/README.md
CHANGED
|
@@ -11,9 +11,37 @@ Source imports decide which language and component packages give the source mean
|
|
|
11
11
|
Profile separately selects Credential Stores and Endpoints allowed to execute work. The CLI does not
|
|
12
12
|
invent targets, candidates or Provider choices.
|
|
13
13
|
|
|
14
|
-
Human
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
Human and JSON output answer the same command-specific question. `--json` changes encoding;
|
|
15
|
+
`--verbose` expands scope. Compiler, Runtime and Repository objects are not default reports.
|
|
16
|
+
|
|
17
|
+
| Command | Default scope | Explicit detail |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| `check` | Validation, targets and counts | `--verbose`: exported names/types and historical references |
|
|
20
|
+
| `plan` | Targets, demanded requests, Endpoint selection and diagnostics | `--verbose`: Run choices, graph step count and unreached declarations |
|
|
21
|
+
| `pricing` | Requests that may incur a Provider charge and their rate material | `--verbose`: declared no-charge requests and original documents |
|
|
22
|
+
| `status`, `activity` | Current work, Provider-reported phases and failures | `--verbose`: individual operations; activity also includes capacity reservations |
|
|
23
|
+
| `inspect` | Targets and explicitly highlighted Outputs, outcome and failure evidence | `--output <name>` selects one Output; `--verbose` browses all available Outputs and receipts |
|
|
24
|
+
| `doctor`, `programs` | Complete diagnostics; program discovery or the unmet result of an explicit lifecycle action | `--verbose`: successful lifecycle details; `--limit` bounds the healthy program list |
|
|
25
|
+
|
|
26
|
+
Run choices count explicit Candidate selections, which can supply existing work or execute an
|
|
27
|
+
alternative producer. They are not a count of reused files. Result output counts describe all
|
|
28
|
+
available named Outputs, including forwarded ones; they are not a count of newly generated assets.
|
|
29
|
+
`history <output>` lists Builds containing that name, including reuse, rather than deduplicating
|
|
30
|
+
generation events or guessing whether mutable external files still contain the same bytes.
|
|
31
|
+
`inspect` chooses names before resolving references, so an unrelated Output cannot delay or break
|
|
32
|
+
inspection of a target. It reports the number of other Outputs without reading their descriptions.
|
|
33
|
+
|
|
34
|
+
`plan` retains every target, demanded request and preflight diagnostic in both encodings. `--limit`
|
|
35
|
+
bounds expanded detail, not the work inventory before grouping. `inspect` likewise keeps its default
|
|
36
|
+
target/highlight selection intact; `--limit` bounds the broader `--verbose` list, with an omitted count.
|
|
37
|
+
No-charge classification continues to belong to the selected Endpoint's pricing declaration.
|
|
38
|
+
|
|
39
|
+
Build follow and status include Provider-reported local Command activity as well as asynchronous
|
|
40
|
+
Operations. Follow coalesces counters into readable updates and continues to distinguish execution
|
|
41
|
+
from Result saving. Status groups identical active Operations and retains failures by default;
|
|
42
|
+
completed receipts are detail. Activity reports the phases that trigger its updates and ignores
|
|
43
|
+
changes confined to Builds outside the displayed page. Providers own the phase vocabulary; the CLI
|
|
44
|
+
does not interpret model or renderer names.
|
|
17
45
|
|
|
18
46
|
## Project and Runtime context
|
|
19
47
|
|
|
@@ -24,7 +52,8 @@ directory, including when `--workspace` is supplied.
|
|
|
24
52
|
|
|
25
53
|
Runtime-aware commands use an explicit `--runtime` for that invocation, or read exactly the resolved
|
|
26
54
|
project's `.hypit/runtime` pointer. `runtime use` writes the pointer; a Profile filename by itself does
|
|
27
|
-
not select it.
|
|
55
|
+
not select it. The pointer is a file, separate from the Profile's `dataRoot`; a directory at that
|
|
56
|
+
path is reported explicitly and preserved. Project selection is also available on `paths`, `doctor`, execution status/control,
|
|
28
57
|
Runtime operations, `programs` and `auth`. Machine-wide `packages` operations have no project selector.
|
|
29
58
|
|
|
30
59
|
`paths` shows the effective locations and whether the Profile came from a command argument, a project
|
|
@@ -46,6 +75,9 @@ settings without searching arbitrary records for a request-shaped object. When a
|
|
|
46
75
|
made by an earlier Build step, that direct graph edge stays symbolic until the file exists; the rest
|
|
47
76
|
of the request is still shown. A complete request is resolved through the same Endpoint Registry as
|
|
48
77
|
the Build, including the Endpoint's `supports` check.
|
|
78
|
+
Each component's planned-Need presentation owns its useful request fields. An empty presentation
|
|
79
|
+
means the summary is unavailable, not that the request has no parameters. Structured render inputs
|
|
80
|
+
are summarized by their owning packages; the CLI does not traverse upstream graphs to invent them.
|
|
49
81
|
|
|
50
82
|
`pricing <run>` uses that selected Runtime to read Provider-owned rate material. The default report
|
|
51
83
|
summarizes requests whose resolved Endpoint explicitly declares `pricing.kind: "local"` as having no
|
|
@@ -74,3 +106,24 @@ machine-view union. `main.ts` resolves project and selected Runtime context sepa
|
|
|
74
106
|
syntax, then routes these command groups. Result commands do not consult or construct a Runtime,
|
|
75
107
|
and the generic CLI cannot silently choose a Result Repository or a Provider-specific login
|
|
76
108
|
flow.
|
|
109
|
+
|
|
110
|
+
## Execution logs
|
|
111
|
+
|
|
112
|
+
`hypit logs <build-id> [--workspace <project>] [--runtime <profile>] [--lines <count>]` reads Build
|
|
113
|
+
execution phases and Provider diagnostics. It reads a finished Result directly, without opening the
|
|
114
|
+
Runtime; an active Build is read through Runtime control. The selected Repository handles file access.
|
|
115
|
+
`--lines` limits the tail and the report states the omitted count; JSON carries records plus that count.
|
|
116
|
+
`inspect` exposes an available log separately from authored Outputs. `hypit runtime logs` reads the
|
|
117
|
+
Worker process log instead, for Runtime startup or process-level failures.
|
|
118
|
+
|
|
119
|
+
Project context resolution is owned by [`@hypit/project-context-node`](../project-context-node/README.md).
|
|
120
|
+
CLI, Studio and creation tools call that same package; the CLI is not another environment owner.
|
|
121
|
+
|
|
122
|
+
`doctor`, `programs up|status|down`, and `runtime up` accept repeated `--endpoint <instance>` values.
|
|
123
|
+
The same Endpoint scope reaches package preparation and Program operations. Omission means the whole
|
|
124
|
+
Profile. Build preflight instead uses the Endpoints resolved for that Build's concrete requests.
|
|
125
|
+
An unrelated offered capability does not add another credential or Program requirement.
|
|
126
|
+
|
|
127
|
+
Upstream package installation reports an `install.log` path at preparation time. Exact package
|
|
128
|
+
releases coexist below the machine home, each with npm's own package.json and lockfile. `paths` shows
|
|
129
|
+
the home; `packages status <name@version>` checks the requested release rather than a mutable latest copy.
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"@hypit/driver-node": "workspace:*",
|
|
17
17
|
"@hypit/elaborator": "workspace:*",
|
|
18
18
|
"@hypit/package-loader-node": "workspace:*",
|
|
19
|
+
"@hypit/project-context-node": "workspace:*",
|
|
19
20
|
"@hypit/protocol": "workspace:*",
|
|
20
21
|
"@hypit/run": "workspace:*",
|
|
21
22
|
"@hypit/runtime": "workspace:*",
|
|
@@ -18,6 +18,7 @@ type RawOptions = {
|
|
|
18
18
|
readonly presentation: CliOutputOptions;
|
|
19
19
|
readonly workspaceRoot?: string;
|
|
20
20
|
readonly assetRoots: readonly string[];
|
|
21
|
+
readonly endpoints: readonly string[];
|
|
21
22
|
readonly packageRoot?: string;
|
|
22
23
|
readonly runtimeProfile?: string;
|
|
23
24
|
readonly follow: boolean;
|
|
@@ -36,6 +37,7 @@ type RawOptions = {
|
|
|
36
37
|
readonly watch: boolean;
|
|
37
38
|
readonly readyFile?: string;
|
|
38
39
|
readonly workerOwner?: string;
|
|
40
|
+
readonly executionRoot?: string;
|
|
39
41
|
readonly reason?: string;
|
|
40
42
|
readonly slot?: string;
|
|
41
43
|
readonly credentialFile?: string;
|
|
@@ -155,6 +157,12 @@ export function parseCommand(argv: readonly string[]): CliCommand {
|
|
|
155
157
|
...optionalProject(options),
|
|
156
158
|
};
|
|
157
159
|
}
|
|
160
|
+
case "logs": {
|
|
161
|
+
const [build, rest] = requiredPositional(tail, "logs requires one Build id");
|
|
162
|
+
const options = commandOptions(command, rest, "--runtime", "--workspace", "--lines");
|
|
163
|
+
return { command, build, lines: options.lines, presentation: options.presentation,
|
|
164
|
+
...optionalProject(options), ...optionalRuntime(options) };
|
|
165
|
+
}
|
|
158
166
|
case "status": {
|
|
159
167
|
const [build, rest] = requiredPositional(tail, "status requires one Build id");
|
|
160
168
|
const options = commandOptions(command, rest, "--runtime", "--workspace", "--watch", "--max-wait-ms", "--limit");
|
|
@@ -205,12 +213,13 @@ export function parseCommand(argv: readonly string[]): CliCommand {
|
|
|
205
213
|
case "auth": return parseAuthCommand(tail);
|
|
206
214
|
case "doctor": {
|
|
207
215
|
const [profile, rest] = optionalPositional(tail);
|
|
208
|
-
const options = commandOptions(command, rest, "--workspace", "--runtime", "--limit");
|
|
216
|
+
const options = commandOptions(command, rest, "--workspace", "--runtime", "--limit", "--endpoint");
|
|
209
217
|
if (profile !== undefined && options.runtimeProfile !== undefined) {
|
|
210
218
|
throw new Error("doctor accepts the Runtime Profile either positionally or with --runtime, not both");
|
|
211
219
|
}
|
|
212
220
|
return {
|
|
213
221
|
command,
|
|
222
|
+
...(options.endpoints.length === 0 ? {} : { endpoints: options.endpoints }),
|
|
214
223
|
presentation: options.presentation,
|
|
215
224
|
limit: options.limit,
|
|
216
225
|
...optionalProject(options),
|
|
@@ -223,7 +232,7 @@ export function parseCommand(argv: readonly string[]): CliCommand {
|
|
|
223
232
|
}
|
|
224
233
|
case "_worker": {
|
|
225
234
|
const [profile, rest] = requiredPositional(tail, "internal Worker launch is incomplete");
|
|
226
|
-
const options = commandOptions(command, rest, "--ready-file", "--worker-owner", "--package-root");
|
|
235
|
+
const options = commandOptions(command, rest, "--ready-file", "--worker-owner", "--package-root", "--execution-root");
|
|
227
236
|
if (options.readyFile === undefined || options.workerOwner === undefined) {
|
|
228
237
|
throw new Error("internal Worker launch is incomplete");
|
|
229
238
|
}
|
|
@@ -232,6 +241,7 @@ export function parseCommand(argv: readonly string[]): CliCommand {
|
|
|
232
241
|
profile,
|
|
233
242
|
readyFile: options.readyFile,
|
|
234
243
|
workerOwner: options.workerOwner,
|
|
244
|
+
...(options.executionRoot === undefined ? {} : { executionRoot: options.executionRoot }),
|
|
235
245
|
presentation: options.presentation,
|
|
236
246
|
...optionalPackageRoot(options),
|
|
237
247
|
};
|
|
@@ -305,7 +315,7 @@ function parseRuntimeCommand(tail: readonly string[]): RuntimeSelectionCommand |
|
|
|
305
315
|
}
|
|
306
316
|
const [profile, rest] = optionalPositional(values);
|
|
307
317
|
const allowed = action === "up" || action === "down"
|
|
308
|
-
? ["--runtime", "--max-wait-ms"] as const
|
|
318
|
+
? action === "up" ? ["--runtime", "--max-wait-ms", "--endpoint"] as const : ["--runtime", "--max-wait-ms"] as const
|
|
309
319
|
: action === "status"
|
|
310
320
|
? ["--runtime", "--limit"] as const
|
|
311
321
|
: ["--runtime", "--lines"] as const;
|
|
@@ -320,7 +330,7 @@ function parseRuntimeCommand(tail: readonly string[]): RuntimeSelectionCommand |
|
|
|
320
330
|
...optionalProject(options),
|
|
321
331
|
};
|
|
322
332
|
if (action === "up" || action === "down") {
|
|
323
|
-
return { ...common, action, ...(options.maxWaitMs === undefined ? {} : { maxWaitMs: options.maxWaitMs }) };
|
|
333
|
+
return { ...common, action, ...(action === "up" && options.endpoints.length > 0 ? { endpoints: options.endpoints } : {}), ...(options.maxWaitMs === undefined ? {} : { maxWaitMs: options.maxWaitMs }) };
|
|
324
334
|
}
|
|
325
335
|
if (action === "status") return { ...common, action, limit: options.limit };
|
|
326
336
|
return { ...common, action, lines: options.lines };
|
|
@@ -333,7 +343,7 @@ function parseProgramsCommand(tail: readonly string[]): ProgramsCommand {
|
|
|
333
343
|
}
|
|
334
344
|
const [profile, rest] = optionalPositional(values);
|
|
335
345
|
const options = commandOptions(`programs ${action}`, rest,
|
|
336
|
-
"--runtime", "--workspace", "--limit", "--max-wait-ms");
|
|
346
|
+
"--runtime", "--workspace", "--limit", "--max-wait-ms", "--endpoint");
|
|
337
347
|
if (action !== "up" && options.maxWaitMs !== undefined) {
|
|
338
348
|
throw new Error("--max-wait-ms applies to programs up");
|
|
339
349
|
}
|
|
@@ -341,6 +351,7 @@ function parseProgramsCommand(tail: readonly string[]): ProgramsCommand {
|
|
|
341
351
|
const runtime = runtimeOption(profile ?? options.runtimeProfile);
|
|
342
352
|
const common = {
|
|
343
353
|
command: "programs" as const,
|
|
354
|
+
...(options.endpoints.length === 0 ? {} : { endpoints: options.endpoints }),
|
|
344
355
|
action,
|
|
345
356
|
presentation: options.presentation,
|
|
346
357
|
limit: options.limit,
|
|
@@ -403,6 +414,7 @@ function parseOptions(values: readonly string[]): RawOptions {
|
|
|
403
414
|
let runtimeProfile: string | undefined;
|
|
404
415
|
let follow = false;
|
|
405
416
|
let maxWaitMs: number | undefined;
|
|
417
|
+
const endpoints: string[] = [];
|
|
406
418
|
let outputName: string | undefined;
|
|
407
419
|
let title: string | undefined;
|
|
408
420
|
let note: string | undefined;
|
|
@@ -421,6 +433,7 @@ function parseOptions(values: readonly string[]): RawOptions {
|
|
|
421
433
|
let watch = false;
|
|
422
434
|
let readyFile: string | undefined;
|
|
423
435
|
let workerOwner: string | undefined;
|
|
436
|
+
let executionRoot: string | undefined;
|
|
424
437
|
let reason: string | undefined;
|
|
425
438
|
let slot: string | undefined;
|
|
426
439
|
let credentialFile: string | undefined;
|
|
@@ -429,7 +442,7 @@ function parseOptions(values: readonly string[]): RawOptions {
|
|
|
429
442
|
for (let index = 0; index < values.length; index += 1) {
|
|
430
443
|
const item = values[index]!;
|
|
431
444
|
if (!item.startsWith("--")) throw new Error(`unexpected positional argument ${item}`);
|
|
432
|
-
const repeatable = [
|
|
445
|
+
const repeatable = item === "--endpoint" || [
|
|
433
446
|
"--json", "--jsonl", "--watch", "--verbose", "--debug",
|
|
434
447
|
"--no-color", "--follow", "--asset-root", "--highlight",
|
|
435
448
|
].includes(item);
|
|
@@ -450,6 +463,7 @@ function parseOptions(values: readonly string[]): RawOptions {
|
|
|
450
463
|
index += 1;
|
|
451
464
|
continue;
|
|
452
465
|
}
|
|
466
|
+
if (item === "--endpoint") { endpoints.push(optionValue(values, index, "--endpoint requires an Endpoint name")); index += 1; continue; }
|
|
453
467
|
if (item === "--workspace") {
|
|
454
468
|
workspaceRoot = resolve(optionValue(values, index, "--workspace requires a directory")); index += 1; continue;
|
|
455
469
|
}
|
|
@@ -506,6 +520,9 @@ function parseOptions(values: readonly string[]): RawOptions {
|
|
|
506
520
|
if (item === "--worker-owner") {
|
|
507
521
|
workerOwner = optionValue(values, index, "--worker-owner requires an identity"); index += 1; continue;
|
|
508
522
|
}
|
|
523
|
+
if (item === "--execution-root") {
|
|
524
|
+
executionRoot = resolve(optionValue(values, index, "--execution-root requires a path")); index += 1; continue;
|
|
525
|
+
}
|
|
509
526
|
if (item === "--reason") {
|
|
510
527
|
reason = optionValue(values, index, "--reason requires text"); index += 1; continue;
|
|
511
528
|
}
|
|
@@ -527,6 +544,7 @@ function parseOptions(values: readonly string[]): RawOptions {
|
|
|
527
544
|
presentation: { json: json || jsonl, ...(jsonl ? { jsonl: true } : {}), color, verbose },
|
|
528
545
|
assetRoots,
|
|
529
546
|
follow,
|
|
547
|
+
endpoints,
|
|
530
548
|
highlightedOutputs,
|
|
531
549
|
clearTitle,
|
|
532
550
|
clearNote,
|
|
@@ -546,6 +564,7 @@ function parseOptions(values: readonly string[]): RawOptions {
|
|
|
546
564
|
...(destination === undefined ? {} : { destination }),
|
|
547
565
|
...(readyFile === undefined ? {} : { readyFile }),
|
|
548
566
|
...(workerOwner === undefined ? {} : { workerOwner }),
|
|
567
|
+
...(executionRoot === undefined ? {} : { executionRoot }),
|
|
549
568
|
...(reason === undefined ? {} : { reason }),
|
|
550
569
|
...(slot === undefined ? {} : { slot }),
|
|
551
570
|
...(credentialFile === undefined ? {} : { credentialFile }),
|
|
@@ -421,9 +421,10 @@ export function assertPlannedRequests(
|
|
|
421
421
|
}
|
|
422
422
|
}
|
|
423
423
|
|
|
424
|
-
export async function preflightPlan(host: NodeRuntimeHost, state: BuildState) {
|
|
424
|
+
export async function preflightPlan(host: NodeRuntimeHost, state: BuildState, providers: readonly PlanProviderView[]) {
|
|
425
425
|
const capabilities = demandedCapabilities(state);
|
|
426
|
-
const
|
|
426
|
+
const endpoints = [...new Set(providers.flatMap((item) => item.status === "resolved" && item.endpoint !== undefined ? [item.endpoint] : []))];
|
|
427
|
+
const result = await host.preflight({ endpoints });
|
|
427
428
|
return {
|
|
428
429
|
ok: !result.diagnostics.some((item) => item.severity === "error"),
|
|
429
430
|
capabilities: capabilities.map(capabilityName),
|
|
@@ -72,6 +72,7 @@ export type ProjectResultCommand =
|
|
|
72
72
|
});
|
|
73
73
|
|
|
74
74
|
export type ExecutionCommand =
|
|
75
|
+
| (CommandBase & RuntimeOption & { readonly command: "logs"; readonly build: string; readonly lines: number })
|
|
75
76
|
| (CommandBase & RuntimeOption & {
|
|
76
77
|
readonly command: "status";
|
|
77
78
|
readonly build: string;
|
|
@@ -115,6 +116,7 @@ export type RuntimeOperationCommand =
|
|
|
115
116
|
| (CommandBase & RuntimeOption & {
|
|
116
117
|
readonly command: "runtime";
|
|
117
118
|
readonly action: "up";
|
|
119
|
+
readonly endpoints?: readonly string[];
|
|
118
120
|
readonly maxWaitMs?: number;
|
|
119
121
|
})
|
|
120
122
|
| (CommandBase & RuntimeOption & {
|
|
@@ -136,12 +138,14 @@ export type RuntimeOperationCommand =
|
|
|
136
138
|
export type ProgramsCommand =
|
|
137
139
|
| (CommandBase & RuntimeOption & {
|
|
138
140
|
readonly command: "programs";
|
|
141
|
+
readonly endpoints?: readonly string[];
|
|
139
142
|
readonly action: "up";
|
|
140
143
|
readonly maxWaitMs?: number;
|
|
141
144
|
readonly limit: number;
|
|
142
145
|
})
|
|
143
146
|
| (CommandBase & RuntimeOption & {
|
|
144
147
|
readonly command: "programs";
|
|
148
|
+
readonly endpoints?: readonly string[];
|
|
145
149
|
readonly action: "down" | "status";
|
|
146
150
|
readonly limit: number;
|
|
147
151
|
});
|
|
@@ -182,6 +186,7 @@ export type EnvironmentCommand =
|
|
|
182
186
|
})
|
|
183
187
|
| (CommandBase & ProjectOption & RuntimeOption & {
|
|
184
188
|
readonly command: "doctor";
|
|
189
|
+
readonly endpoints?: readonly string[];
|
|
185
190
|
readonly limit: number;
|
|
186
191
|
});
|
|
187
192
|
|
|
@@ -190,6 +195,7 @@ export type WorkerCommand = CommandBase & {
|
|
|
190
195
|
readonly profile: string;
|
|
191
196
|
readonly readyFile: string;
|
|
192
197
|
readonly workerOwner: string;
|
|
198
|
+
readonly executionRoot?: string;
|
|
193
199
|
readonly packageRoot?: string;
|
|
194
200
|
};
|
|
195
201
|
|
|
@@ -73,8 +73,8 @@ export async function runEnvironmentCommand(input: {
|
|
|
73
73
|
};
|
|
74
74
|
const reportPackageProgress = args.presentation.json
|
|
75
75
|
? undefined
|
|
76
|
-
: (event: { readonly specifier: string; readonly phase: "checking" | "installing" | "ready" }): void => {
|
|
77
|
-
if (event.phase === "installing") io.write(` · Installing ${event.specifier}\n`);
|
|
76
|
+
: (event: { readonly specifier: string; readonly phase: "checking" | "installing" | "ready"; readonly logPath?: string }): void => {
|
|
77
|
+
if (event.phase === "installing") io.write(` · Installing ${event.specifier}${event.logPath === undefined ? "" : ` · log ${event.logPath}`}\n`);
|
|
78
78
|
};
|
|
79
79
|
const reportCredentialProgress = args.presentation.json
|
|
80
80
|
? io.writeProgress
|
|
@@ -126,10 +126,13 @@ export async function runEnvironmentCommand(input: {
|
|
|
126
126
|
action: args.action,
|
|
127
127
|
package: args.package,
|
|
128
128
|
ready,
|
|
129
|
+
...(reports[0] === undefined ? {} : { installation: reports[0].root }),
|
|
130
|
+
...(reports[0]?.logPath === undefined ? {} : { logPath: reports[0].logPath }),
|
|
129
131
|
}, args.action === "install" ? "Machine package is ready" : "Machine package status",
|
|
130
132
|
ready ? "success" : "warning", [
|
|
131
133
|
["Package", args.package],
|
|
132
134
|
["Ready", String(ready)],
|
|
135
|
+
...(args.presentation.verbose && reports[0] !== undefined ? [["Installation", reports[0].root] as const] : []),
|
|
133
136
|
]);
|
|
134
137
|
if (!ready) io.setExitCode?.(1);
|
|
135
138
|
return;
|
|
@@ -138,7 +141,7 @@ export async function runEnvironmentCommand(input: {
|
|
|
138
141
|
if (args.command === "doctor") {
|
|
139
142
|
const profile = runtimeProfile === undefined ? undefined : resolve(runtimeProfile);
|
|
140
143
|
const [runtimeResult, projectResult] = await Promise.all([
|
|
141
|
-
profile === undefined ? undefined : (await runtimeHost(profile)).doctor(),
|
|
144
|
+
profile === undefined ? undefined : (await runtimeHost(profile)).doctor(args.endpoints === undefined ? {} : { endpoints: args.endpoints }),
|
|
142
145
|
distribution.diagnoseProjectResults(projectRoot, {
|
|
143
146
|
packageRoot: await packageRootForProject(),
|
|
144
147
|
...(distribution.packageRoot === undefined
|
|
@@ -155,8 +158,7 @@ export async function runEnvironmentCommand(input: {
|
|
|
155
158
|
...(runtimeSelectionFile === undefined ? {} : { selectionFile: runtimeSelectionFile }),
|
|
156
159
|
...(profile === undefined ? {} : { profile }),
|
|
157
160
|
diagnosticCount: diagnostics.length,
|
|
158
|
-
diagnostics
|
|
159
|
-
...(diagnostics.length <= args.limit ? {} : { omittedDiagnostics: diagnostics.length - args.limit }),
|
|
161
|
+
diagnostics,
|
|
160
162
|
};
|
|
161
163
|
writeCliOutput(io, args.presentation, { kind: "doctor", machine });
|
|
162
164
|
if (!machine.ok) io.setExitCode?.(1);
|
|
@@ -168,21 +170,27 @@ export async function runEnvironmentCommand(input: {
|
|
|
168
170
|
const profile = resolve(runtimeProfile);
|
|
169
171
|
const host = await runtimeHost(profile);
|
|
170
172
|
if (args.action === "up") {
|
|
171
|
-
await host.prepare(reportPackageProgress === undefined ? {} : { onProgress: reportPackageProgress });
|
|
173
|
+
await host.prepare({ ...(args.endpoints === undefined ? {} : { endpoints: args.endpoints }), ...(reportPackageProgress === undefined ? {} : { onProgress: reportPackageProgress }) });
|
|
172
174
|
}
|
|
173
175
|
const controller = await runtimeController(profile);
|
|
174
176
|
const result = args.action === "up"
|
|
175
177
|
? await controller.programs.up({
|
|
178
|
+
...(args.endpoints === undefined ? {} : { endpoints: args.endpoints }),
|
|
176
179
|
...(args.maxWaitMs === undefined ? {} : { maxWaitMs: args.maxWaitMs }),
|
|
177
180
|
...(reportProgramProgress === undefined ? {} : { onProgress: reportProgramProgress }),
|
|
178
181
|
})
|
|
179
182
|
: args.action === "down"
|
|
180
|
-
? await controller.programs.down()
|
|
181
|
-
: await controller.programs.report();
|
|
183
|
+
? await controller.programs.down(args.endpoints === undefined ? {} : { endpoints: args.endpoints })
|
|
184
|
+
: await controller.programs.report(args.endpoints === undefined ? {} : { endpoints: args.endpoints });
|
|
182
185
|
const ready = result.programs.every((item) => item.state.state === "ready");
|
|
183
186
|
const desiredState = args.action === "down" ? !result.programs.some((item) => item.state.state === "ready") : ready;
|
|
184
187
|
const lifecycleOk = args.action === "status" || desiredState;
|
|
185
|
-
const
|
|
188
|
+
const needsAttention = (item: typeof result.programs[number]) => args.action === "down"
|
|
189
|
+
? item.state.state === "ready" : item.state.state !== "ready";
|
|
190
|
+
const relevant = result.programs.filter((item) => args.presentation.verbose || args.action === "status" || needsAttention(item));
|
|
191
|
+
const urgent = relevant.filter(needsAttention);
|
|
192
|
+
const shownPrograms = [...urgent, ...relevant.filter((item) => !needsAttention(item)).slice(0, Math.max(0, args.limit - urgent.length))];
|
|
193
|
+
const omittedPrograms = relevant.length - shownPrograms.length;
|
|
186
194
|
const title = args.action === "up"
|
|
187
195
|
? desiredState ? "External programs ready" : "External programs need attention"
|
|
188
196
|
: args.action === "down"
|
|
@@ -192,15 +200,17 @@ export async function runEnvironmentCommand(input: {
|
|
|
192
200
|
format: "hypit.cli-programs@1",
|
|
193
201
|
action: args.action,
|
|
194
202
|
ready,
|
|
195
|
-
|
|
196
|
-
|
|
203
|
+
programCount: result.programs.length,
|
|
204
|
+
readyCount: result.programs.filter((item) => item.state.state === "ready").length,
|
|
205
|
+
programs: shownPrograms.map(programRecord),
|
|
206
|
+
...(omittedPrograms === 0 ? {} : { omittedPrograms }),
|
|
197
207
|
}, title,
|
|
198
208
|
args.action === "status" ? ready ? "success" : "info" : lifecycleOk ? "success" : "warning", [
|
|
199
209
|
...(!args.presentation.verbose && lifecycleOk && args.action !== "status" ? [] : [
|
|
200
210
|
["Programs", String(result.programs.length)] as const,
|
|
201
211
|
["Ready", String(result.programs.filter((item) => item.state.state === "ready").length)] as const,
|
|
202
212
|
]),
|
|
203
|
-
], shownPrograms.map(programDescription));
|
|
213
|
+
], shownPrograms.map(programDescription).concat(omittedPrograms === 0 ? [] : [`${omittedPrograms} more programs · use --limit <count>`]));
|
|
204
214
|
if (!lifecycleOk) io.setExitCode?.(1);
|
|
205
215
|
return;
|
|
206
216
|
}
|
|
@@ -213,11 +223,12 @@ export async function runEnvironmentCommand(input: {
|
|
|
213
223
|
const packageRoot = await packageRootForProject();
|
|
214
224
|
const host = await runtimeHost(profile, packageRoot);
|
|
215
225
|
const prepared = await host.prepare(
|
|
216
|
-
reportPackageProgress === undefined ? {} : { onProgress: reportPackageProgress },
|
|
226
|
+
{ ...(args.endpoints === undefined ? {} : { endpoints: args.endpoints }), ...(reportPackageProgress === undefined ? {} : { onProgress: reportPackageProgress }) },
|
|
217
227
|
);
|
|
218
|
-
const validated = await host.createRuntime();
|
|
228
|
+
const validated = await host.createRuntime(args.endpoints === undefined ? {} : { endpoints: args.endpoints });
|
|
219
229
|
await validated.close();
|
|
220
230
|
const external = await controller.programs.up({
|
|
231
|
+
...(args.endpoints === undefined ? {} : { endpoints: args.endpoints }),
|
|
221
232
|
...(args.maxWaitMs === undefined ? {} : { maxWaitMs: args.maxWaitMs }),
|
|
222
233
|
...(reportProgramProgress === undefined ? {} : { onProgress: reportProgramProgress }),
|
|
223
234
|
});
|
|
@@ -234,7 +245,7 @@ export async function runEnvironmentCommand(input: {
|
|
|
234
245
|
programs: {
|
|
235
246
|
total: external.programs.length,
|
|
236
247
|
ready: external.programs.filter((item) => item.state.state === "ready").length,
|
|
237
|
-
items: external.programs.map(programRecord),
|
|
248
|
+
items: external.programs.filter((item) => args.presentation.verbose || item.state.state !== "ready").map(programRecord),
|
|
238
249
|
},
|
|
239
250
|
}, ok ? "Local Runtime ready" : "Local Runtime needs attention", ok ? "success" : "warning", [
|
|
240
251
|
...(!args.presentation.verbose && ok ? [] : [
|
|
@@ -300,13 +311,12 @@ export async function runEnvironmentCommand(input: {
|
|
|
300
311
|
attention,
|
|
301
312
|
worker: {
|
|
302
313
|
state: worker.state,
|
|
303
|
-
...(worker.configuration === undefined ? {} : { configuration: worker.configuration }),
|
|
304
314
|
},
|
|
305
315
|
builds: counts,
|
|
306
316
|
programs: {
|
|
307
317
|
total: external.programs.length,
|
|
308
318
|
ready: external.programs.length - unavailable.length,
|
|
309
|
-
unavailable: unavailable.
|
|
319
|
+
unavailable: unavailable.map(programRecord),
|
|
310
320
|
},
|
|
311
321
|
capacity: {
|
|
312
322
|
active: activity.capacity.length,
|
|
@@ -326,7 +336,7 @@ export async function runEnvironmentCommand(input: {
|
|
|
326
336
|
["Capacity in use", String(activity.capacity.length)] as const,
|
|
327
337
|
] : []),
|
|
328
338
|
], [
|
|
329
|
-
...unavailable.
|
|
339
|
+
...unavailable.map(programDescription),
|
|
330
340
|
]);
|
|
331
341
|
} finally {
|
|
332
342
|
if (runtime !== undefined) await runtime.close();
|