@cueframe/kernel 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/dist/_members/account-model/testing/conversationStoreContract.d.ts +0 -59
- package/dist/_members/account-model/testing/index.d.ts +0 -5
- package/dist/_members/account-model/testing/restorePointStoreContract.d.ts +0 -24
- package/dist/_members/account-model/validators/contextFile.d.ts +0 -6
- package/dist/_members/account-model/validators/conversation.d.ts +0 -96
- package/dist/_members/account-model/validators/dashboardInsight.d.ts +0 -6
- package/dist/_members/account-model/validators/sessionToken.d.ts +0 -29
- package/dist/_members/account-model/validators/uploadToken.d.ts +0 -4
- package/dist/_members/account-model/validators/userSettings.d.ts +0 -4
- package/dist/_members/account-model/validators/workingComposition.d.ts +0 -7
- package/dist/_members/animate/animations/Create.d.ts +0 -19
- package/dist/_members/animate/animations/FadeIn.d.ts +0 -17
- package/dist/_members/animate/animations/GrowArrow.d.ts +0 -19
- package/dist/_members/animate/animations/GrowFromCenter.d.ts +0 -12
- package/dist/_members/animate/animations/Indicate.d.ts +0 -17
- package/dist/_members/animate/animations/MoveAlongPath.d.ts +0 -18
- package/dist/_members/animate/animations/Transform.d.ts +0 -28
- package/dist/_members/animate/animations/Wiggle.d.ts +0 -18
- package/dist/_members/animate/animations/Write.d.ts +0 -20
- package/dist/_members/animate/composition/AnimationGroup.d.ts +0 -21
- package/dist/_members/animate/composition/LaggedStart.d.ts +0 -22
- package/dist/_members/animate/composition/Succession.d.ts +0 -17
- package/dist/_members/animate/easing/rush.d.ts +0 -14
- package/dist/_members/animate/easing/smooth.d.ts +0 -7
- package/dist/_members/animate/easing/smootherstep.d.ts +0 -6
- package/dist/_members/animate/index.d.ts +0 -2
- package/dist/_members/animate/mobjects/Arrow.d.ts +0 -25
- package/dist/_members/animate/mobjects/BrandBox.d.ts +0 -25
- package/dist/_members/animate/mobjects/DiGraph.d.ts +0 -18
- package/dist/_members/animate/mobjects/Graph.d.ts +0 -38
- package/dist/_members/animate/three/ThreeCanvas.d.ts +0 -23
- package/dist/_members/animate/three/drei.d.ts +0 -7
- package/dist/_members/authoring/agent/buildTools.d.ts +0 -37
- package/dist/_members/authoring/agent/contextManagement.d.ts +0 -65
- package/dist/_members/authoring/agent/errors.d.ts +0 -9
- package/dist/_members/authoring/agent/memoryTool.d.ts +0 -2
- package/dist/_members/authoring/agent/promptCache.d.ts +0 -31
- package/dist/_members/authoring/agent.d.ts +0 -34
- package/dist/_members/authoring/capabilities.d.ts +0 -145
- package/dist/_members/authoring/composer/scopes.d.ts +0 -19
- package/dist/_members/authoring/context/brand.d.ts +0 -4
- package/dist/_members/authoring/context/brandTokens.d.ts +0 -4
- package/dist/_members/authoring/context/index.d.ts +0 -1
- package/dist/_members/authoring/context/timeline.d.ts +0 -15
- package/dist/_members/authoring/context/transcript.d.ts +0 -11
- package/dist/_members/authoring/context/types.d.ts +0 -4
- package/dist/_members/authoring/decomposer.d.ts +0 -12
- package/dist/_members/authoring/evaluate.d.ts +0 -26
- package/dist/_members/authoring/evaluator.d.ts +0 -16
- package/dist/_members/authoring/models/modelFactory.d.ts +0 -77
- package/dist/_members/authoring/motion/applyMotionPreset.d.ts +0 -12
- package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +0 -7
- package/dist/_members/authoring/motion/shell.d.ts +0 -20
- package/dist/_members/authoring/pipelineTrace.d.ts +0 -19
- package/dist/_members/authoring/prompts/decomposerPrompt.d.ts +0 -4
- package/dist/_members/authoring/prompts/designReviewerPrompt.d.ts +0 -16
- package/dist/_members/authoring/prompts/evaluatorPrompt.d.ts +0 -4
- package/dist/_members/authoring/prompts/graphics.d.ts +0 -5
- package/dist/_members/authoring/prompts/plannerPrompt.d.ts +0 -30
- package/dist/_members/authoring/providers/resourceApi.d.ts +1 -20
- package/dist/_members/authoring/resource-routing.d.ts +0 -121
- package/dist/_members/authoring/resources.d.ts +0 -34
- package/dist/_members/authoring/scope.d.ts +0 -24
- package/dist/_members/authoring/tools/brandTokens.d.ts +0 -22
- package/dist/_members/authoring/tools/composeRoleTools.d.ts +0 -79
- package/dist/_members/authoring/tools/index.d.ts +0 -1
- package/dist/_members/authoring/tools/toolSets.d.ts +0 -50
- package/dist/_members/authoring/transpileComponent.d.ts +0 -34
- package/dist/_members/authoring/transpileHelper.d.ts +0 -18
- package/dist/_members/authoring/types.d.ts +0 -149
- package/dist/_members/brand-derivation/constants.d.ts +0 -17
- package/dist/_members/brand-derivation/contrastSafe.d.ts +0 -23
- package/dist/_members/cloud-import/CloudImportService.d.ts +0 -15
- package/dist/_members/cloud-import/ImportProvider.d.ts +0 -45
- package/dist/_members/cloud-import/MediaItemPreprocessor.d.ts +0 -9
- package/dist/_members/cloud-import/cloudConfig.d.ts +0 -15
- package/dist/_members/compose/CompositionRenderer.d.ts +0 -6
- package/dist/_members/compose/primitiveRegistry.d.ts +0 -64
- package/dist/_members/compose/sceneToRenderInput.d.ts +0 -26
- package/dist/_members/compose/schema.d.ts +0 -15
- package/dist/_members/compose/tokenResolver.d.ts +0 -11
- package/dist/_members/composition/audio/audioMix.d.ts +0 -34
- package/dist/_members/composition/audio/mixStaging.d.ts +0 -81
- package/dist/_members/composition/audio/musicPack.d.ts +0 -35
- package/dist/_members/composition/audio/musicPack.generated.d.ts +0 -6
- package/dist/_members/composition/audio/pack.d.ts +0 -43
- package/dist/_members/composition/audio/pack.generated.d.ts +0 -6
- package/dist/_members/composition/audio/palette.d.ts +0 -36
- package/dist/_members/composition/autozoom/index.d.ts +0 -32
- package/dist/_members/composition/brand-kit.d.ts +0 -8
- package/dist/_members/composition/brief/contract.d.ts +0 -90
- package/dist/_members/composition/color-grade.d.ts +0 -11
- package/dist/_members/composition/depth.d.ts +0 -19
- package/dist/_members/composition/fixtures/agentErrored.d.ts +0 -23
- package/dist/_members/composition/fonts.d.ts +0 -62
- package/dist/_members/composition/graphics-plan/compile.d.ts +0 -29
- package/dist/_members/composition/graphics-plan/index.d.ts +0 -5
- package/dist/_members/composition/graphics-plan/instantiateMotif.d.ts +0 -17
- package/dist/_members/composition/graphics-plan/motion.d.ts +0 -17
- package/dist/_members/composition/graphics-plan/schemas.d.ts +0 -171
- package/dist/_members/composition/graphics-plan/solve.d.ts +0 -19
- package/dist/_members/composition/invariants/clipPlacement.d.ts +0 -59
- package/dist/_members/composition/invariants/composition.d.ts +0 -5
- package/dist/_members/composition/invariants/etag.d.ts +0 -7
- package/dist/_members/composition/invariants/ids.d.ts +0 -6
- package/dist/_members/composition/invariants/keyframes.d.ts +0 -19
- package/dist/_members/composition/invariants/markers.d.ts +0 -6
- package/dist/_members/composition/invariants/time.d.ts +0 -8
- package/dist/_members/composition/invariants/tracks.d.ts +0 -48
- package/dist/_members/composition/ops/compositionOps.d.ts +5 -71
- package/dist/_members/composition/ops/compositionOps.shared.d.ts +30 -0
- package/dist/_members/composition/ops/headlessStore.d.ts +0 -24
- package/dist/_members/composition/ops/selectors.d.ts +0 -66
- package/dist/_members/composition/ops/timeline-word.d.ts +0 -5
- package/dist/_members/composition/ops/transcript.d.ts +0 -27
- package/dist/_members/composition/ops/types.d.ts +0 -51
- package/dist/_members/composition/primitive-catalog/catalogQuery.d.ts +0 -32
- package/dist/_members/composition/primitive-catalog/disabled.d.ts +0 -1
- package/dist/_members/composition/primitive-catalog/index.d.ts +0 -11
- package/dist/_members/composition/primitive-catalog/paramValidation.d.ts +0 -50
- package/dist/_members/composition/primitive-catalog/projection.d.ts +0 -39
- package/dist/_members/composition/primitive-catalog/types.d.ts +0 -78
- package/dist/_members/composition/projection/behind-placement.d.ts +0 -40
- package/dist/_members/composition/projection/behind-readiness.d.ts +52 -0
- package/dist/_members/composition/projection/brandKit.d.ts +0 -142
- package/dist/_members/composition/projection/cardTokens.d.ts +0 -65
- package/dist/_members/composition/projection/composition-floor.d.ts +0 -179
- package/dist/_members/composition/projection/cropProjection.d.ts +0 -75
- package/dist/_members/composition/projection/index.d.ts +2 -0
- package/dist/_members/composition/projection/occlusion-budget.d.ts +0 -37
- package/dist/_members/composition/projection/reframe-readiness.d.ts +49 -0
- package/dist/_members/composition/projection/safe-zones.d.ts +0 -29
- package/dist/_members/composition/reframe/aspectLoss.d.ts +12 -35
- package/dist/_members/composition/reframe/coverage.d.ts +0 -40
- package/dist/_members/composition/reframe/derive.d.ts +0 -21
- package/dist/_members/composition/reframe/index.d.ts +0 -60
- package/dist/_members/composition/reframe/kenBurns.d.ts +0 -37
- package/dist/_members/composition/reframe/shotScale.d.ts +0 -75
- package/dist/_members/composition/reframe/trajectory.d.ts +0 -65
- package/dist/_members/composition/timeline/compound.d.ts +0 -31
- package/dist/_members/composition/timeline/intent.d.ts +0 -29
- package/dist/_members/composition/timeline/keyframes.d.ts +0 -43
- package/dist/_members/composition/timeline/link.d.ts +0 -27
- package/dist/_members/composition/timeline/occupancy.d.ts +1 -42
- package/dist/_members/composition/timeline/placement.d.ts +5 -52
- package/dist/_members/composition/timeline/plan.d.ts +5 -53
- package/dist/_members/composition/timeline/resolve.d.ts +0 -36
- package/dist/_members/composition/timeline/trims.d.ts +0 -49
- package/dist/_members/composition/validators/brandKit.d.ts +0 -29
- package/dist/_members/composition/validators/composePlan.d.ts +0 -39
- package/dist/_members/composition/validators/composition.d.ts +63 -529
- package/dist/_members/composition/validators/graphicKinds.d.ts +0 -28
- package/dist/_members/composition/validators/render.d.ts +55 -23
- package/dist/_members/composition-ops/alphaLayers.d.ts +0 -56
- package/dist/_members/composition-ops/index.d.ts +27 -148
- package/dist/_members/composition-ops/materializeGrid.d.ts +0 -28
- package/dist/_members/composition-ops/opRecorder.d.ts +0 -34
- package/dist/_members/composition-ops/recordingStore.d.ts +0 -16
- package/dist/_members/composition-ops/replaceRegion.d.ts +0 -48
- package/dist/_members/composition-ops/testFixtures.d.ts +0 -14
- package/dist/_members/convex-api/api.d.ts +0 -3
- package/dist/_members/convex-api/dataModel.d.ts +0 -2
- package/dist/_members/core/index.d.ts +1 -1
- package/dist/_members/core/render/bookends.d.ts +0 -44
- package/dist/_members/core/render/captions.d.ts +0 -42
- package/dist/_members/core/render/compositionRender.d.ts +2 -165
- package/dist/_members/core/render/deriveTrajectory.d.ts +0 -140
- package/dist/_members/core/render/emphasis.d.ts +0 -6
- package/dist/_members/core/render/eval/cropBox.d.ts +0 -69
- package/dist/_members/core/render/eval/inclusion.d.ts +0 -39
- package/dist/_members/core/render/eval/index.d.ts +0 -58
- package/dist/_members/core/render/eval/metrics.d.ts +0 -36
- package/dist/_members/core/render/exportSettings.d.ts +4 -12
- package/dist/_members/core/render/index.d.ts +1 -1
- package/dist/_members/core/render/mapFaceToPerson.d.ts +0 -27
- package/dist/_members/core/render/types.d.ts +4 -156
- package/dist/_members/core/render/variantKeys.d.ts +1 -0
- package/dist/_members/core/render/vcam/cameraPath.d.ts +0 -44
- package/dist/_members/core/render/vcam/constants.d.ts +0 -93
- package/dist/_members/core/render/vcam/errorCodes.d.ts +0 -28
- package/dist/_members/core/render/vcam/framing.d.ts +0 -76
- package/dist/_members/core/render/vcam/requiredRegion.d.ts +0 -71
- package/dist/_members/core/render/vcam/shots.d.ts +0 -40
- package/dist/_members/core/render/vcam/subjectSet.d.ts +0 -85
- package/dist/_members/core/select/errorCodes.d.ts +0 -25
- package/dist/_members/core/select/index.d.ts +0 -20
- package/dist/_members/core/select/model.d.ts +0 -79
- package/dist/_members/core/select/select.d.ts +0 -49
- package/dist/_members/core/select/stabilize.d.ts +0 -102
- package/dist/_members/core/types.d.ts +0 -1
- package/dist/_members/director/ai-sdk/chunks.d.ts +14 -0
- package/dist/_members/director/ai-sdk/context.d.ts +6 -0
- package/dist/_members/director/ai-sdk/generationTool.d.ts +8 -0
- package/dist/_members/director/ai-sdk/index.d.ts +4 -0
- package/dist/_members/director/ai-sdk/messages.d.ts +292 -0
- package/dist/_members/director/domain/chat.d.ts +357 -0
- package/dist/_members/director/domain/generation.d.ts +1 -0
- package/dist/_members/director/domain/index.d.ts +3 -0
- package/dist/_members/director/domain/ports.d.ts +32 -0
- package/dist/_members/director/index.d.ts +2 -0
- package/dist/_members/director/testing/contract.d.ts +52 -0
- package/dist/_members/director/testing/index.d.ts +1 -0
- package/dist/_members/errors/registry.d.ts +0 -32
- package/dist/_members/foundation/codes/index.d.ts +0 -21
- package/dist/_members/mcp/adapter.d.ts +1 -84
- package/dist/_members/mcp/burnedNames.d.ts +0 -16
- package/dist/_members/mcp/core.d.ts +1 -81
- package/dist/_members/mcp/curation.d.ts +0 -112
- package/dist/_members/mcp/executor.d.ts +0 -49
- package/dist/_members/mcp/format.d.ts +0 -6
- package/dist/_members/mcp/generated/catalogPreviews.d.ts +0 -1
- package/dist/_members/mcp/generated/operations.d.ts +0 -23
- package/dist/_members/mcp/internalLoopTools.d.ts +0 -23
- package/dist/_members/mcp/prompts.d.ts +0 -16
- package/dist/_members/mcp/resources.d.ts +0 -13
- package/dist/_members/mcp/server.d.ts +0 -61
- package/dist/_members/mcp/wait.d.ts +0 -22
- package/dist/_members/mcp/x402Meta.d.ts +0 -44
- package/dist/_members/media-model/generation.d.ts +314 -0
- package/dist/_members/media-model/index.d.ts +1 -0
- package/dist/_members/media-model/media-kind.d.ts +0 -27
- package/dist/_members/media-model/transcriptSearch.d.ts +0 -42
- package/dist/_members/nle-export/fcpxml.d.ts +0 -13
- package/dist/_members/nle-export/index.d.ts +0 -6
- package/dist/_members/nle-export/types.d.ts +0 -26
- package/dist/_members/nle-export/xml/index.d.ts +0 -8
- package/dist/_members/nle-export/xml-utils.d.ts +0 -12
- package/dist/_members/perception/activeSpeaker.d.ts +0 -94
- package/dist/_members/perception/audioQuality.d.ts +0 -64
- package/dist/_members/perception/energyBeat.d.ts +0 -81
- package/dist/_members/perception/identityMatch.d.ts +0 -66
- package/dist/_members/perception/index.d.ts +0 -52
- package/dist/_members/perception/visualQuality.d.ts +0 -73
- package/dist/_members/plane/conformance.d.ts +0 -59
- package/dist/_members/plane/contract.d.ts +0 -29
- package/dist/_members/plane/index.d.ts +0 -15
- package/dist/_members/primitives/backgrounds/animated-bar-chart/index.d.ts +0 -13
- package/dist/_members/primitives/backgrounds/animated-line-chart/index.d.ts +0 -14
- package/dist/_members/primitives/backgrounds/dither-gradient-bg/index.d.ts +0 -14
- package/dist/_members/primitives/backgrounds/dynamic-grid/index.d.ts +0 -8
- package/dist/_members/primitives/backgrounds/ecosystem-constellation/index.d.ts +0 -8
- package/dist/_members/primitives/backgrounds/infinite-marquee/index.d.ts +0 -8
- package/dist/_members/primitives/backgrounds/mesh-gradient-bg/index.d.ts +0 -8
- package/dist/_members/primitives/backgrounds/perspective-marquee/index.d.ts +0 -8
- package/dist/_members/primitives/backgrounds/silk-flow-bg/index.d.ts +0 -17
- package/dist/_members/primitives/backgrounds/vector-field/index.d.ts +0 -14
- package/dist/_members/primitives/backgrounds/volumetric-rays/index.d.ts +0 -18
- package/dist/_members/primitives/captions/Captions.d.ts +0 -24
- package/dist/_members/primitives/captions/index.d.ts +0 -15
- package/dist/_members/primitives/captions/paginate.d.ts +0 -21
- package/dist/_members/primitives/captions/placement.d.ts +0 -30
- package/dist/_members/primitives/effects/blur/index.d.ts +0 -16
- package/dist/_members/primitives/effects/color-grade/index.d.ts +0 -20
- package/dist/_members/primitives/effects/grain/index.d.ts +0 -12
- package/dist/_members/primitives/effects/parallax/index.d.ts +0 -13
- package/dist/_members/primitives/effects/particles/index.d.ts +0 -16
- package/dist/_members/primitives/effects/pulsing-indicator/index.d.ts +0 -10
- package/dist/_members/primitives/effects/spotlight-card/index.d.ts +0 -8
- package/dist/_members/primitives/effects/spring-pop-in/index.d.ts +0 -10
- package/dist/_members/primitives/effects/success-confetti/index.d.ts +0 -8
- package/dist/_members/primitives/effects/vignette/index.d.ts +0 -12
- package/dist/_members/primitives/hero-text/HeroText.d.ts +0 -17
- package/dist/_members/primitives/hero-text/config.d.ts +0 -10
- package/dist/_members/primitives/hero-text/index.d.ts +0 -14
- package/dist/_members/primitives/index.d.ts +0 -8
- package/dist/_members/primitives/layouts/chat-to-preview-layout/index.d.ts +0 -8
- package/dist/_members/primitives/layouts/infinite-bento-pan/index.d.ts +0 -8
- package/dist/_members/primitives/layouts/letterbox/index.d.ts +0 -15
- package/dist/_members/primitives/layouts/photo-grid/index.d.ts +0 -17
- package/dist/_members/primitives/layouts/picture-in-picture/index.d.ts +0 -21
- package/dist/_members/primitives/layouts/split-screen/index.d.ts +0 -15
- package/dist/_members/primitives/layouts/staggered-bento-grid/index.d.ts +0 -8
- package/dist/_members/primitives/lib/easings.d.ts +0 -27
- package/dist/_members/primitives/lib/palette.d.ts +0 -22
- package/dist/_members/primitives/lib/preview.d.ts +0 -22
- package/dist/_members/primitives/lib/schema.d.ts +0 -36
- package/dist/_members/primitives/lib/seeded-random.d.ts +0 -23
- package/dist/_members/primitives/lib/text/contrast.d.ts +0 -17
- package/dist/_members/primitives/lib/text/fill.d.ts +0 -5
- package/dist/_members/primitives/lib/text/fitText.d.ts +0 -37
- package/dist/_members/primitives/lib/text/marker.d.ts +0 -10
- package/dist/_members/primitives/lib/text/motion.d.ts +0 -46
- package/dist/_members/primitives/lib/text/recolor.d.ts +0 -11
- package/dist/_members/primitives/lib/text/spec.d.ts +0 -39
- package/dist/_members/primitives/lib/text/stage.d.ts +0 -17
- package/dist/_members/primitives/lib/text/typeface.d.ts +0 -11
- package/dist/_members/primitives/lib/tokens.d.ts +0 -87
- package/dist/_members/primitives/lib/types.d.ts +0 -141
- package/dist/_members/primitives/scenes/changelog-bite/index.d.ts +0 -12
- package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +0 -8
- package/dist/_members/primitives/scenes/landing-code-showcase/index.d.ts +0 -8
- package/dist/_members/primitives/scenes/live-code-compilation/index.d.ts +0 -8
- package/dist/_members/primitives/scenes/pricing-tier-focus/index.d.ts +0 -8
- package/dist/_members/primitives/scenes/product-launch-trailer/index.d.ts +0 -8
- package/dist/_members/primitives/scenes/terminal-to-browser-deploy/index.d.ts +0 -8
- package/dist/_members/primitives/subject-foreground/SubjectForeground.d.ts +0 -38
- package/dist/_members/primitives/subject-foreground/index.d.ts +0 -21
- package/dist/_members/primitives/text/blur-reveal/index.d.ts +0 -9
- package/dist/_members/primitives/text/cinematic-title/index.d.ts +0 -14
- package/dist/_members/primitives/text/inline-highlight/index.d.ts +0 -11
- package/dist/_members/primitives/text/karaoke/index.d.ts +0 -13
- package/dist/_members/primitives/text/kinetic-type/index.d.ts +0 -15
- package/dist/_members/primitives/text/lower-third/index.d.ts +0 -14
- package/dist/_members/primitives/text/marker-highlight/index.d.ts +0 -10
- package/dist/_members/primitives/text/masked-slide-reveal/index.d.ts +0 -8
- package/dist/_members/primitives/text/matrix-decode/index.d.ts +0 -9
- package/dist/_members/primitives/text/quote-card/index.d.ts +0 -9
- package/dist/_members/primitives/text/rgb-glitch-text/index.d.ts +0 -13
- package/dist/_members/primitives/text/shimmer-sweep/index.d.ts +0 -10
- package/dist/_members/primitives/text/slot-machine-roll/index.d.ts +0 -8
- package/dist/_members/primitives/text/staggered-fade-up/index.d.ts +0 -12
- package/dist/_members/primitives/text/stat-counter/index.d.ts +0 -13
- package/dist/_members/primitives/text/strikethrough-replace/index.d.ts +0 -9
- package/dist/_members/primitives/text/text-effect/index.d.ts +0 -17
- package/dist/_members/primitives/text/text-fade-replace/index.d.ts +0 -8
- package/dist/_members/primitives/text/token-stream/index.d.ts +0 -11
- package/dist/_members/primitives/text/tracking-in/index.d.ts +0 -8
- package/dist/_members/primitives/text/typewriter/index.d.ts +0 -12
- package/dist/_members/primitives/transitions/chromatic-aberration-wipe/index.d.ts +0 -11
- package/dist/_members/primitives/transitions/code-diff-wipe/index.d.ts +0 -8
- package/dist/_members/primitives/transitions/directional-wipe/index.d.ts +0 -10
- package/dist/_members/primitives/transitions/frosted-glass-wipe/index.d.ts +0 -10
- package/dist/_members/primitives/transitions/glitch-cut/index.d.ts +0 -3
- package/dist/_members/primitives/transitions/grid-pixelate-wipe/index.d.ts +0 -14
- package/dist/_members/primitives/transitions/ink-wipe/index.d.ts +0 -3
- package/dist/_members/primitives/transitions/kinetic-type-mask/index.d.ts +0 -12
- package/dist/_members/primitives/transitions/light-leak/index.d.ts +0 -3
- package/dist/_members/primitives/transitions/luma-matte/index.d.ts +0 -2
- package/dist/_members/primitives/transitions/morph/index.d.ts +0 -2
- package/dist/_members/primitives/transitions/spatial-push/index.d.ts +0 -10
- package/dist/_members/primitives/transitions/swipe-transition-wipe/index.d.ts +0 -13
- package/dist/_members/primitives/transitions/zoom-through/index.d.ts +0 -2
- package/dist/_members/primitives/transitions/zoom-through-transition/index.d.ts +0 -9
- package/dist/_members/primitives/ui-blocks/ai-generate-overlay/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/ai-generation-canvas/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/badge-pop/index.d.ts +0 -11
- package/dist/_members/primitives/ui-blocks/before-after-slider/index.d.ts +0 -11
- package/dist/_members/primitives/ui-blocks/benchmark-bars/index.d.ts +0 -11
- package/dist/_members/primitives/ui-blocks/bounding-box-selector/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/browser-flow/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/index.d.ts +0 -18
- package/dist/_members/primitives/ui-blocks/chat-exchange/index.d.ts +0 -10
- package/dist/_members/primitives/ui-blocks/code-accordion/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/context-meter/index.d.ts +0 -11
- package/dist/_members/primitives/ui-blocks/cursor-flow/index.d.ts +0 -11
- package/dist/_members/primitives/ui-blocks/dashboard-populate/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/data-flow-pipes/index.d.ts +0 -9
- package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/eval-scorecard/index.d.ts +0 -11
- package/dist/_members/primitives/ui-blocks/glass-code-block/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/metric-gauge/index.d.ts +0 -12
- package/dist/_members/primitives/ui-blocks/morphing-modal/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/pipeline-journey/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/progress-steps/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/reasoning-trace/index.d.ts +0 -10
- package/dist/_members/primitives/ui-blocks/simulated-cursor/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/terminal-simulator/index.d.ts +0 -19
- package/dist/_members/primitives/ui-blocks/toast-notification/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/tool-call-stack/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/visual-docs-snippet/index.d.ts +0 -8
- package/dist/_members/primitives/ui-blocks/voice-waveform/index.d.ts +0 -11
- package/dist/_members/primitives/workspace.d.ts +0 -29
- package/dist/_members/render-harness/browserOptions.d.ts +11 -0
- package/dist/_members/render-harness/browserOptions.d.ts.map +1 -0
- package/dist/_members/render-harness/cardRender.d.ts +0 -40
- package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
- package/dist/_members/render-harness/contractRender.d.ts +0 -16
- package/dist/_members/render-harness/contractRender.d.ts.map +1 -1
- package/dist/_members/render-harness/extractSegments.d.ts +0 -37
- package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
- package/dist/_members/render-harness/index.d.ts +0 -12
- package/dist/_members/render-harness/index.d.ts.map +1 -1
- package/dist/_members/render-harness/localRender.d.ts +1 -110
- package/dist/_members/render-harness/localRender.d.ts.map +1 -1
- package/dist/_members/render-harness/materializeSources.d.ts +0 -22
- package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
- package/dist/_members/render-harness/mediaServer.d.ts +0 -16
- package/dist/_members/render-harness/mediaServer.d.ts.map +1 -1
- package/dist/_members/render-harness/renderInputAssets.d.ts +0 -45
- package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
- package/dist/_members/render-harness/resolveAssets.d.ts +0 -24
- package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
- package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +0 -14
- package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +1 -1
- package/dist/account-model/validators.js +1 -1
- package/dist/account-model.js +1 -1
- package/dist/animate.js +0 -15
- package/dist/authoring/build-tools.js +8 -8
- package/dist/authoring/composer.js +0 -20
- package/dist/authoring/context.js +6 -6
- package/dist/authoring/pipelineTrace.js +1 -1
- package/dist/authoring/prompts.js +1 -1
- package/dist/authoring/resource-routing.js +1 -1
- package/dist/authoring/resources.js +1 -1
- package/dist/authoring/tools.js +7 -7
- package/dist/authoring.js +16 -80
- package/dist/{chunk-TWQOKKAF.js → chunk-23HFEKV7.js} +0 -6
- package/dist/{chunk-EA6MYCYW.js → chunk-2B5VJZHL.js} +14 -25
- package/dist/chunk-73DQTUWY.js +131 -0
- package/dist/{chunk-HI4UTTPS.js → chunk-AO744WIK.js} +1 -43
- package/dist/chunk-BADZHXLR.js +0 -0
- package/dist/{chunk-GA23TRNR.js → chunk-BKHGL4MB.js} +5 -13
- package/dist/{chunk-VOO5FQSS.js → chunk-BZZTVOGG.js} +6 -55
- package/dist/{chunk-ODL7GQJG.js → chunk-CAJQ7H5A.js} +17 -17
- package/dist/{chunk-ZB3C3HM7.js → chunk-DCVJWGIA.js} +4 -9
- package/dist/{chunk-IBYQG46O.js → chunk-DWLNPNC4.js} +1 -4
- package/dist/{chunk-SW336CJP.js → chunk-DYZE7JZA.js} +3 -26
- package/dist/{chunk-HCCBDJLW.js → chunk-EP2Y6M2J.js} +0 -4
- package/dist/{chunk-ZE76SSRT.js → chunk-FMODQD5P.js} +0 -6
- package/dist/chunk-FTVZF4GO.js +0 -0
- package/dist/{chunk-PMY24FUD.js → chunk-G5BFI32U.js} +1 -1
- package/dist/{chunk-LD5ZOUFT.js → chunk-GF52TW4I.js} +0 -4
- package/dist/{chunk-ABL557OT.js → chunk-GMD33ZD7.js} +1 -8
- package/dist/{chunk-XWKZB5U5.js → chunk-ICSZF37W.js} +21 -150
- package/dist/chunk-IEXAKOEX.js +113 -0
- package/dist/{chunk-UY4SWJVE.js → chunk-K2IUBCND.js} +0 -12
- package/dist/chunk-LJ5W4ZBU.js +146 -0
- package/dist/chunk-LLUW26BS.js +255 -0
- package/dist/{chunk-GEA7E2FL.js → chunk-PIURX6IZ.js} +220 -2
- package/dist/{chunk-MMEJ3Y7E.js → chunk-QETYXKQQ.js} +1 -10
- package/dist/{chunk-YX2GSJK7.js → chunk-RP4SXXLJ.js} +1 -1
- package/dist/{chunk-P727GZVO.js → chunk-SAMQUUO5.js} +3 -5
- package/dist/{chunk-RF7U3SCL.js → chunk-TD347SSX.js} +3 -11
- package/dist/{chunk-NFEGPWGS.js → chunk-TFGKUWHY.js} +1 -88
- package/dist/{chunk-LM4WDUQJ.js → chunk-TPA6PYN2.js} +1 -11
- package/dist/{chunk-OLFOPQCA.js → chunk-UQSOS726.js} +4 -18
- package/dist/{chunk-GBRNYH7W.js → chunk-V24L35GM.js} +0 -11
- package/dist/{chunk-COYMZ76S.js → chunk-VFMW3JUY.js} +1 -1
- package/dist/{chunk-YIOY2XEO.js → chunk-VHF66LCQ.js} +22 -94
- package/dist/{chunk-JMURQODM.js → chunk-VZ7TYX6Z.js} +0 -1
- package/dist/{chunk-SIGGQRY2.js → chunk-W3SIWT7J.js} +5030 -4412
- package/dist/{chunk-W35ZMOXB.js → chunk-WPZKOVYF.js} +0 -5
- package/dist/chunk-WZH57M53.js +494 -0
- package/dist/{chunk-AYVJXDLB.js → chunk-XHGZ2E77.js} +0 -2
- package/dist/{chunk-JRQVPFLF.js → chunk-XQ72DZKJ.js} +1 -1
- package/dist/{chunk-7DHP4ESU.js → chunk-YLDMAZZE.js} +0 -10
- package/dist/{chunk-FYZVH3MC.js → chunk-YQ7FFW3G.js} +0 -11
- package/dist/chunk-ZPLJ24OV.js +93 -0
- package/dist/cloud-import/multipart.js +1 -1
- package/dist/cloud-import.js +9 -16
- package/dist/compose/renderer.js +18 -18
- package/dist/compose.js +21 -21
- package/dist/composition/audio.js +1 -1
- package/dist/composition/brand-kit.js +0 -5
- package/dist/composition/graphics-plan.js +4 -4
- package/dist/composition/ops.js +5 -5
- package/dist/composition/primitive-catalog.js +1 -1
- package/dist/composition/projection.js +28 -4
- package/dist/composition/reframe/kenBurns.js +0 -4
- package/dist/composition/reframe.js +4 -2
- package/dist/composition/timeline.js +1 -1
- package/dist/composition/validators/graphic-kinds.js +1 -1
- package/dist/composition/validators.js +8 -6
- package/dist/composition-ops.js +18 -135
- package/dist/composition.js +35 -9
- package/dist/context-JLLU3MYD.js +14 -0
- package/dist/core/render.js +9 -7
- package/dist/core/select.js +2 -6
- package/dist/core.js +5 -7
- package/dist/director/ai-sdk.d.ts +1 -0
- package/dist/director/ai-sdk.js +33 -0
- package/dist/director/domain.d.ts +1 -0
- package/dist/director/domain.js +62 -0
- package/dist/director/testing.d.ts +1 -0
- package/dist/director/testing.js +22 -0
- package/dist/director.d.ts +1 -0
- package/dist/director.js +86 -0
- package/dist/errors.js +1 -1
- package/dist/foundation.js +1 -0
- package/dist/mcp/adapter.js +5 -64
- package/dist/mcp/core.js +1 -1
- package/dist/mcp/curation.js +1 -1
- package/dist/mcp/server.js +4 -4
- package/dist/mcp.js +4 -4
- package/dist/media-model/generation.d.ts +1 -0
- package/dist/media-model/generation.js +40 -0
- package/dist/media-model/testing.js +1071 -718
- package/dist/media-model.js +38 -6
- package/dist/nle-export/server.js +328 -130
- package/dist/nle-export.js +22 -21
- package/dist/plane/contract.js +0 -3
- package/dist/primitives/backgrounds.js +2 -2
- package/dist/primitives/captions.js +0 -5
- package/dist/primitives/effects.js +2 -2
- package/dist/primitives/hero-text.js +2 -2
- package/dist/primitives/layouts.js +2 -2
- package/dist/primitives/lib/index.js +17 -17
- package/dist/primitives/lib/text/fitText.js +1 -1
- package/dist/primitives/lib/tokens.js +1 -1
- package/dist/primitives/lib.js +17 -17
- package/dist/primitives/scenes.js +2 -2
- package/dist/primitives/text.js +2 -2
- package/dist/primitives/ui-blocks.js +4 -4
- package/dist/primitives.js +21 -21
- package/dist/render-harness/sandboxGlobalSpecs.js +1 -1
- package/dist/render-harness.js +24 -41
- package/package.json +39 -24
- package/dist/_members/account-model/index.js +0 -4
- package/dist/_members/account-model/testing/conversationStoreContract.js +0 -168
- package/dist/_members/account-model/testing/index.js +0 -7
- package/dist/_members/account-model/testing/restorePointStoreContract.js +0 -69
- package/dist/_members/account-model/types/index.js +0 -1
- package/dist/_members/account-model/validators/contextFile.js +0 -18
- package/dist/_members/account-model/validators/conversation.js +0 -95
- package/dist/_members/account-model/validators/dashboardInsight.js +0 -16
- package/dist/_members/account-model/validators/index.js +0 -7
- package/dist/_members/account-model/validators/sessionToken.js +0 -49
- package/dist/_members/account-model/validators/uploadToken.js +0 -16
- package/dist/_members/account-model/validators/userSettings.js +0 -12
- package/dist/_members/account-model/validators/workingComposition.js +0 -20
- package/dist/_members/brand-derivation/constants.js +0 -20
- package/dist/_members/brand-derivation/contrastSafe.js +0 -114
- package/dist/_members/brand-derivation/index.js +0 -1
- package/dist/_members/cloud-import/chunk-XKO6ZSWI.js +0 -162
- package/dist/_members/cloud-import/chunk-XKO6ZSWI.js.map +0 -1
- package/dist/_members/cloud-import/index.js +0 -241
- package/dist/_members/cloud-import/index.js.map +0 -1
- package/dist/_members/cloud-import/multipartUpload.js +0 -7
- package/dist/_members/cloud-import/multipartUpload.js.map +0 -1
- package/dist/_members/composition/audio/audioMix.js +0 -61
- package/dist/_members/composition/audio/index.js +0 -5
- package/dist/_members/composition/audio/mixStaging.js +0 -195
- package/dist/_members/composition/audio/musicPack.generated.js +0 -136
- package/dist/_members/composition/audio/musicPack.js +0 -36
- package/dist/_members/composition/audio/pack.generated.js +0 -603
- package/dist/_members/composition/audio/pack.js +0 -48
- package/dist/_members/composition/audio/palette.js +0 -134
- package/dist/_members/composition/autozoom/index.js +0 -83
- package/dist/_members/composition/brand-kit.js +0 -45
- package/dist/_members/composition/brief/contract.js +0 -209
- package/dist/_members/composition/color-grade.js +0 -80
- package/dist/_members/composition/depth.js +0 -8
- package/dist/_members/composition/fixtures/index.js +0 -143
- package/dist/_members/composition/fixtures/vaayaErrored.d.ts +0 -25
- package/dist/_members/composition/fixtures/vaayaErrored.js +0 -203
- package/dist/_members/composition/fonts.js +0 -162
- package/dist/_members/composition/graphics-plan/compile.js +0 -221
- package/dist/_members/composition/graphics-plan/index.js +0 -10
- package/dist/_members/composition/graphics-plan/instantiateMotif.js +0 -44
- package/dist/_members/composition/graphics-plan/motion.js +0 -66
- package/dist/_members/composition/graphics-plan/schemas.js +0 -261
- package/dist/_members/composition/graphics-plan/solve.js +0 -145
- package/dist/_members/composition/index.js +0 -5
- package/dist/_members/composition/invariants/clipPlacement.js +0 -69
- package/dist/_members/composition/invariants/composition.js +0 -28
- package/dist/_members/composition/invariants/errors.js +0 -10
- package/dist/_members/composition/invariants/etag.js +0 -38
- package/dist/_members/composition/invariants/ids.js +0 -33
- package/dist/_members/composition/invariants/index.js +0 -9
- package/dist/_members/composition/invariants/keyframes.js +0 -45
- package/dist/_members/composition/invariants/markers.js +0 -29
- package/dist/_members/composition/invariants/time.js +0 -20
- package/dist/_members/composition/invariants/tracks.js +0 -304
- package/dist/_members/composition/ops/compositionOps.js +0 -1056
- package/dist/_members/composition/ops/headlessStore.js +0 -94
- package/dist/_members/composition/ops/index.js +0 -4
- package/dist/_members/composition/ops/selectors.js +0 -118
- package/dist/_members/composition/ops/timeline-word.js +0 -1
- package/dist/_members/composition/ops/transcript.js +0 -77
- package/dist/_members/composition/ops/types.js +0 -16
- package/dist/_members/composition/primitive-catalog/catalogQuery.js +0 -150
- package/dist/_members/composition/primitive-catalog/disabled.js +0 -32
- package/dist/_members/composition/primitive-catalog/generated/meta.js +0 -15161
- package/dist/_members/composition/primitive-catalog/index.js +0 -46
- package/dist/_members/composition/primitive-catalog/paramValidation.js +0 -231
- package/dist/_members/composition/primitive-catalog/projection.js +0 -164
- package/dist/_members/composition/primitive-catalog/types.js +0 -14
- package/dist/_members/composition/projection/behind-placement.js +0 -62
- package/dist/_members/composition/projection/brandKit.js +0 -482
- package/dist/_members/composition/projection/cardTokens.js +0 -209
- package/dist/_members/composition/projection/composition-floor.js +0 -582
- package/dist/_members/composition/projection/cropProjection.js +0 -257
- package/dist/_members/composition/projection/index.js +0 -7
- package/dist/_members/composition/projection/occlusion-budget.js +0 -104
- package/dist/_members/composition/projection/safe-zones.js +0 -99
- package/dist/_members/composition/reframe/aspectLoss.js +0 -115
- package/dist/_members/composition/reframe/coverage.js +0 -62
- package/dist/_members/composition/reframe/derive.js +0 -73
- package/dist/_members/composition/reframe/index.js +0 -109
- package/dist/_members/composition/reframe/kenBurns.js +0 -64
- package/dist/_members/composition/reframe/shotScale.js +0 -176
- package/dist/_members/composition/reframe/trajectory.js +0 -124
- package/dist/_members/composition/timeline/compound.js +0 -134
- package/dist/_members/composition/timeline/index.js +0 -9
- package/dist/_members/composition/timeline/intent.js +0 -228
- package/dist/_members/composition/timeline/keyframes.js +0 -121
- package/dist/_members/composition/timeline/link.js +0 -59
- package/dist/_members/composition/timeline/occupancy.js +0 -36
- package/dist/_members/composition/timeline/placement.js +0 -74
- package/dist/_members/composition/timeline/plan.js +0 -31
- package/dist/_members/composition/timeline/resolve.js +0 -170
- package/dist/_members/composition/timeline/trims.js +0 -278
- package/dist/_members/composition/types/index.js +0 -1
- package/dist/_members/composition/validators/brandKit.js +0 -295
- package/dist/_members/composition/validators/composePlan.js +0 -113
- package/dist/_members/composition/validators/composition.js +0 -703
- package/dist/_members/composition/validators/font.js +0 -34
- package/dist/_members/composition/validators/graphicKinds.js +0 -30
- package/dist/_members/composition/validators/index.js +0 -9
- package/dist/_members/composition/validators/project.js +0 -29
- package/dist/_members/composition/validators/registry.js +0 -41
- package/dist/_members/composition/validators/render.js +0 -139
- package/dist/_members/composition/validators/session.js +0 -37
- package/dist/_members/composition/validators/webhook.js +0 -72
- package/dist/_members/composition-ops/alphaLayers.js +0 -141
- package/dist/_members/composition-ops/index.js +0 -637
- package/dist/_members/composition-ops/materializeGrid.js +0 -99
- package/dist/_members/composition-ops/opRecorder.js +0 -196
- package/dist/_members/composition-ops/recordingStore.js +0 -14
- package/dist/_members/composition-ops/replaceRegion.js +0 -102
- package/dist/_members/composition-ops/testFixtures.js +0 -19
- package/dist/_members/core/index.js +0 -5
- package/dist/_members/core/render/bookends.js +0 -53
- package/dist/_members/core/render/captions.js +0 -127
- package/dist/_members/core/render/compositionRender.js +0 -1249
- package/dist/_members/core/render/deriveTrajectory.js +0 -889
- package/dist/_members/core/render/emphasis.js +0 -16
- package/dist/_members/core/render/eval/cropBox.js +0 -139
- package/dist/_members/core/render/eval/inclusion.js +0 -96
- package/dist/_members/core/render/eval/index.js +0 -146
- package/dist/_members/core/render/eval/metrics.js +0 -94
- package/dist/_members/core/render/exportSettings.js +0 -65
- package/dist/_members/core/render/index.js +0 -20
- package/dist/_members/core/render/mapFaceToPerson.js +0 -73
- package/dist/_members/core/render/types.js +0 -8
- package/dist/_members/core/render/vcam/cameraPath.js +0 -248
- package/dist/_members/core/render/vcam/constants.js +0 -115
- package/dist/_members/core/render/vcam/errorCodes.js +0 -39
- package/dist/_members/core/render/vcam/framing.js +0 -136
- package/dist/_members/core/render/vcam/requiredRegion.js +0 -137
- package/dist/_members/core/render/vcam/shots.js +0 -53
- package/dist/_members/core/render/vcam/subjectSet.js +0 -388
- package/dist/_members/core/select/errorCodes.js +0 -38
- package/dist/_members/core/select/index.js +0 -26
- package/dist/_members/core/select/model.js +0 -18
- package/dist/_members/core/select/select.js +0 -244
- package/dist/_members/core/select/stabilize.js +0 -242
- package/dist/_members/core/types.js +0 -7
- package/dist/_members/errors/index.js +0 -1
- package/dist/_members/errors/registry.js +0 -560
- package/dist/_members/foundation/codes/index.js +0 -31
- package/dist/_members/foundation/index.js +0 -2
- package/dist/_members/foundation/primitives/index.js +0 -5
- package/dist/_members/mcp/adapter.js +0 -771
- package/dist/_members/mcp/burnedNames.js +0 -73
- package/dist/_members/mcp/core.js +0 -390
- package/dist/_members/mcp/curation.js +0 -792
- package/dist/_members/mcp/executor.js +0 -142
- package/dist/_members/mcp/format.js +0 -9
- package/dist/_members/mcp/generated/catalogPreviews.js +0 -95
- package/dist/_members/mcp/generated/harness.js +0 -81
- package/dist/_members/mcp/generated/operations.js +0 -131
- package/dist/_members/mcp/index.js +0 -50
- package/dist/_members/mcp/internalLoopTools.js +0 -109
- package/dist/_members/mcp/prompts.js +0 -45
- package/dist/_members/mcp/resources.js +0 -166
- package/dist/_members/mcp/server.js +0 -340
- package/dist/_members/mcp/wait.js +0 -378
- package/dist/_members/mcp/x402Meta.js +0 -66
- package/dist/_members/media-model/api.js +0 -175
- package/dist/_members/media-model/index.js +0 -1
- package/dist/_members/media-model/media-kind.js +0 -116
- package/dist/_members/media-model/testing/index.js +0 -1
- package/dist/_members/media-model/testing/mediaStoreContract.js +0 -82
- package/dist/_members/media-model/transcriptSearch.js +0 -70
- package/dist/_members/media-model/transcriptSearchCases.json +0 -79
- package/dist/_members/nle-export/compact-timeline.js +0 -73
- package/dist/_members/nle-export/compact-timeline.js.map +0 -1
- package/dist/_members/nle-export/composition-to-input.js +0 -147
- package/dist/_members/nle-export/composition-to-input.js.map +0 -1
- package/dist/_members/nle-export/fcpxml.js +0 -159
- package/dist/_members/nle-export/fcpxml.js.map +0 -1
- package/dist/_members/nle-export/index.js +0 -12
- package/dist/_members/nle-export/index.js.map +0 -1
- package/dist/_members/nle-export/premiere.js +0 -161
- package/dist/_members/nle-export/premiere.js.map +0 -1
- package/dist/_members/nle-export/server/index.js +0 -2
- package/dist/_members/nle-export/server/index.js.map +0 -1
- package/dist/_members/nle-export/server/pack-zip.js +0 -38
- package/dist/_members/nle-export/server/pack-zip.js.map +0 -1
- package/dist/_members/nle-export/srt.js +0 -50
- package/dist/_members/nle-export/srt.js.map +0 -1
- package/dist/_members/nle-export/types.js +0 -9
- package/dist/_members/nle-export/types.js.map +0 -1
- package/dist/_members/nle-export/xml/index.js +0 -11
- package/dist/_members/nle-export/xml/index.js.map +0 -1
- package/dist/_members/nle-export/xml-utils.js +0 -48
- package/dist/_members/nle-export/xml-utils.js.map +0 -1
- package/dist/_members/perception/activeSpeaker.js +0 -103
- package/dist/_members/perception/audioQuality.js +0 -76
- package/dist/_members/perception/energyBeat.js +0 -99
- package/dist/_members/perception/identityMatch.js +0 -91
- package/dist/_members/perception/index.js +0 -48
- package/dist/_members/perception/visualQuality.js +0 -95
- package/dist/_members/plane/conformance.js +0 -90
- package/dist/_members/plane/contract.js +0 -49
- package/dist/_members/plane/index.js +0 -16
- package/dist/_members/primitives/backgrounds/index.js +0 -32
- package/dist/_members/primitives/backgrounds/index.js.map +0 -1
- package/dist/_members/primitives/captions/index.js +0 -398
- package/dist/_members/primitives/captions/index.js.map +0 -1
- package/dist/_members/primitives/chunk-2LVE4UIT.js +0 -139
- package/dist/_members/primitives/chunk-2LVE4UIT.js.map +0 -1
- package/dist/_members/primitives/chunk-3IQUH6KK.js +0 -20
- package/dist/_members/primitives/chunk-3IQUH6KK.js.map +0 -1
- package/dist/_members/primitives/chunk-3OMURV6Q.js +0 -112
- package/dist/_members/primitives/chunk-3OMURV6Q.js.map +0 -1
- package/dist/_members/primitives/chunk-4IS6TMEG.js +0 -21
- package/dist/_members/primitives/chunk-4IS6TMEG.js.map +0 -1
- package/dist/_members/primitives/chunk-5MWGAEGQ.js +0 -1644
- package/dist/_members/primitives/chunk-5MWGAEGQ.js.map +0 -1
- package/dist/_members/primitives/chunk-7RRPFPQK.js +0 -15
- package/dist/_members/primitives/chunk-7RRPFPQK.js.map +0 -1
- package/dist/_members/primitives/chunk-DH5TRZK2.js +0 -125
- package/dist/_members/primitives/chunk-DH5TRZK2.js.map +0 -1
- package/dist/_members/primitives/chunk-E3KNUSFG.js +0 -2337
- package/dist/_members/primitives/chunk-E3KNUSFG.js.map +0 -1
- package/dist/_members/primitives/chunk-G2B3G4HK.js +0 -47
- package/dist/_members/primitives/chunk-G2B3G4HK.js.map +0 -1
- package/dist/_members/primitives/chunk-HFPFGZXT.js +0 -1494
- package/dist/_members/primitives/chunk-HFPFGZXT.js.map +0 -1
- package/dist/_members/primitives/chunk-HIWVFZVH.js +0 -19
- package/dist/_members/primitives/chunk-HIWVFZVH.js.map +0 -1
- package/dist/_members/primitives/chunk-IDAL6G3Y.js +0 -134
- package/dist/_members/primitives/chunk-IDAL6G3Y.js.map +0 -1
- package/dist/_members/primitives/chunk-KNC6JP5F.js +0 -34
- package/dist/_members/primitives/chunk-KNC6JP5F.js.map +0 -1
- package/dist/_members/primitives/chunk-KYRDVZST.js +0 -459
- package/dist/_members/primitives/chunk-KYRDVZST.js.map +0 -1
- package/dist/_members/primitives/chunk-LWLHS2NS.js +0 -3410
- package/dist/_members/primitives/chunk-LWLHS2NS.js.map +0 -1
- package/dist/_members/primitives/chunk-QAQ3P7DR.js +0 -8855
- package/dist/_members/primitives/chunk-QAQ3P7DR.js.map +0 -1
- package/dist/_members/primitives/chunk-ROV2ODWC.js +0 -81
- package/dist/_members/primitives/chunk-ROV2ODWC.js.map +0 -1
- package/dist/_members/primitives/chunk-TCRC2FH3.js +0 -183
- package/dist/_members/primitives/chunk-TCRC2FH3.js.map +0 -1
- package/dist/_members/primitives/chunk-US4YEDAA.js +0 -96
- package/dist/_members/primitives/chunk-US4YEDAA.js.map +0 -1
- package/dist/_members/primitives/chunk-UVKRO5ER.js +0 -13
- package/dist/_members/primitives/chunk-UVKRO5ER.js.map +0 -1
- package/dist/_members/primitives/chunk-W4EIIF2I.js +0 -10
- package/dist/_members/primitives/chunk-W4EIIF2I.js.map +0 -1
- package/dist/_members/primitives/chunk-WPGKIPCO.js +0 -3563
- package/dist/_members/primitives/chunk-WPGKIPCO.js.map +0 -1
- package/dist/_members/primitives/chunk-WZFLEGMD.js +0 -1435
- package/dist/_members/primitives/chunk-WZFLEGMD.js.map +0 -1
- package/dist/_members/primitives/chunk-XHU3WBEI.js +0 -33
- package/dist/_members/primitives/chunk-XHU3WBEI.js.map +0 -1
- package/dist/_members/primitives/chunk-YN7WTZZ7.js +0 -46
- package/dist/_members/primitives/chunk-YN7WTZZ7.js.map +0 -1
- package/dist/_members/primitives/effects/index.js +0 -30
- package/dist/_members/primitives/effects/index.js.map +0 -1
- package/dist/_members/primitives/hero-text/index.js +0 -14
- package/dist/_members/primitives/hero-text/index.js.map +0 -1
- package/dist/_members/primitives/index.js +0 -64
- package/dist/_members/primitives/index.js.map +0 -1
- package/dist/_members/primitives/layouts/index.js +0 -24
- package/dist/_members/primitives/layouts/index.js.map +0 -1
- package/dist/_members/primitives/lib/easings.js +0 -26
- package/dist/_members/primitives/lib/easings.js.map +0 -1
- package/dist/_members/primitives/lib/index.js +0 -74
- package/dist/_members/primitives/lib/index.js.map +0 -1
- package/dist/_members/primitives/lib/palette.js +0 -72
- package/dist/_members/primitives/lib/palette.js.map +0 -1
- package/dist/_members/primitives/lib/preview.js +0 -8
- package/dist/_members/primitives/lib/preview.js.map +0 -1
- package/dist/_members/primitives/lib/schema.js +0 -12
- package/dist/_members/primitives/lib/schema.js.map +0 -1
- package/dist/_members/primitives/lib/seeded-random.js +0 -14
- package/dist/_members/primitives/lib/seeded-random.js.map +0 -1
- package/dist/_members/primitives/lib/text/contrast.js +0 -12
- package/dist/_members/primitives/lib/text/contrast.js.map +0 -1
- package/dist/_members/primitives/lib/text/fill.js +0 -8
- package/dist/_members/primitives/lib/text/fill.js.map +0 -1
- package/dist/_members/primitives/lib/text/fitText.js +0 -10
- package/dist/_members/primitives/lib/text/fitText.js.map +0 -1
- package/dist/_members/primitives/lib/text/marker.js +0 -8
- package/dist/_members/primitives/lib/text/marker.js.map +0 -1
- package/dist/_members/primitives/lib/text/motion.js +0 -16
- package/dist/_members/primitives/lib/text/motion.js.map +0 -1
- package/dist/_members/primitives/lib/text/recolor.js +0 -8
- package/dist/_members/primitives/lib/text/recolor.js.map +0 -1
- package/dist/_members/primitives/lib/text/spec.js +0 -1
- package/dist/_members/primitives/lib/text/spec.js.map +0 -1
- package/dist/_members/primitives/lib/text/stage.js +0 -8
- package/dist/_members/primitives/lib/text/stage.js.map +0 -1
- package/dist/_members/primitives/lib/text/typeface.js +0 -8
- package/dist/_members/primitives/lib/text/typeface.js.map +0 -1
- package/dist/_members/primitives/lib/tokens.js +0 -24
- package/dist/_members/primitives/lib/tokens.js.map +0 -1
- package/dist/_members/primitives/lib/types.js +0 -1
- package/dist/_members/primitives/lib/types.js.map +0 -1
- package/dist/_members/primitives/params-required.json +0 -153
- package/dist/_members/primitives/scenes/index.js +0 -25
- package/dist/_members/primitives/scenes/index.js.map +0 -1
- package/dist/_members/primitives/subject-foreground/index.js +0 -30
- package/dist/_members/primitives/subject-foreground/index.js.map +0 -1
- package/dist/_members/primitives/text/index.js +0 -57
- package/dist/_members/primitives/text/index.js.map +0 -1
- package/dist/_members/primitives/transitions/index.js +0 -67
- package/dist/_members/primitives/transitions/index.js.map +0 -1
- package/dist/_members/primitives/ui-blocks/index.js +0 -76
- package/dist/_members/primitives/ui-blocks/index.js.map +0 -1
- package/dist/_members/primitives/version-map.json +0 -105
- package/dist/_members/primitives/workspace.js +0 -60
- package/dist/_members/primitives/workspace.js.map +0 -1
- package/dist/chunk-37NJ27UU.js +0 -501
- package/dist/chunk-6EQXLEP6.js +0 -194
- package/dist/chunk-MXFAADCQ.js +0 -735
- package/dist/context-OKX3HHFS.js +0 -14
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
export { apcaLc } from "../../brand-derivation/index.js";
|
|
2
|
-
/** Bump on ANY change to the algorithm or constants below. The render consumer
|
|
3
|
-
* embeds this into renderCacheKey (spec §15) so a floor change invalidates
|
|
4
|
-
* cached renders transitively — never a remembered manual bump. */
|
|
5
2
|
export declare const FLOOR_VERSION = "floor-v6-2026.06.09";
|
|
6
|
-
/** Fractions of the OUTPUT rect. Origin TOP-LEFT, y-down, all in [0,1]. */
|
|
7
3
|
export interface Rect {
|
|
8
4
|
x: number;
|
|
9
5
|
y: number;
|
|
@@ -11,73 +7,43 @@ export interface Rect {
|
|
|
11
7
|
h: number;
|
|
12
8
|
}
|
|
13
9
|
export type Anchor = "top" | "bottom" | "lower-third" | "left" | "right" | "free";
|
|
14
|
-
/** A frame window in absolute frame indices (inclusive start, exclusive end). */
|
|
15
10
|
export interface FrameWindow {
|
|
16
11
|
startFrame: number;
|
|
17
12
|
endFrame: number;
|
|
18
13
|
}
|
|
19
|
-
/** Per-frame face box normalized to the OUTPUT frame (the crop is already applied
|
|
20
|
-
* — render derives this as crop∘FaceBoxSource). `null` = no face that frame. */
|
|
21
14
|
export type FaceBoxOutput = Rect;
|
|
22
|
-
/** One tracked person. The bake (spec §10) emits a per-frame face box per subject
|
|
23
|
-
* plus the windows where they are the active speaker. */
|
|
24
15
|
export interface Subject {
|
|
25
16
|
id: string;
|
|
26
|
-
/** Per-frame face box (output coords), `null` where this subject has no face. */
|
|
27
17
|
faceBoxSeries: (FaceBoxOutput | null)[];
|
|
28
|
-
/** Windows where this subject is the active speaker (drives speaker-switch, spec §8). */
|
|
29
18
|
activeWindows?: FrameWindow[];
|
|
30
19
|
}
|
|
31
|
-
/** The composed layout shape resolved from `subjects[]`. `single-focus` is fully
|
|
32
|
-
* placed by this module; the designed split/stacked/speaker-switch geometry is a
|
|
33
|
-
* later plan (spec §8) — reported here so callers branch correctly and the
|
|
34
|
-
* multi-subject case is never silently flattened. */
|
|
35
20
|
export type LayoutIntent = "single-focus" | "split" | "stacked" | "speaker-switch";
|
|
36
|
-
/** The CEILING contract (spec §7) — declared here so the author-time agent and
|
|
37
|
-
* the render/ceiling consumers share one shape. The floor only bounds a
|
|
38
|
-
* treatment's animated EXTENT (a popping word must not pop onto the face); the
|
|
39
|
-
* treatment library itself lives above the floor. */
|
|
40
21
|
export interface Treatment {
|
|
41
22
|
segmentation: "word" | "phrase" | "line";
|
|
42
23
|
emphasis: {
|
|
43
24
|
keywords: string[];
|
|
44
25
|
style: "color" | "scale" | "weight";
|
|
45
26
|
};
|
|
46
|
-
/** One of the repo's mood-tagged kinetic caption styles (useWhen/pairsWith/avoidWith honoured above the floor). */
|
|
47
27
|
kineticPreset: string;
|
|
48
28
|
maxLines: number;
|
|
49
|
-
/** Index into the editorial type scale (spec §7.1) — NOT a raw px guess. */
|
|
50
29
|
typeScaleStep: number;
|
|
51
30
|
}
|
|
52
31
|
export interface PlacedElement {
|
|
53
32
|
id: string;
|
|
54
33
|
kind: "caption" | "graphic";
|
|
55
|
-
/** `inset` respects face + safe-zones + inter-element; `takeover` is intentional
|
|
56
|
-
* full-frame occlusion (honours only safe zones for its internal text). */
|
|
57
34
|
intent: "inset" | "takeover";
|
|
58
|
-
/** Captions are required (the reframe yields, never drops); graphics default droppable. */
|
|
59
35
|
required: boolean;
|
|
60
|
-
/** Higher places first. Captions highest by default. */
|
|
61
36
|
priority: number;
|
|
62
37
|
hasText: boolean;
|
|
63
|
-
/** MEASURED extent (caption layer measures the text; overlay measures the
|
|
64
|
-
* primitive at its declared params) — NOT a guess. The hard face guarantee is
|
|
65
|
-
* only as hard as this number, so it must be real (spec §5). */
|
|
66
38
|
measuredExtent: {
|
|
67
39
|
w: number;
|
|
68
40
|
h: number;
|
|
69
41
|
};
|
|
70
42
|
preferredRegion?: Anchor;
|
|
71
43
|
treatment?: Treatment;
|
|
72
|
-
/** Resolved text color (hex) for the legibility check; defaults to the white
|
|
73
|
-
* pole when omitted (the safe default text color over an unknown backdrop). */
|
|
74
44
|
textColor?: string;
|
|
75
|
-
/** Element time window in absolute frames (caller converts seconds→frames up front). */
|
|
76
45
|
timeWindow: FrameWindow;
|
|
77
46
|
}
|
|
78
|
-
/** Caller-supplied luminance summary of the layers BENEATH an element (no
|
|
79
|
-
* circularity — never the element's own remedy). Each tile is Y∈[0,1]; the
|
|
80
|
-
* WORST tile drives the decision. Render samples real pixels; tests synthesize. */
|
|
81
47
|
export interface LuminanceSummary {
|
|
82
48
|
tiles: number[];
|
|
83
49
|
}
|
|
@@ -90,10 +56,6 @@ export interface ResolvedElement {
|
|
|
90
56
|
remedy: LegibilityRemedy;
|
|
91
57
|
};
|
|
92
58
|
}
|
|
93
|
-
/** The reframe's yield. `transform` is a per-frame additive adjustment on the
|
|
94
|
-
* baked trajectory (generalises the old caption scalar shift); `mat` is a
|
|
95
|
-
* DESIGNED reserved band (the render fills it with blurred-glass/gradient —
|
|
96
|
-
* NEVER a flat letterbox on 9:16/4:5). */
|
|
97
59
|
export type ReframeAdjustment = {
|
|
98
60
|
kind: "transform";
|
|
99
61
|
dy: number;
|
|
@@ -118,129 +80,46 @@ export interface FloorInput {
|
|
|
118
80
|
platform: string;
|
|
119
81
|
aspect: "9:16" | "1:1" | "4:5" | "16:9";
|
|
120
82
|
};
|
|
121
|
-
/** Multi-subject native (spec §5/§8). One subject → single-focus. */
|
|
122
83
|
subjects: Subject[];
|
|
123
84
|
elements: PlacedElement[];
|
|
124
|
-
/** depthMode relaxes the face keep-out's LOWER edge into a torso band (spec §12).
|
|
125
|
-
* When `captionsBehind` is supplied, depthMode is GATED by the eligibility
|
|
126
|
-
* predicate (§22.2) — ineligible degrades to a normal lower-third caption. */
|
|
127
85
|
depthMode?: boolean;
|
|
128
|
-
/** Captions-behind-speaker eligibility signals (§22.2), injected by the render
|
|
129
|
-
* env: `activeSpeakerPresenceFraction` summarized from the bake's activeWindows;
|
|
130
|
-
* `activeBandCoverage` = the post-sizing matte occlusion of the caption band
|
|
131
|
-
* (a render-time sample, like `backdrop`). Absent ⇒ the gate is inert and
|
|
132
|
-
* depthMode is honored as authored (today's behavior). */
|
|
133
86
|
captionsBehind?: {
|
|
134
87
|
activeSpeakerPresenceFraction: number;
|
|
135
88
|
activeBandCoverage: number | null;
|
|
136
89
|
};
|
|
137
|
-
/** Layers-beneath luminance for an element's region+window. Render supplies the
|
|
138
|
-
* real sampler; tests supply a synthetic one. */
|
|
139
90
|
backdrop: (rect: Rect, frames: number[]) => LuminanceSummary;
|
|
140
91
|
}
|
|
141
92
|
export interface FloorEnvelope {
|
|
142
93
|
perElement: ResolvedElement[];
|
|
143
94
|
reframe: ReframeAdjustment;
|
|
144
|
-
/** Per-frame UNION face keep-out across all subjects (`null` where no subject has a face). */
|
|
145
95
|
faceKeepOut: (Rect | null)[];
|
|
146
96
|
layout: LayoutIntent;
|
|
147
97
|
diagnostics: FloorDiagnostics;
|
|
148
98
|
}
|
|
149
|
-
/** Face keep-out padding, in fractions of the FACE box (scales with face size,
|
|
150
|
-
* aspect-agnostic). Top grows most (hair/headroom), then bottom, then sides. */
|
|
151
99
|
export declare const FACE_PADDING: {
|
|
152
100
|
readonly top: 0.6;
|
|
153
101
|
readonly bottom: 0.3;
|
|
154
102
|
readonly side: 0.25;
|
|
155
103
|
};
|
|
156
|
-
/** APCA Lc target for caption/graphic text over video (spec §2 invariant 2).
|
|
157
|
-
* Numerically equals brand-derivation's `FLOORS.nonBody`, but it is a DISTINCT
|
|
158
|
-
* concept (text-over-hostile-video, not muted-UI-text) — kept separate on
|
|
159
|
-
* purpose so a change to one never silently moves the other. */
|
|
160
104
|
export declare const CAPTION_LC_FLOOR = 60;
|
|
161
|
-
/** Minimum effective zoom the yield may request — mirrors the bake's source-fit
|
|
162
|
-
* floor (`CropFromTrajectory` effectiveZoom clamp). Below this the source no
|
|
163
|
-
* longer fills the frame, so we fall to a designed mat instead. */
|
|
164
105
|
export declare const MIN_ZOOM = 0.4;
|
|
165
|
-
/** Pad a single face box by the face-relative padding vector and clamp to [0,1].
|
|
166
|
-
* `null` (no-face frame) → `null`. In depthMode the lower edge is NOT grown
|
|
167
|
-
* (the torso band is legible-behind, spec §12). */
|
|
168
106
|
export declare function faceKeepOut(face: FaceBoxOutput | null, depthMode?: boolean): Rect | null;
|
|
169
|
-
/** Axis-aligned bounding box of a set of rects. */
|
|
170
107
|
export declare function boundingBox(rects: Rect[]): Rect;
|
|
171
|
-
/** Per-frame UNION of every subject's padded face keep-out. `null` for a frame
|
|
172
|
-
* where no subject has a face. This is the floor's "face class" — captions never
|
|
173
|
-
* occlude ANY subject's face, single- or multi-subject. */
|
|
174
108
|
export declare function unionFaceKeepOutSeries(subjects: Subject[], depthMode?: boolean): (Rect | null)[];
|
|
175
|
-
/** Per-frame keep-out for SPEAKER-SWITCH (spec §8): the crop follows the active
|
|
176
|
-
* speaker, so only THEY are prominently in frame — the keep-out tracks the
|
|
177
|
-
* active subject (whose `activeWindows` cover the frame), NOT the union of all
|
|
178
|
-
* subjects. This lets captions sit tight under the in-frame speaker instead of
|
|
179
|
-
* clearing an off-frame second subject's union (the over-conservative single-
|
|
180
|
-
* stage behavior). Gaps (before the first switch, or no window covers the frame)
|
|
181
|
-
* hold the first subject that has a face there; truly faceless frames → null. */
|
|
182
109
|
export declare function activeFaceKeepOutSeries(subjects: Subject[], depthMode?: boolean): (Rect | null)[];
|
|
183
|
-
/** Resolve the composed layout shape from `subjects[]`. One subject → single-
|
|
184
|
-
* focus. Two+ subjects → speaker-switch when active-speaker windows exist,
|
|
185
|
-
* else a static split. (The DESIGNED geometry for the multi cases is spec §8 /
|
|
186
|
-
* a later plan; this module places them with a correct union keep-out and
|
|
187
|
-
* reports the intent so nothing is silently flattened.) */
|
|
188
110
|
export declare function resolveLayoutIntent(subjects: Subject[]): LayoutIntent;
|
|
189
|
-
/**
|
|
190
|
-
* Compute the reframe yield needed to open `neededBand` of vertical space below
|
|
191
|
-
* the (clip-max) face keep-out for a required element. Precedence:
|
|
192
|
-
* 1. already enough band below → identity transform
|
|
193
|
-
* 2. reposition: raise the source so the keep-out leaves `neededBand` below it
|
|
194
|
-
* 3. zoom-out: shrink the subject (capped at MIN_ZOOM) to free vertical space
|
|
195
|
-
* 4. designed mat: a reserved band at the bottom (the render fills it with a
|
|
196
|
-
* designed treatment — NEVER a flat letterbox; forbidden as a frame-border
|
|
197
|
-
* pillarbox on 9:16/4:5).
|
|
198
|
-
*/
|
|
199
111
|
export declare function reframeYield(input: {
|
|
200
112
|
maxFaceKeepOut: Rect;
|
|
201
113
|
neededBand: number;
|
|
202
114
|
aspect: string;
|
|
203
115
|
}): ReframeAdjustment;
|
|
204
|
-
/**
|
|
205
|
-
* TOP-direction reframe-yield — open `neededBand` of vertical space ABOVE the
|
|
206
|
-
* face keep-out for a HERO caption that sits ABOVE the subject (the "STEAL"
|
|
207
|
-
* composition: subject low, big text in the headroom). Mirror of `reframeYield`
|
|
208
|
-
* but UP-direction:
|
|
209
|
-
* 1. already enough band above → identity
|
|
210
|
-
* 2. reposition: LOWER the subject (dy>0) so the keep-out's top leaves the band
|
|
211
|
-
* 3. zoom-out: shrink the subject (capped at MIN_ZOOM) to free the rest
|
|
212
|
-
* 4. INFEASIBLE → `null` (NEVER a designed mat — "no fake stuff", per the hero
|
|
213
|
-
* caption decision). The caller degrades to a readable FRONT caption when
|
|
214
|
-
* real headroom can't fit the band (e.g. the head is already frame-high).
|
|
215
|
-
* NOTE: operates in OUTPUT-frame keep-out coords like reframeYield; the SOURCE
|
|
216
|
-
* headroom check (whether the source actually has room above the head) belongs
|
|
217
|
-
* to the eligibility gate that feeds this — see captionsBehind eligibility.
|
|
218
|
-
*/
|
|
219
116
|
export declare function reframeYieldTop(input: {
|
|
220
117
|
maxFaceKeepOut: Rect;
|
|
221
118
|
neededBand: number;
|
|
222
119
|
aspect: string;
|
|
223
120
|
}): ReframeAdjustment | null;
|
|
224
|
-
/** Speaker silhouette width ÷ face KEEP-OUT width. Shoulders span ~2.2× the bare
|
|
225
|
-
* face; the keep-out already carries side padding (~1.5× the face), so the
|
|
226
|
-
* silhouette is ~1.5× the keep-out. Used to size the co-view crop. */
|
|
227
121
|
export declare const SILHOUETTE_TO_KEEPOUT_W = 1.5;
|
|
228
|
-
/** Co-view target: the speaker silhouette must occupy at most this fraction of
|
|
229
|
-
* the OUTPUT width, so a centred caption (~0.8 wide) extends past the body on
|
|
230
|
-
* both sides and reads WITH a body-bite (spec §12) instead of vanishing. At 0.45
|
|
231
|
-
* the body covers ~45% of the width → ~44% of the caption is visible (a clear
|
|
232
|
-
* readable bite, not just the stray ends) while keeping a comfortable medium
|
|
233
|
-
* shot. Lower = more caption shown but a smaller subject (pure aesthetic knob). */
|
|
234
122
|
export declare const COVIEW_MAX_SILHOUETTE_W = 0.45;
|
|
235
|
-
/**
|
|
236
|
-
* Reframe for CAPTIONS-BEHIND (co-view, depthMode). Unlike reframeYield (which
|
|
237
|
-
* opens a vertical band BELOW the face for a lower-third caption), the co-view
|
|
238
|
-
* caption sits CENTRED behind the speaker — so the constraint is LATERAL: the
|
|
239
|
-
* silhouette must be narrower than the caption or the body hides the whole line
|
|
240
|
-
* (the over-occlusion bug). Widen the crop (shrink the subject, face-scale<1,
|
|
241
|
-
* capped at MIN_ZOOM) until the silhouette fits COVIEW_MAX_SILHOUETTE_W. dy=0 —
|
|
242
|
-
* no vertical reposition; the caption is behind, not below.
|
|
243
|
-
*/
|
|
244
123
|
export declare function coViewReframe(maxFaceKeepOut: Rect): ReframeAdjustment;
|
|
245
124
|
export declare const MIN_ACTIVE_SPEAKER_PRESENCE = 0.6;
|
|
246
125
|
export declare const COVIEW_MIN_BAND_COVERAGE = 0.15;
|
|
@@ -250,20 +129,6 @@ export interface CaptionsBehindEligibility {
|
|
|
250
129
|
eligible: boolean;
|
|
251
130
|
reason: CaptionsBehindReason;
|
|
252
131
|
}
|
|
253
|
-
/**
|
|
254
|
-
* Pure eligibility gate for captions-behind-speaker. Evaluated AFTER the co-view
|
|
255
|
-
* reframe sizing (spec §22.2), so `activeBandCoverage` is the post-sizing
|
|
256
|
-
* occlusion of the caption band by the active speaker's silhouette.
|
|
257
|
-
*
|
|
258
|
-
* @param activeSpeakerPresenceFraction fraction of clip frames with ANY active
|
|
259
|
-
* speaker present (single or two-shot; not "single speaker"). Injected.
|
|
260
|
-
* @param activeBandCoverage mean fraction of the caption band the active
|
|
261
|
-
* speaker's silhouette occludes over its windows; `null` ⇒ NOT YET MEASURED
|
|
262
|
-
* (the bake-time coverage scalar is a follow-on) → the coverage gate is
|
|
263
|
-
* SKIPPED and presence + coViewReframe sizing gate instead. Injected like
|
|
264
|
-
* `LuminanceSummary` (bake/render-env), keeping this function pure.
|
|
265
|
-
* @param legible APCA decision (Lc ≥ CAPTION_LC_FLOOR) on the visible portion.
|
|
266
|
-
*/
|
|
267
132
|
export declare function captionsBehindEligible(input: {
|
|
268
133
|
activeSpeakerPresenceFraction: number;
|
|
269
134
|
activeBandCoverage: number | null;
|
|
@@ -279,26 +144,7 @@ interface Blockers {
|
|
|
279
144
|
faceKeepOut: Rect[];
|
|
280
145
|
safeZones: Rect[];
|
|
281
146
|
}
|
|
282
|
-
/**
|
|
283
|
-
* Place a full-width-ish horizontal band element (caption / lower-third) in the
|
|
284
|
-
* legal area. Two-zone model (spec §6.2): center-crossing blockers carve the
|
|
285
|
-
* legal vertical GAPS (1-D solve); side regions (rails) cap the horizontal
|
|
286
|
-
* CORRIDOR of the chosen band. Returns `null` when no legal vertical gap of
|
|
287
|
-
* `minH` fits, or when side rails squeeze the corridor below MIN_CAPTION_WIDTH.
|
|
288
|
-
* (Full 2-D packing for split/stacked layouts is spec §8 / a later plan.)
|
|
289
|
-
*/
|
|
290
147
|
export declare function placeInLegalArea(el: PlaceReq, b: Blockers): Rect | null;
|
|
291
|
-
/**
|
|
292
|
-
* The safe caption REGION for a destination — the floor's caption placement
|
|
293
|
-
* WITHOUT per-clip face context. The reframe handles faces per clip; the caption
|
|
294
|
-
* position itself is clip-independent (safe-zone-driven), so the GLOBAL caption
|
|
295
|
-
* layer renders into THIS band and it matches the per-clip floor's caption region
|
|
296
|
-
* (and its scrim) by construction — same placeInLegalArea, same safe zones.
|
|
297
|
-
*
|
|
298
|
-
* For a bottom/lower-third anchor the region's BOTTOM edge sits at the top of the
|
|
299
|
-
* platform's bottom-UI strip, so a caption rendered into it clears the chrome on
|
|
300
|
-
* any vertical surface (lookupSafeZones unions platforms when none is threaded).
|
|
301
|
-
*/
|
|
302
148
|
export declare function resolveCaptionRegion(input: {
|
|
303
149
|
aspect: string;
|
|
304
150
|
platform?: string;
|
|
@@ -308,17 +154,6 @@ export declare function resolveCaptionRegion(input: {
|
|
|
308
154
|
};
|
|
309
155
|
anchor?: Anchor;
|
|
310
156
|
}): Rect;
|
|
311
|
-
/**
|
|
312
|
-
* The region a code/graphic overlay (jsxSource) must render WITHIN — the largest
|
|
313
|
-
* band clear of the caption + platform safe zones (item #10: floor assigns the
|
|
314
|
-
* region, the jsx obeys). Keeps editorial graphics off the captions and the
|
|
315
|
-
* platform UI; the agent's jsx reads `params.region` (output fractions) for its
|
|
316
|
-
* bounds instead of hard-coding positions / full-frame useVideoConfig math.
|
|
317
|
-
*
|
|
318
|
-
* v1 is face-agnostic (clip-independent, like the caption band); per-clip
|
|
319
|
-
* face-aware overlay placement is a follow-up — the brief tells the agent the
|
|
320
|
-
* region may contain the speaker, so graphic elements should favour its edges.
|
|
321
|
-
*/
|
|
322
157
|
export declare function resolveOverlayRegion(input: {
|
|
323
158
|
aspect: string;
|
|
324
159
|
platform?: string;
|
|
@@ -328,22 +163,8 @@ export declare function resolveOverlayRegion(input: {
|
|
|
328
163
|
h: number;
|
|
329
164
|
};
|
|
330
165
|
}): Rect;
|
|
331
|
-
/**
|
|
332
|
-
* Decide the legibility remedy for text of `textColor` over a backdrop luminance
|
|
333
|
-
* summary. Real APCA (no proxy): the text's relative luminance vs each tile's
|
|
334
|
-
* luminance, reduced to the WORST tile. ≥ CAPTION_LC_FLOOR → no remedy; else the
|
|
335
|
-
* floor REQUESTS the cheapest always-legible remedy (`scrim`; the render makes it
|
|
336
|
-
* a designed blurred-glass/gradient, never a hard stroke — spec §14). The
|
|
337
|
-
* `lcTarget` is always the floor (the remedy must clear it).
|
|
338
|
-
*/
|
|
339
166
|
export declare function decideLegibility(backdrop: LuminanceSummary, textColor?: string): {
|
|
340
167
|
lcTarget: number;
|
|
341
168
|
remedy: LegibilityRemedy;
|
|
342
169
|
};
|
|
343
|
-
/**
|
|
344
|
-
* Resolve the composition floor for one clip. Linear, single-stage-per-clip, no
|
|
345
|
-
* feedback loop → deterministic. Never throws; required elements are never
|
|
346
|
-
* dropped (they get a forced designed-mat / lowest-gap placement), only
|
|
347
|
-
* non-required elements may drop (logged in diagnostics).
|
|
348
|
-
*/
|
|
349
170
|
export declare function resolveCompositionFloor(input: FloorInput): FloorEnvelope;
|
|
@@ -1,45 +1,21 @@
|
|
|
1
1
|
import type { TrajectoryData, TrajectorySegment } from "../reframe/trajectory.js";
|
|
2
2
|
import type { Rect, ReframeAdjustment, Subject } from "./composition-floor.js";
|
|
3
3
|
export declare const FRAME_ROUNDING_TOLERANCE = 2;
|
|
4
|
-
/**
|
|
5
|
-
* Resolve which trajectory segment (and index within it) a clip-relative source
|
|
6
|
-
* frame lands in. A frame within FRAME_ROUNDING_TOLERANCE of a segment edge
|
|
7
|
-
* clamps to the nearest edge; ANY larger gap FAILS LOUD (a real coverage/mapping
|
|
8
|
-
* bug — a cropIntent gap with no excludedRange, or a bad trim/section mapping —
|
|
9
|
-
* must not silently clamp onto the wrong frames).
|
|
10
|
-
*/
|
|
11
4
|
export declare function resolveSegmentAt(traj: TrajectoryData, srcFrame: number): {
|
|
12
5
|
seg: TrajectorySegment;
|
|
13
6
|
inSegIdx: number;
|
|
14
7
|
};
|
|
15
|
-
/** A playable span of the clip — one JumpCutVideo section. `sourceInFrames` is
|
|
16
|
-
* the SOURCE-ABSOLUTE frame (output fps) the span seeks to. */
|
|
17
8
|
export interface CropSection {
|
|
18
9
|
sourceInFrames: number;
|
|
19
10
|
durationInFrames: number;
|
|
20
11
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Map an OUTPUT frame to the CLIP-RELATIVE trajectory frame, section-aware. The
|
|
23
|
-
* trajectory is clip-relative (frame 0 = the clip's `trim.start`), but a clip
|
|
24
|
-
* with `excludedRanges` plays N playable spans, each seeking to a
|
|
25
|
-
* SOURCE-ABSOLUTE `sourceInFrames` with the trimmed gaps removed. So output
|
|
26
|
-
* frame F does NOT equal trajectory frame F; the section walk bridges the gaps.
|
|
27
|
-
*/
|
|
28
12
|
export declare function outputToTrajectoryFrame(sections: CropSection[], trimStartFrames: number, outFrame: number, srcFps: number, fps: number): number;
|
|
29
|
-
/** The per-frame crop-transform pieces `sourceRectToOutput` needs — the subset of
|
|
30
|
-
* `computeCropTransform`'s output that maps source pixels to output pixels. */
|
|
31
13
|
export interface CropTransform {
|
|
32
14
|
tx: number;
|
|
33
15
|
ty: number;
|
|
34
16
|
scaledSrcW: number;
|
|
35
17
|
scaledSrcH: number;
|
|
36
18
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Pure crop-transform math. Given the resolved per-frame center + crop params,
|
|
39
|
-
* the output dims, and the composition floor's reframe, returns the CSS
|
|
40
|
-
* transform (`tx`, `ty`, scaled source dims). `tyNoShift` is the y-translation
|
|
41
|
-
* WITHOUT the reframe, exposed so tests can assert magnitude.
|
|
42
|
-
*/
|
|
43
19
|
export declare function computeCropTransform(input: {
|
|
44
20
|
traj: {
|
|
45
21
|
src_w: number;
|
|
@@ -60,13 +36,6 @@ export declare function computeCropTransform(input: {
|
|
|
60
36
|
scaledSrcW: number;
|
|
61
37
|
scaledSrcH: number;
|
|
62
38
|
};
|
|
63
|
-
/**
|
|
64
|
-
* Map a SOURCE-normalized rect (`{x,y,w,h}` in [0,1] against source dims) to an
|
|
65
|
-
* OUTPUT-normalized rect, applying the per-frame crop — the `crop∘FaceBoxSource`
|
|
66
|
-
* the composition floor's `FaceBoxOutput` is defined as. NOT clamped: a face near
|
|
67
|
-
* the source edge can map partly off-frame, and that is the truth the floor needs
|
|
68
|
-
* (`faceKeepOut` clamps to [0,1] when it builds the keep-out).
|
|
69
|
-
*/
|
|
70
39
|
export declare function sourceRectToOutput(src: Rect, t: CropTransform, outW: number, outH: number): Rect;
|
|
71
40
|
export interface BuildSubjectsOutputArgs {
|
|
72
41
|
traj: TrajectoryData;
|
|
@@ -77,38 +46,12 @@ export interface BuildSubjectsOutputArgs {
|
|
|
77
46
|
outH: number;
|
|
78
47
|
fps: number;
|
|
79
48
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Build per-clip `Subject[]` with OUTPUT-space face boxes, accumulated by
|
|
82
|
-
* `face_id` across the clip's output frames — the projection loop factored out of
|
|
83
|
-
* the render's buildFloorInput so the Director derives IDENTICAL keep-outs. For
|
|
84
|
-
* each output frame: section-aware output→trajectory map → resolve segment →
|
|
85
|
-
* crop transform → project each source face box to output.
|
|
86
|
-
*/
|
|
87
49
|
export declare function buildSubjectsOutput(args: BuildSubjectsOutputArgs): Subject[];
|
|
88
|
-
/**
|
|
89
|
-
* The face keep-out rect(s) covering a beat window [startFrame, endFrame) in
|
|
90
|
-
* OUTPUT coords — for the structure-first graphics solver. Unions the
|
|
91
|
-
* speaker-active face keep-outs across the window into ONE bounding rect (so a
|
|
92
|
-
* graphic placed clear of it is clear of the face at EVERY frame of the beat).
|
|
93
|
-
* Empty when no face is present in the window (e.g. b-roll).
|
|
94
|
-
*/
|
|
95
50
|
export declare function faceKeepOutForWindow(subjects: Subject[], startFrame: number, endFrame: number, depthMode?: boolean): Rect[];
|
|
96
|
-
/**
|
|
97
|
-
* A SOURCE-space subject-silhouette provider: given a CLIP-RELATIVE source frame
|
|
98
|
-
* (frame 0 = the clip's trim.start, at src_fps), return the subject's silhouette
|
|
99
|
-
* bbox source-normalized [0,1] (`{x,y,w,h}`), or `null` when no subject is present
|
|
100
|
-
* that frame. The matte-geometry sidecar's per-frame foreground bbox is today's
|
|
101
|
-
* concrete provider (see the director's buildEvalSilhouette); a person-track union
|
|
102
|
-
* is a drop-in alternate. DECOUPLED from the crop on purpose: the SILHOUETTE comes
|
|
103
|
-
* from here; the CROP comes from `traj` (the render's reframe) — so the box lands
|
|
104
|
-
* exactly where the shipped render places the subject.
|
|
105
|
-
*/
|
|
106
51
|
export interface SubjectSilhouetteSource {
|
|
107
52
|
bboxAtSourceFrame: (srcFrame: number) => Rect | null;
|
|
108
53
|
}
|
|
109
54
|
export interface BuildSilhouetteKeepOutArgs {
|
|
110
|
-
/** The RENDER's reframe trajectory (FACE-derived — the SHIPPED crop). Its
|
|
111
|
-
* segments supply the per-frame crop transform; its `subjects` are unused. */
|
|
112
55
|
traj: TrajectoryData;
|
|
113
56
|
silhouette: SubjectSilhouetteSource;
|
|
114
57
|
sections: CropSection[];
|
|
@@ -118,23 +61,5 @@ export interface BuildSilhouetteKeepOutArgs {
|
|
|
118
61
|
outH: number;
|
|
119
62
|
fps: number;
|
|
120
63
|
}
|
|
121
|
-
/**
|
|
122
|
-
* Per-output-frame OUTPUT-space subject-SILHOUETTE keep-out — the silhouette twin
|
|
123
|
-
* of buildSubjectsOutput. For each output frame: section-aware output→trajectory
|
|
124
|
-
* map → resolve segment → crop transform (the SAME primitives buildSubjectsOutput
|
|
125
|
-
* uses for the FACE box) → project the source silhouette bbox supplied by the
|
|
126
|
-
* provider. `null` where the provider has no subject that frame. Unlike the face
|
|
127
|
-
* path this applies NO face-relative padding — the silhouette already includes
|
|
128
|
-
* hair/head/torso, so the projected box IS the keep-out. Off-crop overflow is
|
|
129
|
-
* clamped into the visible output frame [0,1] (the keep-out only concerns what is
|
|
130
|
-
* on screen).
|
|
131
|
-
*/
|
|
132
64
|
export declare function buildSilhouetteKeepOutOutput(args: BuildSilhouetteKeepOutArgs): (Rect | null)[];
|
|
133
|
-
/**
|
|
134
|
-
* Union the projected silhouette keep-out across a beat window [startFrame,
|
|
135
|
-
* endFrame) into ONE OUTPUT-space rect (so a graphic clear of it is clear of the
|
|
136
|
-
* subject at EVERY frame of the window) — the silhouette twin of
|
|
137
|
-
* faceKeepOutForWindow. Empty when no frame in the window carries a silhouette
|
|
138
|
-
* (degenerate zero-area rects are dropped).
|
|
139
|
-
*/
|
|
140
65
|
export declare function silhouetteKeepOutForWindow(series: (Rect | null)[], startFrame: number, endFrame: number): Rect[];
|
|
@@ -3,5 +3,7 @@ export * from "./cardTokens.js";
|
|
|
3
3
|
export * from "./composition-floor.js";
|
|
4
4
|
export * from "./safe-zones.js";
|
|
5
5
|
export * from "./behind-placement.js";
|
|
6
|
+
export * from "./behind-readiness.js";
|
|
7
|
+
export * from "./reframe-readiness.js";
|
|
6
8
|
export * from "./occlusion-budget.js";
|
|
7
9
|
export * from "./cropProjection.js";
|
|
@@ -1,61 +1,24 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Occlusion budget for behind-subject text (launch-grade text-behind-subject,
|
|
3
|
-
* Phase 2). Pure decisions over matte geometry sidecar frames: estimate how much
|
|
4
|
-
* of a text rect the subject covers, then verdict the window — too little bite
|
|
5
|
-
* reads as no depth at all; too much swallows the line; a covered TOP half eats
|
|
6
|
-
* the letter tops that carry legibility. The caller (a director activity) maps
|
|
7
|
-
* timeline→source frames, samples K frames, and degrades the overlay to front
|
|
8
|
-
* on any non-pass verdict — the overlay is never dropped.
|
|
9
|
-
*/
|
|
10
1
|
import type { MatteGeometryFrame } from "./behind-placement.js";
|
|
11
|
-
/** Budget thresholds (frame-fraction coverage of the TEXT rect). Calibration
|
|
12
|
-
* defaults — Phase-7 fixtures tune them, the deploy-test is the truth.
|
|
13
|
-
* `minBite`: below this at EVERY sample the silhouette never bites the line —
|
|
14
|
-
* the depth effect is invisible, so don't pay its cost. `maxCoverage`: above
|
|
15
|
-
* this at ANY sample the body swallows the line. `maxTopHalf`: text-bearing
|
|
16
|
-
* overlays lose legibility when letter TOPS go under — cap the upper half. */
|
|
17
2
|
export declare const BUDGET: {
|
|
18
3
|
readonly minBite: 0.15;
|
|
19
4
|
readonly maxCoverage: 0.65;
|
|
20
5
|
readonly maxTopHalf: 0.35;
|
|
21
6
|
};
|
|
22
|
-
/** Behind hero text extent heuristic (calibration constants; Phase-7 fixtures tune). */
|
|
23
7
|
export declare const BEHIND_TEXT_EXTENT: {
|
|
24
8
|
readonly heightFrac: 0.18;
|
|
25
9
|
};
|
|
26
|
-
/** Coverage at one sampled geometry frame: `total` over the full text rect,
|
|
27
|
-
* `topHalf` over its upper half. Both ∈ [0,1]. */
|
|
28
10
|
export interface CoverageSample {
|
|
29
11
|
f: number;
|
|
30
12
|
total: number;
|
|
31
13
|
topHalf: number;
|
|
32
14
|
}
|
|
33
15
|
export type BudgetVerdict = "pass" | "no-depth" | "swallow" | "tops-occluded";
|
|
34
|
-
/**
|
|
35
|
-
* Verdict a window of coverage samples against the budget. Samples are checked
|
|
36
|
-
* in order; the FIRST violating sample decides (deterministic): a text-bearing
|
|
37
|
-
* overlay whose top half exceeds `maxTopHalf` → "tops-occluded"; any sample over
|
|
38
|
-
* `maxCoverage` → "swallow". If no sample violates but the maximum total never
|
|
39
|
-
* reaches `minBite` → "no-depth" (so is an empty window). Else "pass".
|
|
40
|
-
* `worstFrame` is the violating sample's frame for the two per-sample verdicts.
|
|
41
|
-
*/
|
|
42
16
|
export declare function evaluateOcclusionBudget(samples: CoverageSample[], opts?: {
|
|
43
17
|
textBearing: boolean;
|
|
44
18
|
}): {
|
|
45
19
|
verdict: BudgetVerdict;
|
|
46
20
|
worstFrame?: number;
|
|
47
21
|
};
|
|
48
|
-
/**
|
|
49
|
-
* Estimate matte coverage of a text rect from the sidecar's marginal profiles.
|
|
50
|
-
* APPROXIMATION (documented): overlap(textRect, bbox) area fraction, weighted by the
|
|
51
|
-
* mean col-bucket coverage across the intersected x-span (cols[i] = fraction of that
|
|
52
|
-
* column covered by the subject). topHalf uses the same estimate restricted to the
|
|
53
|
-
* text rect's upper half via the rows marginal weighting. Marginals can't give exact
|
|
54
|
-
* 2-D intersection — constants are calibrated against fixtures, and the deploy-test
|
|
55
|
-
* is the truth.
|
|
56
|
-
*
|
|
57
|
-
* All rects source-normalized [0,1]. A null bbox (no subject) → {0, 0}.
|
|
58
|
-
*/
|
|
59
22
|
export declare function estimateCoverage(textRect: {
|
|
60
23
|
x: number;
|
|
61
24
|
y: number;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export interface SourceWindowLike {
|
|
2
|
+
startSec: number;
|
|
3
|
+
endSec: number;
|
|
4
|
+
detector?: "face" | "person";
|
|
5
|
+
}
|
|
6
|
+
export interface SubjectTrackEntryLike {
|
|
7
|
+
trackR2Key?: string;
|
|
8
|
+
trackUrl?: string;
|
|
9
|
+
detectorVersion?: string;
|
|
10
|
+
window?: {
|
|
11
|
+
startSec: number;
|
|
12
|
+
endSec: number;
|
|
13
|
+
};
|
|
14
|
+
faces?: Array<{
|
|
15
|
+
faceId: string;
|
|
16
|
+
bbox: {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
};
|
|
22
|
+
speakingShare?: number;
|
|
23
|
+
}>;
|
|
24
|
+
}
|
|
25
|
+
export declare function sourceWindowKey(window: SourceWindowLike): Promise<string>;
|
|
26
|
+
export interface ReframeTarget {
|
|
27
|
+
clipId: string;
|
|
28
|
+
mediaId: string;
|
|
29
|
+
window: {
|
|
30
|
+
startSec: number;
|
|
31
|
+
endSec: number;
|
|
32
|
+
};
|
|
33
|
+
segments: unknown[];
|
|
34
|
+
}
|
|
35
|
+
export declare function reframeNeedsDetection(segments: unknown[]): boolean;
|
|
36
|
+
export declare function reframeTargets(composition: unknown): ReframeTarget[];
|
|
37
|
+
export type ReframeReadiness = {
|
|
38
|
+
state: "geometric";
|
|
39
|
+
} | {
|
|
40
|
+
state: "track-ready";
|
|
41
|
+
entry: SubjectTrackEntryLike;
|
|
42
|
+
trackUrl: string;
|
|
43
|
+
} | {
|
|
44
|
+
state: "track-unfetchable";
|
|
45
|
+
entry: SubjectTrackEntryLike;
|
|
46
|
+
} | {
|
|
47
|
+
state: "no-track";
|
|
48
|
+
};
|
|
49
|
+
export declare function reframeReadinessForTarget(target: ReframeTarget, subjectTracks: Record<string, SubjectTrackEntryLike> | undefined): Promise<ReframeReadiness>;
|
|
@@ -1,38 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Destination safe-zone registry — the platform-UI + broadcast keep-outs the
|
|
3
|
-
* composition floor carves out of the output rect before placing any element
|
|
4
|
-
* (spec §9). Fractions of the OUTPUT rect (origin top-left, y-down, [0,1]); one
|
|
5
|
-
* math path for every aspect because the coordinates are already normalized to
|
|
6
|
-
* the destination frame.
|
|
7
|
-
*
|
|
8
|
-
* Convention-grounded, NOT research-grounded: platform chrome (TikTok's right
|
|
9
|
-
* action rail + bottom username/caption strip, Reels/Shorts variants) is
|
|
10
|
-
* industry convention, not something the layout/saliency papers model. Keep this
|
|
11
|
-
* a plain data table so it stays legible and versionable as platforms change
|
|
12
|
-
* their chrome.
|
|
13
|
-
*
|
|
14
|
-
* Pure data + one lookup. No I/O. Same input → same output.
|
|
15
|
-
*/
|
|
16
1
|
import type { Rect } from "./composition-floor.js";
|
|
17
|
-
/** Bump on ANY change to a profile rect or the broadcast defaults below. The
|
|
18
|
-
* render consumer embeds this into renderCacheKey (spec §15) so a profile edit
|
|
19
|
-
* invalidates cached renders transitively, the way BAKE_VERSION already does —
|
|
20
|
-
* never a remembered manual bump. */
|
|
21
2
|
export declare const SAFE_ZONE_PROFILE_VERSION = "safezones-v2-2026.06.05";
|
|
22
3
|
export interface SafeZoneProfile {
|
|
23
|
-
/** Platform-UI rects the floor treats as hard keep-outs (never place text/graphics under them). */
|
|
24
4
|
exclusions: Rect[];
|
|
25
|
-
/** Broadcast title-safe: text should stay inside this inset. */
|
|
26
5
|
titleSafe: Rect;
|
|
27
|
-
/** Broadcast action-safe: critical action inside this (slightly larger) inset. */
|
|
28
6
|
actionSafe: Rect;
|
|
29
7
|
}
|
|
30
|
-
/** Normalize a platform name to a PROFILES key (lowercased, aliased). */
|
|
31
8
|
export declare function normalizePlatform(platform: string): string;
|
|
32
|
-
/**
|
|
33
|
-
* Resolve the safe-zone profile for a destination. Unknown platform (or an
|
|
34
|
-
* aspect a known platform has no profile for) → broadcast title/action-safe only
|
|
35
|
-
* (no platform exclusions) so the floor degrades to a correct, conservative
|
|
36
|
-
* result rather than throwing.
|
|
37
|
-
*/
|
|
38
9
|
export declare function lookupSafeZones(platform: string, aspect: string): SafeZoneProfile;
|
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Aspect-loss advisory: a source whose shape disagrees with the output frame,
|
|
3
|
-
* placed with no authored camera.
|
|
4
|
-
*
|
|
5
|
-
* A `cover` fill scales the source until it covers the frame and throws the
|
|
6
|
-
* overflow away, centred. For a 3840×5760 portrait photo in a 16:9 frame that
|
|
7
|
-
* discards ~62% of the image about the middle — reliably decapitating anyone in
|
|
8
|
-
* it. In the 2026-08-05 toddler-parks session 15 of 68 imported candidates were
|
|
9
|
-
* portrait, every one placed into 16:9 with no crop intent, and nothing said a
|
|
10
|
-
* word at any point in the pipeline.
|
|
11
|
-
*
|
|
12
|
-
* Note this is WORSE for stills than the `fit` field suggests: `fit` is not
|
|
13
|
-
* threaded to the image path at all (MainComposition routes `kind:'image'` to
|
|
14
|
-
* StillCrop, which has no `fit` prop), so an image is always cropped by the
|
|
15
|
-
* derived still trajectory — whose faceless default centre is a hardcoded
|
|
16
|
-
* [0.5, 0.5]. Declaring `fit:"contain"` does not avoid this; authoring a
|
|
17
|
-
* `reframe` (or a `kenBurns`) does.
|
|
18
|
-
*
|
|
19
|
-
* ADVISORY only — same `(input) => string[]` contract as `detectNoAudioTrack`.
|
|
20
|
-
* Cropping to fill is a legitimate choice; this only says nobody made it.
|
|
21
|
-
*/
|
|
22
|
-
/**
|
|
23
|
-
* Fraction of the source that survives a `cover` fill. Purely a function of the
|
|
24
|
-
* two aspect ratios: the narrower dimension is fully used, the wider one is
|
|
25
|
-
* trimmed to match.
|
|
26
|
-
*/
|
|
27
1
|
export declare function coverVisibleFraction(source: {
|
|
28
2
|
width: number;
|
|
29
3
|
height: number;
|
|
@@ -31,15 +5,18 @@ export declare function coverVisibleFraction(source: {
|
|
|
31
5
|
width: number;
|
|
32
6
|
height: number;
|
|
33
7
|
}): number;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
8
|
+
export interface AspectCropLoss {
|
|
9
|
+
clipId?: string;
|
|
10
|
+
mediaId: string;
|
|
11
|
+
lostPct: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function findAspectCropLosses(composition: unknown, dimensionsByMediaId: Record<string, {
|
|
14
|
+
width?: number;
|
|
15
|
+
height?: number;
|
|
16
|
+
} | undefined>, target: {
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
}): AspectCropLoss[];
|
|
43
20
|
export declare function detectAspectCropLoss(composition: unknown, dimensionsByMediaId: Record<string, {
|
|
44
21
|
width?: number;
|
|
45
22
|
height?: number;
|