@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 +16 -0
- package/dist/headless.d.ts +136 -8
- package/dist/headless.js +1 -1
- package/dist/index.d.ts +146 -8
- package/dist/index.js +1 -1
- package/docs/audio.md +24 -0
- package/docs/browser-harness.md +2 -1
- package/docs/production-scenario.md +92 -6
- package/package.json +1 -1
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.
|
package/dist/headless.d.ts
CHANGED
|
@@ -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():
|
|
1743
|
-
|
|
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,
|
|
3965
|
-
* introduce a second runtime. Authored
|
|
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 };
|