@cyberart-io/engine 0.0.10 → 0.0.12

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/CHANGELOG.md CHANGED
@@ -4,6 +4,29 @@ All notable changes to `@cyberart-io/engine`. Each entry links the guide in `doc
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.0.12 — 2026-09-08
8
+
9
+ Loading-indicator contract and job submit payload validation. Additive: existing exports keep their signatures.
10
+
11
+ ### Added
12
+
13
+ - **Deterministic loading indicator** — `createLoadingIndicatorController`, `parseLoadingIndicatorParams`, `parseLoadingIndicatorSnapshot`, `loadingIndicatorEventContracts`. Host-facing presentation-only contract with validated params (`schemaVersion`, `seed`, `mode`, optional `progress`/`stage`/`context`, bounded presentation), lifecycle `start → update → complete | fail | cancel`, seeded variant derivation, reduced-motion static treatment, host `statusText`, cart-init fallback to built-in indicator, snapshot/restore fail-closed, and budget diagnostics. Reference cart: `fixtures/loadingPulseCart.ts`. [docs/loading-indicator.md](docs/loading-indicator.md) · [#64](https://github.com/cyberart-io/cyberart.io/pull/64)
14
+
15
+ ### Fixed
16
+
17
+ - **Job submit payload validation** — `createJobCoordinator.submit` validates `request` against the definition's `requestSchema` before mutation. Missing required fields and undeclared keys (unless `additionalProperties: true`) return structured `invalid-request` failures without creating jobs, emitting lifecycle events, or consuming idempotency keys. Shared helper: `validatePayloadAgainstSchema`. [docs/job-orchestration.md](docs/job-orchestration.md) · [#65](https://github.com/cyberart-io/cyberart.io/pull/65)
18
+
19
+
20
+ ## 0.0.11 — 2026-09-06
21
+
22
+ Production-scenario overlap precedence and transactional reload. Additive: existing exports keep their signatures.
23
+
24
+ ### Added
25
+
26
+ - **Transactional production-scenario reload** — `reload` preflights the sidecar envelope, optional `host.validateRestoreState`, projected input surface, and every present module sidecar before mutation. Apply is one transaction with rollback on failure; invalid sidecars localize at subsystem boundaries (`invalid-visual-sidecar`, `invalid-semantic-sidecar`, `invalid-binding-sidecar`, `invalid-sequence-sidecar`, `invalid-audio-sidecar`, `invalid-host-sidecar`). Legacy envelopes omitting sidecar keys remain compatible. [docs/production-scenario.md](docs/production-scenario.md) · [#60](https://github.com/cyberart-io/cyberart.io/pull/60)
27
+
28
+ - **Overlap precedence on production input surface** — `ProductionScenarioControl.priority` resolves intersecting regions deterministically in browser and headless. Equal or missing priority on an overlapping pair still fails closed at boundary `input` (`ambiguous-geometry`). Coordinate clicks record `observation.inputHitTest` (selected and rejected control ids). [docs/production-scenario.md](docs/production-scenario.md) · [#59](https://github.com/cyberart-io/cyberart.io/pull/59)
29
+
7
30
  ## 0.0.10 — 2026-09-06
8
31
 
9
32
  Production-scenario follow-ups after the 0.0.9 Animation Framework cut. Additive: existing exports keep their signatures.
package/README.md CHANGED
@@ -94,6 +94,7 @@ Full API for the event router, deterministic replay, and CI harness (so agents c
94
94
  - [Presentation adapter](docs/presentation-adapter.md) — host-owned render model, intents, loading / error / unsupported
95
95
  - [Asset resolver](docs/asset-resolver.md) — host-pluggable images/audio/fonts/spritesheets, cache, preload, fallbacks
96
96
  - [Presentation cue](docs/presentation-cue.md) — deterministic `createPresentationTimeline`, duplicate policy, reduced-motion, lifecycle events
97
+ - [Loading indicator](docs/loading-indicator.md) — `createLoadingIndicatorController`, seeded loader carts, honest progress, snapshot/restore, fallback
97
98
  - [Capability manifest](docs/capability-manifest.md) — versioned JSON for runtime features, phases, managers, assets, events, permissions, integrations
98
99
  - [Executable modules](docs/executable-modules.md) — trusted versioned factories, host allowlists, isolation, per-module failures
99
100
  - [Remote cart manifests](docs/remote-cart-manifest.md) — signed catalogs, declared asset hashes, inspectable host grants
@@ -1284,6 +1284,8 @@ type PayloadSchema = {
1284
1284
  /** Payload schema version. Bump on any field change. */
1285
1285
  version: number;
1286
1286
  fields: Record<string, PayloadFieldSpec>;
1287
+ /** When not `true`, validation rejects undeclared payload keys. */
1288
+ additionalProperties?: boolean;
1287
1289
  };
1288
1290
  type ContractDiagnostic = {
1289
1291
  code: string;
@@ -2993,6 +2995,183 @@ declare function paintingPortal(portal: PortalLifecycle): {
2993
2995
  };
2994
2996
  declare function createPortalLifecycle(options?: CreatePortalLifecycleOptions): PortalLifecycle;
2995
2997
 
2998
+ /**
2999
+ * Copyright (c) 2026 Aaron Boyarsky
3000
+ * SPDX-License-Identifier: LicenseRef-CyberArt-Engine
3001
+ * See packages/engine/LICENSE
3002
+ *
3003
+ * Host-facing deterministic loading-indicator contract. Presentation-only:
3004
+ * carts vary by seeded parameters without inventing progress or mutating
3005
+ * authoritative host state.
3006
+ */
3007
+
3008
+ declare const LOADING_INDICATOR_PARAM_SCHEMA_VERSION: 1;
3009
+ declare const LOADING_INDICATOR_SNAPSHOT_SCHEMA_VERSION: 1;
3010
+ declare const LOADING_INDICATOR_MODES: readonly ["indeterminate", "determinate"];
3011
+ type LoadingIndicatorMode = (typeof LOADING_INDICATOR_MODES)[number];
3012
+ declare const LOADING_INDICATOR_CONTEXTS: readonly ["travel", "worldgen", "content", "audio"];
3013
+ type LoadingIndicatorContext = (typeof LOADING_INDICATOR_CONTEXTS)[number];
3014
+ declare const LOADING_INDICATOR_MOTIFS: readonly ["pulse", "orbit", "bars", "ripple", "static"];
3015
+ type LoadingIndicatorMotif = (typeof LOADING_INDICATOR_MOTIFS)[number];
3016
+ declare const LOADING_INDICATOR_PHASES: readonly ["idle", "active", "completed", "failed", "canceled"];
3017
+ type LoadingIndicatorPhase = (typeof LOADING_INDICATOR_PHASES)[number];
3018
+ declare const LOADING_INDICATOR_STARTED_EVENT: "loading.indicator.started";
3019
+ declare const LOADING_INDICATOR_UPDATED_EVENT: "loading.indicator.updated";
3020
+ declare const LOADING_INDICATOR_COMPLETED_EVENT: "loading.indicator.completed";
3021
+ declare const LOADING_INDICATOR_FAILED_EVENT: "loading.indicator.failed";
3022
+ declare const LOADING_INDICATOR_CANCELED_EVENT: "loading.indicator.canceled";
3023
+ declare const LOADING_INDICATOR_DIAGNOSTIC_EVENT: "loading.indicator.diagnostic";
3024
+ declare const LOADING_INDICATOR_EVENTS: readonly ["loading.indicator.started", "loading.indicator.updated", "loading.indicator.completed", "loading.indicator.failed", "loading.indicator.canceled", "loading.indicator.diagnostic"];
3025
+ type LoadingIndicatorEventType = (typeof LOADING_INDICATOR_EVENTS)[number];
3026
+ declare const LOADING_INDICATOR_DIAGNOSTIC_CODES: readonly ["invalid-params", "invalid-snapshot", "schema-mismatch", "unknown-field", "cart-init-failed", "budget-exceeded", "invalid-state", "restore-failed"];
3027
+ type LoadingIndicatorDiagnosticCode = (typeof LOADING_INDICATOR_DIAGNOSTIC_CODES)[number];
3028
+ type LoadingIndicatorPresentation = {
3029
+ palette?: string;
3030
+ intensity?: number;
3031
+ motif?: LoadingIndicatorMotif;
3032
+ variant?: number;
3033
+ };
3034
+ type LoadingIndicatorParams = {
3035
+ schemaVersion: typeof LOADING_INDICATOR_PARAM_SCHEMA_VERSION;
3036
+ seed: string;
3037
+ mode: LoadingIndicatorMode;
3038
+ progress?: number;
3039
+ stage?: string;
3040
+ context?: LoadingIndicatorContext | string;
3041
+ statusText: string;
3042
+ presentation?: LoadingIndicatorPresentation;
3043
+ cartId?: string;
3044
+ };
3045
+ type LoadingIndicatorParamsInput = Omit<LoadingIndicatorParams, 'schemaVersion'> & {
3046
+ schemaVersion?: number;
3047
+ };
3048
+ type LoadingIndicatorVariant = {
3049
+ hue: number;
3050
+ motif: LoadingIndicatorMotif;
3051
+ variant: number;
3052
+ intensity: number;
3053
+ palette: string;
3054
+ };
3055
+ type LoadingIndicatorView = {
3056
+ phase: LoadingIndicatorPhase;
3057
+ mode: LoadingIndicatorMode;
3058
+ /** Host-supplied progress in determinate mode; null when indeterminate. */
3059
+ progress: number | null;
3060
+ stage: string | null;
3061
+ context: string | null;
3062
+ statusText: string;
3063
+ seed: string;
3064
+ variant: LoadingIndicatorVariant;
3065
+ usingFallback: boolean;
3066
+ cartId: string;
3067
+ frame: number;
3068
+ /** Presentation animation phase 0..1; static under reduced motion. */
3069
+ pulsePhase: number;
3070
+ reducedMotion: boolean;
3071
+ };
3072
+ type LoadingIndicatorEvent = {
3073
+ type: LoadingIndicatorEventType;
3074
+ atFrame: number;
3075
+ seed: string;
3076
+ mode: LoadingIndicatorMode;
3077
+ phase: LoadingIndicatorPhase;
3078
+ progress: number | null;
3079
+ stage: string | null;
3080
+ context: string | null;
3081
+ statusText: string;
3082
+ usingFallback: boolean;
3083
+ reasonCode?: string;
3084
+ };
3085
+ type LoadingIndicatorDiagnostic = {
3086
+ code: LoadingIndicatorDiagnosticCode | string;
3087
+ detail: string;
3088
+ path?: string;
3089
+ atFrame?: number;
3090
+ };
3091
+ type LoadingIndicatorSnapshot = {
3092
+ schemaVersion: typeof LOADING_INDICATOR_SNAPSHOT_SCHEMA_VERSION;
3093
+ frame: number;
3094
+ reducedMotion: boolean;
3095
+ phase: LoadingIndicatorPhase;
3096
+ params: LoadingIndicatorParams | null;
3097
+ variant: LoadingIndicatorVariant;
3098
+ usingFallback: boolean;
3099
+ fallbackReason: string | null;
3100
+ cartId: string;
3101
+ events: LoadingIndicatorEvent[];
3102
+ diagnostics: LoadingIndicatorDiagnostic[];
3103
+ /** Inspect event types in live order, including diagnostics. */
3104
+ eventLog?: LoadingIndicatorEventType[];
3105
+ };
3106
+ type LoadingIndicatorInspect = {
3107
+ destroyed: boolean;
3108
+ view: LoadingIndicatorView;
3109
+ events: LoadingIndicatorEventType[];
3110
+ diagnostics: LoadingIndicatorDiagnostic[];
3111
+ };
3112
+ type LoadingIndicatorMutationResult = {
3113
+ ok: true;
3114
+ view: LoadingIndicatorView;
3115
+ } | {
3116
+ ok: false;
3117
+ errors: LoadingIndicatorDiagnostic[];
3118
+ };
3119
+ type RestoreLoadingIndicatorResult = {
3120
+ ok: true;
3121
+ snapshot: LoadingIndicatorSnapshot;
3122
+ } | {
3123
+ ok: false;
3124
+ errors: LoadingIndicatorDiagnostic[];
3125
+ };
3126
+ type LoadingIndicatorBudgets = {
3127
+ maxStepFrames?: number;
3128
+ maxIntensity?: number;
3129
+ maxVariant?: number;
3130
+ };
3131
+ type LoadingIndicatorCartFactory = (seed: string, variant: LoadingIndicatorVariant) => LoadingIndicatorCartHandle | {
3132
+ ok: false;
3133
+ reason: string;
3134
+ };
3135
+ type LoadingIndicatorCartHandle = {
3136
+ step?(frames: number, view: LoadingIndicatorView): void;
3137
+ destroy?(): void;
3138
+ };
3139
+ type CreateLoadingIndicatorControllerOptions = {
3140
+ carts?: Record<string, LoadingIndicatorCartFactory | AnimationCart>;
3141
+ reducedMotion?: boolean;
3142
+ originFrame?: number;
3143
+ budgets?: LoadingIndicatorBudgets;
3144
+ router?: Pick<EventRouter, 'publish'>;
3145
+ defaultCartId?: string;
3146
+ };
3147
+ type LoadingIndicatorController = {
3148
+ start(input: LoadingIndicatorParamsInput): LoadingIndicatorMutationResult;
3149
+ update(input: Partial<LoadingIndicatorParamsInput>): LoadingIndicatorMutationResult;
3150
+ complete(): LoadingIndicatorMutationResult;
3151
+ fail(reasonCode?: string): LoadingIndicatorMutationResult;
3152
+ cancel(): LoadingIndicatorMutationResult;
3153
+ step(frames?: number): LoadingIndicatorEvent[];
3154
+ snapshot(): LoadingIndicatorSnapshot;
3155
+ restore(input: unknown): RestoreLoadingIndicatorResult;
3156
+ inspect(): LoadingIndicatorInspect;
3157
+ setReducedMotion(value: boolean): void;
3158
+ destroy(): void;
3159
+ readonly reducedMotion: boolean;
3160
+ readonly frame: number;
3161
+ };
3162
+ declare function loadingIndicatorEventContracts(): EventContract[];
3163
+ declare function isLoadingIndicatorEventType(value: unknown): value is LoadingIndicatorEventType;
3164
+ declare function isLoadingIndicatorMode(value: unknown): value is LoadingIndicatorMode;
3165
+ declare function parseLoadingIndicatorParams(input: unknown, path?: string): {
3166
+ ok: true;
3167
+ params: LoadingIndicatorParams;
3168
+ } | {
3169
+ ok: false;
3170
+ errors: LoadingIndicatorDiagnostic[];
3171
+ };
3172
+ declare function parseLoadingIndicatorSnapshot(input: unknown): RestoreLoadingIndicatorResult;
3173
+ declare function createLoadingIndicatorController(options?: CreateLoadingIndicatorControllerOptions): LoadingIndicatorController;
3174
+
2996
3175
  /**
2997
3176
  * Copyright (c) 2026 Aaron Boyarsky
2998
3177
  * SPDX-License-Identifier: LicenseRef-CyberArt-Engine
@@ -4015,7 +4194,7 @@ declare const PRODUCTION_SCENARIO_SCHEMA_VERSION: 1;
4015
4194
  declare const PRODUCTION_SCENARIO_SNAPSHOT_SCHEMA_VERSION: 1;
4016
4195
  declare const PRODUCTION_SCENARIO_BOUNDARIES: readonly ["input", "reducer", "routing", "binding", "cue", "pixels", "caption", "audio", "save-replay"];
4017
4196
  type ProductionScenarioBoundary = (typeof PRODUCTION_SCENARIO_BOUNDARIES)[number];
4018
- declare const PRODUCTION_SCENARIO_ERROR_CODES: readonly ["invalid-scenario", "invalid-schema", "unknown-field", "missing-field", "callbacks-forbidden", "missing-participant", "missing-layer", "destroyed", "assertion-failed", "invalid-host-audio", "invalid-audio-sidecar", "unsupported-preference", "invalid-geometry", "ambiguous-geometry", "stale-geometry"];
4197
+ declare const PRODUCTION_SCENARIO_ERROR_CODES: readonly ["invalid-scenario", "invalid-schema", "unknown-field", "missing-field", "callbacks-forbidden", "missing-participant", "missing-layer", "destroyed", "assertion-failed", "invalid-host-audio", "invalid-audio-sidecar", "invalid-visual-sidecar", "invalid-semantic-sidecar", "invalid-binding-sidecar", "invalid-sequence-sidecar", "invalid-host-sidecar", "unsupported-preference", "invalid-geometry", "ambiguous-geometry", "stale-geometry"];
4019
4198
  type ProductionScenarioErrorCode = (typeof PRODUCTION_SCENARIO_ERROR_CODES)[number];
4020
4199
  declare const HOST_OWNED_AUDIO_EVENT_KINDS: readonly ["invoked", "completed", "failed", "skipped", "fallback"];
4021
4200
  type HostOwnedAudioEventKind = (typeof HOST_OWNED_AUDIO_EVENT_KINDS)[number];
@@ -4115,6 +4294,14 @@ type ProductionScenarioControl = {
4115
4294
  id: string;
4116
4295
  name?: string;
4117
4296
  role?: string;
4297
+ /** Higher priority wins normalized overlap hit-tests when regions intersect. */
4298
+ priority?: number;
4299
+ };
4300
+ type ProductionScenarioInputHitTest = {
4301
+ x: number;
4302
+ y: number;
4303
+ selectedControlId: string;
4304
+ rejectedControlIds: readonly string[];
4118
4305
  };
4119
4306
  type ProductionScenarioInputSurface = {
4120
4307
  controls: readonly ProductionScenarioControl[];
@@ -4131,6 +4318,16 @@ type ProductionScenarioHost = {
4131
4318
  * geometry and controls.
4132
4319
  */
4133
4320
  projectInputSurface?(state: JsonObject): ProductionScenarioInputSurface;
4321
+ /**
4322
+ * Optional pre-reload validator for host JSON from a saved sidecar. When
4323
+ * supplied, reload rejects invalid host state before any live mutation.
4324
+ */
4325
+ validateRestoreState?(state: JsonObject): {
4326
+ ok: true;
4327
+ } | {
4328
+ ok: false;
4329
+ detail: string;
4330
+ };
4134
4331
  };
4135
4332
  type HostOwnedAudioEvent = {
4136
4333
  kind: HostOwnedAudioEventKind;
@@ -4206,6 +4403,7 @@ type ProductionScenarioObservation = {
4206
4403
  reducedMotion?: boolean;
4207
4404
  reducedMotionPropagation?: ReducedMotionPropagation | null;
4208
4405
  activeControlIds: string[];
4406
+ inputHitTest?: ProductionScenarioInputHitTest;
4209
4407
  };
4210
4408
  type ProductionScenarioExpectation = {
4211
4409
  inputDispatched?: boolean;
@@ -4328,6 +4526,7 @@ type ProductionScenarioRunner = {
4328
4526
  reducedMotionPropagation: ReducedMotionPropagation | null;
4329
4527
  inputSurface: {
4330
4528
  controlIds: string[];
4529
+ controls: readonly ProductionScenarioControl[];
4331
4530
  geometry: GeometryDocument | null;
4332
4531
  };
4333
4532
  };
@@ -4360,4 +4559,4 @@ type WriteComposedFrameResult = ComposedFrame & {
4360
4559
  */
4361
4560
  declare function writeComposedFrame(compositor: Compositor, path?: string): Promise<WriteComposedFrameResult>;
4362
4561
 
4363
- export { AUDIO_CUE_SNAPSHOT_SCHEMA_VERSION, type AudioCueDiagnostic, type BoundReplaySession, CONTENT_REVISION_ACTIVATED_EVENT, CONTENT_REVISION_SNAPSHOT_SCHEMA_VERSION, type CausationTreeNode, type ContentRevisionActivator, type ContentRevisionBundle, type ContentRevisionInspect, type ContentRevisionSnapshot, type CreateHeadlessHarnessOptions, type CreateHeadlessMultiCartHarnessOptions, type CreateProductionScenarioRunnerOptions, type CreateReplayInspectorOptions, type CreateSelectionTraceOptions, DEFAULT_HEADLESS_HEIGHT, DEFAULT_HEADLESS_WIDTH, DEFAULT_MAX_SELECTION_RECORDS, DEFAULT_PRODUCTION_SCENARIO_VIEWPORTS, type FrameBenchmarkOptions, type FrameBenchmarkResult, type GlyphAtlas, HEADLESS_PNG_DATA_URL, HOST_OWNED_AUDIO_EVENT_KINDS, type HeadlessAudioAdapter, type HeadlessAudioAdapterSnapshot, type HeadlessCanvas2DSettings, type HeadlessFrameError, type HeadlessHarness, type HeadlessImageFixture, type HeadlessInspect, type HeadlessJobWorker, type HeadlessMultiCartHarness, HeadlessUnsupportedOperationError, type HostGrantSet, type HostOwnedAudioEvent, type HostOwnedAudioEventKind, type HostOwnedAudioObserver, type HostOwnedAudioSnapshot, type InspectorRecord, type InstallHeadlessCanvasOptions, type JobCoordinator, type JobCoordinatorSnapshot, type JobInspect, PRESENTATION_BINDING_APPLIED_EVENT, PRESENTATION_BINDING_SNAPSHOT_SCHEMA_VERSION, PRODUCTION_SCENARIO_BOUNDARIES, PRODUCTION_SCENARIO_SCHEMA_VERSION, PRODUCTION_SCENARIO_SNAPSHOT_SCHEMA_VERSION, type PortalInspect, type PortalLifecycle, type PortalLifecycleSnapshot, type PresentationBindingInspect, type PresentationBindingManifest, type PresentationBindingRuntime, type PresentationBindingSnapshot, type PresentationSequenceDefinition, type PresentationSequenceInspect, type PresentationSequencePlayer, type PresentationSequenceSnapshot, type ProductionScenarioControl, type ProductionScenarioDefinition, type ProductionScenarioEvidenceBundle, type ProductionScenarioExpectation, type ProductionScenarioHost, type ProductionScenarioInputSurface, type ProductionScenarioLocalization, type ProductionScenarioObservation, type ProductionScenarioRunner, REDUCED_MOTION_ACTIVE_SEQUENCE_POLICY, REDUCED_MOTION_PARTICIPANT_IDS, type ReducedMotionActiveSequencePolicy, type ReducedMotionParticipantId, type ReducedMotionParticipantReport, type ReducedMotionPropagation, type RemoteCartInspect, type RemoteCartSandbox, type ReplayCompareResult, type ReplayInspector, type ReplayInspectorExport, type ReplayInspectorReport, type ReplayParticipantSummary, type ReplayTapeAction, type ReplayTraceFilter, type RestoreAudioCueResult, SELECTION_DECISION_KINDS, SELECTION_REASON_CODES, SELECTION_TRACE_SCHEMA_VERSION, SELECTION_TRACE_SENSITIVE_KEYS, type SelectionAssetResolution, type SelectionBindingEvaluation, type SelectionContentIdentity, type SelectionDecisionInput, type SelectionDecisionKind, type SelectionDecisionRecord, type SelectionPresentationDecision, type SelectionReasonCode, type SelectionSequenceDecision, type SelectionSnapshotProvenance, type SelectionStagingOutcome, type SelectionStagingResult, type SelectionTrace, type SelectionTraceExport, type SelectionTraceFilter, type SelectionTraceReport, type SemanticLayerController, type SemanticPublishedRegion, type SemanticRegionInspect, UPDATE_GOLDEN_ENV, type VisualArtifactPaths, type VisualArtifacts, type VisualCompareOptions, type VisualCompareResult, type VisualLayerCapture, type VisualLayerController, type VisualLayerInspect, WORLD_PATCH_ACCEPTED_EVENT, WORLD_PATCH_SNAPSHOT_SCHEMA_VERSION, type WorldGraph, type WorldGraphInspect, type WorldGraphProjection, type WorldGraphSnapshot, type WorldPatchApplier, type WorldPatchInspect, type WorldPatchSnapshot, type WorldPersistenceAdapter, type WriteComposedFrameResult, assertPixelsEqual, assertPngDataUrlsEqual, attachHeadlessCanvas2D, attachSelectionTrace, benchmarkCartFrames, cabinetPortal, captureVisualLayers, compareImageData, compareReplayTraces, contentRevisionEventContracts, createContentRevisionActivator, createDefaultGlyphAtlas, createHeadlessAudioAdapter, createHeadlessHarness, createHeadlessJobWorker, createHeadlessMultiCartHarness, createHostGrantSet, createImageFixture, createJobCoordinator, createMemoryJobPersistence, createMemoryWorldPersistence, createPortalLifecycle, createPresentationBindingRuntime, createPresentationSequencePlayer, createProductionScenarioRunner, createRemoteCartSandbox, createRemoteContentAdapter, createReplayInspector, createSelectionTrace, createSemanticLayerController, createStaticContentAdapter, createVisualLayerController, createWorldGraph, createWorldPatchApplier, decodePng, definePresentationBindings, definePresentationSequence, defineProductionScenario, encodePng, encodePngDataUrl, evaluatePresentationBindings, fnv1aHex, formatFrameBenchmarkResult, getHeadlessSurface, imageDataFromPngDataUrl, installHeadlessCanvas, isHostOwnedAudioEventKind, isSelectionDecisionKind, isSelectionReasonCode, jobEventContracts, localizeProductionScenarioFailure, makeImageData, paintingPortal, parseAudioCueSnapshot, presentationBindingEventContracts, presentationSequenceEventContracts, productionScenarioEventContracts, recordSelectionDecision, replayExportedTrace, setDefaultGlyphAtlas, shouldUpdateGolden, worldGraphEventContracts, worldPatchEventContracts, writeComposedFrame, writeVisualArtifacts };
4562
+ export { AUDIO_CUE_SNAPSHOT_SCHEMA_VERSION, type AudioCueDiagnostic, type BoundReplaySession, CONTENT_REVISION_ACTIVATED_EVENT, CONTENT_REVISION_SNAPSHOT_SCHEMA_VERSION, type CausationTreeNode, type ContentRevisionActivator, type ContentRevisionBundle, type ContentRevisionInspect, type ContentRevisionSnapshot, type CreateHeadlessHarnessOptions, type CreateHeadlessMultiCartHarnessOptions, type CreateLoadingIndicatorControllerOptions, type CreateProductionScenarioRunnerOptions, type CreateReplayInspectorOptions, type CreateSelectionTraceOptions, DEFAULT_HEADLESS_HEIGHT, DEFAULT_HEADLESS_WIDTH, DEFAULT_MAX_SELECTION_RECORDS, DEFAULT_PRODUCTION_SCENARIO_VIEWPORTS, type FrameBenchmarkOptions, type FrameBenchmarkResult, type GlyphAtlas, HEADLESS_PNG_DATA_URL, HOST_OWNED_AUDIO_EVENT_KINDS, type HeadlessAudioAdapter, type HeadlessAudioAdapterSnapshot, type HeadlessCanvas2DSettings, type HeadlessFrameError, type HeadlessHarness, type HeadlessImageFixture, type HeadlessInspect, type HeadlessJobWorker, type HeadlessMultiCartHarness, HeadlessUnsupportedOperationError, type HostGrantSet, type HostOwnedAudioEvent, type HostOwnedAudioEventKind, type HostOwnedAudioObserver, type HostOwnedAudioSnapshot, type InspectorRecord, type InstallHeadlessCanvasOptions, type JobCoordinator, type JobCoordinatorSnapshot, type JobInspect, LOADING_INDICATOR_CANCELED_EVENT, LOADING_INDICATOR_COMPLETED_EVENT, LOADING_INDICATOR_CONTEXTS, LOADING_INDICATOR_DIAGNOSTIC_CODES, LOADING_INDICATOR_DIAGNOSTIC_EVENT, LOADING_INDICATOR_EVENTS, LOADING_INDICATOR_FAILED_EVENT, LOADING_INDICATOR_MODES, LOADING_INDICATOR_MOTIFS, LOADING_INDICATOR_PARAM_SCHEMA_VERSION, LOADING_INDICATOR_PHASES, LOADING_INDICATOR_SNAPSHOT_SCHEMA_VERSION, LOADING_INDICATOR_STARTED_EVENT, LOADING_INDICATOR_UPDATED_EVENT, type LoadingIndicatorBudgets, type LoadingIndicatorCartFactory, type LoadingIndicatorCartHandle, type LoadingIndicatorContext, type LoadingIndicatorController, type LoadingIndicatorDiagnostic, type LoadingIndicatorDiagnosticCode, type LoadingIndicatorEvent, type LoadingIndicatorEventType, type LoadingIndicatorInspect, type LoadingIndicatorMode, type LoadingIndicatorMotif, type LoadingIndicatorMutationResult, type LoadingIndicatorParams, type LoadingIndicatorParamsInput, type LoadingIndicatorPhase, type LoadingIndicatorPresentation, type LoadingIndicatorSnapshot, type LoadingIndicatorVariant, type LoadingIndicatorView, PRESENTATION_BINDING_APPLIED_EVENT, PRESENTATION_BINDING_SNAPSHOT_SCHEMA_VERSION, PRODUCTION_SCENARIO_BOUNDARIES, PRODUCTION_SCENARIO_SCHEMA_VERSION, PRODUCTION_SCENARIO_SNAPSHOT_SCHEMA_VERSION, type PortalInspect, type PortalLifecycle, type PortalLifecycleSnapshot, type PresentationBindingInspect, type PresentationBindingManifest, type PresentationBindingRuntime, type PresentationBindingSnapshot, type PresentationSequenceDefinition, type PresentationSequenceInspect, type PresentationSequencePlayer, type PresentationSequenceSnapshot, type ProductionScenarioControl, type ProductionScenarioDefinition, type ProductionScenarioEvidenceBundle, type ProductionScenarioExpectation, type ProductionScenarioHost, type ProductionScenarioInputHitTest, type ProductionScenarioInputSurface, type ProductionScenarioLocalization, type ProductionScenarioObservation, type ProductionScenarioRunner, REDUCED_MOTION_ACTIVE_SEQUENCE_POLICY, REDUCED_MOTION_PARTICIPANT_IDS, type ReducedMotionActiveSequencePolicy, type ReducedMotionParticipantId, type ReducedMotionParticipantReport, type ReducedMotionPropagation, type RemoteCartInspect, type RemoteCartSandbox, type ReplayCompareResult, type ReplayInspector, type ReplayInspectorExport, type ReplayInspectorReport, type ReplayParticipantSummary, type ReplayTapeAction, type ReplayTraceFilter, type RestoreAudioCueResult, type RestoreLoadingIndicatorResult, SELECTION_DECISION_KINDS, SELECTION_REASON_CODES, SELECTION_TRACE_SCHEMA_VERSION, SELECTION_TRACE_SENSITIVE_KEYS, type SelectionAssetResolution, type SelectionBindingEvaluation, type SelectionContentIdentity, type SelectionDecisionInput, type SelectionDecisionKind, type SelectionDecisionRecord, type SelectionPresentationDecision, type SelectionReasonCode, type SelectionSequenceDecision, type SelectionSnapshotProvenance, type SelectionStagingOutcome, type SelectionStagingResult, type SelectionTrace, type SelectionTraceExport, type SelectionTraceFilter, type SelectionTraceReport, type SemanticLayerController, type SemanticPublishedRegion, type SemanticRegionInspect, UPDATE_GOLDEN_ENV, type VisualArtifactPaths, type VisualArtifacts, type VisualCompareOptions, type VisualCompareResult, type VisualLayerCapture, type VisualLayerController, type VisualLayerInspect, WORLD_PATCH_ACCEPTED_EVENT, WORLD_PATCH_SNAPSHOT_SCHEMA_VERSION, type WorldGraph, type WorldGraphInspect, type WorldGraphProjection, type WorldGraphSnapshot, type WorldPatchApplier, type WorldPatchInspect, type WorldPatchSnapshot, type WorldPersistenceAdapter, type WriteComposedFrameResult, assertPixelsEqual, assertPngDataUrlsEqual, attachHeadlessCanvas2D, attachSelectionTrace, benchmarkCartFrames, cabinetPortal, captureVisualLayers, compareImageData, compareReplayTraces, contentRevisionEventContracts, createContentRevisionActivator, createDefaultGlyphAtlas, createHeadlessAudioAdapter, createHeadlessHarness, createHeadlessJobWorker, createHeadlessMultiCartHarness, createHostGrantSet, createImageFixture, createJobCoordinator, createLoadingIndicatorController, createMemoryJobPersistence, createMemoryWorldPersistence, createPortalLifecycle, createPresentationBindingRuntime, createPresentationSequencePlayer, createProductionScenarioRunner, createRemoteCartSandbox, createRemoteContentAdapter, createReplayInspector, createSelectionTrace, createSemanticLayerController, createStaticContentAdapter, createVisualLayerController, createWorldGraph, createWorldPatchApplier, decodePng, definePresentationBindings, definePresentationSequence, defineProductionScenario, encodePng, encodePngDataUrl, evaluatePresentationBindings, fnv1aHex, formatFrameBenchmarkResult, getHeadlessSurface, imageDataFromPngDataUrl, installHeadlessCanvas, isHostOwnedAudioEventKind, isLoadingIndicatorEventType, isLoadingIndicatorMode, isSelectionDecisionKind, isSelectionReasonCode, jobEventContracts, loadingIndicatorEventContracts, localizeProductionScenarioFailure, makeImageData, paintingPortal, parseAudioCueSnapshot, parseLoadingIndicatorParams, parseLoadingIndicatorSnapshot, presentationBindingEventContracts, presentationSequenceEventContracts, productionScenarioEventContracts, recordSelectionDecision, replayExportedTrace, setDefaultGlyphAtlas, shouldUpdateGolden, worldGraphEventContracts, worldPatchEventContracts, writeComposedFrame, writeVisualArtifacts };