@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,54 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WHAT COUNTS AS A SPOKEN-WORD HIT, AND WHAT IT IS WORTH.
|
|
3
|
-
*
|
|
4
|
-
* This rule is implemented TWICE and has to be — the desktop searches its local
|
|
5
|
-
* `transcript_segments` table in Rust (`src-tauri/src/database/transcripts.rs`),
|
|
6
|
-
* and the web searches the utterances in an R2 blob in TypeScript. Neither can
|
|
7
|
-
* call the other: one is a SQL `LIKE` chain inside a Tauri command, the other
|
|
8
|
-
* runs in a browser against a JSON object it just downloaded.
|
|
9
|
-
*
|
|
10
|
-
* SO THE RULE IS DATA, AND BOTH LANES RUN THE SAME DATA. `cases.json` beside
|
|
11
|
-
* this file is the shared table: each row is a query, some spoken lines, and
|
|
12
|
-
* the hits they must produce, in order. This module is the TypeScript runner;
|
|
13
|
-
* `contract_transcript_search_cases` in `database/mod.rs` is the Rust one,
|
|
14
|
-
* reading the same file. A rule change that lands in one lane and not the other
|
|
15
|
-
* fails the table on the side that was missed.
|
|
16
|
-
*
|
|
17
|
-
* WHY A TABLE AND NOT A PARAMETERISED SUITE: this is a pure, stateless
|
|
18
|
-
* operation — inputs in, ranking out, no store to set up — which is exactly the
|
|
19
|
-
* case CLAUDE.md's decision table assigns to fixtures-as-data. A suite is for
|
|
20
|
-
* stateful CRUD behind one interface.
|
|
21
|
-
*
|
|
22
|
-
* WHY THE SCORES MATTER RATHER THAN JUST THE ORDER: `desktopScope`'s library
|
|
23
|
-
* search puts spoken hits above visual ones and says in its own comment that a
|
|
24
|
-
* transcript score and a CLIP cosine are different units that must not be
|
|
25
|
-
* merged by value. That reasoning only holds if a transcript score means one
|
|
26
|
-
* fixed thing, so two lanes scoring the same line differently would quietly
|
|
27
|
-
* make the ordering arbitrary.
|
|
28
|
-
*/
|
|
29
|
-
/** One spoken line, as either lane holds it. */
|
|
30
1
|
export interface SpokenLine {
|
|
31
2
|
text: string;
|
|
32
3
|
start: number;
|
|
33
4
|
end: number;
|
|
34
5
|
}
|
|
35
|
-
/** One line that matched, with what it is worth. */
|
|
36
6
|
export interface TranscriptHit extends SpokenLine {
|
|
37
|
-
/** Term coverage, 0–1. NOT comparable to a CLIP cosine. */
|
|
38
7
|
score: number;
|
|
39
8
|
}
|
|
40
|
-
/**
|
|
41
|
-
* A line containing the whole query as a PHRASE is a stronger answer than one
|
|
42
|
-
* that happens to contain the same words apart. Both outrank nothing.
|
|
43
|
-
*/
|
|
44
9
|
export declare const PHRASE_SCORE = 1;
|
|
45
10
|
export declare const SCATTERED_SCORE = 0.6;
|
|
46
|
-
/** The query, lowercased and split. Empty query = no terms = no hits. */
|
|
47
11
|
export declare function searchTerms(query: string): string[];
|
|
48
|
-
/**
|
|
49
|
-
* Rank the lines that match every term.
|
|
50
|
-
*
|
|
51
|
-
* `limit` is applied LAST, after ranking, so the strongest hits survive a small
|
|
52
|
-
* limit rather than whichever happened to be spoken first.
|
|
53
|
-
*/
|
|
54
12
|
export declare function rankTranscriptHits(query: string, lines: readonly SpokenLine[], limit?: number): TranscriptHit[];
|
|
@@ -1,15 +1,2 @@
|
|
|
1
1
|
import type { ClipExportInput } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Generate FCPXML v1.11. Compatible with Final Cut Pro 11 and DaVinci Resolve 19.
|
|
4
|
-
*
|
|
5
|
-
* Multi-clip, multi-asset composition:
|
|
6
|
-
* - One <format> per unique (w, h, fpsNum, fpsDen) across assets + sequence.
|
|
7
|
-
* - One <asset> per assets[] entry.
|
|
8
|
-
* - One <asset-clip> per spine[] item (offset/duration in sequence rate; start in source rate).
|
|
9
|
-
* - Markers with spineItemId render inside the matching <asset-clip>, start
|
|
10
|
-
* relativized to the clip's timelineStartFrames.
|
|
11
|
-
* - Markers without spineItemId render at spine root, start in sequence-absolute rate.
|
|
12
|
-
* - Text overlays overlapping a spine item render as markers inside that clip
|
|
13
|
-
* (value = overlay.text). Overlays outside all clips are dropped.
|
|
14
|
-
*/
|
|
15
2
|
export declare function generateFcpxml(input: ClipExportInput): string;
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Root subpath — zero-dep, edge-runtime-safe. Types + pure-TS logic only.
|
|
3
|
-
*
|
|
4
|
-
* XML generators (which depend on xmlbuilder2) live at `@cueframe/nle-export/xml`.
|
|
5
|
-
* Node-only packaging (archiver) lives at `@cueframe/nle-export/server`.
|
|
6
|
-
*/
|
|
7
1
|
export { generateSrt } from "./srt.js";
|
|
8
2
|
export { compositionToClipExportInput } from "./composition-to-input.js";
|
|
9
3
|
export { compactTimeline } from "./compact-timeline.js";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export type ExportFormat = "videoClip" | "fcpxml" | "premiere";
|
|
2
2
|
export type MarkerKind = "hook" | "editorial" | "overlay" | "scene" | "custom";
|
|
3
|
-
/** One entry per unique (sourceId, originInFrames, originOutFrames) triple. */
|
|
4
3
|
export type ClipExportAsset = {
|
|
5
4
|
id: string;
|
|
6
5
|
relPath: string;
|
|
@@ -58,48 +57,23 @@ export type ClipExportInput = {
|
|
|
58
57
|
textOverlays: ExportTextOverlay[];
|
|
59
58
|
audioTracks: ExportAudioTrack[];
|
|
60
59
|
};
|
|
61
|
-
/**
|
|
62
|
-
* Trim-activity output. One entry per unique (sourceId, inFrame, outFrame)
|
|
63
|
-
* triple across all clips in a composition.
|
|
64
|
-
*/
|
|
65
60
|
export type TrimmedRef = {
|
|
66
61
|
sourceId: string;
|
|
67
|
-
/**
|
|
68
|
-
* Integer source-frame count for the clip's requested in-point. Matching
|
|
69
|
-
* key — compositionToClipExportInput resolves a clip to its ref by exact
|
|
70
|
-
* (sourceId, inFramesAtSourceRate, outFramesAtSourceRate) equality.
|
|
71
|
-
*/
|
|
72
62
|
inFramesAtSourceRate: number;
|
|
73
63
|
outFramesAtSourceRate: number;
|
|
74
64
|
r2Key: string;
|
|
75
65
|
ptsStartSec: number;
|
|
76
66
|
durationSec: number;
|
|
77
|
-
/** ffprobe-reported rational rate of the trimmed file. */
|
|
78
67
|
sourceFpsNum: number;
|
|
79
68
|
sourceFpsDen: number;
|
|
80
|
-
/**
|
|
81
|
-
* Decimal frame rate used by the trim activity to derive
|
|
82
|
-
* inFramesAtSourceRate/outFramesAtSourceRate from seconds. Preserved so
|
|
83
|
-
* the converter's round-trip uses the same formula (avoids NTSC drift
|
|
84
|
-
* when mediaItem.frameRate is decimal 29.97 but ffprobe reports rational
|
|
85
|
-
* 30000/1001).
|
|
86
|
-
*/
|
|
87
69
|
mediaItemFps: number;
|
|
88
70
|
handleBeforeSec: number;
|
|
89
71
|
handleAfterSec: number;
|
|
90
|
-
/** Human-recognizable source name (mediaItem.name). Passed through so
|
|
91
|
-
* NLE bins show "Interview A.mov" instead of a Convex id. */
|
|
92
72
|
displayName: string;
|
|
93
73
|
cacheHit: boolean;
|
|
94
74
|
};
|
|
95
75
|
export type TimelineClip = {
|
|
96
76
|
id: string;
|
|
97
|
-
/**
|
|
98
|
-
* Original clip id before compactTimeline split this segment out of a
|
|
99
|
-
* bigger clip. Unset on clips that weren't split. Consumers that need
|
|
100
|
-
* to attach per-original-clip data (e.g. scene labels) should prefer
|
|
101
|
-
* this over string-parsing `id`.
|
|
102
|
-
*/
|
|
103
77
|
originalClipId?: string;
|
|
104
78
|
poolItemId: string;
|
|
105
79
|
sourceIn: number;
|
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NLE XML generators. Pulls `xmlbuilder2` which uses Node's Buffer, so this
|
|
3
|
-
* subpath only loads cleanly in Node or full browser bundles — NOT in edge
|
|
4
|
-
* runtimes (Convex V8 isolate, Cloudflare Workers without node-compat).
|
|
5
|
-
*
|
|
6
|
-
* Convex + edge-runtime consumers should import types + converter + srt from
|
|
7
|
-
* the package root, which is xmlbuilder2-free.
|
|
8
|
-
*/
|
|
9
1
|
export { generateFcpxml } from "../fcpxml.js";
|
|
10
2
|
export { generatePremiereXml } from "../premiere.js";
|
|
@@ -1,21 +1,9 @@
|
|
|
1
1
|
export interface FrameRateInfo {
|
|
2
|
-
/** Integer display rate (24 for 23.976, 30 for 29.97, 60 for 59.94). */
|
|
3
2
|
displayRate: number;
|
|
4
|
-
/** True when fps is a classical NTSC rate (N * 1000/1001). */
|
|
5
3
|
isNtsc: boolean;
|
|
6
|
-
/** FCPXML-style frame duration attribute (e.g. `1/30s` or `1001/30000s`). */
|
|
7
4
|
frameDuration: string;
|
|
8
5
|
}
|
|
9
|
-
/**
|
|
10
|
-
* Classify a frame rate. Handles integer fps and NTSC fractional rates
|
|
11
|
-
* (23.976, 29.97, 59.94) which use rational time values with 1001 numerator.
|
|
12
|
-
*/
|
|
13
6
|
export declare function getFrameRateInfo(fps: number): FrameRateInfo;
|
|
14
|
-
/**
|
|
15
|
-
* Convert seconds to an FCPXML rational time string.
|
|
16
|
-
* For NTSC rates, emits `frames*1001 / displayRate*1000 s` so timing stays exact.
|
|
17
|
-
*/
|
|
18
7
|
export declare function toRationalTime(seconds: number, fps: number): string;
|
|
19
|
-
/** Convert seconds to an integer frame count (display frames). */
|
|
20
8
|
export declare function toFrames(seconds: number, fps: number): number;
|
|
21
9
|
export declare function slugify(s: string): string;
|
|
@@ -1,108 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @cueframe/perception — `activeSpeaker` signal provider (per-angle AV active-
|
|
3
|
-
* speaker FACT).
|
|
4
|
-
*
|
|
5
|
-
* A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
|
|
6
|
-
* choice): per-angle audio-visual active-speaker detection (TalkNet-style ASD,
|
|
7
|
-
* arxiv:2107.06592) → a per-window speaking probability for THAT angle's dominant
|
|
8
|
-
* tracked face, calibrated to an ABSOLUTE [0,1] scalar so the Selector core can
|
|
9
|
-
* compare "who is talking" across angles (selector-abstraction spec §1.2, the
|
|
10
|
-
* `activeSpeaker` signal; §9.1 P3, switch on who's-talking).
|
|
11
|
-
*
|
|
12
|
-
* Perception NEVER imports the Selector core (the rot-guard direction): this module
|
|
13
|
-
* emits a plain `{ value, rawScore, confidence, evidence }` envelope that STRUCTURALLY
|
|
14
|
-
* matches `@cueframe/core`'s `Signal`, but the type lives here (a leaf owns its own
|
|
15
|
-
* fact shape; the core projects it). Adding/upgrading the model = a version stamp
|
|
16
|
-
* here; the core is untouched.
|
|
17
|
-
*
|
|
18
|
-
* This module is the PURE FACT CONTRACT (perception is a leaf — NO node I/O here,
|
|
19
|
-
* so it stays importable by every framework leaf):
|
|
20
|
-
* - `activeSpeakerSignal(series, sourceInSec, sourceOutSec)` — PURE: windows the
|
|
21
|
-
* per-frame ASD probabilities (over the angle's OWN source timeline) and maps the
|
|
22
|
-
* windowed speaking probability to the absolute [0,1] value + reasons.
|
|
23
|
-
*
|
|
24
|
-
* The MEASUREMENT (the TalkNet/Light-ASD model that PRODUCES an `ActiveSpeakerSeries`)
|
|
25
|
-
* lives OUTSIDE the leaf — the real perception build is the Modal skill
|
|
26
|
-
* (the backend services_router/skills/detect_active_speaker.py). It is PER-ANGLE:
|
|
27
|
-
* one angle's audio + that angle's tracked dominant face → that angle's speaking
|
|
28
|
-
* probability over time. This REPLACES the within-source Light-ASD (broken on 2+
|
|
29
|
-
* faces) — each angle's track is conditioned on its own audio, never the mixed
|
|
30
|
-
* podcast track (spec §10 — "Cannot be Deepgram-word-gated per-angle"). Both the
|
|
31
|
-
* Modal skill and any local harness feed this one calibration.
|
|
32
|
-
*
|
|
33
|
-
* LANDMINE (spec §scope-1): vocal activity ≠ SPEECH. Laughing, chewing, coughing,
|
|
34
|
-
* a hot reaction mic all raise audio energy and can fool a naive VAD — but a proper
|
|
35
|
-
* AV-ASD model (TalkNet) keys on lip-motion↔audio SYNC, so a chewing/laughing
|
|
36
|
-
* reaction shot (mouth moves, but not in speech-sync, or audio is non-speech)
|
|
37
|
-
* scores LOW. The calibration here trusts the AV model's probability; it does NOT
|
|
38
|
-
* re-derive "is talking" from audio energy alone (that would cut to the chewer).
|
|
39
|
-
* `audioEnergy` (the hot-mic VAD) is a SEPARATE, weaker signal — never conflate the
|
|
40
|
-
* two. The resolver test asserts a high-audio-energy / low-activeSpeaker fixture
|
|
41
|
-
* does NOT trigger a cut.
|
|
42
|
-
*
|
|
43
|
-
* Pure + deterministic.
|
|
44
|
-
*/
|
|
45
|
-
/** Bump when the ASD-probability→value calibration changes (the 3-stamp lesson — a
|
|
46
|
-
* stale cached activeSpeaker is served if a consumer doesn't bump alongside). The
|
|
47
|
-
* Modal model version is a DISTINCT stamp carried on the series (`modelVersion`). */
|
|
48
1
|
export declare const ACTIVE_SPEAKER_VERSION = "active-speaker-v1-2026.06.21";
|
|
49
|
-
/**
|
|
50
|
-
* The raw per-angle ASD measurement — what the Modal `detect_active_speaker` skill
|
|
51
|
-
* (and any local harness) produces for ONE angle. A per-frame speaking probability
|
|
52
|
-
* over the angle's OWN source timeline for that angle's dominant tracked face.
|
|
53
|
-
*
|
|
54
|
-
* Source-independent absolutes (each value is a probability in [0,1] from the AV
|
|
55
|
-
* model), never normalized across angles (the cross-source comparison is the
|
|
56
|
-
* Selector's job — `switchMargin`/weights, never the signal).
|
|
57
|
-
*/
|
|
58
2
|
export interface ActiveSpeakerSeries {
|
|
59
|
-
/** The Modal ASD model + weights version (e.g. the Light-ASD/TalkNet checkpoint).
|
|
60
|
-
* DISTINCT from `ACTIVE_SPEAKER_VERSION` (the calibration stamp). */
|
|
61
3
|
modelVersion: string;
|
|
62
|
-
/** Frames-per-second of `probs` (the model's visual rate — Light-ASD = 25). */
|
|
63
4
|
fps: number;
|
|
64
|
-
/** Source-second at which `probs[0]` starts (the angle's window start). */
|
|
65
5
|
windowStartSec: number;
|
|
66
|
-
/** Per-frame speaking probability ∈ [0,1] for the angle's dominant tracked face.
|
|
67
|
-
* A frame where the model had NO face crop (the dominant face left the frame)
|
|
68
|
-
* is `null` — NOT 0 (absence ≠ silence; a no-face frame must not dilute the mean
|
|
69
|
-
* toward "not speaking"). */
|
|
70
6
|
probs: Array<number | null>;
|
|
71
7
|
}
|
|
72
|
-
/** Matches `@cueframe/core`'s `Signal` shape STRUCTURALLY (perception owns its
|
|
73
|
-
* fact; the core projects `value`/`confidence`). `null` (not 0) when the angle has
|
|
74
|
-
* NO measurable face/audio over the window — absence, never "definitely silent". */
|
|
75
8
|
export interface ActiveSpeakerSignal {
|
|
76
|
-
/** ABSOLUTE, calibrated ∈ [0,1] — "is this angle's subject speaking right now,"
|
|
77
|
-
* source-independent. The talking angle scores highest. */
|
|
78
9
|
value: number;
|
|
79
|
-
/** Pre-calibration raw (the mean windowed ASD probability) for legibility. */
|
|
80
10
|
rawScore: number;
|
|
81
11
|
confidence: number;
|
|
82
|
-
/** Reasons-only ("speaking 0.91, 18/20 frames faced"); excluded from any hash. */
|
|
83
12
|
evidence: string;
|
|
84
13
|
}
|
|
85
|
-
/**
|
|
86
|
-
* Window the per-frame ASD probabilities over `[sourceInSec, sourceOutSec)` (the
|
|
87
|
-
* angle's OWN source span — the resolver has already mapped the output grid through
|
|
88
|
-
* the angle's declared offset) and map them to the absolute [0,1] activeSpeaker
|
|
89
|
-
* value (PURE).
|
|
90
|
-
*
|
|
91
|
-
* Returns `null` — NOT 0 — when the window has no measurable signal:
|
|
92
|
-
* - the angle has no ASD series at all (no detected face → no track to score), OR
|
|
93
|
-
* - every frame in the window is `null` (the dominant face was absent the whole
|
|
94
|
-
* window).
|
|
95
|
-
* `null` is "not measured" (absence); a weight over an all-null activeSpeaker is
|
|
96
|
-
* fail-loud upstream (`selector_signal_absent`), never silently 0
|
|
97
|
-
* (`feedback_never_add_fallbacks`). A measured-but-quiet angle returns a real low
|
|
98
|
-
* value (e.g. 0.05) — that IS a measurement and DOES suppress a cut.
|
|
99
|
-
*
|
|
100
|
-
* Calibration (absolute, NOT softmax-across-angles): the AV model's per-frame
|
|
101
|
-
* probability is already an absolute speaking likelihood, so the value is the
|
|
102
|
-
* face-present mean over the window. The TalkNet/Light-ASD model keys on lip↔audio
|
|
103
|
-
* SYNC, so a laughing/chewing reaction (mouth moving, non-speech audio) already
|
|
104
|
-
* scores low at the model — this calibration trusts that and does NOT re-inflate
|
|
105
|
-
* from audio energy (the landmine). Confidence scales with face COVERAGE over the
|
|
106
|
-
* window (a face present 2/20 frames is a weak vote).
|
|
107
|
-
*/
|
|
108
14
|
export declare function activeSpeakerSignal(series: ActiveSpeakerSeries | undefined, sourceInSec: number, sourceOutSec: number): ActiveSpeakerSignal | null;
|
|
@@ -1,78 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @cueframe/perception — `audioQuality` signal provider (per-source audio fact).
|
|
3
|
-
*
|
|
4
|
-
* A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
|
|
5
|
-
* choice): per-source loudness + clarity over the source's audio track, calibrated
|
|
6
|
-
* to an ABSOLUTE [0,1] scalar so the Selector core can compare the clearest mic
|
|
7
|
-
* across angles (selector-abstraction spec §1.2, the audioQuality signal; §9.1 P2,
|
|
8
|
-
* the best-audio bed = instance #3).
|
|
9
|
-
*
|
|
10
|
-
* Perception NEVER imports the Selector core (the rot-guard direction): this module
|
|
11
|
-
* emits a plain `{ value, rawScore, confidence, evidence }` envelope that STRUCTURALLY
|
|
12
|
-
* matches `@cueframe/core`'s `Signal`, but the type lives here (a leaf owns its own
|
|
13
|
-
* fact shape; the core projects it). Adding/upgrading the analysis = a version stamp
|
|
14
|
-
* here; the core is untouched.
|
|
15
|
-
*
|
|
16
|
-
* This module is the PURE FACT CONTRACT (perception is a leaf — NO node I/O here,
|
|
17
|
-
* so it stays importable by every framework leaf):
|
|
18
|
-
* - `audioQualitySignal(metrics)` — PURE: maps the raw per-source acoustic metrics
|
|
19
|
-
* (integrated loudness LUFS, true-peak, a clarity proxy) to the absolute [0,1]
|
|
20
|
-
* value + reasons. This is the contract; the production Modal skill and the local
|
|
21
|
-
* ffmpeg harness BOTH feed it the same `AudioQualityMetrics`.
|
|
22
|
-
*
|
|
23
|
-
* The MEASUREMENT (the ffmpeg/Modal I/O that PRODUCES an `AudioQualityMetrics`)
|
|
24
|
-
* lives OUTSIDE the leaf — the local deploy-free analyzer is in the switch
|
|
25
|
-
* resolver's processing helper (the server-side selector);
|
|
26
|
-
* the Modal per-angle path (Phase 4) produces the SAME `AudioQualityMetrics`. Both
|
|
27
|
-
* feed this one calibration. Keeping the I/O out of perception keeps the leaf pure
|
|
28
|
-
* (no node-only deps) and the rot-guard direction clean.
|
|
29
|
-
*
|
|
30
|
-
* Pure + deterministic.
|
|
31
|
-
*/
|
|
32
|
-
/** Bump when the loudness→value calibration changes (the 3-stamp lesson — a stale
|
|
33
|
-
* cached audioQuality is served if a consumer doesn't bump alongside). */
|
|
34
1
|
export declare const AUDIO_QUALITY_VERSION = "audio-quality-v1-2026.06.21";
|
|
35
|
-
/** The raw per-source acoustic metrics — what BOTH the local ffmpeg harness and
|
|
36
|
-
* the future Modal skill measure. Source-independent absolutes (LUFS/dBTP), never
|
|
37
|
-
* normalized across angles (the cross-source comparison is the Selector's job). */
|
|
38
2
|
export interface AudioQualityMetrics {
|
|
39
|
-
/** Integrated loudness, LUFS (EBU R128). Typical speech ≈ -23..-16; silence → -70. */
|
|
40
3
|
integratedLufs: number;
|
|
41
|
-
/** True-peak / sample-peak, dBTP. Clipping (≥ -1 dBTP) is a quality DEFECT. */
|
|
42
4
|
truePeakDbtp: number;
|
|
43
|
-
/** Loudness RANGE, LU (LRA) — a low LRA on a speech mic ≈ steady level (good);
|
|
44
|
-
* a high LRA can mean a distant mic drifting in/out (worse). Optional. */
|
|
45
5
|
loudnessRangeLu?: number;
|
|
46
|
-
/** A clarity proxy ∈ [0,1] when available (e.g. voiced-frame ratio / SNR proxy).
|
|
47
|
-
* Optional — the local harness leaves it undefined and the value leans on
|
|
48
|
-
* loudness; the Modal skill (VAD-backed) populates it. */
|
|
49
6
|
clarity?: number;
|
|
50
7
|
}
|
|
51
|
-
/** Matches `@cueframe/core`'s `Signal` shape STRUCTURALLY (perception owns its
|
|
52
|
-
* fact; the core projects `value`/`confidence`). */
|
|
53
8
|
export interface AudioQualitySignal {
|
|
54
|
-
/** ABSOLUTE, calibrated ∈ [0,1] — "how good is this mic right now," source-
|
|
55
|
-
* independent. The clearest, best-leveled mic scores highest. */
|
|
56
9
|
value: number;
|
|
57
|
-
/** Pre-calibration raw (the integrated LUFS) for legibility + recalibration. */
|
|
58
10
|
rawScore: number;
|
|
59
11
|
confidence: number;
|
|
60
|
-
/** Reasons-only ("‑18 LUFS, no clip"); excluded from any hash. */
|
|
61
12
|
evidence: string;
|
|
62
13
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Map raw acoustic metrics → the absolute [0,1] audioQuality value (PURE).
|
|
65
|
-
*
|
|
66
|
-
* Calibration (absolute, NOT softmax-across-angles):
|
|
67
|
-
* - LOUDNESS: a piecewise-linear preference centered on broadcast speech. -16 LUFS
|
|
68
|
-
* is ideal (1.0); it falls off toward silence (-50 LUFS → ~0) and toward
|
|
69
|
-
* too-hot (> -10 LUFS → penalized, an over-driven/distorted mic).
|
|
70
|
-
* - CLIPPING: a hard penalty as true-peak approaches/exceeds 0 dBTP (a clipped
|
|
71
|
-
* mic is unusable however loud).
|
|
72
|
-
* - CLARITY: when provided, multiplies the loudness score (a loud-but-noisy mic
|
|
73
|
-
* loses to a clean one); absent → loudness alone (the local harness path).
|
|
74
|
-
*
|
|
75
|
-
* The result is the clearest-mic ranking signal: over a span the Selector picks the
|
|
76
|
-
* argmax of this across angles, stabilized (best-audio bed).
|
|
77
|
-
*/
|
|
78
14
|
export declare function audioQualitySignal(m: AudioQualityMetrics): AudioQualitySignal;
|
|
@@ -1,95 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @cueframe/perception — `energyBeat` signal provider (per-source motion/dynamics
|
|
3
|
-
* energy FACT).
|
|
4
|
-
*
|
|
5
|
-
* A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
|
|
6
|
-
* choice): per-source visual MOTION / dynamics energy over a window, calibrated to
|
|
7
|
-
* an ABSOLUTE [0,1] scalar so the Selector core can compare "which angle is the
|
|
8
|
-
* most DYNAMIC right now" across angles (selector-abstraction spec §1.2, the
|
|
9
|
-
* `energyBeat` signal; §9.1 P6, the fancam/CrowdCut switch signal — "cut to the
|
|
10
|
-
* most dynamic angle" on chorus/beat).
|
|
11
|
-
*
|
|
12
|
-
* Perception NEVER imports the Selector core (the rot-guard direction): this module
|
|
13
|
-
* emits a plain `{ value, rawScore, confidence, evidence }` envelope that STRUCTURALLY
|
|
14
|
-
* matches `@cueframe/core`'s `Signal`, but the type lives here (a leaf owns its own
|
|
15
|
-
* fact shape; the core projects it). Adding/upgrading the model = a version stamp
|
|
16
|
-
* here; the core is untouched.
|
|
17
|
-
*
|
|
18
|
-
* LOCALLY COMPUTABLE — NO MODAL (spec §9.1 P6 scope-1, the CRITICAL constraint): the
|
|
19
|
-
* raw measurement is CHEAP frame statistics — the per-frame MEAN-ABS INTER-FRAME
|
|
20
|
-
* LUMA DELTA (a normalized "how much did the picture change frame-to-frame" motion
|
|
21
|
-
* magnitude). That is a single decode + a mean over |luma[t] − luma[t−1]|, with NO
|
|
22
|
-
* GPU model — so the no-deploy CrowdCut validation can derive it host-side (the
|
|
23
|
-
* local node helper `the server-side selector`, exactly like
|
|
24
|
-
* `audioAnalysis.ts` for audioQuality). The pure CALIBRATION here is identical
|
|
25
|
-
* whether the deltas come from the local ffmpeg-frame harness or a future Modal
|
|
26
|
-
* skill — this is the interface, not a fork.
|
|
27
|
-
*
|
|
28
|
-
* This module is the PURE FACT CONTRACT (perception is a leaf — NO node I/O here,
|
|
29
|
-
* so it stays importable by every framework leaf):
|
|
30
|
-
* - `energyBeatSignal(series, sourceInSec, sourceOutSec)` — PURE: windows the
|
|
31
|
-
* per-frame inter-frame deltas (over the angle's OWN source timeline) and maps
|
|
32
|
-
* the windowed mean motion magnitude to the absolute [0,1] value + reasons.
|
|
33
|
-
*
|
|
34
|
-
* Pure + deterministic.
|
|
35
|
-
*/
|
|
36
|
-
/** Bump when the motion-delta→value calibration changes (the 3-stamp lesson — a
|
|
37
|
-
* stale cached energyBeat is served if a consumer doesn't bump alongside). */
|
|
38
1
|
export declare const ENERGY_BEAT_VERSION = "energy-beat-v1-2026.06.21";
|
|
39
|
-
/**
|
|
40
|
-
* The raw per-source motion measurement — what BOTH the local frame-stats harness
|
|
41
|
-
* (`frameStats.ts`) and a future Modal skill produce for ONE source. A per-frame
|
|
42
|
-
* normalized inter-frame luma delta over the source's OWN timeline.
|
|
43
|
-
*
|
|
44
|
-
* Source-independent absolutes (each delta is a normalized [0,1] motion magnitude),
|
|
45
|
-
* never normalized across angles (the cross-source comparison is the Selector's
|
|
46
|
-
* job — `switchMargin`/weights, never the signal).
|
|
47
|
-
*/
|
|
48
2
|
export interface EnergyBeatSeries {
|
|
49
|
-
/** The measurement version (e.g. the frame-stats harness / Modal skill version).
|
|
50
|
-
* DISTINCT from `ENERGY_BEAT_VERSION` (the calibration stamp). */
|
|
51
3
|
measurementVersion: string;
|
|
52
|
-
/** Frames-per-second of `deltas` (the sampling rate the deltas were computed at). */
|
|
53
4
|
fps: number;
|
|
54
|
-
/** Source-second at which `deltas[0]` starts (the angle's window start). */
|
|
55
5
|
windowStartSec: number;
|
|
56
|
-
/** Per-frame normalized inter-frame luma delta ∈ [0,1] (mean over the frame of
|
|
57
|
-
* |luma[t] − luma[t−1]|, luma in [0,1]). `deltas[0]` is the delta between the
|
|
58
|
-
* window's first two frames. A frame the harness could NOT decode is `null` —
|
|
59
|
-
* NOT 0 (an undecodable frame is absence, never "no motion"; it must not dilute
|
|
60
|
-
* the mean toward "still"). */
|
|
61
6
|
deltas: Array<number | null>;
|
|
62
7
|
}
|
|
63
|
-
/** Matches `@cueframe/core`'s `Signal` shape STRUCTURALLY (perception owns its
|
|
64
|
-
* fact; the core projects `value`/`confidence`). `null` (not 0) when the source
|
|
65
|
-
* has NO decodable frames over the window — absence, never "definitely still". */
|
|
66
8
|
export interface EnergyBeatSignal {
|
|
67
|
-
/** ABSOLUTE, calibrated ∈ [0,1] — "how dynamic is this angle right now,"
|
|
68
|
-
* source-independent. The most dynamic angle scores highest. */
|
|
69
9
|
value: number;
|
|
70
|
-
/** Pre-calibration raw (the mean windowed inter-frame delta) for legibility. */
|
|
71
10
|
rawScore: number;
|
|
72
11
|
confidence: number;
|
|
73
|
-
/** Reasons-only ("motion 0.06, 38/40 frames decoded"); excluded from any hash. */
|
|
74
12
|
evidence: string;
|
|
75
13
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Window the per-frame inter-frame deltas over `[sourceInSec, sourceOutSec)` (the
|
|
78
|
-
* angle's OWN source span — the resolver has already mapped the output grid through
|
|
79
|
-
* the angle's declared offset) and map the windowed mean motion magnitude to the
|
|
80
|
-
* absolute [0,1] energyBeat value (PURE).
|
|
81
|
-
*
|
|
82
|
-
* Returns `null` — NOT 0 — when the window has no measurable signal:
|
|
83
|
-
* - the angle has no series at all (no frames decoded), OR
|
|
84
|
-
* - every frame in the window is `null` (undecodable the whole window).
|
|
85
|
-
* `null` is "not measured" (absence); a weight over an all-null energyBeat is
|
|
86
|
-
* fail-loud upstream (`selector_signal_absent`), never silently 0
|
|
87
|
-
* (`feedback_never_add_fallbacks`). A measured-but-static angle returns a real low
|
|
88
|
-
* value (e.g. 0.02) — that IS a measurement and DOES suppress a cut to it.
|
|
89
|
-
*
|
|
90
|
-
* Calibration (absolute, NOT softmax-across-angles): the windowed mean delta is
|
|
91
|
-
* mapped through a piecewise-linear ramp from STILL_DELTA (→ 0) to DYNAMIC_DELTA
|
|
92
|
-
* (→ 1). Confidence scales with the fraction of decodable frames over the window (a
|
|
93
|
-
* window where most frames failed to decode is a weak vote).
|
|
94
|
-
*/
|
|
95
14
|
export declare function energyBeatSignal(series: EnergyBeatSeries | undefined, sourceInSec: number, sourceOutSec: number): EnergyBeatSignal | null;
|
|
@@ -1,80 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @cueframe/perception — cross-source identity MATCHING (the `lockPersonId` fact).
|
|
3
|
-
*
|
|
4
|
-
* A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
|
|
5
|
-
* choice): given a LOCKED person's reference ArcFace embedding and a candidate
|
|
6
|
-
* angle's per-person median ArcFace embeddings, answer "is the locked person present
|
|
7
|
-
* in this angle, and how confidently" — a cosine match over the stored vectors
|
|
8
|
-
* (selector-abstraction spec §4 cross-source identity; §9.1 P6, `lockPersonId` =
|
|
9
|
-
* lock-to-member across angles).
|
|
10
|
-
*
|
|
11
|
-
* Perception NEVER imports the Selector core (the rot-guard direction): this module
|
|
12
|
-
* is the pure embedding→similarity MATH. The ROUTING decision it feeds — "restrict
|
|
13
|
-
* the candidate set to angles where the locked person is present" — is the
|
|
14
|
-
* RESOLVER's job (the server-side selector), which turns this
|
|
15
|
-
* presence fact into a per-candidate eligibility the candidate-agnostic core reads
|
|
16
|
-
* as an opaque scalar. The core never learns about embeddings (the §9.1 P6
|
|
17
|
-
* ROT-GUARD: cross-source identity is a resolver concern; the core reads only id /
|
|
18
|
-
* Signal.value / policy).
|
|
19
|
-
*
|
|
20
|
-
* THE EXTRACTION IS DEPLOY-DEFERRED, THE MATCHING IS LOCAL: the per-person median
|
|
21
|
-
* ArcFace embedding is PRODUCED by the Modal `detect_subjects` skill (it already
|
|
22
|
-
* computes per-id ArcFace embeddings for the appearance-merge — they were
|
|
23
|
-
* computed-then-discarded; P6 persists the per-person MEDIAN into the SubjectTrack,
|
|
24
|
-
* `+DETECTOR_VERSION`). That extraction needs a `modal deploy` (deploy-deferred,
|
|
25
|
-
* never from a worktree — feedback_never_deploy_from_worktree). This MATCHING (the
|
|
26
|
-
* cosine over the stored vectors) is PURE TS and runs with no deploy — the resolver
|
|
27
|
-
* consumes the persisted embeddings and matches here.
|
|
28
|
-
*
|
|
29
|
-
* Pure + deterministic.
|
|
30
|
-
*/
|
|
31
|
-
/** Bump when the matching math / threshold semantics change. The embeddings
|
|
32
|
-
* themselves carry the Modal `DETECTOR_VERSION` (a DISTINCT stamp) — a stale
|
|
33
|
-
* detector version on an embedding is fail-loud in the resolver
|
|
34
|
-
* (`selector_identity_detector_version_mismatch`). */
|
|
35
1
|
export declare const IDENTITY_MATCH_VERSION = "identity-match-v1-2026.06.21";
|
|
36
2
|
export declare const IDENTITY_MATCH_COSINE = 0.4;
|
|
37
|
-
/** A per-person median ArcFace embedding persisted on a SubjectTrack — produced by
|
|
38
|
-
* Modal `detect_subjects` (P6). L2-NORMALIZED (so cosine == dot product). Carries
|
|
39
|
-
* the `detectorVersion` so a stale-version embedding is fail-loud in the resolver. */
|
|
40
3
|
export interface PersonEmbedding {
|
|
41
|
-
/** The track-local consolidated person id (`face-0`..`face-N`). */
|
|
42
4
|
faceId: string;
|
|
43
|
-
/** The per-person MEDIAN ArcFace embedding, L2-normalized. */
|
|
44
5
|
embedding: number[];
|
|
45
|
-
/** The Modal `DETECTOR_VERSION` that produced this embedding (cache-freshness +
|
|
46
|
-
* the fail-loud version guard). */
|
|
47
6
|
detectorVersion: string;
|
|
48
7
|
}
|
|
49
|
-
/** The result of matching a locked reference embedding against ONE angle's people:
|
|
50
|
-
* is the locked person present in this angle, with what cosine confidence + which
|
|
51
|
-
* of the angle's faces it matched. */
|
|
52
8
|
export interface IdentityMatchResult {
|
|
53
|
-
/** True iff some person in this angle matches the reference at/above the cosine
|
|
54
|
-
* threshold (the BEST match wins). */
|
|
55
9
|
present: boolean;
|
|
56
|
-
/** The best cosine similarity over the angle's people ∈ [-1,1]. */
|
|
57
10
|
bestCosine: number;
|
|
58
|
-
/** The angle-local faceId of the best match (or null if the angle has no people). */
|
|
59
11
|
matchedFaceId: string | null;
|
|
60
12
|
}
|
|
61
|
-
/** Cosine similarity of two embeddings. ArcFace vectors are L2-normalized, so this
|
|
62
|
-
* is the dot product, but we normalize defensively (a non-normalized input — e.g. a
|
|
63
|
-
* hand-built test vector — still yields a true cosine). Returns 0 for a zero vector
|
|
64
|
-
* or a length mismatch (degenerate — never a false high match). */
|
|
65
13
|
export declare function cosineSimilarity(a: number[], b: number[]): number;
|
|
66
|
-
/**
|
|
67
|
-
* Match a LOCKED person's reference embedding against ONE angle's per-person median
|
|
68
|
-
* embeddings (PURE). The locked person is "present" in this angle iff the BEST cosine
|
|
69
|
-
* over the angle's people is at/above `cosineThreshold`.
|
|
70
|
-
*
|
|
71
|
-
* Returns `{ present: false, bestCosine: -1, matchedFaceId: null }` when the angle
|
|
72
|
-
* has NO people (a faceless wide) — absence of the locked person, NOT an error. The
|
|
73
|
-
* resolver turns this into "this angle is not eligible while locked" (it has no
|
|
74
|
-
* decodable identity to lock to). A version mismatch between the reference and a
|
|
75
|
-
* candidate embedding is NOT silently tolerated — the resolver checks
|
|
76
|
-
* `detectorVersion` BEFORE calling this and fails loud
|
|
77
|
-
* (`selector_identity_detector_version_mismatch`); this pure math assumes the
|
|
78
|
-
* versions already agree.
|
|
79
|
-
*/
|
|
80
14
|
export declare function matchPerson(reference: number[], anglePeople: PersonEmbedding[], cosineThreshold?: number): IdentityMatchResult;
|
|
@@ -1,31 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @cueframe/perception — facts + assets.
|
|
3
|
-
*
|
|
4
|
-
* Owns: the subject track (faces, active speaker, dims), the silhouette matte,
|
|
5
|
-
* the transcript — decision-free measurements derived from the source.
|
|
6
|
-
* MUST NOT: choose anything (no framing, no "good enough" gate); zero editorial
|
|
7
|
-
* intent.
|
|
8
|
-
* Allowed dependencies: NONE (this is a leaf).
|
|
9
|
-
*
|
|
10
|
-
* SSOT for the SOURCE-COORDS perception facts — what the detector saw, in the
|
|
11
|
-
* source video's coordinate space. This is the one home for these shapes; the
|
|
12
|
-
* director's detect/derive code imports them from here (was re-declared inline).
|
|
13
|
-
*
|
|
14
|
-
* DISTINCT from composition's OUTPUT-coords layout shape
|
|
15
|
-
* (`@cueframe/composition/projection` `Subject` / `FaceBoxOutput` = crop∘face,
|
|
16
|
-
* a render-layout resolution). Those legitimately differ (different coordinate
|
|
17
|
-
* space) and the `composition-is-a-leaf` gate forbids composition→perception, so
|
|
18
|
-
* they must NOT be unified. The Python detector (the backend services_subjects.py,
|
|
19
|
-
* person_matting.py) is the IMPLEMENTATION of this contract; it emits JSON matching
|
|
20
|
-
* these shapes, cached on `mediaItems.subjectTracks` (Convex).
|
|
21
|
-
*/
|
|
22
1
|
import type { PersonEmbedding } from './identityMatch.js';
|
|
23
|
-
/** A PIXEL face box `[x1, y1, x2, y2]` in source-pixel coordinates (corner form).
|
|
24
|
-
* Consumers normalize by the track's `srcW`/`srcH` (see `subjectSet.ts`,
|
|
25
|
-
* `resolver.ts#angleProminenceSignals`). */
|
|
26
2
|
export type FaceBox = [number, number, number, number];
|
|
27
|
-
/** A normalized face detection — `{x,y,width,height}` in [0,1] vs source dims
|
|
28
|
-
* (matches the dicts STAGE B builds from the tracker output). */
|
|
29
3
|
export interface Face {
|
|
30
4
|
faceId?: string;
|
|
31
5
|
x: number;
|
|
@@ -33,12 +7,6 @@ export interface Face {
|
|
|
33
7
|
width: number;
|
|
34
8
|
height: number;
|
|
35
9
|
}
|
|
36
|
-
/**
|
|
37
|
-
* One tracked subject's source-level per-frame face boxes + active windows, as
|
|
38
|
-
* emitted by Modal `detect_subjects` (STAGE A) and cached on
|
|
39
|
-
* `mediaItems.subjectTracks`. Frame 0 of `perFrameTracked` = `window.startSec`.
|
|
40
|
-
* This is the contract `detect_subjects` MUST emit.
|
|
41
|
-
*/
|
|
42
10
|
export interface SubjectTrack {
|
|
43
11
|
detectorVersion: string;
|
|
44
12
|
srcW: number;
|
|
@@ -48,31 +16,11 @@ export interface SubjectTrack {
|
|
|
48
16
|
startSec: number;
|
|
49
17
|
endSec: number;
|
|
50
18
|
};
|
|
51
|
-
/** Per-frame `{faceId: [x1,y1,x2,y2]}` pixel bboxes, window-local. */
|
|
52
19
|
perFrameTracked: Array<Record<string, FaceBox>>;
|
|
53
|
-
/** `{frameOffset: faceId}` active-speaker picks (sparse), window-local
|
|
54
|
-
* offsets as string keys (JSON). */
|
|
55
20
|
perKeyframeSpeaker: Record<string, string>;
|
|
56
|
-
/** Window-local frame indices where a NEW shot begins (hard cuts) — the
|
|
57
|
-
* detector's HSV-histogram scene-cut boundaries. The first shot starts at
|
|
58
|
-
* frame 0 and is excluded, so this lists only interior cuts (each > 0). The
|
|
59
|
-
* crop derivation snaps its EMA EXACTLY at these frames instead of inferring
|
|
60
|
-
* cuts from face-center jumps. Optional: tracks detected before the
|
|
61
|
-
* shots-aware detector version omit it (the derivation degrades to the
|
|
62
|
-
* jump-threshold inference). */
|
|
63
21
|
shotBoundaries?: number[];
|
|
64
|
-
/** Per-person MEDIAN ArcFace embedding (L2-normalized) for cross-source identity
|
|
65
|
-
* (selector-abstraction §4 + §9.1 P6, `lockPersonId`). One entry per consolidated
|
|
66
|
-
* person id; the SAME person across angles is matched by cosine over these. The
|
|
67
|
-
* detector ALREADY computes per-id ArcFace embeddings for the appearance-merge
|
|
68
|
-
* (`scrfd_track.consolidate_tracks`) — they were computed-then-discarded; P6
|
|
69
|
-
* persists the median here (`+DETECTOR_VERSION`). Optional: tracks detected before
|
|
70
|
-
* the P6 detector bump omit it (a `lockPersonId` switch then fails loud
|
|
71
|
-
* `selector_identity_detector_version_mismatch` rather than guessing). */
|
|
72
22
|
personEmbeddings?: PersonEmbedding[];
|
|
73
23
|
}
|
|
74
|
-
/** One detected face in the roster surfaced to the editor (face-0..N), with an
|
|
75
|
-
* optional speaking share. `bbox` is normalized [0,1] vs source dims. */
|
|
76
24
|
export interface SubjectFace {
|
|
77
25
|
faceId: string;
|
|
78
26
|
bbox: {
|