@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,378 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `wait_job` — block until a long-running job reaches a terminal state, by
|
|
3
|
-
* POLLING its status endpoint through the Executor. Unified across transports:
|
|
4
|
-
* the same poll loop works for stdio (network) and hosted (in-process), so the
|
|
5
|
-
* blocking-SSE path is gone (the agent only ever sees the terminal result, so
|
|
6
|
-
* polling is functionally equivalent; `create_webhook` is the event-driven path
|
|
7
|
-
* for fan-out). Pure + side-effect-free (clock/sleep injectable) so it unit-tests
|
|
8
|
-
* without a server.
|
|
9
|
-
*/
|
|
10
|
-
import { opById, buildPath, isOk, safeParse, apiErrorFrom, fmtErr } from './core.js';
|
|
11
|
-
const defaultSleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
12
|
-
const defaultNow = () => Date.now();
|
|
13
|
-
const DEFAULT_POLL_MS = 3000;
|
|
14
|
-
function fmtTime(sec) {
|
|
15
|
-
return `${Math.floor(sec / 60)}:${String(Math.floor(sec % 60)).padStart(2, '0')}`;
|
|
16
|
-
}
|
|
17
|
-
const KINDS = {
|
|
18
|
-
render: {
|
|
19
|
-
operationId: 'getRender',
|
|
20
|
-
mapArg: (p, id, projectId) => (p === 'renderId' ? id : projectId),
|
|
21
|
-
terminal: (j) => {
|
|
22
|
-
const s = String(j?.status ?? '');
|
|
23
|
-
if (s === 'complete' || s === 'completed') {
|
|
24
|
-
const url = j?.outputUrl;
|
|
25
|
-
const lines = ['Render complete.'];
|
|
26
|
-
if (url)
|
|
27
|
-
lines.push(`\nDownload URL: ${url}`);
|
|
28
|
-
if (j?.outputExpiresAt)
|
|
29
|
-
lines.push(`Expires: ${j.outputExpiresAt}`);
|
|
30
|
-
return { ok: true, text: lines.join('\n') };
|
|
31
|
-
}
|
|
32
|
-
if (s === 'error' || s === 'failed' || s === 'cancelled') {
|
|
33
|
-
const cause = j?.errorDetails ? JSON.stringify(j.errorDetails) : (j?.error ?? j?.errorCode ?? '');
|
|
34
|
-
const lines = [`Render ${s}${cause ? `: ${cause}` : ''}.`];
|
|
35
|
-
if (j?.errorCode)
|
|
36
|
-
lines.push(`Code: ${j.errorCode}${j?.category ? ` (${j.category})` : ''}`);
|
|
37
|
-
if (typeof j?.retryable === 'boolean') {
|
|
38
|
-
lines.push(j.retryable
|
|
39
|
-
? 'retryable: true — transient pipeline failure; call retry_render to re-attempt.'
|
|
40
|
-
: `retryable: false — deterministic defect${j?.category ? ` (category ${j.category})` : ''}; fix the composition before re-rendering — retry_render alone will not help.`);
|
|
41
|
-
}
|
|
42
|
-
return { ok: false, text: lines.join('\n') };
|
|
43
|
-
}
|
|
44
|
-
return null;
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
compose: {
|
|
48
|
-
operationId: 'getComposeJob',
|
|
49
|
-
mapArg: (p, id, projectId) => (p === 'composeJobId' ? id : projectId),
|
|
50
|
-
terminal: (j) => {
|
|
51
|
-
const s = String(j?.status ?? '');
|
|
52
|
-
// Client-agent checkpoint: the compose is PAUSED at a holdAt stage,
|
|
53
|
-
// awaiting the client's decision. STOP polling and hand back to the agent
|
|
54
|
-
// — this is a decision point, distinct from the still-running continuation
|
|
55
|
-
// (no `stillRunning`, so the poll loop returns) and from an error. The
|
|
56
|
-
// warm box is already released, so the run costs nothing while parked.
|
|
57
|
-
if (s === 'awaiting_input') {
|
|
58
|
-
// The job carries a POINTER at the durable checkpoint packet — the
|
|
59
|
-
// artifact/stills/verdicts/quote live there, not on the job row.
|
|
60
|
-
const cp = (j?.checkpoint ?? {});
|
|
61
|
-
const lines = [
|
|
62
|
-
`Compose paused (awaiting_input) at a checkpoint — stage "${cp.stage ?? '?'}" (version ${cp.version ?? '?'}), checkpointId ${cp.checkpointId ?? '?'}.`,
|
|
63
|
-
`\n1. get_checkpoint(checkpointId: "${cp.checkpointId ?? ''}") — the packet: stage artifact, presigned storyboard stills (REVIEW THE EVIDENCE, relay stills + the money triple to your human), critic verdicts, and the quote.`,
|
|
64
|
-
`\n2. Answer with resume(checkpointId: "${cp.checkpointId ?? ''}", body: { decision: "approve" | "revise" | "abandon" }). "revise" loops IN-JOB — add body.comments ([{anchor: {beatId}|{timecodeMs}, verdict: "approve"|"revise"|"lock", note}]) and/or body.edits (your revised artifact); the director re-presents this same gate as a new packet. "abandon" ends the run. Approve-with-comments is legal (notes record without gating). The compose stays parked (warm box released) until you resume.`,
|
|
65
|
-
];
|
|
66
|
-
return { ok: true, text: lines.filter(Boolean).join('\n') };
|
|
67
|
-
}
|
|
68
|
-
if (s === 'complete' || s === 'completed') {
|
|
69
|
-
const lines = ['Compose complete.'];
|
|
70
|
-
const w = j?.winner;
|
|
71
|
-
if (w && typeof w.candidateIndex === 'number') {
|
|
72
|
-
lines.push(`Winner: candidate #${w.candidateIndex}`);
|
|
73
|
-
// composite lives on the winning candidate, NOT top-level.
|
|
74
|
-
const cand = Array.isArray(j?.candidates)
|
|
75
|
-
? j.candidates.find((c) => c?.index === w.candidateIndex)
|
|
76
|
-
: undefined;
|
|
77
|
-
if (typeof cand?.composite === 'number')
|
|
78
|
-
lines.push(`Composite score: ${cand.composite}`);
|
|
79
|
-
}
|
|
80
|
-
// A job can COMPLETE below the bar (e.g. footage that cannot satisfy the
|
|
81
|
-
// brief): say so, name the stuck criteria with the judge's critique, and
|
|
82
|
-
// give the caller its three real moves — otherwise "complete" reads as
|
|
83
|
-
// "accepted" and the caller ships a video the judge just told us is short.
|
|
84
|
-
const qa = j?.qualityAssessment;
|
|
85
|
-
if (qa?.route === 'handoff') {
|
|
86
|
-
lines.push(`\n⚠ BELOW THE QUALITY BAR (${qa.qualityThreshold ?? '?'}) — completed, but not publish-ready.`);
|
|
87
|
-
for (const b of qa.blockers ?? []) {
|
|
88
|
-
lines.push(` • ${b.criterion} ${b.score}/${b.floor} (floor) — ${(b.critique ?? '').slice(0, 300)}`);
|
|
89
|
-
}
|
|
90
|
-
lines.push('\nYour options: fix the ROOT cause the critique names (often the source footage or the brief itself) and compose again; accept it as-is and create_render; or hand it to a human to finish.');
|
|
91
|
-
return { ok: true, text: lines.join('\n') };
|
|
92
|
-
}
|
|
93
|
-
lines.push('\nThe winning composition is saved to the project. Render it with create_render.');
|
|
94
|
-
return { ok: true, text: lines.join('\n') };
|
|
95
|
-
}
|
|
96
|
-
// 'error' is the legacy terminal (composeJobs.isTerminalComposeStatus
|
|
97
|
-
// includes it for pre-contract rows) — omitting it polls a dead job to
|
|
98
|
-
// the 30-min cap (review finding 2026-07-10, same fix as consult).
|
|
99
|
-
if (s === 'failed' || s === 'cancelled' || s === 'error') {
|
|
100
|
-
// Surface the row's terminal reason (sanitized `code: message` prose,
|
|
101
|
-
// e.g. "reframe_coverage_gap: clip clip-0: uncovered [0–3s] …").
|
|
102
|
-
// Hardcoding "Compose failed." here left the agent debugging blind
|
|
103
|
-
// while the real reason sat unread on the row (2026-07-07 LBO run).
|
|
104
|
-
const reason = typeof j?.error === 'string' && j.error ? `: ${j.error}` : '.';
|
|
105
|
-
return { ok: false, text: `Compose ${s}${reason}` };
|
|
106
|
-
}
|
|
107
|
-
return null;
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
consult: {
|
|
111
|
-
// A consult job IS a composeJob (routes/consult.ts returns consultJobId =
|
|
112
|
-
// composeJobId) — same detail op, different terminal: the advisory envelope
|
|
113
|
-
// (assessment / proposals / principles / plan), never the compose kind's
|
|
114
|
-
// "winner — render it" text. Before this kind existed, consult was a
|
|
115
|
-
// DEAD-END: its advisoryResult was unreachable over the curated surface.
|
|
116
|
-
operationId: 'getComposeJob',
|
|
117
|
-
mapArg: (p, id, projectId) => (p === 'composeJobId' ? id : projectId),
|
|
118
|
-
terminal: (j) => {
|
|
119
|
-
const s = String(j?.status ?? '');
|
|
120
|
-
if (s === 'complete' || s === 'completed') {
|
|
121
|
-
const a = j?.advisoryResult;
|
|
122
|
-
if (!a) {
|
|
123
|
-
// Fail loud: a consult that finished without an envelope is a defect,
|
|
124
|
-
// not a success to paper over (the worker-callback whitelist dropped
|
|
125
|
-
// advisoryResult once before — http.ts).
|
|
126
|
-
return {
|
|
127
|
-
ok: false,
|
|
128
|
-
text: 'Consult completed but the job has no advisoryResult — inspect getComposeJob for the raw row; this is a pipeline defect, not a usage error.',
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
const lines = [`Consult (${a.mode ?? '?'}) complete.`];
|
|
132
|
-
// Evidence convergence: the advisory minted a durable kind:'score'
|
|
133
|
-
// Checkpoint — same addressable noun as gates and score_composition.
|
|
134
|
-
if (typeof a.checkpointId === 'string') {
|
|
135
|
-
lines.push(`Checkpoint: ${a.checkpointId} (durable advisory packet — get_checkpoint re-reads it later).`);
|
|
136
|
-
}
|
|
137
|
-
if (a.assessment) {
|
|
138
|
-
for (const [criterion, v] of Object.entries(a.assessment)) {
|
|
139
|
-
// A criterion may arrive critique-only (judge omitted the numeric
|
|
140
|
-
// score) — dropping it would swallow the very critique the caller
|
|
141
|
-
// paid for. Render whatever is present.
|
|
142
|
-
if (v && (typeof v.score === 'number' || v.critique)) {
|
|
143
|
-
const score = typeof v.score === 'number' ? String(v.score) : '—';
|
|
144
|
-
lines.push(`- ${criterion}: ${score}${v.critique ? ` — ${v.critique}` : ''}`);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
if (Array.isArray(a.proposals) && a.proposals.length > 0) {
|
|
149
|
-
lines.push('\nProposals:');
|
|
150
|
-
for (const p of a.proposals) {
|
|
151
|
-
// selectStrategy is REQUIRED on the select body (no route default) —
|
|
152
|
-
// teaching the short body here would 400 the agent that follows it.
|
|
153
|
-
const adopt = typeof p.candidateIndex === 'number'
|
|
154
|
-
? ` — adopt via select_candidate(projectId, composeJobId, body: { candidateIndex: ${p.candidateIndex}, selectStrategy: "agent-authoritative" })`
|
|
155
|
-
: ' (advisory only — re-author via apply_composition)';
|
|
156
|
-
lines.push(`- ${p.label ?? '?'}: ${(p.changeSummary ?? []).join('; ')}${adopt}`);
|
|
157
|
-
if (typeof p.candidateIndex === 'number')
|
|
158
|
-
lines.push(` (candidateIndex: ${p.candidateIndex})`);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
if (Array.isArray(a.principles) && a.principles.length > 0) {
|
|
162
|
-
lines.push(`\nPrinciples:\n${a.principles.map((x) => `- ${x}`).join('\n')}`);
|
|
163
|
-
}
|
|
164
|
-
if (a.plan !== undefined) {
|
|
165
|
-
lines.push(`\nPlan (mode=advise — GUIDANCE to re-author from via apply_composition; it is not converted to ops):\n${JSON.stringify(a.plan, null, 2)}`);
|
|
166
|
-
}
|
|
167
|
-
return { ok: true, text: lines.join('\n') };
|
|
168
|
-
}
|
|
169
|
-
// 'error' is the legacy compose terminal (composeJobs.ts
|
|
170
|
-
// isTerminalComposeStatus) — omitting it here polls a dead job to the
|
|
171
|
-
// 30-min cap (review finding 2026-07-10).
|
|
172
|
-
if (s === 'failed' || s === 'cancelled' || s === 'error') {
|
|
173
|
-
const reason = typeof j?.error === 'string' && j.error ? `: ${j.error}` : '.';
|
|
174
|
-
return { ok: false, text: `Consult ${s}${reason}` };
|
|
175
|
-
}
|
|
176
|
-
return null;
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
suggestions: {
|
|
180
|
-
operationId: 'listMediaSuggestions',
|
|
181
|
-
mapArg: (_p, id) => id,
|
|
182
|
-
terminal: (j) => {
|
|
183
|
-
const s = String(j?.status ?? '');
|
|
184
|
-
const suggestions = Array.isArray(j?.suggestions) ? j.suggestions : [];
|
|
185
|
-
if (s === 'failed')
|
|
186
|
-
return { ok: false, text: 'Clip-suggestion analysis failed.' };
|
|
187
|
-
// Gate on STATUS only — never on suggestions.length, or a still-"generating"
|
|
188
|
-
// re-analysis would return the previous run's stale suggestions as terminal.
|
|
189
|
-
if (s === 'complete' || s === 'completed') {
|
|
190
|
-
if (suggestions.length === 0) {
|
|
191
|
-
return { ok: true, text: 'Analysis complete — no clip suggestions produced.' };
|
|
192
|
-
}
|
|
193
|
-
const lines = suggestions.map((sg) => {
|
|
194
|
-
const dur = sg?.trim ? (sg.trim.end - sg.trim.start).toFixed(1) : '?';
|
|
195
|
-
const t = sg?.trim ? `${fmtTime(sg.trim.start)} → ${fmtTime(sg.trim.end)} (${dur}s)` : '';
|
|
196
|
-
const door = sg.briefId
|
|
197
|
-
? `\n briefId: ${sg.briefId} — compose it via compose {briefId}`
|
|
198
|
-
: '';
|
|
199
|
-
return `- ${sg.id}\n "${sg.title}"\n ${t} ${sg.format ?? ''} score: ${sg.score ?? ''}\n ${sg.reason ?? ''}${door}`;
|
|
200
|
-
});
|
|
201
|
-
const anyBrief = suggestions.some((sg) => sg.briefId);
|
|
202
|
-
const tail = anyBrief
|
|
203
|
-
? '\n\nEach suggestion above was minted as a kind-\'clip\' Brief — compose {briefId} runs the Director on it (list_briefs {kind:"clip"} shows them).'
|
|
204
|
-
: '\n\nNo Briefs were minted (this media has no project) — import it into a project and re-run suggest_briefs to get composable briefIds.';
|
|
205
|
-
return {
|
|
206
|
-
ok: true,
|
|
207
|
-
text: `Analysis complete. ${suggestions.length} clip suggestion${suggestions.length !== 1 ? 's' : ''}:\n\n${lines.join('\n\n')}${tail}`,
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
return null;
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
verify: {
|
|
214
|
-
// The generic jobs resource (GET /v1/jobs/{id}) — verify is its first
|
|
215
|
-
// tenant; future job kinds reuse this parser instead of adding adapters.
|
|
216
|
-
operationId: 'getJob',
|
|
217
|
-
mapArg: (_p, id) => id,
|
|
218
|
-
terminal: (j) => {
|
|
219
|
-
const s = String(j?.status ?? '');
|
|
220
|
-
if (s === 'succeeded') {
|
|
221
|
-
const r = (j?.result ?? {});
|
|
222
|
-
const lines = ['Verify complete.'];
|
|
223
|
-
// Lane convergence: the verdicts also minted a durable kind:'score'
|
|
224
|
-
// Checkpoint — the same addressable evidence noun the director's gates
|
|
225
|
-
// produce (get_checkpoint / list_checkpoints reads it back).
|
|
226
|
-
if (typeof r.checkpointId === 'string') {
|
|
227
|
-
lines.push(`Checkpoint: ${r.checkpointId} (durable score packet — get_checkpoint to re-read the verdicts later).`);
|
|
228
|
-
}
|
|
229
|
-
if (typeof r.composite === 'number')
|
|
230
|
-
lines.push(`Composite score: ${r.composite}`);
|
|
231
|
-
if (r.perCriterion && typeof r.perCriterion === 'object') {
|
|
232
|
-
for (const [criterion, v] of Object.entries(r.perCriterion)) {
|
|
233
|
-
if (typeof v?.score === 'number') {
|
|
234
|
-
lines.push(`- ${criterion}: ${v.score}${v?.critique ? ` — ${v.critique}` : ''}`);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
// A6 lane parity: the org's OWN registered critics grade here too —
|
|
239
|
-
// parallel channel, never part of the composite.
|
|
240
|
-
if (Array.isArray(r.clientScores) && r.clientScores.length > 0) {
|
|
241
|
-
lines.push('\nYour registered critics:');
|
|
242
|
-
for (const c of r.clientScores) {
|
|
243
|
-
const name = c.label ?? c.criticId ?? 'critic';
|
|
244
|
-
if (c.unavailable) {
|
|
245
|
-
lines.push(`- ${name}: unavailable (your evaluator did not answer — excluded from the gate)`);
|
|
246
|
-
}
|
|
247
|
-
else if (typeof c.score === 'number') {
|
|
248
|
-
const below = typeof c.floor === 'number' && c.score < c.floor ? ' (BELOW your floor)' : '';
|
|
249
|
-
lines.push(`- ${name}: ${c.score}${below}${c.critique ? ` — ${c.critique}` : ''}`);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
if (typeof r.critique === 'string' && r.critique.length > 0) {
|
|
254
|
-
lines.push(`\nWorst-first critique: ${r.critique}`);
|
|
255
|
-
}
|
|
256
|
-
lines.push('\nFix the lowest criterion via apply_composition, then re-verify.');
|
|
257
|
-
return { ok: true, text: lines.join('\n') };
|
|
258
|
-
}
|
|
259
|
-
if (s === 'failed')
|
|
260
|
-
return jobFailedResult('Verify', 'score_composition', j);
|
|
261
|
-
return null;
|
|
262
|
-
},
|
|
263
|
-
},
|
|
264
|
-
preview: {
|
|
265
|
-
// Generic jobs resource — preview job (single-component still).
|
|
266
|
-
operationId: 'getJob',
|
|
267
|
-
mapArg: (_p, id) => id,
|
|
268
|
-
terminal: (j) => {
|
|
269
|
-
const s = String(j?.status ?? '');
|
|
270
|
-
if (s === 'succeeded') {
|
|
271
|
-
// `url` is presigned at READ time by the jobs route from the result's
|
|
272
|
-
// durable `outputR2Key` (routes/jobs.ts) — the executor never stores a
|
|
273
|
-
// URL that would expire inside the immortal job row.
|
|
274
|
-
const r = (j?.result ?? {});
|
|
275
|
-
return {
|
|
276
|
-
ok: true,
|
|
277
|
-
mediaUrls: r.url ? [r.url] : undefined,
|
|
278
|
-
text: r.url
|
|
279
|
-
? `Preview ready.\n\nClip: ${r.url}${r.urlExpiresAt ? `\n(link valid until ${r.urlExpiresAt})` : ''}\n\nInspect it, fix the component via create_component if needed, and re-preview.`
|
|
280
|
-
: 'Preview succeeded but returned no url — inspect GET /v1/jobs for the raw result.',
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
if (s === 'failed')
|
|
284
|
-
return jobFailedResult('Preview', 'preview_component', j);
|
|
285
|
-
return null;
|
|
286
|
-
},
|
|
287
|
-
},
|
|
288
|
-
brand_kit_extract: {
|
|
289
|
-
// Generic jobs resource — brand-token extraction job.
|
|
290
|
-
operationId: 'getJob',
|
|
291
|
-
mapArg: (_p, id) => id,
|
|
292
|
-
terminal: (j) => {
|
|
293
|
-
const s = String(j?.status ?? '');
|
|
294
|
-
if (s === 'succeeded') {
|
|
295
|
-
const r = (j?.result ?? {});
|
|
296
|
-
const colors = Array.isArray(r.colors) ? r.colors.length : 0;
|
|
297
|
-
const fonts = Array.isArray(r.fonts) ? r.fonts.length : 0;
|
|
298
|
-
const head = `${colors} color${colors !== 1 ? 's' : ''}, ${fonts} font${fonts !== 1 ? 's' : ''}${r.title ? ` — ${r.title}` : ''}`;
|
|
299
|
-
return {
|
|
300
|
-
ok: true,
|
|
301
|
-
text: `Extraction complete: ${head}.\n\n${JSON.stringify(j?.result ?? {}, null, 2)}\n\nReview the tokens, then create_brand_kit to persist a kit. (0 tokens usually means a JS-rendered site — author the kit manually from the site's compiled CSS.)`,
|
|
302
|
-
};
|
|
303
|
-
}
|
|
304
|
-
if (s === 'failed')
|
|
305
|
-
return jobFailedResult('Brand-kit extraction', 'extract_brand_kit', j);
|
|
306
|
-
return null;
|
|
307
|
-
},
|
|
308
|
-
},
|
|
309
|
-
};
|
|
310
|
-
/** Shared FAILED terminal for generic-job kinds: typed code + retry hint. */
|
|
311
|
-
function jobFailedResult(label, reEnqueueTool, j) {
|
|
312
|
-
const code = String(j?.error?.code ?? 'unknown');
|
|
313
|
-
const msg = typeof j?.error?.message === 'string' ? j.error.message : '';
|
|
314
|
-
const retryHint = code === 'job_timeout'
|
|
315
|
-
? ` The executor died mid-run and the stall sweep reaped the job — re-enqueue ${reEnqueueTool} to retry.`
|
|
316
|
-
: '';
|
|
317
|
-
return { ok: false, text: `${label} failed (${code})${msg ? `: ${msg}` : ''}.${retryHint}` };
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Poll a job's status op until terminal or the deadline. 4xx → fail loud
|
|
321
|
-
* immediately; 5xx/transient → keep polling; 2xx non-terminal → sleep + retry.
|
|
322
|
-
*/
|
|
323
|
-
export async function waitForJob(ex, kind, id, projectId, deadline, deps = {}) {
|
|
324
|
-
const sleep = deps.sleep ?? defaultSleep;
|
|
325
|
-
const now = deps.now ?? defaultNow;
|
|
326
|
-
const pollMs = deps.pollMs ?? DEFAULT_POLL_MS;
|
|
327
|
-
const cfg = KINDS[kind];
|
|
328
|
-
const op = opById(cfg.operationId);
|
|
329
|
-
let lastStatus = '';
|
|
330
|
-
// Overshoot guard: never START an invoke (or a sleep+invoke cycle) that
|
|
331
|
-
// would land past the deadline — the old `now() < deadline` check let a
|
|
332
|
-
// poll beginning at deadline−1ms overshoot by the whole invoke duration,
|
|
333
|
-
// blowing the transport budget the deadline exists to respect.
|
|
334
|
-
const INVOKE_BUDGET_MS = deps.invokeBudgetMs ?? 2_000;
|
|
335
|
-
// ALWAYS poll at least once: a caller with a tiny timeout (schema floor is
|
|
336
|
-
// 1000ms, under the invoke budget) is doing a quick status check — zero
|
|
337
|
-
// polls would return still-running for a job that already finished (or
|
|
338
|
-
// doesn't exist), and an agent obeying the re-call hint livelocks forever.
|
|
339
|
-
let firstPoll = true;
|
|
340
|
-
while (firstPoll || now() + INVOKE_BUDGET_MS < deadline) {
|
|
341
|
-
firstPoll = false;
|
|
342
|
-
const res = await ex.invoke({
|
|
343
|
-
method: op.method,
|
|
344
|
-
path: buildPath(op, (p) => cfg.mapArg(p, id, projectId)),
|
|
345
|
-
});
|
|
346
|
-
// Fail fast on a client error (4xx) OR any error the API marks
|
|
347
|
-
// non-retryable (`error.retryable === false`) — only genuinely transient
|
|
348
|
-
// 5xx are worth polling. (Without this, a non-retryable 500 — e.g. a
|
|
349
|
-
// malformed id — would poll until the full timeout.)
|
|
350
|
-
if (!isOk(res.status)) {
|
|
351
|
-
const j = safeParse(res.text);
|
|
352
|
-
if ((res.status >= 400 && res.status < 500) || j?.error?.retryable === false) {
|
|
353
|
-
return { ok: false, text: `Failed to poll ${kind} status: ${fmtErr(apiErrorFrom(res))}` };
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
if (isOk(res.status)) {
|
|
357
|
-
const json = safeParse(res.text);
|
|
358
|
-
const t = cfg.terminal(json);
|
|
359
|
-
if (t)
|
|
360
|
-
return t;
|
|
361
|
-
if (json && typeof json.status === 'string')
|
|
362
|
-
lastStatus = json.status;
|
|
363
|
-
}
|
|
364
|
-
if (now() + pollMs + INVOKE_BUDGET_MS >= deadline)
|
|
365
|
-
break;
|
|
366
|
-
await sleep(pollMs);
|
|
367
|
-
}
|
|
368
|
-
// Window expired with the job still running: a CONTINUATION (success), not
|
|
369
|
-
// an error. The job keeps executing server-side; the caller re-invokes
|
|
370
|
-
// wait_job to keep waiting. This is what makes wait_job an honest bounded
|
|
371
|
-
// long-poll on capped transports instead of a misleading failure.
|
|
372
|
-
const tail = lastStatus ? ` Last status: ${lastStatus}.` : '';
|
|
373
|
-
return {
|
|
374
|
-
ok: true,
|
|
375
|
-
stillRunning: true,
|
|
376
|
-
text: `Still running — the ${kind} job continues server-side.${tail} Call wait_job again with the SAME arguments (kind="${kind}", id="${id}"${projectId ? `, projectId="${projectId}"` : ''}) to keep waiting. For event-driven fan-out, create_webhook delivers the terminal instead.`,
|
|
377
|
-
};
|
|
378
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* x402-over-MCP wire constants + helpers, VENDORED from the first-party
|
|
3
|
-
* `@x402/mcp` package and pinned to it by `x402Meta.conformance.test.ts`.
|
|
4
|
-
*
|
|
5
|
-
* Why vendored instead of `import … from "@x402/mcp"`: the published `@x402/mcp`
|
|
6
|
-
* dist is a single bundle that imports `@x402/core/client` + `/server`
|
|
7
|
-
* (viem/Buffer) at MODULE scope, so importing even a constant drags Buffer into
|
|
8
|
-
* the Convex V8 isolate — the exact failure `x402Facilitator.ts` is `"use node"`
|
|
9
|
-
* to avoid. This module is plain-JSON + `btoa` only, so it is V8-safe and runs in
|
|
10
|
-
* both the hosted (V8 isolate) and stdio (Node) transports. Same generator/runtime
|
|
11
|
-
* split as `x402Discovery` (a Node test tracks the spec; the runtime reads plain
|
|
12
|
-
* data). The conformance test fails if these drift from `@x402/mcp`.
|
|
13
|
-
*
|
|
14
|
-
* The convention (Cloudflare/Coinbase/Vercel + `@x402/mcp`): over MCP, payment
|
|
15
|
-
* rides in the JSON-RPC `_meta` field, NOT an HTTP header — MCP is transport-
|
|
16
|
-
* agnostic (stdio has no HTTP layer). The `PaymentPayload` / `PaymentRequired`
|
|
17
|
-
* objects are byte-identical to CueFrame's REST v2 envelope; only the carrier
|
|
18
|
-
* differs (`_meta` key vs `PAYMENT-SIGNATURE`/`Payment-Required` header).
|
|
19
|
-
*/
|
|
20
|
-
/** Client → server: the signed EIP-3009 `PaymentPayload`, on the tools/call `_meta`. */
|
|
21
|
-
export const MCP_PAYMENT_META_KEY = 'x402/payment';
|
|
22
|
-
/** JSON-RPC error code a paid tool returns when called unpaid. */
|
|
23
|
-
export const MCP_PAYMENT_REQUIRED_CODE = 402;
|
|
24
|
-
/**
|
|
25
|
-
* True iff a parsed body is a canonical x402 `PaymentRequired` challenge (has a
|
|
26
|
-
* numeric `x402Version` and an `accepts` array) — matching the @x402/mcp client's
|
|
27
|
-
* `isPaymentRequiredStructure`. Used to tell the REAL 402 payment challenge apart
|
|
28
|
-
* from the OTHER errors that share HTTP 402 (billing_required,
|
|
29
|
-
* generation_budget_exceeded, payment_invalid, …), which must surface as typed
|
|
30
|
-
* errors, not an x402 "sign a payment" prompt.
|
|
31
|
-
*/
|
|
32
|
-
export function isX402PaymentRequired(body) {
|
|
33
|
-
return (!!body &&
|
|
34
|
-
typeof body === 'object' &&
|
|
35
|
-
typeof body.x402Version === 'number' &&
|
|
36
|
-
Array.isArray(body.accepts));
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Read the client's signed payment (a `PaymentPayload` object) off a tools/call
|
|
40
|
-
* `_meta`. Returns the raw object or null; the STRUCTURE is validated downstream
|
|
41
|
-
* by the facilitator's EIP-3009 decode (single source of truth), so this is a
|
|
42
|
-
* presence/shape gate only — never trust it as verified payment.
|
|
43
|
-
*/
|
|
44
|
-
export function extractPaymentFromMeta(meta) {
|
|
45
|
-
const p = meta?.[MCP_PAYMENT_META_KEY];
|
|
46
|
-
return p && typeof p === 'object' ? p : null;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Encode a `PaymentPayload` object into the base64 `PAYMENT-SIGNATURE` header
|
|
50
|
-
* value the REST x402 middleware decodes (`@x402/core` `encodePaymentSignatureHeader`
|
|
51
|
-
* = `safeBase64Encode(JSON.stringify(payload))`). `btoa`-based → V8-safe; mirrors
|
|
52
|
-
* `@x402/core`'s own `safeBase64Encode` (which is also btoa-first). This lets an
|
|
53
|
-
* MCP tool call forward its `_meta` payment INTO the unchanged REST verify/settle
|
|
54
|
-
* path via the inner `app.fetch`, reusing all money-safety.
|
|
55
|
-
*/
|
|
56
|
-
export function encodePaymentSignature(payload) {
|
|
57
|
-
const bytes = new TextEncoder().encode(JSON.stringify(payload));
|
|
58
|
-
let binary = '';
|
|
59
|
-
for (let i = 0; i < bytes.length; i++)
|
|
60
|
-
binary += String.fromCharCode(bytes[i]);
|
|
61
|
-
return btoa(binary);
|
|
62
|
-
}
|
|
63
|
-
// NB: no `attachPaymentResponseToMeta` / `decodePaymentResponse` — CueFrame does
|
|
64
|
-
// NOT emit an inline settle receipt (settle is async; the caller reads the final
|
|
65
|
-
// outcome from x402Payments). If a synchronous-settle receipt is ever added,
|
|
66
|
-
// re-vendor those two @x402/mcp helpers here with a conformance test.
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { zid } from "convex-helpers/server/zod3";
|
|
3
|
-
// Phase labels for media processing. One canonical vocabulary across desktop,
|
|
4
|
-
// Convex, and OpenAPI — no per-consumer redefinition. Superset of every stage
|
|
5
|
-
// either side runs:
|
|
6
|
-
// shared: idle → pending_import → pending_upload → uploading → ...
|
|
7
|
-
// → complete | error | cancelled
|
|
8
|
-
// desktop-local: extracting (audio extract), loading_model (whisper download),
|
|
9
|
-
// transcribing, proxy (low-res preview transcode), embedding,
|
|
10
|
-
// analyzing, indexing
|
|
11
|
-
// cloud-only: generating (TTS / text-to-image), rendering (final encode)
|
|
12
|
-
// intermediate: processing (generic in-flight when no specific stage applies)
|
|
13
|
-
//
|
|
14
|
-
// Legacy cloud writers that wrote 'completed'/'ready'/'failed'/'in_progress'/
|
|
15
|
-
// 'transcoding' map onto this canonical via projectStatus() in
|
|
16
|
-
// projections/mediaItems.ts; the data migration in PR 2 backfills them.
|
|
17
|
-
export const MediaProcessingPhase = z.enum([
|
|
18
|
-
"idle",
|
|
19
|
-
"pending_import",
|
|
20
|
-
"pending_upload",
|
|
21
|
-
"uploading",
|
|
22
|
-
"extracting",
|
|
23
|
-
"loading_model",
|
|
24
|
-
"transcribing",
|
|
25
|
-
"proxy",
|
|
26
|
-
"embedding",
|
|
27
|
-
"analyzing",
|
|
28
|
-
"indexing",
|
|
29
|
-
"generating",
|
|
30
|
-
"rendering",
|
|
31
|
-
"processing",
|
|
32
|
-
"complete",
|
|
33
|
-
"error",
|
|
34
|
-
"cancelled",
|
|
35
|
-
]);
|
|
36
|
-
// ProxyStatus — lifecycle of the low-res preview proxy file. One canonical
|
|
37
|
-
// enum across desktop SQLite, Convex `mediaItems.proxyStatus`, and any
|
|
38
|
-
// OpenAPI shape that exposes proxy state.
|
|
39
|
-
export const ProxyStatus = z.enum([
|
|
40
|
-
"none",
|
|
41
|
-
"generating",
|
|
42
|
-
"ready",
|
|
43
|
-
"failed",
|
|
44
|
-
]);
|
|
45
|
-
// MediaProcessingStatus — runtime state object combining phase + progress
|
|
46
|
-
// detail. This is the single shape every consumer (desktop, Convex storage,
|
|
47
|
-
// OpenAPI responses) sees. Older code that referenced `MediaProcessingStatus`
|
|
48
|
-
// as an enum should now reference `MediaProcessingPhase`; older code that
|
|
49
|
-
// hand-defined a `{phase, percent, message, error}` object (OpenAPI, desktop
|
|
50
|
-
// discriminated unions) should now import this.
|
|
51
|
-
// percent/message/error are nullable AND optional — desktop construction
|
|
52
|
-
// sites typically omit them (`{ phase: 'idle' }`), worker writes nullable
|
|
53
|
-
// (e.g. `{ phase: 'processing', percent: 60, message: 'Transcribing', error: null }`),
|
|
54
|
-
// OpenAPI emission preserves whichever the producer sent. Consumers tolerate
|
|
55
|
-
// any of: present-with-value | present-with-null | omitted.
|
|
56
|
-
export const MediaProcessingStatus = z.object({
|
|
57
|
-
phase: MediaProcessingPhase,
|
|
58
|
-
percent: z.number().nullable().optional(),
|
|
59
|
-
message: z.string().nullable().optional(),
|
|
60
|
-
error: z.string().nullable().optional(),
|
|
61
|
-
});
|
|
62
|
-
// MediaUnderstanding — populated by the visual/topical analysis stage.
|
|
63
|
-
// Shape is intentionally permissive at P0; pipeline stages may extend it.
|
|
64
|
-
export const MediaUnderstanding = z.object({
|
|
65
|
-
summary: z.string().optional(),
|
|
66
|
-
topics: z.array(z.string()).optional(),
|
|
67
|
-
language: z.string().optional(),
|
|
68
|
-
notes: z.string().optional(),
|
|
69
|
-
extra: z.record(z.string(), z.unknown()).optional(),
|
|
70
|
-
});
|
|
71
|
-
// Generation — present iff MediaItem.source === 'generated'.
|
|
72
|
-
// Provider is an open string mapping to a server-side generator registered with credentials;
|
|
73
|
-
// new providers are additions to the generator registry, not schema migrations.
|
|
74
|
-
export const TextToSpeechGeneration = z.object({
|
|
75
|
-
kind: z.literal("text-to-speech"),
|
|
76
|
-
provider: z.string().min(1),
|
|
77
|
-
text: z.string().min(1),
|
|
78
|
-
voice: z.string().min(1),
|
|
79
|
-
params: z.record(z.string(), z.unknown()).optional(),
|
|
80
|
-
});
|
|
81
|
-
export const TextToImageGeneration = z.object({
|
|
82
|
-
kind: z.literal("text-to-image"),
|
|
83
|
-
provider: z.string().min(1),
|
|
84
|
-
prompt: z.string().min(1),
|
|
85
|
-
params: z.record(z.string(), z.unknown()).optional(),
|
|
86
|
-
});
|
|
87
|
-
export const ImageToVideoGeneration = z.object({
|
|
88
|
-
kind: z.literal("image-to-video"),
|
|
89
|
-
provider: z.string().min(1),
|
|
90
|
-
sourceMediaId: zid("mediaItems"),
|
|
91
|
-
prompt: z.string().optional(),
|
|
92
|
-
params: z.record(z.string(), z.unknown()).optional(),
|
|
93
|
-
});
|
|
94
|
-
export const ManimGeneration = z.object({
|
|
95
|
-
kind: z.literal("manim"),
|
|
96
|
-
scriptId: z.string().optional(),
|
|
97
|
-
inlineScript: z.string().optional(),
|
|
98
|
-
params: z.record(z.string(), z.unknown()).optional(),
|
|
99
|
-
});
|
|
100
|
-
export const Generation = z.discriminatedUnion("kind", [
|
|
101
|
-
TextToSpeechGeneration,
|
|
102
|
-
TextToImageGeneration,
|
|
103
|
-
ImageToVideoGeneration,
|
|
104
|
-
ManimGeneration,
|
|
105
|
-
]);
|
|
106
|
-
// TranscriptRef — pointer to the transcript artifact (full word-level data lives in R2,
|
|
107
|
-
// the row carries metadata + R2 key). `ready` flips when the transcribe stage completes.
|
|
108
|
-
export const TranscriptRef = z.object({
|
|
109
|
-
id: z.string().min(1),
|
|
110
|
-
ready: z.boolean(),
|
|
111
|
-
});
|
|
112
|
-
// Agent-perception surface (filmstrip + per-frame analysis) — populated by
|
|
113
|
-
// the perception pipeline stage post-ingestion. Placed before MediaItem so
|
|
114
|
-
// MediaItem's `perception` field resolves.
|
|
115
|
-
// FrameAnalysis — analysis derived from a single sampled frame: spatial
|
|
116
|
-
// regions (faces, primary subject, safe regions for overlay placement) and
|
|
117
|
-
// non-spatial signals (dominant colors). Keyed by timestamp `t`.
|
|
118
|
-
export const FrameAnalysis = z.object({
|
|
119
|
-
t: z.number().nonnegative(),
|
|
120
|
-
faces: z.array(z.object({
|
|
121
|
-
bbox: z.tuple([z.number(), z.number(), z.number(), z.number()]),
|
|
122
|
-
confidence: z.number().min(0).max(1).optional(),
|
|
123
|
-
})).optional(),
|
|
124
|
-
primarySubject: z.object({
|
|
125
|
-
bbox: z.tuple([z.number(), z.number(), z.number(), z.number()]),
|
|
126
|
-
}).optional(),
|
|
127
|
-
safeRegions: z.array(z.object({
|
|
128
|
-
bbox: z.tuple([z.number(), z.number(), z.number(), z.number()]),
|
|
129
|
-
kind: z.string().optional(),
|
|
130
|
-
})).optional(),
|
|
131
|
-
dominantColors: z.array(z.string()).optional(),
|
|
132
|
-
});
|
|
133
|
-
export const Filmstrip = z.object({
|
|
134
|
-
mediaId: zid("mediaItems"),
|
|
135
|
-
sheetUrl: z.string().url(),
|
|
136
|
-
frameCount: z.number().int().positive(),
|
|
137
|
-
frameInterval: z.number().positive(),
|
|
138
|
-
frameWidth: z.number().int().positive(),
|
|
139
|
-
frameHeight: z.number().int().positive(),
|
|
140
|
-
columns: z.number().int().positive(),
|
|
141
|
-
});
|
|
142
|
-
// Perception — bundle of pre-computed perception artifacts for a MediaItem row.
|
|
143
|
-
// Filmstrip is the visual artifact (sprite-sheet); frameAnalysis[] is the
|
|
144
|
-
// per-moment structured analysis. Read by agents reasoning about content
|
|
145
|
-
// without re-decoding the source.
|
|
146
|
-
export const Perception = z.object({
|
|
147
|
-
mediaId: zid("mediaItems"),
|
|
148
|
-
filmstrip: Filmstrip.optional(),
|
|
149
|
-
frameAnalysis: z.array(FrameAnalysis).optional(),
|
|
150
|
-
});
|
|
151
|
-
export const MediaItem = z.object({
|
|
152
|
-
id: zid("mediaItems"),
|
|
153
|
-
// Track-routing kind; not in the data-model.md spec but load-bearing for
|
|
154
|
-
// the existing storage pipeline. video/audio/image determine ingest path.
|
|
155
|
-
kind: z.enum(["video", "audio", "image"]),
|
|
156
|
-
filename: z.string().min(1),
|
|
157
|
-
// Aliased per data-model.md § MediaItem — `mimeType` is the doc name; `size` is bytes.
|
|
158
|
-
mimeType: z.string().min(1),
|
|
159
|
-
size: z.number().int().nonnegative(),
|
|
160
|
-
duration: z.number().nonnegative().optional(), // seconds; populated post-transcode
|
|
161
|
-
width: z.number().int().positive().optional(),
|
|
162
|
-
height: z.number().int().positive().optional(),
|
|
163
|
-
fps: z.number().positive().optional(),
|
|
164
|
-
status: MediaProcessingPhase,
|
|
165
|
-
source: z.enum(["upload", "generated"]).optional(),
|
|
166
|
-
generation: Generation.optional(),
|
|
167
|
-
// Derived data populated through the pipeline
|
|
168
|
-
transcript: TranscriptRef.optional(),
|
|
169
|
-
mediaUnderstanding: MediaUnderstanding.optional(),
|
|
170
|
-
perception: Perception.optional(),
|
|
171
|
-
// Lifecycle timestamps — epoch ms (see CONVEX_ADAPTATIONS.md)
|
|
172
|
-
createdAt: z.number(),
|
|
173
|
-
updatedAt: z.number(),
|
|
174
|
-
ownerOrgId: z.string().optional(),
|
|
175
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./api";
|