@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.
Files changed (220) hide show
  1. package/dist/adapter/adapter-module.d.ts +229 -33
  2. package/dist/adapter/adapter-module.d.ts.map +1 -1
  3. package/dist/adapter/adapter-module.js +222 -50
  4. package/dist/adapter/authoring-seam-contract.d.ts +530 -0
  5. package/dist/adapter/authoring-seam-contract.d.ts.map +1 -0
  6. package/dist/adapter/authoring-seam-contract.js +162 -0
  7. package/dist/adapter/authoring.d.ts +237 -50
  8. package/dist/adapter/authoring.d.ts.map +1 -1
  9. package/dist/adapter/authoring.js +2 -1
  10. package/dist/adapter/entrypoint-selection-source.d.ts +35 -0
  11. package/dist/adapter/entrypoint-selection-source.d.ts.map +1 -0
  12. package/dist/adapter/entrypoint-selection-source.js +151 -0
  13. package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts +7 -3
  14. package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts.map +1 -1
  15. package/dist/adapter/finders/scenes-from-entrypoint-selection.js +145 -27
  16. package/dist/adapter/first-party-systems.d.ts +13 -3
  17. package/dist/adapter/first-party-systems.d.ts.map +1 -1
  18. package/dist/adapter/first-party-systems.js +10 -3
  19. package/dist/adapter/index.d.ts +7 -2
  20. package/dist/adapter/index.d.ts.map +1 -1
  21. package/dist/adapter/index.js +4 -0
  22. package/dist/adapter/ingest/contract-system-adapters.d.ts +1 -1
  23. package/dist/adapter/ingest/contract-system-adapters.d.ts.map +1 -1
  24. package/dist/adapter/ingest/contract-system-adapters.js +13 -25
  25. package/dist/adapter/ingest/game-contract-seams.d.ts +214 -0
  26. package/dist/adapter/ingest/game-contract-seams.d.ts.map +1 -0
  27. package/dist/adapter/ingest/game-contract-seams.js +62 -0
  28. package/dist/adapter/ingest/game-contract.d.ts +5 -3
  29. package/dist/adapter/ingest/game-contract.d.ts.map +1 -1
  30. package/dist/adapter/ingest/game-contract.js +4 -1
  31. package/dist/adapter/ingest/merge-debug-adapters.d.ts +52 -0
  32. package/dist/adapter/ingest/merge-debug-adapters.d.ts.map +1 -0
  33. package/dist/adapter/ingest/merge-debug-adapters.js +141 -0
  34. package/dist/adapter/ingest/observation-debug-adapter.d.ts +56 -0
  35. package/dist/adapter/ingest/observation-debug-adapter.d.ts.map +1 -0
  36. package/dist/adapter/ingest/observation-debug-adapter.js +131 -0
  37. package/dist/adapter/ingest/scene-capture.d.ts +38 -13
  38. package/dist/adapter/ingest/scene-capture.d.ts.map +1 -1
  39. package/dist/adapter/ingest/scene-capture.js +101 -24
  40. package/dist/adapter/ingest/visible-capture-window.d.ts +22 -5
  41. package/dist/adapter/ingest/visible-capture-window.d.ts.map +1 -1
  42. package/dist/adapter/ingest/visible-capture-window.js +46 -7
  43. package/dist/adapter/native-debug-module.d.ts +43 -0
  44. package/dist/adapter/native-debug-module.d.ts.map +1 -0
  45. package/dist/adapter/native-debug-module.js +230 -0
  46. package/dist/adapter/object3d-authoring-subject.d.ts +32 -0
  47. package/dist/adapter/object3d-authoring-subject.d.ts.map +1 -0
  48. package/dist/adapter/object3d-authoring-subject.js +25 -0
  49. package/dist/adapter/root-adapter.d.ts +25 -56
  50. package/dist/adapter/root-adapter.d.ts.map +1 -1
  51. package/dist/adapter/root-adapter.js +4 -20
  52. package/dist/adapter/root-seam-contract.d.ts +129 -0
  53. package/dist/adapter/root-seam-contract.d.ts.map +1 -0
  54. package/dist/adapter/root-seam-contract.js +37 -0
  55. package/dist/adapter/seam-evidence.d.ts +118 -0
  56. package/dist/adapter/seam-evidence.d.ts.map +1 -0
  57. package/dist/adapter/seam-evidence.js +231 -0
  58. package/dist/adapter/setup-three-root-adapter.d.ts +2 -3
  59. package/dist/adapter/setup-three-root-adapter.d.ts.map +1 -1
  60. package/dist/adapter/setup-three-root-adapter.js +11 -12
  61. package/dist/adapter/system-adapter.d.ts +6 -1
  62. package/dist/adapter/system-adapter.d.ts.map +1 -1
  63. package/dist/adapter/system-seam-contract.d.ts +354 -0
  64. package/dist/adapter/system-seam-contract.d.ts.map +1 -0
  65. package/dist/adapter/system-seam-contract.js +95 -0
  66. package/dist/animation/xstate-animation-binding.d.ts +6 -0
  67. package/dist/animation/xstate-animation-binding.d.ts.map +1 -1
  68. package/dist/animation/xstate-animation-binding.js +142 -4
  69. package/dist/asset-formats/collider.d.ts +1 -1
  70. package/dist/asset-formats/mesh.d.ts +2 -2
  71. package/dist/asset-formats/particles.d.ts +1 -1
  72. package/dist/canvas-react/engine-bridge.d.ts +6 -6
  73. package/dist/canvas-react/engine-bridge.d.ts.map +1 -1
  74. package/dist/canvas-react/engine-bridge.js +2 -2
  75. package/dist/canvas-react/index.d.ts +2 -2
  76. package/dist/canvas-react/index.d.ts.map +1 -1
  77. package/dist/canvas-react/index.js +1 -1
  78. package/dist/canvas-react/pixi-react-adapter.d.ts +15 -9
  79. package/dist/canvas-react/pixi-react-adapter.d.ts.map +1 -1
  80. package/dist/canvas-react/pixi-react-adapter.js +129 -64
  81. package/dist/canvas-react/pixi-react-root-factory.d.ts.map +1 -1
  82. package/dist/canvas-react/pixi-react-root-factory.js +4 -0
  83. package/dist/canvas-react/world-context.d.ts +22 -12
  84. package/dist/canvas-react/world-context.d.ts.map +1 -1
  85. package/dist/canvas-react/world-context.js +12 -51
  86. package/dist/data/curve.d.ts +1 -1
  87. package/dist/data/curve.js +2 -2
  88. package/dist/dev/instruments.d.ts +4 -4
  89. package/dist/dev/instruments.js +4 -4
  90. package/dist/dev/register-render-vitals.d.ts +2 -2
  91. package/dist/dev/register-render-vitals.js +2 -2
  92. package/dist/dev/static-batch-advisor.d.ts +1 -1
  93. package/dist/dev/static-batch-advisor.js +2 -2
  94. package/dist/ecs/user-data.d.ts +5 -0
  95. package/dist/ecs/user-data.d.ts.map +1 -1
  96. package/dist/ecs/user-data.js +3 -0
  97. package/dist/input/input-manager.d.ts +64 -0
  98. package/dist/input/input-manager.d.ts.map +1 -1
  99. package/dist/input/input-manager.js +149 -0
  100. package/dist/manifest/load.d.ts +0 -3
  101. package/dist/manifest/load.d.ts.map +1 -1
  102. package/dist/manifest/load.js +0 -4
  103. package/dist/manifest/schema.d.ts +9 -11
  104. package/dist/manifest/schema.d.ts.map +1 -1
  105. package/dist/manifest/schema.js +2 -23
  106. package/dist/pixi/authoring.d.ts +33 -0
  107. package/dist/pixi/authoring.d.ts.map +1 -1
  108. package/dist/pixi/authoring.js +301 -2
  109. package/dist/pixi/ingest.d.ts +2 -1
  110. package/dist/pixi/ingest.d.ts.map +1 -1
  111. package/dist/pixi/ingest.js +4 -2
  112. package/dist/pixi/scene-capture.d.ts +9 -1
  113. package/dist/pixi/scene-capture.d.ts.map +1 -1
  114. package/dist/pixi/scene-capture.js +9 -6
  115. package/dist/react/world-state.d.ts +12 -0
  116. package/dist/react/world-state.d.ts.map +1 -1
  117. package/dist/react/world-state.js +14 -0
  118. package/dist/render/particles-factory.d.ts +13 -6
  119. package/dist/render/particles-factory.d.ts.map +1 -1
  120. package/dist/render/particles-factory.js +6 -3
  121. package/dist/render/soft-particle-depth.d.ts +3 -3
  122. package/dist/render/soft-particle-depth.d.ts.map +1 -1
  123. package/dist/render/soft-particle-depth.js +8 -13
  124. package/dist/runtime/create-runtime.d.ts +25 -62
  125. package/dist/runtime/create-runtime.d.ts.map +1 -1
  126. package/dist/runtime/create-runtime.js +58 -105
  127. package/dist/runtime/dev-build.d.ts +37 -0
  128. package/dist/runtime/dev-build.d.ts.map +1 -0
  129. package/dist/runtime/dev-build.js +49 -0
  130. package/dist/runtime/game.d.ts +38 -72
  131. package/dist/runtime/game.d.ts.map +1 -1
  132. package/dist/runtime/game.js +40 -55
  133. package/dist/runtime/mount-game.d.ts.map +1 -1
  134. package/dist/runtime/mount-game.js +12 -1
  135. package/dist/runtime/mount-manifest.d.ts +0 -13
  136. package/dist/runtime/mount-manifest.d.ts.map +1 -1
  137. package/dist/runtime/mount-manifest.js +5 -25
  138. package/dist/runtime/types.d.ts +18 -0
  139. package/dist/runtime/types.d.ts.map +1 -1
  140. package/dist/setup/setup-renderer.d.ts +3 -4
  141. package/dist/setup/setup-renderer.d.ts.map +1 -1
  142. package/dist/setup/setup-renderer.js +3 -4
  143. package/dist/world3d-react/engine-bridge.d.ts +1 -1
  144. package/dist/world3d-react/engine-bridge.d.ts.map +1 -1
  145. package/dist/world3d-react/engine-bridge.js +29 -4
  146. package/dist/world3d-react/index.d.ts +1 -1
  147. package/dist/world3d-react/index.js +1 -1
  148. package/dist/world3d-react/r3f-adapter.d.ts +7 -0
  149. package/dist/world3d-react/r3f-adapter.d.ts.map +1 -1
  150. package/dist/world3d-react/r3f-adapter.js +132 -28
  151. package/dist/world3d-react/r3f-root-factory.d.ts.map +1 -1
  152. package/dist/world3d-react/r3f-root-factory.js +14 -0
  153. package/dist/world3d-react/rapier-physics-bridge.d.ts +4 -4
  154. package/dist/world3d-react/rapier-physics-bridge.js +3 -3
  155. package/dist/world3d-react/world-context.d.ts +52 -3
  156. package/dist/world3d-react/world-context.d.ts.map +1 -1
  157. package/dist/world3d-react/world-context.js +94 -64
  158. package/dist-config/config.js.map +1 -1
  159. package/package.json +1 -1
  160. package/schemas/engine-capabilities.json +8 -8
  161. package/schemas/vgai-project.schema.json +1 -6
  162. package/src/adapter/adapter-module.ts +405 -72
  163. package/src/adapter/authoring-seam-contract.ts +211 -0
  164. package/src/adapter/authoring.ts +242 -50
  165. package/src/adapter/entrypoint-selection-source.ts +159 -0
  166. package/src/adapter/finders/scenes-from-entrypoint-selection.ts +162 -36
  167. package/src/adapter/first-party-systems.ts +17 -3
  168. package/src/adapter/index.ts +51 -1
  169. package/src/adapter/ingest/contract-system-adapters.ts +26 -30
  170. package/src/adapter/ingest/game-contract-seams.ts +85 -0
  171. package/src/adapter/ingest/game-contract.ts +9 -4
  172. package/src/adapter/ingest/merge-debug-adapters.ts +193 -0
  173. package/src/adapter/ingest/observation-debug-adapter.ts +158 -0
  174. package/src/adapter/ingest/scene-capture.ts +126 -23
  175. package/src/adapter/ingest/visible-capture-window.ts +63 -9
  176. package/src/adapter/native-debug-module.ts +307 -0
  177. package/src/adapter/object3d-authoring-subject.ts +50 -0
  178. package/src/adapter/root-adapter.ts +25 -56
  179. package/src/adapter/root-seam-contract.ts +57 -0
  180. package/src/adapter/seam-evidence.ts +336 -0
  181. package/src/adapter/setup-three-root-adapter.ts +13 -15
  182. package/src/adapter/system-adapter.ts +6 -1
  183. package/src/adapter/system-seam-contract.ts +121 -0
  184. package/src/animation/xstate-animation-binding.ts +151 -4
  185. package/src/canvas-react/engine-bridge.ts +6 -6
  186. package/src/canvas-react/index.ts +2 -1
  187. package/src/canvas-react/pixi-react-adapter.tsx +143 -77
  188. package/src/canvas-react/pixi-react-root-factory.tsx +4 -0
  189. package/src/canvas-react/world-context.ts +26 -101
  190. package/src/data/curve.ts +2 -2
  191. package/src/dev/instruments.ts +4 -4
  192. package/src/dev/register-render-vitals.ts +2 -2
  193. package/src/dev/static-batch-advisor.ts +2 -2
  194. package/src/ecs/user-data.ts +5 -0
  195. package/src/input/input-manager.ts +145 -0
  196. package/src/manifest/load.ts +0 -7
  197. package/src/manifest/schema.ts +2 -25
  198. package/src/pixi/authoring.ts +329 -2
  199. package/src/pixi/ingest.ts +9 -2
  200. package/src/pixi/scene-capture.ts +20 -5
  201. package/src/react/world-state.tsx +15 -0
  202. package/src/render/particles-factory.ts +16 -6
  203. package/src/render/soft-particle-depth.ts +8 -13
  204. package/src/runtime/create-runtime.ts +79 -158
  205. package/src/runtime/dev-build.ts +49 -0
  206. package/src/runtime/game.ts +72 -113
  207. package/src/runtime/mount-game.ts +19 -1
  208. package/src/runtime/mount-manifest.ts +5 -37
  209. package/src/runtime/types.ts +22 -0
  210. package/src/setup/setup-renderer.ts +3 -4
  211. package/src/world3d-react/engine-bridge.ts +29 -4
  212. package/src/world3d-react/index.ts +1 -1
  213. package/src/world3d-react/r3f-adapter.tsx +140 -31
  214. package/src/world3d-react/r3f-root-factory.tsx +14 -0
  215. package/src/world3d-react/rapier-physics-bridge.tsx +4 -4
  216. package/src/world3d-react/world-context.ts +111 -87
  217. package/dist/runtime/dev-layers.d.ts +0 -34
  218. package/dist/runtime/dev-layers.d.ts.map +0 -1
  219. package/dist/runtime/dev-layers.js +0 -46
  220. 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 (a root with an `entry`) that is not a declared
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
- /** The entrypoint's own selection table reaches it under `key`. */
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 broken, never 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: 'system' | 'command' | 'state';
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
- /** Observation slots this game declares. */
431
- readonly observation?: readonly ObservationDeclaration[];
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":"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"}
1
+ {"version":3,"file":"adapter-module.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter-module.ts"],"names":[],"mappings":"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"}