@vgai/engine 0.5.15 → 0.5.17
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/dist/adapter/adapter-module.d.ts +229 -33
- package/dist/adapter/adapter-module.d.ts.map +1 -1
- package/dist/adapter/adapter-module.js +222 -50
- package/dist/adapter/authoring-seam-contract.d.ts +530 -0
- package/dist/adapter/authoring-seam-contract.d.ts.map +1 -0
- package/dist/adapter/authoring-seam-contract.js +162 -0
- package/dist/adapter/authoring.d.ts +237 -50
- package/dist/adapter/authoring.d.ts.map +1 -1
- package/dist/adapter/authoring.js +2 -1
- package/dist/adapter/entrypoint-selection-source.d.ts +35 -0
- package/dist/adapter/entrypoint-selection-source.d.ts.map +1 -0
- package/dist/adapter/entrypoint-selection-source.js +151 -0
- package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts +7 -3
- package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts.map +1 -1
- package/dist/adapter/finders/scenes-from-entrypoint-selection.js +145 -27
- package/dist/adapter/first-party-systems.d.ts +13 -3
- package/dist/adapter/first-party-systems.d.ts.map +1 -1
- package/dist/adapter/first-party-systems.js +10 -3
- package/dist/adapter/index.d.ts +7 -2
- package/dist/adapter/index.d.ts.map +1 -1
- package/dist/adapter/index.js +4 -0
- package/dist/adapter/ingest/contract-system-adapters.d.ts +1 -1
- package/dist/adapter/ingest/contract-system-adapters.d.ts.map +1 -1
- package/dist/adapter/ingest/contract-system-adapters.js +13 -25
- package/dist/adapter/ingest/game-contract-seams.d.ts +214 -0
- package/dist/adapter/ingest/game-contract-seams.d.ts.map +1 -0
- package/dist/adapter/ingest/game-contract-seams.js +62 -0
- package/dist/adapter/ingest/game-contract.d.ts +5 -3
- package/dist/adapter/ingest/game-contract.d.ts.map +1 -1
- package/dist/adapter/ingest/game-contract.js +4 -1
- package/dist/adapter/ingest/merge-debug-adapters.d.ts +52 -0
- package/dist/adapter/ingest/merge-debug-adapters.d.ts.map +1 -0
- package/dist/adapter/ingest/merge-debug-adapters.js +141 -0
- package/dist/adapter/ingest/observation-debug-adapter.d.ts +56 -0
- package/dist/adapter/ingest/observation-debug-adapter.d.ts.map +1 -0
- package/dist/adapter/ingest/observation-debug-adapter.js +131 -0
- package/dist/adapter/ingest/scene-capture.d.ts +38 -13
- package/dist/adapter/ingest/scene-capture.d.ts.map +1 -1
- package/dist/adapter/ingest/scene-capture.js +101 -24
- package/dist/adapter/ingest/visible-capture-window.d.ts +22 -5
- package/dist/adapter/ingest/visible-capture-window.d.ts.map +1 -1
- package/dist/adapter/ingest/visible-capture-window.js +46 -7
- package/dist/adapter/native-debug-module.d.ts +43 -0
- package/dist/adapter/native-debug-module.d.ts.map +1 -0
- package/dist/adapter/native-debug-module.js +230 -0
- package/dist/adapter/object3d-authoring-subject.d.ts +32 -0
- package/dist/adapter/object3d-authoring-subject.d.ts.map +1 -0
- package/dist/adapter/object3d-authoring-subject.js +25 -0
- package/dist/adapter/root-adapter.d.ts +25 -56
- package/dist/adapter/root-adapter.d.ts.map +1 -1
- package/dist/adapter/root-adapter.js +4 -20
- package/dist/adapter/root-seam-contract.d.ts +129 -0
- package/dist/adapter/root-seam-contract.d.ts.map +1 -0
- package/dist/adapter/root-seam-contract.js +37 -0
- package/dist/adapter/seam-evidence.d.ts +118 -0
- package/dist/adapter/seam-evidence.d.ts.map +1 -0
- package/dist/adapter/seam-evidence.js +231 -0
- package/dist/adapter/setup-three-root-adapter.d.ts +2 -3
- package/dist/adapter/setup-three-root-adapter.d.ts.map +1 -1
- package/dist/adapter/setup-three-root-adapter.js +11 -12
- package/dist/adapter/system-adapter.d.ts +6 -1
- package/dist/adapter/system-adapter.d.ts.map +1 -1
- package/dist/adapter/system-seam-contract.d.ts +354 -0
- package/dist/adapter/system-seam-contract.d.ts.map +1 -0
- package/dist/adapter/system-seam-contract.js +95 -0
- package/dist/animation/xstate-animation-binding.d.ts +6 -0
- package/dist/animation/xstate-animation-binding.d.ts.map +1 -1
- package/dist/animation/xstate-animation-binding.js +142 -4
- package/dist/asset-formats/collider.d.ts +1 -1
- package/dist/asset-formats/mesh.d.ts +2 -2
- package/dist/asset-formats/particles.d.ts +1 -1
- package/dist/canvas-react/engine-bridge.d.ts +6 -6
- package/dist/canvas-react/engine-bridge.d.ts.map +1 -1
- package/dist/canvas-react/engine-bridge.js +2 -2
- package/dist/canvas-react/index.d.ts +2 -2
- package/dist/canvas-react/index.d.ts.map +1 -1
- package/dist/canvas-react/index.js +1 -1
- package/dist/canvas-react/pixi-react-adapter.d.ts +15 -9
- package/dist/canvas-react/pixi-react-adapter.d.ts.map +1 -1
- package/dist/canvas-react/pixi-react-adapter.js +129 -64
- package/dist/canvas-react/pixi-react-root-factory.d.ts.map +1 -1
- package/dist/canvas-react/pixi-react-root-factory.js +4 -0
- package/dist/canvas-react/world-context.d.ts +22 -12
- package/dist/canvas-react/world-context.d.ts.map +1 -1
- package/dist/canvas-react/world-context.js +12 -51
- package/dist/data/curve.d.ts +1 -1
- package/dist/data/curve.js +2 -2
- package/dist/dev/instruments.d.ts +4 -4
- package/dist/dev/instruments.js +4 -4
- package/dist/dev/register-render-vitals.d.ts +2 -2
- package/dist/dev/register-render-vitals.js +2 -2
- package/dist/dev/static-batch-advisor.d.ts +1 -1
- package/dist/dev/static-batch-advisor.js +2 -2
- package/dist/ecs/user-data.d.ts +5 -0
- package/dist/ecs/user-data.d.ts.map +1 -1
- package/dist/ecs/user-data.js +3 -0
- package/dist/input/input-manager.d.ts +64 -0
- package/dist/input/input-manager.d.ts.map +1 -1
- package/dist/input/input-manager.js +149 -0
- package/dist/manifest/load.d.ts +0 -3
- package/dist/manifest/load.d.ts.map +1 -1
- package/dist/manifest/load.js +0 -4
- package/dist/manifest/schema.d.ts +9 -11
- package/dist/manifest/schema.d.ts.map +1 -1
- package/dist/manifest/schema.js +2 -23
- package/dist/pixi/authoring.d.ts +33 -0
- package/dist/pixi/authoring.d.ts.map +1 -1
- package/dist/pixi/authoring.js +301 -2
- package/dist/pixi/ingest.d.ts +2 -1
- package/dist/pixi/ingest.d.ts.map +1 -1
- package/dist/pixi/ingest.js +4 -2
- package/dist/pixi/scene-capture.d.ts +9 -1
- package/dist/pixi/scene-capture.d.ts.map +1 -1
- package/dist/pixi/scene-capture.js +9 -6
- package/dist/react/world-state.d.ts +12 -0
- package/dist/react/world-state.d.ts.map +1 -1
- package/dist/react/world-state.js +14 -0
- package/dist/render/particles-factory.d.ts +13 -6
- package/dist/render/particles-factory.d.ts.map +1 -1
- package/dist/render/particles-factory.js +6 -3
- package/dist/render/soft-particle-depth.d.ts +3 -3
- package/dist/render/soft-particle-depth.d.ts.map +1 -1
- package/dist/render/soft-particle-depth.js +8 -13
- package/dist/runtime/create-runtime.d.ts +25 -62
- package/dist/runtime/create-runtime.d.ts.map +1 -1
- package/dist/runtime/create-runtime.js +58 -105
- package/dist/runtime/dev-build.d.ts +37 -0
- package/dist/runtime/dev-build.d.ts.map +1 -0
- package/dist/runtime/dev-build.js +49 -0
- package/dist/runtime/game.d.ts +38 -72
- package/dist/runtime/game.d.ts.map +1 -1
- package/dist/runtime/game.js +40 -55
- package/dist/runtime/mount-game.d.ts.map +1 -1
- package/dist/runtime/mount-game.js +12 -1
- package/dist/runtime/mount-manifest.d.ts +0 -13
- package/dist/runtime/mount-manifest.d.ts.map +1 -1
- package/dist/runtime/mount-manifest.js +5 -25
- package/dist/runtime/types.d.ts +18 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/setup/setup-renderer.d.ts +3 -4
- package/dist/setup/setup-renderer.d.ts.map +1 -1
- package/dist/setup/setup-renderer.js +3 -4
- package/dist/world3d-react/engine-bridge.d.ts +1 -1
- package/dist/world3d-react/engine-bridge.d.ts.map +1 -1
- package/dist/world3d-react/engine-bridge.js +29 -4
- package/dist/world3d-react/index.d.ts +1 -1
- package/dist/world3d-react/index.js +1 -1
- package/dist/world3d-react/r3f-adapter.d.ts +7 -0
- package/dist/world3d-react/r3f-adapter.d.ts.map +1 -1
- package/dist/world3d-react/r3f-adapter.js +132 -28
- package/dist/world3d-react/r3f-root-factory.d.ts.map +1 -1
- package/dist/world3d-react/r3f-root-factory.js +14 -0
- package/dist/world3d-react/rapier-physics-bridge.d.ts +4 -4
- package/dist/world3d-react/rapier-physics-bridge.js +3 -3
- package/dist/world3d-react/world-context.d.ts +52 -3
- package/dist/world3d-react/world-context.d.ts.map +1 -1
- package/dist/world3d-react/world-context.js +94 -64
- package/dist-config/config.js.map +1 -1
- package/package.json +1 -1
- package/schemas/engine-capabilities.json +8 -8
- package/schemas/vgai-project.schema.json +1 -6
- package/src/adapter/adapter-module.ts +405 -72
- package/src/adapter/authoring-seam-contract.ts +211 -0
- package/src/adapter/authoring.ts +242 -50
- package/src/adapter/entrypoint-selection-source.ts +159 -0
- package/src/adapter/finders/scenes-from-entrypoint-selection.ts +162 -36
- package/src/adapter/first-party-systems.ts +17 -3
- package/src/adapter/index.ts +51 -1
- package/src/adapter/ingest/contract-system-adapters.ts +26 -30
- package/src/adapter/ingest/game-contract-seams.ts +85 -0
- package/src/adapter/ingest/game-contract.ts +9 -4
- package/src/adapter/ingest/merge-debug-adapters.ts +193 -0
- package/src/adapter/ingest/observation-debug-adapter.ts +158 -0
- package/src/adapter/ingest/scene-capture.ts +126 -23
- package/src/adapter/ingest/visible-capture-window.ts +63 -9
- package/src/adapter/native-debug-module.ts +307 -0
- package/src/adapter/object3d-authoring-subject.ts +50 -0
- package/src/adapter/root-adapter.ts +25 -56
- package/src/adapter/root-seam-contract.ts +57 -0
- package/src/adapter/seam-evidence.ts +336 -0
- package/src/adapter/setup-three-root-adapter.ts +13 -15
- package/src/adapter/system-adapter.ts +6 -1
- package/src/adapter/system-seam-contract.ts +121 -0
- package/src/animation/xstate-animation-binding.ts +151 -4
- package/src/canvas-react/engine-bridge.ts +6 -6
- package/src/canvas-react/index.ts +2 -1
- package/src/canvas-react/pixi-react-adapter.tsx +143 -77
- package/src/canvas-react/pixi-react-root-factory.tsx +4 -0
- package/src/canvas-react/world-context.ts +26 -101
- package/src/data/curve.ts +2 -2
- package/src/dev/instruments.ts +4 -4
- package/src/dev/register-render-vitals.ts +2 -2
- package/src/dev/static-batch-advisor.ts +2 -2
- package/src/ecs/user-data.ts +5 -0
- package/src/input/input-manager.ts +145 -0
- package/src/manifest/load.ts +0 -7
- package/src/manifest/schema.ts +2 -25
- package/src/pixi/authoring.ts +329 -2
- package/src/pixi/ingest.ts +9 -2
- package/src/pixi/scene-capture.ts +20 -5
- package/src/react/world-state.tsx +15 -0
- package/src/render/particles-factory.ts +16 -6
- package/src/render/soft-particle-depth.ts +8 -13
- package/src/runtime/create-runtime.ts +79 -158
- package/src/runtime/dev-build.ts +49 -0
- package/src/runtime/game.ts +72 -113
- package/src/runtime/mount-game.ts +19 -1
- package/src/runtime/mount-manifest.ts +5 -37
- package/src/runtime/types.ts +22 -0
- package/src/setup/setup-renderer.ts +3 -4
- package/src/world3d-react/engine-bridge.ts +29 -4
- package/src/world3d-react/index.ts +1 -1
- package/src/world3d-react/r3f-adapter.tsx +140 -31
- package/src/world3d-react/r3f-root-factory.tsx +14 -0
- package/src/world3d-react/rapier-physics-bridge.tsx +4 -4
- package/src/world3d-react/world-context.ts +111 -87
- package/dist/runtime/dev-layers.d.ts +0 -34
- package/dist/runtime/dev-layers.d.ts.map +0 -1
- package/dist/runtime/dev-layers.js +0 -46
- package/src/runtime/dev-layers.ts +0 -46
|
@@ -88,18 +88,6 @@ export interface AdapterRegion {
|
|
|
88
88
|
readonly id: string;
|
|
89
89
|
/** What the host hands this root. */
|
|
90
90
|
readonly surface: AdapterSurface;
|
|
91
|
-
/**
|
|
92
|
-
* `true` = this region grades the game's own DEV LAYER (the manifest root's
|
|
93
|
-
* `dev: true`), not shipped game content.
|
|
94
|
-
*
|
|
95
|
-
* Carried here because a dev root occupies the same MEDIUM as the content
|
|
96
|
-
* root beside it — a dev GUI is a `dom` root next to the HUD's `dom` root —
|
|
97
|
-
* and anything that maps a subject to "the region on this surface" would
|
|
98
|
-
* otherwise be choosing between them by array order. A region consumer that
|
|
99
|
-
* means shipped content says so by skipping `dev` regions (the loader's
|
|
100
|
-
* `regionForSurface` does), rather than by guessing which one matched.
|
|
101
|
-
*/
|
|
102
|
-
readonly dev: boolean;
|
|
103
91
|
/** Projection library, by name. */
|
|
104
92
|
readonly projector: ProjectorName;
|
|
105
93
|
/**
|
|
@@ -150,6 +138,50 @@ export interface AdapterRegion {
|
|
|
150
138
|
* how a declaration slot turns back into a language.
|
|
151
139
|
*/
|
|
152
140
|
readonly include?: readonly string[];
|
|
141
|
+
/**
|
|
142
|
+
* Surfaces this root mounts BESIDE {@link AdapterRegion.surface}, each with
|
|
143
|
+
* the source files that render on it. Together with `surface` — the manifest
|
|
144
|
+
* root's own adapter, which is always the PRIMARY — this states the root's
|
|
145
|
+
* FULL mounted surface set (decision, 2026-08-16; ARCHITECTURE-CORE §The
|
|
146
|
+
* editor protocol).
|
|
147
|
+
*
|
|
148
|
+
* A root is not always one surface. The shipped case is an R3F game whose
|
|
149
|
+
* `three` root mounts a canvas AND adopts a DOM HUD beside it
|
|
150
|
+
* (`adoptGameDomRoot` already adopts the pair together): its HUD modules
|
|
151
|
+
* render react-dom host elements, and `userData-oid` on a `<div>` is a prop
|
|
152
|
+
* react-dom does not recognize, so the editor must know they are the `dom`
|
|
153
|
+
* half. Before this slot there was nowhere to say so — `id` names the
|
|
154
|
+
* manifest root this region grades, so a second `dom` region for such a root
|
|
155
|
+
* would either name a root the host would try to MOUNT (fabrication, which
|
|
156
|
+
* the anti-shim rule forbids) or name no root at all.
|
|
157
|
+
*
|
|
158
|
+
* Each mount's `include` is REQUIRED and carries the same glob vocabulary as
|
|
159
|
+
* {@link AdapterRegion.include} (`**`, `*`, `?`). A mount with no files would
|
|
160
|
+
* declare a surface without saying which source renders on it, which answers
|
|
161
|
+
* no question any reader asks.
|
|
162
|
+
*
|
|
163
|
+
* READER: the same one — `resolveFileRegion`'s rung 1. A file claimed by a
|
|
164
|
+
* region's own `include` AND by a mount is a contradiction in the game's own
|
|
165
|
+
* declaration and settles nothing, exactly as two regions claiming one file
|
|
166
|
+
* do; it falls through to reach, and failing that to the caller's loud
|
|
167
|
+
* ambiguous path.
|
|
168
|
+
*
|
|
169
|
+
* {@link regionsFromManifestRoots} emits none: the manifest states one
|
|
170
|
+
* adapter per root and NOTHING infers a second surface from source text.
|
|
171
|
+
* Where the declaration and what a file renders disagree, the disagreement is
|
|
172
|
+
* reported as drift (the editor's `OID003`), never resolved by reading bytes.
|
|
173
|
+
*/
|
|
174
|
+
readonly mounts?: readonly AdapterRegionMount[];
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* One ADDITIONAL surface a root mounts, and the source files that render on it.
|
|
178
|
+
* See {@link AdapterRegion.mounts}.
|
|
179
|
+
*/
|
|
180
|
+
export interface AdapterRegionMount {
|
|
181
|
+
/** The surface this part of the root mounts on. */
|
|
182
|
+
readonly surface: AdapterSurface;
|
|
183
|
+
/** Project-relative globs (`**`, `*`, `?`) naming the files that render here. */
|
|
184
|
+
readonly include: readonly string[];
|
|
153
185
|
}
|
|
154
186
|
/**
|
|
155
187
|
* How a definition supplies its regions: the RULE `'manifest-roots'` (the
|
|
@@ -158,6 +190,19 @@ export interface AdapterRegion {
|
|
|
158
190
|
* with novel bindings states outright.
|
|
159
191
|
*/
|
|
160
192
|
export type RegionBinding = 'manifest-roots' | readonly AdapterRegion[];
|
|
193
|
+
/**
|
|
194
|
+
* The per-region PARAMETERS the `'manifest-roots'` rule takes — see
|
|
195
|
+
* {@link AdapterDefinition.regionIncludes}. Exactly the two fields of an
|
|
196
|
+
* {@link AdapterRegion} the mechanical derivation cannot produce, because
|
|
197
|
+
* neither is a fact the manifest states: which files a region owns beyond
|
|
198
|
+
* its entry's reach, and which surfaces its root mounts beside its own.
|
|
199
|
+
*/
|
|
200
|
+
export interface AdapterRegionOverlay {
|
|
201
|
+
/** See {@link AdapterRegion.include}. */
|
|
202
|
+
readonly include?: readonly string[];
|
|
203
|
+
/** See {@link AdapterRegion.mounts}. */
|
|
204
|
+
readonly mounts?: readonly AdapterRegionMount[];
|
|
205
|
+
}
|
|
161
206
|
/**
|
|
162
207
|
* The MECHANICAL derivation behind the `'manifest-roots'` rule: one region per
|
|
163
208
|
* declared root, its surface and adapter identity read straight off the
|
|
@@ -166,13 +211,20 @@ export type RegionBinding = 'manifest-roots' | readonly AdapterRegion[];
|
|
|
166
211
|
*
|
|
167
212
|
* The per-surface library table below is an ENGINE fact, stated once:
|
|
168
213
|
*
|
|
169
|
-
* | root `adapter` | projector | dialect | anchors
|
|
170
|
-
*
|
|
171
|
-
* | `three` | `three` | `r3f` | source-prop, construction-literal
|
|
172
|
-
* | `canvas` | `pixi` | `pixi-react` | source-prop, construction-literal
|
|
173
|
-
* | `dom` | `dom` | `jsx` | source-prop |
|
|
174
|
-
* | `{module,surface}` | (surface) | `null` | live-only
|
|
175
|
-
* | `{ingest,surface}` | (surface) | `null` | live-only
|
|
214
|
+
* | root `adapter` | projector | dialect | anchors |
|
|
215
|
+
* |-----------------------|-----------|---------------|------------------------------------------------------|
|
|
216
|
+
* | `three` | `three` | `r3f` | source-prop, source-structure, construction-literal |
|
|
217
|
+
* | `canvas` | `pixi` | `pixi-react` | source-prop, source-structure, construction-literal |
|
|
218
|
+
* | `dom` | `dom` | `jsx` | source-prop, source-structure |
|
|
219
|
+
* | `{module,surface}` | (surface) | `null` | live-only |
|
|
220
|
+
* | `{ingest,surface}` | (surface) | `null` | live-only |
|
|
221
|
+
*
|
|
222
|
+
* `source-structure` rides with every first-party dialect because all three
|
|
223
|
+
* write through the SAME structural door (`/__ui-source/struct`) — a region
|
|
224
|
+
* that can rewrite a JSX attribute in a file can rewrite that file's element
|
|
225
|
+
* tree. It is listed separately rather than folded into `source-prop` because
|
|
226
|
+
* they are different doors: a lane could lose one and keep the other, and the
|
|
227
|
+
* matrix has to be able to say so.
|
|
176
228
|
*
|
|
177
229
|
* A module/ingest root's truth is the game's own source, which no first-party
|
|
178
230
|
* dialect writer authors — so it declares `live-only` rather than implying a
|
|
@@ -182,13 +234,25 @@ export type RegionBinding = 'manifest-roots' | readonly AdapterRegion[];
|
|
|
182
234
|
* Every derived region carries {@link NATIVE_REGION_BASIS} outright, so the
|
|
183
235
|
* editor's ground plane READS a declaration on the native path too — the
|
|
184
236
|
* default is published, never assumed at the read site.
|
|
237
|
+
*
|
|
238
|
+
* It DERIVES no {@link AdapterRegion.include} and no {@link AdapterRegion.mounts},
|
|
239
|
+
* and there is no derivation that could: the manifest states ONE adapter per
|
|
240
|
+
* root and names only its entry, so a root's extra owned files and its second
|
|
241
|
+
* mounted surface are facts only the game can state. It states them as
|
|
242
|
+
* `regionIncludes` PARAMETERS, which this function merges onto the region it
|
|
243
|
+
* derives for that root — the rule stays selected, the parameters are declared
|
|
244
|
+
* (ARCHITECTURE-CORE §The editor protocol, "Declared includes LAYER onto the
|
|
245
|
+
* manifest-roots rule"). A key naming no declared root merges onto nothing;
|
|
246
|
+
* the LOADER reports that, because only it can see both sides.
|
|
185
247
|
*/
|
|
186
|
-
export declare function regionsFromManifestRoots(roots: readonly ResolvedAdapterRoot[]): AdapterRegion[];
|
|
248
|
+
export declare function regionsFromManifestRoots(roots: readonly ResolvedAdapterRoot[], regionIncludes?: Readonly<Record<string, AdapterRegionOverlay>>): AdapterRegion[];
|
|
249
|
+
/** Region ids an overlay names that no declared root answers to. A typo here
|
|
250
|
+
* would otherwise be a declaration that silently does nothing, which is the
|
|
251
|
+
* failure class the whole declaration lane exists to end. */
|
|
252
|
+
export declare function unmatchedRegionIncludeIds(roots: readonly ResolvedAdapterRoot[], regionIncludes: Readonly<Record<string, AdapterRegionOverlay>>): string[];
|
|
187
253
|
/**
|
|
188
254
|
* The rule form of a finder's region targeting: every region the host mounts
|
|
189
|
-
* from an exported composition
|
|
190
|
-
* DEV layer. A dev root is the game's own dev GUI — the manifest already says
|
|
191
|
-
* so (`dev: true`), so skipping it reads a declaration rather than guessing.
|
|
255
|
+
* from an exported composition — a root with an `entry`.
|
|
192
256
|
*/
|
|
193
257
|
export declare const EXPORTED_COMPOSITION_REGIONS = "exported-composition-regions";
|
|
194
258
|
/**
|
|
@@ -242,17 +306,50 @@ export type SceneReach =
|
|
|
242
306
|
{
|
|
243
307
|
readonly kind: 'root-mount';
|
|
244
308
|
}
|
|
245
|
-
/**
|
|
309
|
+
/**
|
|
310
|
+
* The entrypoint's own selection table reaches it under `key`.
|
|
311
|
+
*
|
|
312
|
+
* `active` is the SECOND load-bearing fact about the same slot: the
|
|
313
|
+
* entrypoint indexes its table with one key right now (`scenes[activeScene]`),
|
|
314
|
+
* and that key's composition is literally what mounting the region renders.
|
|
315
|
+
* So an active entry is the region's own standing document — it NAMES that
|
|
316
|
+
* document rather than earning a second one beside it, exactly as
|
|
317
|
+
* `root-mount` does. Absent means "not known to be the one at the slot",
|
|
318
|
+
* which is the honest answer whenever the key cannot be read statically; it
|
|
319
|
+
* is never a guess, and it is per-entry because two regions each have their
|
|
320
|
+
* own slot with its own occupant.
|
|
321
|
+
*/
|
|
246
322
|
| {
|
|
247
323
|
readonly kind: 'entrypoint-selection';
|
|
248
324
|
readonly selection: string;
|
|
249
325
|
readonly key: string;
|
|
326
|
+
readonly active?: boolean;
|
|
250
327
|
}
|
|
251
328
|
/** A portable story mounts it in isolation. */
|
|
252
329
|
| {
|
|
253
330
|
readonly kind: 'story';
|
|
254
331
|
readonly storyId: string;
|
|
255
332
|
}
|
|
333
|
+
/**
|
|
334
|
+
* The RUNNING game's own published scenes contract reaches it, under
|
|
335
|
+
* `sceneId` (`adapter/ingest/game-contract.ts`'s `scenes.list()` ids).
|
|
336
|
+
*
|
|
337
|
+
* This is the LIVE reach: opening it while playing means asking the game to
|
|
338
|
+
* navigate, the way its own buttons do. An authorable entry that also names
|
|
339
|
+
* `source` can independently own an Edit isolation document; reach never
|
|
340
|
+
* decides whether a source composition can be mounted as a piece.
|
|
341
|
+
*
|
|
342
|
+
* A DECLARATION, never an inference: the host does not sniff a mapping
|
|
343
|
+
* between a table entry and a contract id, and it does not assume the two
|
|
344
|
+
* vocabularies coincide. The adapter states which contract id this entry is,
|
|
345
|
+
* and the host validates that id against the game's OWN `list()` at the
|
|
346
|
+
* moment it navigates — so a game that stops publishing the scene refuses by
|
|
347
|
+
* name instead of navigating somewhere else.
|
|
348
|
+
*/
|
|
349
|
+
| {
|
|
350
|
+
readonly kind: 'game-contract';
|
|
351
|
+
readonly sceneId: string;
|
|
352
|
+
}
|
|
256
353
|
/** Declared, with no code path that opens it. */
|
|
257
354
|
| {
|
|
258
355
|
readonly kind: 'none';
|
|
@@ -285,6 +382,10 @@ export interface SceneEntry {
|
|
|
285
382
|
readonly authorable: boolean;
|
|
286
383
|
readonly reach: SceneReach;
|
|
287
384
|
readonly source?: SceneSource;
|
|
385
|
+
/** Optional adapter-declared prerequisite run before `source` is constructed
|
|
386
|
+
* in Edit isolation. The export is a zero-argument function; the host never
|
|
387
|
+
* infers setup from neighboring filenames or game globals. */
|
|
388
|
+
readonly isolationSetup?: SceneSource;
|
|
288
389
|
/** Which finder produced it; absent = the adapter stated it outright. */
|
|
289
390
|
readonly finder?: FinderName;
|
|
290
391
|
}
|
|
@@ -302,44 +403,100 @@ export interface AdapterSceneTable {
|
|
|
302
403
|
*/
|
|
303
404
|
readonly default?: string;
|
|
304
405
|
}
|
|
406
|
+
/**
|
|
407
|
+
* The two faces a declaration projects onto. They are exactly the two
|
|
408
|
+
* `DebugAdapter` halves (`adapter/system-adapter.ts`): `state` becomes a
|
|
409
|
+
* provider (`providers()` / `state(name)`), `command` becomes a verb
|
|
410
|
+
* (`commands()` / `invoke(name, args)`). There is deliberately no third kind —
|
|
411
|
+
* see {@link OBSERVATION_KIND_REFUSAL}.
|
|
412
|
+
*/
|
|
413
|
+
export declare const OBSERVATION_KINDS: readonly ["command", "state"];
|
|
414
|
+
export type ObservationKind = (typeof OBSERVATION_KINDS)[number];
|
|
305
415
|
/**
|
|
306
416
|
* One statically declared observation slot. Declaring a slot and ANSWERING it
|
|
307
417
|
* live are separate facts (the two-state rule): a slot declared here whose
|
|
308
|
-
* `answer` throws or whose game never booted reads as
|
|
309
|
-
* "the game has none".
|
|
418
|
+
* `answer` throws, whose `answer` is absent, or whose game never booted reads as
|
|
419
|
+
* broken, never as "the game has none". The projector
|
|
420
|
+
* (`adapter/ingest/observation-debug-adapter.ts`) keeps that distinction: an
|
|
421
|
+
* unanswerable slot is still LISTED, and refuses by name when read.
|
|
310
422
|
*/
|
|
311
423
|
export interface ObservationDeclaration {
|
|
312
424
|
readonly id: string;
|
|
313
|
-
readonly kind:
|
|
425
|
+
readonly kind: ObservationKind;
|
|
426
|
+
readonly description?: string | undefined;
|
|
427
|
+
/** Command execution side; omitted means a local app-owned command. */
|
|
428
|
+
readonly locus?: 'client' | 'server' | undefined;
|
|
314
429
|
/**
|
|
315
430
|
* Lazily evaluated against the mounted game. The field may be a closure; the
|
|
316
431
|
* TABLE around it stays statically readable, which is the whole discipline.
|
|
432
|
+
*
|
|
433
|
+
* What `game` IS is the host's to hand over and is stated at the projector:
|
|
434
|
+
* for an ingest mount it is the REALM the game's own modules ran in, because
|
|
435
|
+
* a foreign game's public handles are the only thing the host can honestly
|
|
436
|
+
* pass (`observation-debug-adapter.ts`).
|
|
317
437
|
*/
|
|
318
|
-
readonly answer?: (game: unknown) => unknown;
|
|
438
|
+
readonly answer?: (game: unknown, ...args: unknown[]) => unknown;
|
|
439
|
+
}
|
|
440
|
+
/** The action value shapes the session input door already speaks. */
|
|
441
|
+
export declare const ADAPTER_INPUT_VALUE_TYPES: readonly ["digital", "scalar", "vector2", "pointerDelta", "pointerPosition"];
|
|
442
|
+
export type AdapterInputValueType = (typeof ADAPTER_INPUT_VALUE_TYPES)[number];
|
|
443
|
+
export type AdapterInputValue = boolean | number | {
|
|
444
|
+
readonly x: number;
|
|
445
|
+
readonly y: number;
|
|
446
|
+
};
|
|
447
|
+
/** One action in an app-owned input store. */
|
|
448
|
+
export interface AdapterInputAction {
|
|
449
|
+
readonly name: string;
|
|
450
|
+
readonly valueType: AdapterInputValueType;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Adapter-side binding from the universal session input door to a game's
|
|
454
|
+
* ordinary input store. The game owns both its physical-device listeners and
|
|
455
|
+
* its state; this table only tells the host how to drive that same state for a
|
|
456
|
+
* bot or live REPL session. No component imports this contract.
|
|
457
|
+
*/
|
|
458
|
+
export interface AdapterInputBinding {
|
|
459
|
+
/** Manifest root whose native scheduler consumes these actions. */
|
|
460
|
+
readonly root: string;
|
|
461
|
+
/** Current action vocabulary. A closure permits an app-owned dynamic map. */
|
|
462
|
+
readonly actions: (game: unknown) => readonly AdapterInputAction[];
|
|
463
|
+
/** Apply one action through the app's own input-store write path. */
|
|
464
|
+
readonly set: (game: unknown, action: string, value: AdapterInputValue) => void;
|
|
465
|
+
/** Release every app-owned virtual action. */
|
|
466
|
+
readonly clear: (game: unknown) => void;
|
|
319
467
|
}
|
|
320
468
|
/** The adapter module's default export, after {@link defineAdapter}. */
|
|
321
469
|
export interface AdapterDefinition {
|
|
322
470
|
readonly regions: RegionBinding;
|
|
471
|
+
/**
|
|
472
|
+
* Per-region parameters for the `'manifest-roots'` RULE, keyed by manifest
|
|
473
|
+
* root id — the `include` globs and `mounts` surfaces the mechanical
|
|
474
|
+
* derivation cannot produce. {@link regionsFromManifestRoots} merges them;
|
|
475
|
+
* an explicit `regions` LIST carries its own and rejects these by name.
|
|
476
|
+
*/
|
|
477
|
+
readonly regionIncludes: Readonly<Record<string, AdapterRegionOverlay>>;
|
|
323
478
|
readonly scenes: AdapterSceneTable;
|
|
324
479
|
readonly observation: readonly ObservationDeclaration[];
|
|
480
|
+
readonly input?: AdapterInputBinding | undefined;
|
|
325
481
|
}
|
|
326
482
|
/** What a game writes. Every field optional — the near-empty adapter is the
|
|
327
483
|
* first-party case, and an adapter's SIZE measures the game's distance from
|
|
328
484
|
* native. */
|
|
329
485
|
export interface AdapterDefinitionInput {
|
|
330
486
|
readonly regions?: RegionBinding;
|
|
487
|
+
readonly regionIncludes?: Readonly<Record<string, AdapterRegionOverlay>>;
|
|
331
488
|
readonly scenes?: AdapterSceneTable;
|
|
332
489
|
readonly observation?: readonly ObservationDeclaration[];
|
|
490
|
+
readonly input?: AdapterInputBinding | undefined;
|
|
333
491
|
}
|
|
334
492
|
export declare const AdapterDefinitionSchema: z.ZodObject<{
|
|
335
493
|
regions: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"manifest-roots">, z.ZodArray<z.ZodObject<{
|
|
336
494
|
id: z.ZodString;
|
|
337
495
|
surface: z.ZodEnum<{
|
|
338
|
-
canvas: "canvas";
|
|
339
496
|
three: "three";
|
|
497
|
+
canvas: "canvas";
|
|
340
498
|
dom: "dom";
|
|
341
499
|
}>;
|
|
342
|
-
dev: z.ZodBoolean;
|
|
343
500
|
projector: z.ZodEnum<{
|
|
344
501
|
three: "three";
|
|
345
502
|
dom: "dom";
|
|
@@ -348,6 +505,7 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
|
|
|
348
505
|
dialect: z.ZodNullable<z.ZodString>;
|
|
349
506
|
anchors: z.ZodArray<z.ZodEnum<{
|
|
350
507
|
"source-prop": "source-prop";
|
|
508
|
+
"source-structure": "source-structure";
|
|
351
509
|
"construction-literal": "construction-literal";
|
|
352
510
|
"physics-binding": "physics-binding";
|
|
353
511
|
"data-record": "data-record";
|
|
@@ -361,7 +519,26 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
|
|
|
361
519
|
groundHeight: z.ZodNumber;
|
|
362
520
|
}, z.core.$strict>>;
|
|
363
521
|
include: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
522
|
+
mounts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
523
|
+
surface: z.ZodEnum<{
|
|
524
|
+
three: "three";
|
|
525
|
+
canvas: "canvas";
|
|
526
|
+
dom: "dom";
|
|
527
|
+
}>;
|
|
528
|
+
include: z.ZodArray<z.ZodString>;
|
|
529
|
+
}, z.core.$strict>>>;
|
|
364
530
|
}, z.core.$strict>>]>>;
|
|
531
|
+
regionIncludes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
532
|
+
include: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
533
|
+
mounts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
534
|
+
surface: z.ZodEnum<{
|
|
535
|
+
three: "three";
|
|
536
|
+
canvas: "canvas";
|
|
537
|
+
dom: "dom";
|
|
538
|
+
}>;
|
|
539
|
+
include: z.ZodArray<z.ZodString>;
|
|
540
|
+
}, z.core.$strict>>>;
|
|
541
|
+
}, z.core.$strict>>>;
|
|
365
542
|
scenes: z.ZodOptional<z.ZodObject<{
|
|
366
543
|
entries: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
367
544
|
id: z.ZodString;
|
|
@@ -378,9 +555,13 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
|
|
|
378
555
|
kind: z.ZodLiteral<"entrypoint-selection">;
|
|
379
556
|
selection: z.ZodString;
|
|
380
557
|
key: z.ZodString;
|
|
558
|
+
active: z.ZodOptional<z.ZodBoolean>;
|
|
381
559
|
}, z.core.$strict>, z.ZodObject<{
|
|
382
560
|
kind: z.ZodLiteral<"story">;
|
|
383
561
|
storyId: z.ZodString;
|
|
562
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
563
|
+
kind: z.ZodLiteral<"game-contract">;
|
|
564
|
+
sceneId: z.ZodString;
|
|
384
565
|
}, z.core.$strict>, z.ZodObject<{
|
|
385
566
|
kind: z.ZodLiteral<"none">;
|
|
386
567
|
reason: z.ZodString;
|
|
@@ -389,6 +570,10 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
|
|
|
389
570
|
path: z.ZodString;
|
|
390
571
|
export: z.ZodOptional<z.ZodString>;
|
|
391
572
|
}, z.core.$strict>>;
|
|
573
|
+
isolationSetup: z.ZodOptional<z.ZodObject<{
|
|
574
|
+
path: z.ZodString;
|
|
575
|
+
export: z.ZodOptional<z.ZodString>;
|
|
576
|
+
}, z.core.$strict>>;
|
|
392
577
|
finder: z.ZodOptional<z.ZodEnum<{
|
|
393
578
|
scenesFromEntrypointSelection: "scenesFromEntrypointSelection";
|
|
394
579
|
prefabsFromStories: "prefabsFromStories";
|
|
@@ -408,10 +593,20 @@ export declare const AdapterDefinitionSchema: z.ZodObject<{
|
|
|
408
593
|
kind: z.ZodEnum<{
|
|
409
594
|
command: "command";
|
|
410
595
|
state: "state";
|
|
411
|
-
system: "system";
|
|
412
596
|
}>;
|
|
597
|
+
description: z.ZodOptional<z.ZodString>;
|
|
598
|
+
locus: z.ZodOptional<z.ZodEnum<{
|
|
599
|
+
server: "server";
|
|
600
|
+
client: "client";
|
|
601
|
+
}>>;
|
|
413
602
|
answer: z.ZodOptional<z.ZodCustom<(game: unknown) => unknown, (game: unknown) => unknown>>;
|
|
414
603
|
}, z.core.$strict>>>;
|
|
604
|
+
input: z.ZodOptional<z.ZodObject<{
|
|
605
|
+
root: z.ZodString;
|
|
606
|
+
actions: z.ZodCustom<(game: unknown) => readonly AdapterInputAction[], (game: unknown) => readonly AdapterInputAction[]>;
|
|
607
|
+
set: z.ZodCustom<(game: unknown, action: string, value: AdapterInputValue) => void, (game: unknown, action: string, value: AdapterInputValue) => void>;
|
|
608
|
+
clear: z.ZodCustom<(game: unknown) => void, (game: unknown) => void>;
|
|
609
|
+
}, z.core.$strict>>;
|
|
415
610
|
}, z.core.$strict>;
|
|
416
611
|
/**
|
|
417
612
|
* Validate and freeze a game's binding table.
|
|
@@ -427,8 +622,9 @@ export declare function defineAdapter(input?: AdapterDefinitionInput): AdapterDe
|
|
|
427
622
|
export interface NativeAdapterOptions {
|
|
428
623
|
/** Scene-table entries this game states outright, beside what the finders find. */
|
|
429
624
|
readonly scenes?: readonly SceneEntry[];
|
|
430
|
-
/**
|
|
431
|
-
|
|
625
|
+
/** Per-region `include`/`mounts` parameters for the derivation — see
|
|
626
|
+
* {@link AdapterDefinition.regionIncludes}. */
|
|
627
|
+
readonly regionIncludes?: Readonly<Record<string, AdapterRegionOverlay>>;
|
|
432
628
|
}
|
|
433
629
|
/**
|
|
434
630
|
* THE NATIVE DEFAULT — regions derived mechanically from the manifest's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-module.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAMvE;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mCAAoC,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,kBAGhC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC
|
|
1
|
+
{"version":3,"file":"adapter-module.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter-module.ts"],"names":[],"mappings":"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"}
|