@cyberart-io/engine 0.0.9 → 0.0.10

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
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to `@cyberart-io/engine`. Each entry links the guide in `docs/` and the pull request on [cyberart-io/cyberart.io](https://github.com/cyberart-io/cyberart.io). Versions before 0.0.9 predate this file.
4
4
 
5
+ ## Unreleased
6
+
7
+ ## 0.0.10 — 2026-09-06
8
+
9
+ Production-scenario follow-ups after the 0.0.9 Animation Framework cut. Additive: existing exports keep their signatures.
10
+
11
+ ### Added
12
+
13
+ - **Dynamic host geometry and controls** — production scenarios project the active input surface from host state (`host.projectInputSurface`). Accepted reduces and reload rebuild visible/focusable controls and the geometry document together. Removed controls are not clickable or focusable. Browser harness `setGeometry` updates CSS hit-testing. Missing, overlapping, or stale geometry fails closed at boundary `input` (`invalid-geometry` / `ambiguous-geometry` / `stale-geometry`). Reload syncs the input surface without `applyPresentation()` (no sequence replay). [docs/production-scenario.md](docs/production-scenario.md) · [docs/browser-harness.md](docs/browser-harness.md) · [#49](https://github.com/cyberart-io/cyberart.io/pull/49)
14
+
15
+ - **Runtime reduced-motion propagation** — a production-scenario `reducedMotion` step (and `setReducedMotion`) updates browser/a11y plus visual, sequence, and audio/reduced-sensory policy. Active sequences **continue** with compiled durations; future `playSequence` uses the new flag. Semantic layers are a declared no-op. Evidence records `observation.reducedMotion` / `reducedMotionPropagation`. Construction-time `matrix.reducedMotion` is unchanged. [docs/production-scenario.md](docs/production-scenario.md) · [#48](https://github.com/cyberart-io/cyberart.io/pull/48)
16
+
17
+ - **Audio cue snapshot restore** — versioned `schemaVersion` `1` sidecar on `createAudioCueTimeline` / `createHeadlessAudioAdapter`. `restore()` validates JSON before mutation; unknown schema, unknown cue ids, or malformed state fail closed. Mute restores; unlock is observation-only. Production-scenario `reload` restores `hostState.audio` last (no second play) and reports `observation.audioRestoreOk` / `invalid-audio-sidecar`. [docs/audio.md](docs/audio.md) · [docs/production-scenario.md](docs/production-scenario.md) · [#46](https://github.com/cyberart-io/cyberart.io/pull/46)
18
+
19
+ - **Production scenario host-owned audio** — optional `hostAudio` observer on `createProductionScenarioRunner`. A host that already owns a production audio controller reports invocation / completion / failure / skip / fallback (plus captions and envelope identity) without duplicating the beat as a presentation sequence. Evidence is in `traces.hostAudio`; `observation.audioInvoked` follows host `invoked` / `completed` only (same as sequence scheduled/started); `audioFailed` and captions still merge skip / fallback / failed rows. Invalid adapters fail closed at boundary `audio` (`invalid-host-audio`). [docs/production-scenario.md](docs/production-scenario.md) · [#45](https://github.com/cyberart-io/cyberart.io/pull/45)
20
+
5
21
  ## 0.0.9 — 2026-09-05
6
22
 
7
23
  Eleven Animation Framework modules. All are additive: no existing export changed signature, and the `@cyberart-io/engine` / `@cyberart-io/engine/headless` entries export the same new API. Every module ships a `snapshot()` / `restore()` pair that validates JSON before mutating, and typed `*.state.*` / `*.diagnostic.*` event contracts for the router.
@@ -1678,6 +1678,7 @@ type PlayCueResult = {
1678
1678
  */
1679
1679
 
1680
1680
  declare const AUDIO_CUE_EVENTS: readonly ["audio.cue.scheduled", "audio.cue.started", "audio.cue.skipped", "audio.cue.failed"];
1681
+ declare const AUDIO_CUE_SNAPSHOT_SCHEMA_VERSION: 1;
1681
1682
  type AudioCueEventType = (typeof AUDIO_CUE_EVENTS)[number];
1682
1683
  type AudioCueSkipReason = 'reduced-sensory' | 'muted' | 'unauthorized';
1683
1684
  type AudioCueFailReason = 'asset-failed' | 'torn-down' | 'invalid';
@@ -1695,6 +1696,8 @@ type AudioCueView = CueView & {
1695
1696
  participantId?: string;
1696
1697
  priority: number;
1697
1698
  audioPhase: 'scheduled' | 'started' | 'skipped' | 'failed' | 'completed';
1699
+ /** Original play spec; omitted when the cue was not repeating. */
1700
+ repeat?: CueRepeatPolicy;
1698
1701
  };
1699
1702
  type AudioCueEvent = {
1700
1703
  type: AudioCueEventType;
@@ -1708,11 +1711,28 @@ type AudioCueEvent = {
1708
1711
  progress: number;
1709
1712
  };
1710
1713
  type AudioCueTimelineSnapshot = {
1714
+ schemaVersion: typeof AUDIO_CUE_SNAPSHOT_SCHEMA_VERSION;
1711
1715
  frame: number;
1712
1716
  reducedSensory: boolean;
1713
1717
  cues: AudioCueView[];
1714
1718
  events: AudioCueEvent[];
1715
1719
  };
1720
+ type HeadlessAudioAdapterSnapshot = AudioCueTimelineSnapshot & {
1721
+ unlock: AudioUnlockStatus;
1722
+ muted: boolean;
1723
+ };
1724
+ type AudioCueDiagnostic = {
1725
+ code: string;
1726
+ detail: string;
1727
+ path?: string;
1728
+ };
1729
+ type RestoreAudioCueResult = {
1730
+ ok: true;
1731
+ snapshot: AudioCueTimelineSnapshot;
1732
+ } | {
1733
+ ok: false;
1734
+ errors: AudioCueDiagnostic[];
1735
+ };
1716
1736
  type PlayAudioCueResult = {
1717
1737
  ok: true;
1718
1738
  cue: AudioCueView;
@@ -1727,8 +1747,15 @@ type AudioCueTimeline = {
1727
1747
  cancel(idempotencyKey: string): boolean;
1728
1748
  reset(): void;
1729
1749
  snapshot(): AudioCueTimelineSnapshot;
1750
+ restore(input: unknown): RestoreAudioCueResult;
1730
1751
  get(idempotencyKey: string): AudioCueView | undefined;
1731
1752
  dispose(): void;
1753
+ /**
1754
+ * Updates skip-playback for future cue starts. Already-started cues
1755
+ * continue; scheduled cues that have not started yet use the new flag
1756
+ * when they start.
1757
+ */
1758
+ setReducedSensory(value: boolean): void;
1732
1759
  readonly frame: number;
1733
1760
  readonly reducedSensory: boolean;
1734
1761
  };
@@ -1739,12 +1766,13 @@ type HeadlessAudioAdapter = {
1739
1766
  play(spec: AudioCueSpec): PlayAudioCueResult;
1740
1767
  step(frames?: number): AudioCueEvent[];
1741
1768
  handleHostEvent(event: HostEvent): void;
1742
- snapshot(): AudioCueTimelineSnapshot & {
1743
- unlock: AudioUnlockStatus;
1744
- muted: boolean;
1745
- };
1769
+ snapshot(): HeadlessAudioAdapterSnapshot;
1770
+ restore(input: unknown): RestoreAudioCueResult;
1746
1771
  destroy(): void;
1772
+ setReducedSensory(value: boolean): void;
1773
+ readonly reducedSensory: boolean;
1747
1774
  };
1775
+ declare function parseAudioCueSnapshot(input: unknown): RestoreAudioCueResult;
1748
1776
  declare function createHeadlessAudioAdapter(options?: {
1749
1777
  reducedSensory?: boolean;
1750
1778
  originFrame?: number;
@@ -1893,9 +1921,15 @@ type VisualLayerController = {
1893
1921
  inspect(): VisualLayerInspect[];
1894
1922
  captureComposedFrame(): ComposedFrame;
1895
1923
  destroy(): void;
1924
+ /**
1925
+ * Updates the host flag used by future `play()` calls. In-flight
1926
+ * transitions keep the durations they were compiled with.
1927
+ */
1928
+ setReducedMotion(value: boolean): void;
1896
1929
  readonly frame: number;
1897
1930
  readonly sceneId: string | null;
1898
1931
  readonly compositor: Compositor;
1932
+ readonly reducedMotion: boolean;
1899
1933
  };
1900
1934
  type VisualLayerCapture = {
1901
1935
  frame: ComposedFrame;
@@ -2270,6 +2304,8 @@ type PresentationInvocationView = {
2270
2304
  completedStepIds: string[];
2271
2305
  activeStepIds: string[];
2272
2306
  selectedFallbackId: string | null;
2307
+ /** Reduced-motion flag used to compile this invocation's step durations. */
2308
+ compiledReducedMotion: boolean;
2273
2309
  };
2274
2310
  type PresentationSequenceSnapshot = {
2275
2311
  schemaVersion: typeof PRESENTATION_SEQUENCE_SNAPSHOT_SCHEMA_VERSION;
@@ -2325,6 +2361,13 @@ type PresentationSequencePlayer = {
2325
2361
  }): PresentationCueIntent[];
2326
2362
  get(sequenceId: string): PresentationSequenceDefinition | undefined;
2327
2363
  destroy(): void;
2364
+ /**
2365
+ * Updates the host flag used by future `playSequence` / cue-intent
2366
+ * compilation. The active invocation **continues** with the durations it
2367
+ * was compiled with. Queued plays that have not started yet use the new
2368
+ * policy when they start.
2369
+ */
2370
+ setReducedMotion(value: boolean): void;
2328
2371
  readonly frame: number;
2329
2372
  readonly reducedMotion: boolean;
2330
2373
  readonly reducedSensory: boolean;
@@ -3937,8 +3980,10 @@ type BrowserHarness = {
3937
3980
  readonly compositor: Compositor | undefined;
3938
3981
  readonly layout: PresentationLayout;
3939
3982
  readonly events: readonly EventEnvelope[];
3983
+ readonly geometry: GeometryDocument | undefined;
3940
3984
  goto(url?: string): void;
3941
3985
  setViewport(width: number, height: number, dpr?: number): void;
3986
+ setGeometry(next?: GeometryDocument): void;
3942
3987
  setReducedMotion(value: boolean): void;
3943
3988
  setInputModality(value: BrowserInputModality): void;
3944
3989
  click(selectorOrX: string | number, y?: number): void;
@@ -3961,16 +4006,19 @@ type BrowserHarness = {
3961
4006
  *
3962
4007
  * End-to-end production composition scenario harness. Composes the real
3963
4008
  * browser host, runtime group, compositor, visual/semantic layers, bindings,
3964
- * sequences, headless audio, snapshots, and replay inspector. Does not
3965
- * introduce a second runtime. Authored scenarios are JSON-serializable.
4009
+ * sequences, headless audio, optional host-owned audio observation, snapshots,
4010
+ * and replay inspector. Does not introduce a second runtime. Authored
4011
+ * scenarios are JSON-serializable.
3966
4012
  */
3967
4013
 
3968
4014
  declare const PRODUCTION_SCENARIO_SCHEMA_VERSION: 1;
3969
4015
  declare const PRODUCTION_SCENARIO_SNAPSHOT_SCHEMA_VERSION: 1;
3970
4016
  declare const PRODUCTION_SCENARIO_BOUNDARIES: readonly ["input", "reducer", "routing", "binding", "cue", "pixels", "caption", "audio", "save-replay"];
3971
4017
  type ProductionScenarioBoundary = (typeof PRODUCTION_SCENARIO_BOUNDARIES)[number];
3972
- declare const PRODUCTION_SCENARIO_ERROR_CODES: readonly ["invalid-scenario", "invalid-schema", "unknown-field", "missing-field", "callbacks-forbidden", "missing-participant", "missing-layer", "destroyed", "assertion-failed"];
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"];
3973
4019
  type ProductionScenarioErrorCode = (typeof PRODUCTION_SCENARIO_ERROR_CODES)[number];
4020
+ declare const HOST_OWNED_AUDIO_EVENT_KINDS: readonly ["invoked", "completed", "failed", "skipped", "fallback"];
4021
+ type HostOwnedAudioEventKind = (typeof HOST_OWNED_AUDIO_EVENT_KINDS)[number];
3974
4022
  declare const PRODUCTION_SCENARIO_VIEWPORT_PRESETS: readonly ["desktop", "mobile"];
3975
4023
  type ProductionScenarioViewportPreset = (typeof PRODUCTION_SCENARIO_VIEWPORT_PRESETS)[number];
3976
4024
  declare const DEFAULT_PRODUCTION_SCENARIO_VIEWPORTS: {
@@ -4063,16 +4111,75 @@ type ProductionScenarioReduceResult = {
4063
4111
  reason?: string;
4064
4112
  playSequence?: string;
4065
4113
  };
4114
+ type ProductionScenarioControl = {
4115
+ id: string;
4116
+ name?: string;
4117
+ role?: string;
4118
+ };
4119
+ type ProductionScenarioInputSurface = {
4120
+ controls: readonly ProductionScenarioControl[];
4121
+ geometry: GeometryDocument;
4122
+ };
4066
4123
  type ProductionScenarioHost = {
4067
4124
  initialState: JsonObject;
4068
4125
  reduce(state: JsonObject, intent: EventInput): ProductionScenarioReduceResult;
4069
4126
  project?(state: JsonObject): JsonObject;
4127
+ /**
4128
+ * Host-generic projection of the active input surface. After an accepted
4129
+ * reduce (and on reload) the runner rebuilds visible/focusable controls and
4130
+ * the geometry document from this result. Omit to keep construction-time
4131
+ * geometry and controls.
4132
+ */
4133
+ projectInputSurface?(state: JsonObject): ProductionScenarioInputSurface;
4134
+ };
4135
+ type HostOwnedAudioEvent = {
4136
+ kind: HostOwnedAudioEventKind;
4137
+ atFrame?: number;
4138
+ name?: string;
4139
+ caption?: string;
4140
+ assetId?: string;
4141
+ reason?: string;
4142
+ id?: string;
4143
+ correlationId?: string;
4144
+ causationId?: string;
4145
+ };
4146
+ type HostOwnedAudioSnapshot = {
4147
+ events: readonly HostOwnedAudioEvent[];
4148
+ captions?: readonly string[];
4149
+ muted?: boolean;
4150
+ };
4151
+ /**
4152
+ * Host-owned audio/presentation observer. The host already drives the
4153
+ * controller; the runner only snapshots evidence. Generic: no dialogue
4154
+ * product semantics. At least one of `snapshot` or `collect` is required.
4155
+ */
4156
+ type HostOwnedAudioObserver = {
4157
+ snapshot?(): HostOwnedAudioSnapshot;
4158
+ collect?(): HostOwnedAudioSnapshot;
4159
+ inspect?(): unknown;
4070
4160
  };
4071
4161
  type ProductionScenarioLocalization = {
4072
4162
  boundary: ProductionScenarioBoundary;
4073
4163
  code: ProductionScenarioErrorCode;
4074
4164
  detail: string;
4075
4165
  };
4166
+ declare const REDUCED_MOTION_ACTIVE_SEQUENCE_POLICY: "continue";
4167
+ type ReducedMotionActiveSequencePolicy = typeof REDUCED_MOTION_ACTIVE_SEQUENCE_POLICY;
4168
+ declare const REDUCED_MOTION_PARTICIPANT_IDS: readonly ["browser", "visual", "sequence", "audio", "semantic"];
4169
+ type ReducedMotionParticipantId = (typeof REDUCED_MOTION_PARTICIPANT_IDS)[number];
4170
+ type ReducedMotionParticipantReport = {
4171
+ id: ReducedMotionParticipantId;
4172
+ applied: boolean;
4173
+ reducedMotion?: boolean;
4174
+ reducedSensory?: boolean;
4175
+ reason?: string;
4176
+ };
4177
+ type ReducedMotionPropagation = {
4178
+ from: boolean;
4179
+ to: boolean;
4180
+ activeSequencePolicy: ReducedMotionActiveSequencePolicy;
4181
+ participants: ReducedMotionParticipantReport[];
4182
+ };
4076
4183
  type ProductionScenarioObservation = {
4077
4184
  inputDispatched: boolean;
4078
4185
  inputTarget?: string;
@@ -4095,6 +4202,10 @@ type ProductionScenarioObservation = {
4095
4202
  muted: boolean;
4096
4203
  replayMatch?: boolean;
4097
4204
  snapshotOk?: boolean;
4205
+ audioRestoreOk?: boolean;
4206
+ reducedMotion?: boolean;
4207
+ reducedMotionPropagation?: ReducedMotionPropagation | null;
4208
+ activeControlIds: string[];
4098
4209
  };
4099
4210
  type ProductionScenarioExpectation = {
4100
4211
  inputDispatched?: boolean;
@@ -4110,6 +4221,7 @@ type ProductionScenarioExpectation = {
4110
4221
  audioFailed?: boolean;
4111
4222
  replayMatch?: boolean;
4112
4223
  snapshotOk?: boolean;
4224
+ audioRestoreOk?: boolean;
4113
4225
  };
4114
4226
  type ProductionScenarioEvidenceBundle = {
4115
4227
  schemaVersion: typeof PRODUCTION_SCENARIO_SNAPSHOT_SCHEMA_VERSION;
@@ -4133,6 +4245,7 @@ type ProductionScenarioEvidenceBundle = {
4133
4245
  envelopes: EventEnvelope[];
4134
4246
  inspector: InspectorRecord[];
4135
4247
  audio: AudioCueEvent[];
4248
+ hostAudio: HostOwnedAudioEvent[];
4136
4249
  actions: ProductionScenarioStep[];
4137
4250
  };
4138
4251
  screenshot: {
@@ -4161,6 +4274,13 @@ type CreateProductionScenarioRunnerOptions = {
4161
4274
  bindings?: PresentationBindingManifest | unknown;
4162
4275
  geometry?: GeometryDocument;
4163
4276
  host: ProductionScenarioHost;
4277
+ /**
4278
+ * Optional host-owned audio observer. When supplied, the runner records
4279
+ * invocation / completion / failure / skip / fallback evidence from this
4280
+ * adapter without requiring a presentation sequence for the same beat.
4281
+ * Invalid adapters fail closed at boundary `audio`.
4282
+ */
4283
+ hostAudio?: HostOwnedAudioObserver;
4164
4284
  sequenceBindings?: Readonly<Record<string, PresentationSequenceBindings>>;
4165
4285
  contentWidth?: number;
4166
4286
  contentHeight?: number;
@@ -4200,13 +4320,21 @@ type ProductionScenarioRunner = {
4200
4320
  visual: ReturnType<VisualLayerController['inspect']> | null;
4201
4321
  semantic: ReturnType<SemanticLayerController['inspect']> | null;
4202
4322
  audio: ReturnType<HeadlessAudioAdapter['snapshot']>;
4323
+ hostAudio: HostOwnedAudioSnapshot | null;
4203
4324
  participants: string[];
4204
4325
  layers: string[];
4205
4326
  composition: ProductionScenarioLocalization | null;
4327
+ reducedMotion: boolean;
4328
+ reducedMotionPropagation: ReducedMotionPropagation | null;
4329
+ inputSurface: {
4330
+ controlIds: string[];
4331
+ geometry: GeometryDocument | null;
4332
+ };
4206
4333
  };
4207
4334
  destroy(): void;
4208
4335
  };
4209
4336
  declare function productionScenarioEventContracts(): EventContract[];
4337
+ declare function isHostOwnedAudioEventKind(value: unknown): value is HostOwnedAudioEventKind;
4210
4338
  declare function defineProductionScenario(input: unknown): DefineProductionScenarioResult;
4211
4339
  declare function fnv1aHex(data: string | Uint8Array): string;
4212
4340
  declare function localizeProductionScenarioFailure(observed: ProductionScenarioObservation, expected?: ProductionScenarioExpectation): ProductionScenarioLocalization | null;
@@ -4232,4 +4360,4 @@ type WriteComposedFrameResult = ComposedFrame & {
4232
4360
  */
4233
4361
  declare function writeComposedFrame(compositor: Compositor, path?: string): Promise<WriteComposedFrameResult>;
4234
4362
 
4235
- export { 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 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, type HeadlessAudioAdapter, type HeadlessCanvas2DSettings, type HeadlessFrameError, type HeadlessHarness, type HeadlessImageFixture, type HeadlessInspect, type HeadlessJobWorker, type HeadlessMultiCartHarness, HeadlessUnsupportedOperationError, type HostGrantSet, 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 ProductionScenarioDefinition, type ProductionScenarioEvidenceBundle, type ProductionScenarioExpectation, type ProductionScenarioHost, type ProductionScenarioLocalization, type ProductionScenarioObservation, type ProductionScenarioRunner, type RemoteCartInspect, type RemoteCartSandbox, type ReplayCompareResult, type ReplayInspector, type ReplayInspectorExport, type ReplayInspectorReport, type ReplayParticipantSummary, type ReplayTapeAction, type ReplayTraceFilter, 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, isSelectionDecisionKind, isSelectionReasonCode, jobEventContracts, localizeProductionScenarioFailure, makeImageData, paintingPortal, presentationBindingEventContracts, presentationSequenceEventContracts, productionScenarioEventContracts, recordSelectionDecision, replayExportedTrace, setDefaultGlyphAtlas, shouldUpdateGolden, worldGraphEventContracts, worldPatchEventContracts, writeComposedFrame, writeVisualArtifacts };
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 };