@vgai/engine 0.5.0 → 0.5.2

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 (538) hide show
  1. package/package.json +1 -1
  2. package/schemas/engine-capabilities.json +4 -4
  3. package/schemas/vgai-game.schema.json +2 -2
  4. package/src/adapter/authoring.ts +42 -0
  5. package/src/adapter/index.ts +3 -0
  6. package/src/adapter/ingest/overlay-apply.ts +50 -6
  7. package/src/adapter/ingest/scene-capture.ts +51 -2
  8. package/src/adapter/vgai-scene-game-adapter.ts +24 -0
  9. package/src/manifest/schema.ts +7 -3
  10. package/src/runtime/create-runtime.ts +97 -0
  11. package/src/runtime/game.ts +11 -1
  12. package/src/scene/asset-ref-check.ts +1 -1
  13. package/src/scene/scene-loader.ts +2 -2
  14. package/src/scene/user-data.ts +18 -0
  15. package/src/world3d-react/behavior.tsx +19 -11
  16. package/src/world3d-react/r3f-adapter.tsx +8 -0
  17. package/dist/adapter/adapter-surface.d.ts +0 -30
  18. package/dist/adapter/adapter-surface.d.ts.map +0 -1
  19. package/dist/adapter/adapter-surface.js +0 -18
  20. package/dist/adapter/authoring.d.ts +0 -461
  21. package/dist/adapter/authoring.d.ts.map +0 -1
  22. package/dist/adapter/authoring.js +0 -22
  23. package/dist/adapter/colyseus-networking-adapter.d.ts +0 -43
  24. package/dist/adapter/colyseus-networking-adapter.d.ts.map +0 -1
  25. package/dist/adapter/colyseus-networking-adapter.js +0 -38
  26. package/dist/adapter/first-party-systems.d.ts +0 -38
  27. package/dist/adapter/first-party-systems.d.ts.map +0 -1
  28. package/dist/adapter/first-party-systems.js +0 -77
  29. package/dist/adapter/game-adapter.d.ts +0 -133
  30. package/dist/adapter/game-adapter.d.ts.map +0 -1
  31. package/dist/adapter/game-adapter.js +0 -10
  32. package/dist/adapter/host-context.d.ts +0 -71
  33. package/dist/adapter/host-context.d.ts.map +0 -1
  34. package/dist/adapter/host-context.js +0 -16
  35. package/dist/adapter/index.d.ts +0 -22
  36. package/dist/adapter/index.d.ts.map +0 -1
  37. package/dist/adapter/index.js +0 -15
  38. package/dist/adapter/ingest/game-contract.d.ts +0 -53
  39. package/dist/adapter/ingest/game-contract.d.ts.map +0 -1
  40. package/dist/adapter/ingest/game-contract.js +0 -30
  41. package/dist/adapter/ingest/overlay-applier.d.ts +0 -118
  42. package/dist/adapter/ingest/overlay-applier.d.ts.map +0 -1
  43. package/dist/adapter/ingest/overlay-applier.js +0 -132
  44. package/dist/adapter/ingest/overlay-apply.d.ts +0 -60
  45. package/dist/adapter/ingest/overlay-apply.d.ts.map +0 -1
  46. package/dist/adapter/ingest/overlay-apply.js +0 -101
  47. package/dist/adapter/ingest/overlay-file.d.ts +0 -79
  48. package/dist/adapter/ingest/overlay-file.d.ts.map +0 -1
  49. package/dist/adapter/ingest/overlay-file.js +0 -66
  50. package/dist/adapter/ingest/overlay-report.d.ts +0 -113
  51. package/dist/adapter/ingest/overlay-report.d.ts.map +0 -1
  52. package/dist/adapter/ingest/overlay-report.js +0 -103
  53. package/dist/adapter/ingest/scene-capture.d.ts +0 -97
  54. package/dist/adapter/ingest/scene-capture.d.ts.map +0 -1
  55. package/dist/adapter/ingest/scene-capture.js +0 -248
  56. package/dist/adapter/ingest/upstream-pin.d.ts +0 -47
  57. package/dist/adapter/ingest/upstream-pin.d.ts.map +0 -1
  58. package/dist/adapter/ingest/upstream-pin.js +0 -50
  59. package/dist/adapter/loop-gate-report.d.ts +0 -34
  60. package/dist/adapter/loop-gate-report.d.ts.map +0 -1
  61. package/dist/adapter/loop-gate-report.js +0 -37
  62. package/dist/adapter/rapier-physics-adapter.d.ts +0 -12
  63. package/dist/adapter/rapier-physics-adapter.d.ts.map +0 -1
  64. package/dist/adapter/rapier-physics-adapter.js +0 -46
  65. package/dist/adapter/system-adapter.d.ts +0 -206
  66. package/dist/adapter/system-adapter.d.ts.map +0 -1
  67. package/dist/adapter/system-adapter.js +0 -13
  68. package/dist/adapter/transform.d.ts +0 -18
  69. package/dist/adapter/transform.d.ts.map +0 -1
  70. package/dist/adapter/transform.js +0 -1
  71. package/dist/adapter/vgai-scene-game-adapter.d.ts +0 -108
  72. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +0 -1
  73. package/dist/adapter/vgai-scene-game-adapter.js +0 -762
  74. package/dist/ai/navigation.d.ts +0 -64
  75. package/dist/ai/navigation.d.ts.map +0 -1
  76. package/dist/ai/navigation.js +0 -133
  77. package/dist/animation/anim-graph-types.d.ts +0 -25
  78. package/dist/animation/anim-graph-types.d.ts.map +0 -1
  79. package/dist/animation/anim-graph-types.js +0 -1
  80. package/dist/animation/animation-clock.d.ts +0 -213
  81. package/dist/animation/animation-clock.d.ts.map +0 -1
  82. package/dist/animation/animation-clock.js +0 -301
  83. package/dist/animation/blend-node.d.ts +0 -22
  84. package/dist/animation/blend-node.d.ts.map +0 -1
  85. package/dist/animation/blend-node.js +0 -97
  86. package/dist/animation/camera-ownership.d.ts +0 -250
  87. package/dist/animation/camera-ownership.d.ts.map +0 -1
  88. package/dist/animation/camera-ownership.js +0 -169
  89. package/dist/animation/cinematic-cues.d.ts +0 -200
  90. package/dist/animation/cinematic-cues.d.ts.map +0 -1
  91. package/dist/animation/cinematic-cues.js +0 -213
  92. package/dist/animation/clip-map.d.ts +0 -12
  93. package/dist/animation/clip-map.d.ts.map +0 -1
  94. package/dist/animation/clip-map.js +0 -37
  95. package/dist/animation/gsap-registration.d.ts +0 -119
  96. package/dist/animation/gsap-registration.d.ts.map +0 -1
  97. package/dist/animation/gsap-registration.js +0 -92
  98. package/dist/animation/theatre-clock-binding.d.ts +0 -89
  99. package/dist/animation/theatre-clock-binding.d.ts.map +0 -1
  100. package/dist/animation/theatre-clock-binding.js +0 -29
  101. package/dist/animation/theatre-director.d.ts +0 -242
  102. package/dist/animation/theatre-director.d.ts.map +0 -1
  103. package/dist/animation/theatre-director.js +0 -235
  104. package/dist/animation/theatre-object-binding.d.ts +0 -305
  105. package/dist/animation/theatre-object-binding.d.ts.map +0 -1
  106. package/dist/animation/theatre-object-binding.js +0 -351
  107. package/dist/animation/xstate-animation-binding.d.ts +0 -56
  108. package/dist/animation/xstate-animation-binding.d.ts.map +0 -1
  109. package/dist/animation/xstate-animation-binding.js +0 -331
  110. package/dist/animation/xstate-animation-meta.d.ts +0 -266
  111. package/dist/animation/xstate-animation-meta.d.ts.map +0 -1
  112. package/dist/animation/xstate-animation-meta.js +0 -252
  113. package/dist/assets.d.ts +0 -26
  114. package/dist/assets.d.ts.map +0 -1
  115. package/dist/assets.js +0 -55
  116. package/dist/audio/index.d.ts +0 -4
  117. package/dist/audio/index.d.ts.map +0 -1
  118. package/dist/audio/index.js +0 -24
  119. package/dist/audio/tone-clock-binding.d.ts +0 -75
  120. package/dist/audio/tone-clock-binding.d.ts.map +0 -1
  121. package/dist/audio/tone-clock-binding.js +0 -29
  122. package/dist/audio/tone-context.d.ts +0 -114
  123. package/dist/audio/tone-context.d.ts.map +0 -1
  124. package/dist/audio/tone-context.js +0 -39
  125. package/dist/audio/tone-offline-render.d.ts +0 -90
  126. package/dist/audio/tone-offline-render.d.ts.map +0 -1
  127. package/dist/audio/tone-offline-render.js +0 -56
  128. package/dist/audio/wav-encode.d.ts +0 -38
  129. package/dist/audio/wav-encode.d.ts.map +0 -1
  130. package/dist/audio/wav-encode.js +0 -97
  131. package/dist/character/cloth-sim.d.ts +0 -179
  132. package/dist/character/cloth-sim.d.ts.map +0 -1
  133. package/dist/character/cloth-sim.js +0 -334
  134. package/dist/character/spring-chain.d.ts +0 -135
  135. package/dist/character/spring-chain.d.ts.map +0 -1
  136. package/dist/character/spring-chain.js +0 -165
  137. package/dist/core/game-loop.d.ts +0 -42
  138. package/dist/core/game-loop.d.ts.map +0 -1
  139. package/dist/core/game-loop.js +0 -167
  140. package/dist/core/seeded-random.d.ts +0 -69
  141. package/dist/core/seeded-random.d.ts.map +0 -1
  142. package/dist/core/seeded-random.js +0 -121
  143. package/dist/core/system-runner.d.ts +0 -120
  144. package/dist/core/system-runner.d.ts.map +0 -1
  145. package/dist/core/system-runner.js +0 -297
  146. package/dist/core/types.d.ts +0 -92
  147. package/dist/core/types.d.ts.map +0 -1
  148. package/dist/core/types.js +0 -25
  149. package/dist/data/data-asset.d.ts +0 -101
  150. package/dist/data/data-asset.d.ts.map +0 -1
  151. package/dist/data/data-asset.js +0 -122
  152. package/dist/data/data-check-core.d.ts +0 -110
  153. package/dist/data/data-check-core.d.ts.map +0 -1
  154. package/dist/data/data-check-core.js +0 -178
  155. package/dist/data/data-ref.d.ts +0 -79
  156. package/dist/data/data-ref.d.ts.map +0 -1
  157. package/dist/data/data-ref.js +0 -130
  158. package/dist/data/vite-plugin-data.d.ts +0 -79
  159. package/dist/data/vite-plugin-data.d.ts.map +0 -1
  160. package/dist/data/vite-plugin-data.js +0 -217
  161. package/dist/dev/console-bridge.d.ts +0 -22
  162. package/dist/dev/console-bridge.d.ts.map +0 -1
  163. package/dist/dev/console-bridge.js +0 -71
  164. package/dist/dev/debug-draw.d.ts +0 -24
  165. package/dist/dev/debug-draw.d.ts.map +0 -1
  166. package/dist/dev/debug-draw.js +0 -73
  167. package/dist/dev/logger.d.ts +0 -30
  168. package/dist/dev/logger.d.ts.map +0 -1
  169. package/dist/dev/logger.js +0 -90
  170. package/dist/dev/performance-profiler.d.ts +0 -60
  171. package/dist/dev/performance-profiler.d.ts.map +0 -1
  172. package/dist/dev/performance-profiler.js +0 -181
  173. package/dist/dev/webgl-gpu-timer.d.ts +0 -8
  174. package/dist/dev/webgl-gpu-timer.d.ts.map +0 -1
  175. package/dist/dev/webgl-gpu-timer.js +0 -52
  176. package/dist/ecs/component-manager.d.ts +0 -205
  177. package/dist/ecs/component-manager.d.ts.map +0 -1
  178. package/dist/ecs/component-manager.js +0 -706
  179. package/dist/ecs/game-component.d.ts +0 -146
  180. package/dist/ecs/game-component.d.ts.map +0 -1
  181. package/dist/ecs/game-component.js +0 -141
  182. package/dist/ecs/hmr-swap-report.d.ts +0 -53
  183. package/dist/ecs/hmr-swap-report.d.ts.map +0 -1
  184. package/dist/ecs/hmr-swap-report.js +0 -55
  185. package/dist/humanoid/bake.operation.d.ts +0 -119
  186. package/dist/humanoid/bake.operation.d.ts.map +0 -1
  187. package/dist/humanoid/bake.operation.js +0 -228
  188. package/dist/humanoid/body.d.ts +0 -101
  189. package/dist/humanoid/body.d.ts.map +0 -1
  190. package/dist/humanoid/body.js +0 -530
  191. package/dist/humanoid/clips.d.ts +0 -62
  192. package/dist/humanoid/clips.d.ts.map +0 -1
  193. package/dist/humanoid/clips.js +0 -121
  194. package/dist/humanoid/compose.d.ts +0 -75
  195. package/dist/humanoid/compose.d.ts.map +0 -1
  196. package/dist/humanoid/compose.js +0 -176
  197. package/dist/humanoid/generate.d.ts +0 -92
  198. package/dist/humanoid/generate.d.ts.map +0 -1
  199. package/dist/humanoid/generate.js +0 -124
  200. package/dist/humanoid/index.d.ts +0 -24
  201. package/dist/humanoid/index.d.ts.map +0 -1
  202. package/dist/humanoid/index.js +0 -18
  203. package/dist/humanoid/schema.d.ts +0 -35
  204. package/dist/humanoid/schema.d.ts.map +0 -1
  205. package/dist/humanoid/schema.js +0 -87
  206. package/dist/humanoid/skeleton.d.ts +0 -103
  207. package/dist/humanoid/skeleton.d.ts.map +0 -1
  208. package/dist/humanoid/skeleton.js +0 -289
  209. package/dist/index.d.ts +0 -37
  210. package/dist/index.d.ts.map +0 -1
  211. package/dist/index.js +0 -30
  212. package/dist/input/input-manager.d.ts +0 -945
  213. package/dist/input/input-manager.d.ts.map +0 -1
  214. package/dist/input/input-manager.js +0 -2207
  215. package/dist/input/input-types.d.ts +0 -174
  216. package/dist/input/input-types.d.ts.map +0 -1
  217. package/dist/input/input-types.js +0 -1
  218. package/dist/input/prompt-labels.d.ts +0 -21
  219. package/dist/input/prompt-labels.d.ts.map +0 -1
  220. package/dist/input/prompt-labels.js +0 -121
  221. package/dist/input/rebind-controller.d.ts +0 -59
  222. package/dist/input/rebind-controller.d.ts.map +0 -1
  223. package/dist/input/rebind-controller.js +0 -85
  224. package/dist/input/schema.d.ts +0 -16
  225. package/dist/input/schema.d.ts.map +0 -1
  226. package/dist/input/schema.js +0 -228
  227. package/dist/loader.d.ts +0 -43
  228. package/dist/loader.d.ts.map +0 -1
  229. package/dist/loader.js +0 -59
  230. package/dist/manifest/index.d.ts +0 -5
  231. package/dist/manifest/index.d.ts.map +0 -1
  232. package/dist/manifest/index.js +0 -8
  233. package/dist/manifest/load-file.d.ts +0 -4
  234. package/dist/manifest/load-file.d.ts.map +0 -1
  235. package/dist/manifest/load-file.js +0 -14
  236. package/dist/manifest/load.d.ts +0 -144
  237. package/dist/manifest/load.d.ts.map +0 -1
  238. package/dist/manifest/load.js +0 -273
  239. package/dist/manifest/schema.d.ts +0 -230
  240. package/dist/manifest/schema.d.ts.map +0 -1
  241. package/dist/manifest/schema.js +0 -394
  242. package/dist/physics/collision-system.d.ts +0 -41
  243. package/dist/physics/collision-system.d.ts.map +0 -1
  244. package/dist/physics/collision-system.js +0 -64
  245. package/dist/physics/physics-registry.d.ts +0 -45
  246. package/dist/physics/physics-registry.d.ts.map +0 -1
  247. package/dist/physics/physics-registry.js +0 -65
  248. package/dist/physics/transform-writer.d.ts +0 -16
  249. package/dist/physics/transform-writer.d.ts.map +0 -1
  250. package/dist/physics/transform-writer.js +0 -38
  251. package/dist/physics/trigger-dispatch.d.ts +0 -24
  252. package/dist/physics/trigger-dispatch.d.ts.map +0 -1
  253. package/dist/physics/trigger-dispatch.js +0 -80
  254. package/dist/react/game-state.d.ts +0 -156
  255. package/dist/react/game-state.d.ts.map +0 -1
  256. package/dist/react/game-state.js +0 -222
  257. package/dist/react/root-adapter.d.ts +0 -11
  258. package/dist/react/root-adapter.d.ts.map +0 -1
  259. package/dist/react/root-adapter.js +0 -41
  260. package/dist/react/unmanaged-root-detector.d.ts +0 -12
  261. package/dist/react/unmanaged-root-detector.d.ts.map +0 -1
  262. package/dist/react/unmanaged-root-detector.js +0 -45
  263. package/dist/react/use-data.d.ts +0 -60
  264. package/dist/react/use-data.d.ts.map +0 -1
  265. package/dist/react/use-data.js +0 -101
  266. package/dist/react/use-selection.d.ts +0 -75
  267. package/dist/react/use-selection.d.ts.map +0 -1
  268. package/dist/react/use-selection.js +0 -90
  269. package/dist/render/auto-batcher.d.ts +0 -34
  270. package/dist/render/auto-batcher.d.ts.map +0 -1
  271. package/dist/render/auto-batcher.js +0 -140
  272. package/dist/render/render-batch-system.d.ts +0 -33
  273. package/dist/render/render-batch-system.d.ts.map +0 -1
  274. package/dist/render/render-batch-system.js +0 -230
  275. package/dist/render/render-features.d.ts +0 -47
  276. package/dist/render/render-features.d.ts.map +0 -1
  277. package/dist/render/render-features.js +0 -105
  278. package/dist/render/render-settings.d.ts +0 -36
  279. package/dist/render/render-settings.d.ts.map +0 -1
  280. package/dist/render/render-settings.js +0 -51
  281. package/dist/runtime/create-runtime.d.ts +0 -249
  282. package/dist/runtime/create-runtime.d.ts.map +0 -1
  283. package/dist/runtime/create-runtime.js +0 -641
  284. package/dist/runtime/debug-bridge.d.ts +0 -257
  285. package/dist/runtime/debug-bridge.d.ts.map +0 -1
  286. package/dist/runtime/debug-bridge.js +0 -224
  287. package/dist/runtime/debug-registry.d.ts +0 -288
  288. package/dist/runtime/debug-registry.d.ts.map +0 -1
  289. package/dist/runtime/debug-registry.js +0 -513
  290. package/dist/runtime/frame-selector-cache.d.ts +0 -41
  291. package/dist/runtime/frame-selector-cache.d.ts.map +0 -1
  292. package/dist/runtime/frame-selector-cache.js +0 -65
  293. package/dist/runtime/game.d.ts +0 -496
  294. package/dist/runtime/game.d.ts.map +0 -1
  295. package/dist/runtime/game.js +0 -741
  296. package/dist/runtime/gameplay-rng-trap.d.ts +0 -48
  297. package/dist/runtime/gameplay-rng-trap.d.ts.map +0 -1
  298. package/dist/runtime/gameplay-rng-trap.js +0 -96
  299. package/dist/runtime/input-router.d.ts +0 -78
  300. package/dist/runtime/input-router.d.ts.map +0 -1
  301. package/dist/runtime/input-router.js +0 -171
  302. package/dist/runtime/mount-game.d.ts +0 -129
  303. package/dist/runtime/mount-game.d.ts.map +0 -1
  304. package/dist/runtime/mount-game.js +0 -152
  305. package/dist/runtime/mount-manifest.d.ts +0 -173
  306. package/dist/runtime/mount-manifest.d.ts.map +0 -1
  307. package/dist/runtime/mount-manifest.js +0 -297
  308. package/dist/runtime/render-audio-control.d.ts +0 -110
  309. package/dist/runtime/render-audio-control.d.ts.map +0 -1
  310. package/dist/runtime/render-audio-control.js +0 -111
  311. package/dist/runtime/render-control.d.ts +0 -291
  312. package/dist/runtime/render-control.d.ts.map +0 -1
  313. package/dist/runtime/render-control.js +0 -264
  314. package/dist/runtime/render-seed.d.ts +0 -57
  315. package/dist/runtime/render-seed.d.ts.map +0 -1
  316. package/dist/runtime/render-seed.js +0 -74
  317. package/dist/runtime/state-bridge.d.ts +0 -61
  318. package/dist/runtime/state-bridge.d.ts.map +0 -1
  319. package/dist/runtime/state-bridge.js +0 -63
  320. package/dist/runtime/types.d.ts +0 -253
  321. package/dist/runtime/types.d.ts.map +0 -1
  322. package/dist/runtime/types.js +0 -1
  323. package/dist/scene/asset-loaders.d.ts +0 -79
  324. package/dist/scene/asset-loaders.d.ts.map +0 -1
  325. package/dist/scene/asset-loaders.js +0 -141
  326. package/dist/scene/asset-paths.d.ts +0 -11
  327. package/dist/scene/asset-paths.d.ts.map +0 -1
  328. package/dist/scene/asset-paths.js +0 -108
  329. package/dist/scene/asset-ref-check.d.ts +0 -88
  330. package/dist/scene/asset-ref-check.d.ts.map +0 -1
  331. package/dist/scene/asset-ref-check.js +0 -214
  332. package/dist/scene/asset-registry.d.ts +0 -38
  333. package/dist/scene/asset-registry.d.ts.map +0 -1
  334. package/dist/scene/asset-registry.js +0 -66
  335. package/dist/scene/collider-dimensions.d.ts +0 -63
  336. package/dist/scene/collider-dimensions.d.ts.map +0 -1
  337. package/dist/scene/collider-dimensions.js +0 -98
  338. package/dist/scene/component-registry.d.ts +0 -22
  339. package/dist/scene/component-registry.d.ts.map +0 -1
  340. package/dist/scene/component-registry.js +0 -37
  341. package/dist/scene/defaults.d.ts +0 -252
  342. package/dist/scene/defaults.d.ts.map +0 -1
  343. package/dist/scene/defaults.js +0 -151
  344. package/dist/scene/geometries/index.d.ts +0 -8
  345. package/dist/scene/geometries/index.d.ts.map +0 -1
  346. package/dist/scene/geometries/index.js +0 -7
  347. package/dist/scene/geometries/terrain.d.ts +0 -2
  348. package/dist/scene/geometries/terrain.d.ts.map +0 -1
  349. package/dist/scene/geometries/terrain.js +0 -37
  350. package/dist/scene/geometry-registry.d.ts +0 -24
  351. package/dist/scene/geometry-registry.d.ts.map +0 -1
  352. package/dist/scene/geometry-registry.js +0 -20
  353. package/dist/scene/instance-registry.d.ts +0 -36
  354. package/dist/scene/instance-registry.d.ts.map +0 -1
  355. package/dist/scene/instance-registry.js +0 -55
  356. package/dist/scene/instancers/grid.d.ts +0 -2
  357. package/dist/scene/instancers/grid.d.ts.map +0 -1
  358. package/dist/scene/instancers/grid.js +0 -36
  359. package/dist/scene/instancers/index.d.ts +0 -8
  360. package/dist/scene/instancers/index.d.ts.map +0 -1
  361. package/dist/scene/instancers/index.js +0 -7
  362. package/dist/scene/light-camera-factory.d.ts +0 -23
  363. package/dist/scene/light-camera-factory.d.ts.map +0 -1
  364. package/dist/scene/light-camera-factory.js +0 -68
  365. package/dist/scene/material-factory.d.ts +0 -17
  366. package/dist/scene/material-factory.d.ts.map +0 -1
  367. package/dist/scene/material-factory.js +0 -197
  368. package/dist/scene/material-registry.d.ts +0 -40
  369. package/dist/scene/material-registry.d.ts.map +0 -1
  370. package/dist/scene/material-registry.js +0 -44
  371. package/dist/scene/materials/index.d.ts +0 -8
  372. package/dist/scene/materials/index.d.ts.map +0 -1
  373. package/dist/scene/materials/index.js +0 -7
  374. package/dist/scene/materials/water.d.ts +0 -2
  375. package/dist/scene/materials/water.d.ts.map +0 -1
  376. package/dist/scene/materials/water.js +0 -54
  377. package/dist/scene/parse.d.ts +0 -23
  378. package/dist/scene/parse.d.ts.map +0 -1
  379. package/dist/scene/parse.js +0 -179
  380. package/dist/scene/particles-factory.d.ts +0 -33
  381. package/dist/scene/particles-factory.d.ts.map +0 -1
  382. package/dist/scene/particles-factory.js +0 -282
  383. package/dist/scene/scene-apply.d.ts +0 -109
  384. package/dist/scene/scene-apply.d.ts.map +0 -1
  385. package/dist/scene/scene-apply.js +0 -370
  386. package/dist/scene/scene-diff-schema.d.ts +0 -285
  387. package/dist/scene/scene-diff-schema.d.ts.map +0 -1
  388. package/dist/scene/scene-diff-schema.js +0 -92
  389. package/dist/scene/scene-diff-types.d.ts +0 -40
  390. package/dist/scene/scene-diff-types.d.ts.map +0 -1
  391. package/dist/scene/scene-diff-types.js +0 -14
  392. package/dist/scene/scene-loader.d.ts +0 -167
  393. package/dist/scene/scene-loader.d.ts.map +0 -1
  394. package/dist/scene/scene-loader.js +0 -1211
  395. package/dist/scene/scene-query.d.ts +0 -11
  396. package/dist/scene/scene-query.d.ts.map +0 -1
  397. package/dist/scene/scene-query.js +0 -63
  398. package/dist/scene/scene-types.d.ts +0 -10
  399. package/dist/scene/scene-types.d.ts.map +0 -1
  400. package/dist/scene/scene-types.js +0 -8
  401. package/dist/scene/scene-version.d.ts +0 -26
  402. package/dist/scene/scene-version.d.ts.map +0 -1
  403. package/dist/scene/scene-version.js +0 -34
  404. package/dist/scene/schema/animation.d.ts +0 -8
  405. package/dist/scene/schema/animation.d.ts.map +0 -1
  406. package/dist/scene/schema/animation.js +0 -42
  407. package/dist/scene/schema/audio.d.ts +0 -13
  408. package/dist/scene/schema/audio.d.ts.map +0 -1
  409. package/dist/scene/schema/audio.js +0 -22
  410. package/dist/scene/schema/camera.d.ts +0 -28
  411. package/dist/scene/schema/camera.d.ts.map +0 -1
  412. package/dist/scene/schema/camera.js +0 -17
  413. package/dist/scene/schema/collider.d.ts +0 -40
  414. package/dist/scene/schema/collider.d.ts.map +0 -1
  415. package/dist/scene/schema/collider.js +0 -55
  416. package/dist/scene/schema/entity-ref.d.ts +0 -31
  417. package/dist/scene/schema/entity-ref.d.ts.map +0 -1
  418. package/dist/scene/schema/entity-ref.js +0 -61
  419. package/dist/scene/schema/entity.d.ts +0 -1036
  420. package/dist/scene/schema/entity.d.ts.map +0 -1
  421. package/dist/scene/schema/entity.js +0 -153
  422. package/dist/scene/schema/environment.d.ts +0 -425
  423. package/dist/scene/schema/environment.d.ts.map +0 -1
  424. package/dist/scene/schema/environment.js +0 -357
  425. package/dist/scene/schema/index.d.ts +0 -37
  426. package/dist/scene/schema/index.d.ts.map +0 -1
  427. package/dist/scene/schema/index.js +0 -19
  428. package/dist/scene/schema/instances.d.ts +0 -14
  429. package/dist/scene/schema/instances.d.ts.map +0 -1
  430. package/dist/scene/schema/instances.js +0 -28
  431. package/dist/scene/schema/joint.d.ts +0 -23
  432. package/dist/scene/schema/joint.d.ts.map +0 -1
  433. package/dist/scene/schema/joint.js +0 -23
  434. package/dist/scene/schema/light.d.ts +0 -38
  435. package/dist/scene/schema/light.d.ts.map +0 -1
  436. package/dist/scene/schema/light.js +0 -26
  437. package/dist/scene/schema/material.d.ts +0 -199
  438. package/dist/scene/schema/material.d.ts.map +0 -1
  439. package/dist/scene/schema/material.js +0 -103
  440. package/dist/scene/schema/mesh.d.ts +0 -48
  441. package/dist/scene/schema/mesh.d.ts.map +0 -1
  442. package/dist/scene/schema/mesh.js +0 -82
  443. package/dist/scene/schema/particles.d.ts +0 -2178
  444. package/dist/scene/schema/particles.d.ts.map +0 -1
  445. package/dist/scene/schema/particles.js +0 -321
  446. package/dist/scene/schema/physics.d.ts +0 -56
  447. package/dist/scene/schema/physics.d.ts.map +0 -1
  448. package/dist/scene/schema/physics.js +0 -37
  449. package/dist/scene/schema/scene-file.d.ts +0 -303
  450. package/dist/scene/schema/scene-file.d.ts.map +0 -1
  451. package/dist/scene/schema/scene-file.js +0 -256
  452. package/dist/scene/schema/shadow.d.ts +0 -28
  453. package/dist/scene/schema/shadow.d.ts.map +0 -1
  454. package/dist/scene/schema/shadow.js +0 -20
  455. package/dist/scene/schema/spline.d.ts +0 -25
  456. package/dist/scene/schema/spline.d.ts.map +0 -1
  457. package/dist/scene/schema/spline.js +0 -15
  458. package/dist/scene/schema/tuples.d.ts +0 -12
  459. package/dist/scene/schema/tuples.d.ts.map +0 -1
  460. package/dist/scene/schema/tuples.js +0 -14
  461. package/dist/scene/user-data.d.ts +0 -185
  462. package/dist/scene/user-data.d.ts.map +0 -1
  463. package/dist/scene/user-data.js +0 -144
  464. package/dist/setup/setup-audio.d.ts +0 -20
  465. package/dist/setup/setup-audio.d.ts.map +0 -1
  466. package/dist/setup/setup-audio.js +0 -41
  467. package/dist/setup/setup-particles.d.ts +0 -17
  468. package/dist/setup/setup-particles.d.ts.map +0 -1
  469. package/dist/setup/setup-particles.js +0 -16
  470. package/dist/setup/setup-physics.d.ts +0 -25
  471. package/dist/setup/setup-physics.d.ts.map +0 -1
  472. package/dist/setup/setup-physics.js +0 -51
  473. package/dist/setup/setup-renderer.d.ts +0 -69
  474. package/dist/setup/setup-renderer.d.ts.map +0 -1
  475. package/dist/setup/setup-renderer.js +0 -363
  476. package/dist/tools/define-tool.d.ts +0 -130
  477. package/dist/tools/define-tool.d.ts.map +0 -1
  478. package/dist/tools/define-tool.js +0 -96
  479. package/dist/world2d/authoring-2d.d.ts +0 -80
  480. package/dist/world2d/authoring-2d.d.ts.map +0 -1
  481. package/dist/world2d/authoring-2d.js +0 -195
  482. package/dist/world2d/capture-to-scene2d.d.ts +0 -5
  483. package/dist/world2d/capture-to-scene2d.d.ts.map +0 -1
  484. package/dist/world2d/capture-to-scene2d.js +0 -49
  485. package/dist/world2d/collision-2d.d.ts +0 -52
  486. package/dist/world2d/collision-2d.d.ts.map +0 -1
  487. package/dist/world2d/collision-2d.js +0 -70
  488. package/dist/world2d/components-2d.d.ts +0 -47
  489. package/dist/world2d/components-2d.d.ts.map +0 -1
  490. package/dist/world2d/components-2d.js +0 -77
  491. package/dist/world2d/index.d.ts +0 -34
  492. package/dist/world2d/index.d.ts.map +0 -1
  493. package/dist/world2d/index.js +0 -32
  494. package/dist/world2d/ingest-iframe-2d.d.ts +0 -82
  495. package/dist/world2d/ingest-iframe-2d.d.ts.map +0 -1
  496. package/dist/world2d/ingest-iframe-2d.js +0 -166
  497. package/dist/world2d/ingest2d.d.ts +0 -97
  498. package/dist/world2d/ingest2d.d.ts.map +0 -1
  499. package/dist/world2d/ingest2d.js +0 -40
  500. package/dist/world2d/physics2d-registry.d.ts +0 -24
  501. package/dist/world2d/physics2d-registry.d.ts.map +0 -1
  502. package/dist/world2d/physics2d-registry.js +0 -38
  503. package/dist/world2d/pixi-game-adapter.d.ts +0 -107
  504. package/dist/world2d/pixi-game-adapter.d.ts.map +0 -1
  505. package/dist/world2d/pixi-game-adapter.js +0 -210
  506. package/dist/world2d/pixi-surface.d.ts +0 -39
  507. package/dist/world2d/pixi-surface.d.ts.map +0 -1
  508. package/dist/world2d/pixi-surface.js +0 -47
  509. package/dist/world2d/scene-capture-2d.d.ts +0 -43
  510. package/dist/world2d/scene-capture-2d.d.ts.map +0 -1
  511. package/dist/world2d/scene-capture-2d.js +0 -92
  512. package/dist/world2d/scene2d-loader.d.ts +0 -27
  513. package/dist/world2d/scene2d-loader.d.ts.map +0 -1
  514. package/dist/world2d/scene2d-loader.js +0 -275
  515. package/dist/world2d/schema/entity2d.d.ts +0 -102
  516. package/dist/world2d/schema/entity2d.d.ts.map +0 -1
  517. package/dist/world2d/schema/entity2d.js +0 -119
  518. package/dist/world2d/schema/physics2d.d.ts +0 -46
  519. package/dist/world2d/schema/physics2d.d.ts.map +0 -1
  520. package/dist/world2d/schema/physics2d.js +0 -45
  521. package/dist/world2d/schema/sprite.d.ts +0 -42
  522. package/dist/world2d/schema/sprite.d.ts.map +0 -1
  523. package/dist/world2d/schema/sprite.js +0 -63
  524. package/dist/world2d/schema/tilemap.d.ts +0 -15
  525. package/dist/world2d/schema/tilemap.d.ts.map +0 -1
  526. package/dist/world2d/schema/tilemap.js +0 -19
  527. package/dist/world2d/schema/tuples2d.d.ts +0 -20
  528. package/dist/world2d/schema/tuples2d.d.ts.map +0 -1
  529. package/dist/world2d/schema/tuples2d.js +0 -19
  530. package/dist/world2d/system-adapters-2d.d.ts +0 -16
  531. package/dist/world2d/system-adapters-2d.d.ts.map +0 -1
  532. package/dist/world2d/system-adapters-2d.js +0 -37
  533. package/dist/world2d/transform-writer-2d.d.ts +0 -16
  534. package/dist/world2d/transform-writer-2d.d.ts.map +0 -1
  535. package/dist/world2d/transform-writer-2d.js +0 -22
  536. package/dist/world2d/types.d.ts +0 -59
  537. package/dist/world2d/types.d.ts.map +0 -1
  538. package/dist/world2d/types.js +0 -1
@@ -1,50 +0,0 @@
1
- /**
2
- * Upstream-pin extraction — R5 (docs/MASTER-ARCHITECTURE-REVIEW.md §4(c)/
3
- * §7.1 item 9): the fix for the overlay identity gap the structural-id +
4
- * `authoredAgainst.gameVersion` scheme (T7.7/D9) does not close. A re-vendor
5
- * of a vendored upstream game that keeps a slot's shape (index + three.js
6
- * type + name unchanged) reapplies a saved overlay onto a semantically
7
- * different object with `applied: 1, orphanedIds: []` — silent wrong-meaning
8
- * success — because `authoredAgainst.gameVersion` is the MANIFEST's own
9
- * `version` (hand-set by whoever wrote `vgai.game.json`, e.g. every
10
- * `public/ingest/*` vendored game ships `"version": "0.1.0"` regardless of
11
- * which upstream commit it vendors — see `public/ingest/{tanks,racing-game,
12
- * simcity}/vgai.game.json`), never tied to the thing that actually changes on
13
- * a re-vendor: the `UPSTREAM.md` pin.
14
- *
15
- * This module is the pure, dependency-free half (parse text -> pin, or
16
- * `null`): NO file I/O here, so it is usable from any context (editor
17
- * save/apply-time hooks over a fetched `/UPSTREAM.md`, a future Node-side
18
- * CLI check, tests). READ-ONLY by construction — it has no writer; this
19
- * codebase never generates or edits an `UPSTREAM.md` (the anti-shim rule:
20
- * adapters never fabricate first-party data, and a game's own vendoring
21
- * provenance is exactly that).
22
- *
23
- * Format (established convention, not invented here — see every
24
- * `public/ingest/*\/UPSTREAM.md`'s `## Upstream` section, e.g.
25
- * `public/ingest/tanks/UPSTREAM.md`):
26
- *
27
- * ## Upstream
28
- *
29
- * - Repo: https://github.com/colyseus/realtime-tanks-demo
30
- * - Commit: **`6339493130b4b1d4d28f0f52d17b2fba738c7d47`**
31
- *
32
- * i.e. a Markdown bullet whose label is `Commit:` and whose value is a bold,
33
- * backtick-code full (or abbreviated) git SHA. Every vendored game in this
34
- * repo (`tanks`, `racing-game`, `simcity`) follows this exact shape.
35
- */
36
- /** Matches `- Commit: **\`<sha>\`**` (any amount of internal whitespace, case-insensitive hex). */
37
- const COMMIT_BULLET_RE = /-\s*Commit:\s*\*\*`([0-9a-fA-F]{7,40})`\*\*/;
38
- /**
39
- * Extract the pinned upstream commit hash from a vendored game's
40
- * `UPSTREAM.md` prose, or `null` if the file doesn't follow the convention
41
- * (or wasn't found — the caller decides what a missing file means; this
42
- * function only parses text it's handed). Never throws — an unparseable
43
- * document is an honest `null`, not an error (anti-shim: no guessing, no
44
- * fabricating a pin from a game folder that doesn't declare one, e.g. an
45
- * externally-authored non-vendored project opened via the CLI-on-folder
46
- * route).
47
- */
48
- export function extractUpstreamPin(markdown) {
49
- return COMMIT_BULLET_RE.exec(markdown)?.[1] ?? null;
50
- }
@@ -1,34 +0,0 @@
1
- /**
2
- * Capability-gate shortfall reporting (D10, T7.6) — the honesty half of the
3
- * play-control contract. `docs/CAPABILITY-TIERS.md` §(d) draws the `loop` axis
4
- * (`gated | self-driven`) as independent of capability tier: a `self-driven`
5
- * world (an ingested game driving its own rAF/ticker) pauses for real ONLY if
6
- * its adapter implements an explicit loop-gate capability
7
- * (`MountedWorldBase.setPaused`/`step`) — otherwise it "honestly reports so"
8
- * rather than a silent no-op (the D5/COMPOSITION-DESIGN.md §5.2 finding: gating
9
- * a raw-rAF loop from outside was demonstrated and REJECTED). The audio seam
10
- * (`SystemAdapters.AudioAdapter`) has the identical shape: absent or unable to
11
- * silence a world's audio on pause must report, not pretend.
12
- *
13
- * Pure compute + message-formatting, same split as `achieved-tier.ts`
14
- * (`packages/editor/src/achieved-tier.ts`) — callers own the actual
15
- * `console.warn`/`editorConsole.warn` call; this module never logs.
16
- */
17
- /** Greppable prefix for a loop-gate shortfall (pause requested, world's loop
18
- * could not actually be gated). */
19
- export declare const LOOP_GATE_PREFIX = "loop-gate";
20
- /** Greppable prefix for an audio-gate shortfall (pause requested, world's
21
- * audio could not actually be silenced). */
22
- export declare const AUDIO_GATE_PREFIX = "audio-gate";
23
- /** One shortfall instance: which world, and why the capability wasn't there. */
24
- export interface CapabilityGateReport {
25
- readonly worldId: string;
26
- readonly reason: string;
27
- }
28
- /** Format a loop-gate shortfall message (a `self-driven` world with no
29
- * working pause capability). */
30
- export declare function formatLoopGateMessage(report: CapabilityGateReport): string;
31
- /** Format an audio-gate shortfall message (a world with no `AudioAdapter`, or
32
- * whose adapter cannot actually silence it). */
33
- export declare function formatAudioGateMessage(report: CapabilityGateReport): string;
34
- //# sourceMappingURL=loop-gate-report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loop-gate-report.d.ts","sourceRoot":"","sources":["../../src/adapter/loop-gate-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;oCACoC;AACpC,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAE5C;6CAC6C;AAC7C,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAcD;iCACiC;AACjC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAE1E;AAED;iDACiD;AACjD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAE3E"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Capability-gate shortfall reporting (D10, T7.6) — the honesty half of the
3
- * play-control contract. `docs/CAPABILITY-TIERS.md` §(d) draws the `loop` axis
4
- * (`gated | self-driven`) as independent of capability tier: a `self-driven`
5
- * world (an ingested game driving its own rAF/ticker) pauses for real ONLY if
6
- * its adapter implements an explicit loop-gate capability
7
- * (`MountedWorldBase.setPaused`/`step`) — otherwise it "honestly reports so"
8
- * rather than a silent no-op (the D5/COMPOSITION-DESIGN.md §5.2 finding: gating
9
- * a raw-rAF loop from outside was demonstrated and REJECTED). The audio seam
10
- * (`SystemAdapters.AudioAdapter`) has the identical shape: absent or unable to
11
- * silence a world's audio on pause must report, not pretend.
12
- *
13
- * Pure compute + message-formatting, same split as `achieved-tier.ts`
14
- * (`packages/editor/src/achieved-tier.ts`) — callers own the actual
15
- * `console.warn`/`editorConsole.warn` call; this module never logs.
16
- */
17
- /** Greppable prefix for a loop-gate shortfall (pause requested, world's loop
18
- * could not actually be gated). */
19
- export const LOOP_GATE_PREFIX = 'loop-gate';
20
- /** Greppable prefix for an audio-gate shortfall (pause requested, world's
21
- * audio could not actually be silenced). */
22
- export const AUDIO_GATE_PREFIX = 'audio-gate';
23
- function formatGateMessage(prefix, capability, report) {
24
- return (`${prefix} world "${report.worldId}": pause requested but ${capability} cannot be gated ` +
25
- `(${report.reason}) — reporting honestly instead of silently no-op-ing ` +
26
- `(docs/CAPABILITY-TIERS.md §d). ${prefix} ${JSON.stringify(report)}`);
27
- }
28
- /** Format a loop-gate shortfall message (a `self-driven` world with no
29
- * working pause capability). */
30
- export function formatLoopGateMessage(report) {
31
- return formatGateMessage(LOOP_GATE_PREFIX, "this world's loop", report);
32
- }
33
- /** Format an audio-gate shortfall message (a world with no `AudioAdapter`, or
34
- * whose adapter cannot actually silence it). */
35
- export function formatAudioGateMessage(report) {
36
- return formatGateMessage(AUDIO_GATE_PREFIX, "this world's audio", report);
37
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * RapierPhysicsAdapter — the first-party `PhysicsAdapter` over the existing
3
- * `PhysicsRegistry` (Object3D ↔ Rapier body/collider). This is the generalized,
4
- * behind-the-interface form of the old `setEcsSyncTransform` teleport: it lets
5
- * the editor freeze a body, apply a gizmo edit, and resume — without the editor
6
- * knowing Rapier exists.
7
- */
8
- import type * as THREE from 'three';
9
- import type { PhysicsRegistry } from '../physics/physics-registry';
10
- import type { PhysicsAdapter } from './system-adapter';
11
- export declare function createRapierPhysicsAdapter(registry: PhysicsRegistry, debugMesh?: THREE.Object3D | null): PhysicsAdapter;
12
- //# sourceMappingURL=rapier-physics-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rapier-physics-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/rapier-physics-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,eAAe,EACzB,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAChC,cAAc,CAsChB"}
@@ -1,46 +0,0 @@
1
- /**
2
- * RapierPhysicsAdapter — the first-party `PhysicsAdapter` over the existing
3
- * `PhysicsRegistry` (Object3D ↔ Rapier body/collider). This is the generalized,
4
- * behind-the-interface form of the old `setEcsSyncTransform` teleport: it lets
5
- * the editor freeze a body, apply a gizmo edit, and resume — without the editor
6
- * knowing Rapier exists.
7
- */
8
- export function createRapierPhysicsAdapter(registry, debugMesh) {
9
- /** Saved body types while frozen, so unfreeze can restore them. */
10
- const frozen = new Map();
11
- return {
12
- ownerOf(o) {
13
- const body = registry.get(o)?.body;
14
- if (!body)
15
- return 'editor';
16
- // A fixed body never moves on its own → the editor owns its transform.
17
- return body.isFixed() ? 'editor' : 'physics';
18
- },
19
- freeze(o) {
20
- const body = registry.get(o)?.body;
21
- if (!body || frozen.has(body))
22
- return;
23
- frozen.set(body, body.bodyType());
24
- // Kinematic-position: the body stops simulating but tracks the pose we set.
25
- body.setBodyType(2 /* KinematicPositionBased */, true);
26
- },
27
- commit(o, t) {
28
- const body = registry.get(o)?.body;
29
- if (!body)
30
- return;
31
- body.setTranslation({ x: t.position[0], y: t.position[1], z: t.position[2] }, true);
32
- body.setRotation({ x: t.rotation[0], y: t.rotation[1], z: t.rotation[2], w: t.rotation[3] }, true);
33
- },
34
- unfreeze(o) {
35
- const body = registry.get(o)?.body;
36
- if (!body)
37
- return;
38
- const prev = frozen.get(body);
39
- if (prev !== undefined) {
40
- body.setBodyType(prev, true);
41
- frozen.delete(body);
42
- }
43
- },
44
- debugDraw: () => debugMesh ?? null,
45
- };
46
- }
@@ -1,206 +0,0 @@
1
- /**
2
- * System adapters — optional subsystem capability providers hung off a mounted
3
- * game (`MountedGame.systems`). Each is a thin capability boundary the editor can
4
- * coordinate with WITHOUT owning the implementation. The first-party
5
- * implementers wrap Rapier / Colyseus / the InputManager; an external game
6
- * supplies its own or none, and the editor degrades per `capabilities`.
7
- *
8
- * These are introspection/coordination boundaries, NOT re-implementations: e.g.
9
- * `NetworkingAdapter` is not a transport, and `PhysicsAdapter` does not replace
10
- * Rapier — it lets the editor ask "who owns this object" and "freeze it while I
11
- * edit it".
12
- */
13
- import type * as THREE from 'three';
14
- import type { ActionValueType, Vector2 } from '../input/input-types';
15
- import type { Transform, TransformOwner } from './transform';
16
- /**
17
- * Physics coordination so the editor can stably edit an object a simulation
18
- * would otherwise overwrite every frame: `freeze → apply → unfreeze`.
19
- */
20
- export interface PhysicsAdapter {
21
- /** Returns `'physics'` when a body drives this object, else another owner. */
22
- ownerOf(o: THREE.Object3D): TransformOwner;
23
- /** Pause the body driving `o` (kinematic / sleep / detach) for editing. */
24
- freeze(o: THREE.Object3D): void;
25
- /** Teleport the body to the edited pose (so the sim continues from there). */
26
- commit(o: THREE.Object3D, t: Transform): void;
27
- /** Resume simulation of `o`. */
28
- unfreeze(o: THREE.Object3D): void;
29
- /** Optional debug-draw object (collider wireframes). */
30
- debugDraw?(): THREE.Object3D | null;
31
- }
32
- export interface NetPeer {
33
- id: string;
34
- label?: string;
35
- }
36
- /** The live connection lifecycle, for the editor's network inspector. */
37
- export type ConnectionState = 'disconnected' | 'connecting' | 'connected' | 'error';
38
- /** Identity of the room the local peer is currently in, or `null` when not connected. */
39
- export interface RoomInfo {
40
- roomId: string;
41
- sessionId: string;
42
- roomName: string;
43
- }
44
- /** Lightweight replication counters for the editor's network inspector. */
45
- export interface ReplicationStats {
46
- /** Number of replicated entities currently known (e.g. players + NPCs). */
47
- entities: number;
48
- /** Approximate inbound replication activity (state changes observed per second). */
49
- msgsInPerSec: number;
50
- /** Approximate outbound message rate (client → server sends per second). */
51
- msgsOutPerSec: number;
52
- }
53
- export type Unsubscribe = () => void;
54
- /** INTROSPECTION over replication state — NOT a networking transport. */
55
- export interface NetworkingAdapter {
56
- peers(): NetPeer[];
57
- networkId(o: THREE.Object3D): string | null;
58
- authority(o: THREE.Object3D): 'local' | 'remote' | 'server';
59
- /** Remote/server-authoritative objects → inspect-only in the editor. */
60
- editable(o: THREE.Object3D): boolean;
61
- /** Current connection lifecycle state. */
62
- getConnectionState(): ConnectionState;
63
- /** The active room's identity, or `null` when not connected to a room. */
64
- getRoomInfo(): RoomInfo | null;
65
- /** Replication activity snapshot, for a live network inspector panel. */
66
- getReplicationStats(): ReplicationStats;
67
- /** Subscribe to changes in connection state / room / replication stats. */
68
- subscribe(cb: () => void): Unsubscribe;
69
- }
70
- /** One action's current value, tagged with its declared shape (F1 `ActionValueType`) so a
71
- * consumer (editor input inspector, conformance suite) can render/assert on the real typed
72
- * value instead of a lossy digital coercion. `value` is a `number` for `'digital'`
73
- * (1 = pressed, 0 = not) and `'scalar'`, or a `Vector2` for `'vector2'`/`'pointerDelta'`/
74
- * `'pointerPosition'` — narrow on `type` to know which. */
75
- export interface ActionValueSnapshot {
76
- type: ActionValueType;
77
- value: number | Vector2;
78
- }
79
- export interface InputAdapter {
80
- poll(): void;
81
- /** Every named action's current value, faithfully typed per its declared `ActionValueType`
82
- * (F1, spec §12) — digital reads as 1/0, scalar as its float, vector2/pointerDelta/
83
- * pointerPosition as `{x,y}`. Never coerces a non-digital action down to 0/1. */
84
- actions(): Readonly<Record<string, ActionValueSnapshot>>;
85
- }
86
- /** URL remap so an ingested game's relative asset paths resolve under the host. */
87
- export interface AssetAdapter {
88
- resolve(url: string): string;
89
- }
90
- export interface NavPoint {
91
- x: number;
92
- y: number;
93
- z: number;
94
- }
95
- /**
96
- * Inspect a game's navigation mesh: whether one is built, query a path, and get a
97
- * debug overlay. Coordination/introspection only — the editor doesn't own the build.
98
- */
99
- export interface NavigationAdapter {
100
- hasNavMesh(): boolean;
101
- findPath(start: NavPoint, end: NavPoint): NavPoint[];
102
- debugMesh(scene: THREE.Scene): THREE.Object3D | null;
103
- }
104
- /**
105
- * Silence/restore a world's own audio (D10, T7.6) — NOT a mixer/bus API. This
106
- * is the seam `Game.play.pause()` calls so a paused world's audio goes quiet
107
- * too (`docs/DECISIONS-PENDING.md` §D10: "an audio seam in `SystemAdapters` so
108
- * pause can silence game audio (howler et al.) or explicitly report it
109
- * cannot"). Absence on a world's `mounted.systems` means exactly that:
110
- * `Game.play.pause()` reports it loudly once per world rather than silently
111
- * leaving that world's audio playing under a "paused" game.
112
- */
113
- export interface AudioAdapter {
114
- /** `true` silences this world's audio; `false` restores it to whatever
115
- * level it was at before silencing (an implementer's own concern — the
116
- * first-party adapter restores its master-gain value, not a hardcoded 1). */
117
- setMuted(muted: boolean): void;
118
- /** Current muted state, for inspection (editor mute UI, proofs). */
119
- isMuted(): boolean;
120
- }
121
- /** One tick-stamped debug event (`ctx.debug.emit`, spec §3.3): `tick`/`simT`
122
- * are the engine's own counters AT EMISSION, so events and state reads
123
- * correlate frame-exactly across every door (in-page bridge, relay, panels).
124
- *
125
- * `seq` (run-4 friction #5 fix) is a registry-lifetime MONOTONIC counter,
126
- * strictly increasing by one per `emit()` call regardless of `tick` —
127
- * unlike `tick`, it is never shared by two events, which is what makes it
128
- * safe to fence on. A debug command handler runs BETWEEN ticks (its
129
- * emissions carry whatever `tick` is current at that instant, same as every
130
- * other emission at that instant would), so two DIFFERENT events — or an
131
- * event and a consumer's fence point — can legitimately share one `tick`;
132
- * `seq` never collides the same way, so "everything after what I've already
133
- * observed" is unambiguous. See `events(sinceTick, sinceSeq)` below. */
134
- export interface TickStampedEvent {
135
- tick: number;
136
- simT: number;
137
- event: string;
138
- detail?: unknown;
139
- seq: number;
140
- }
141
- /** One registered debug command's listing shape — `locus` is always present
142
- * (defaults to `'client'` when a command didn't declare one) so every
143
- * listing surface can print it without a fallback of its own. */
144
- export interface DebugCommandInfo {
145
- name: string;
146
- description?: string | undefined;
147
- /** JSON-Schema projection of the command's Zod args tuple, when declared. */
148
- argsJsonSchema?: unknown;
149
- locus: 'client' | 'server';
150
- }
151
- /**
152
- * The debug/synthetic-player seam (`docs/SYNTHETIC-PLAYER-SPEC.md` §3.1):
153
- * game-scoped introspection + actuation over whatever a game registers via
154
- * `ctx.debug` (`registerStateProvider`/`registerCommand`/`emit`). NOT a
155
- * gameplay API — this is the one seam the debug bridge, the editor's Debug
156
- * Console/State Watch panels, and `@vgai/probe` all read/drive through.
157
- */
158
- export interface DebugAdapter {
159
- providers(): {
160
- name: string;
161
- tier: 'observable' | 'assisted';
162
- }[];
163
- /** One provider's current value. Throws `DebugError` code
164
- * `STATE_PROVIDER_NOT_FOUND` (`data.registered`) for an unknown name. */
165
- state(name: string): unknown;
166
- /** One coherent snapshot of every registered provider — a throwing
167
- * provider contributes `{ __error: String(err) }` for its own key rather
168
- * than failing the whole snapshot. */
169
- stateAll(): Record<string, unknown>;
170
- commands(): DebugCommandInfo[];
171
- /** Validates `args` against the command's declared Zod tuple (when
172
- * present), then awaits the registered fn. Throws `DebugError` code
173
- * `DEBUG_COMMAND_NOT_REGISTERED` for an unknown name,
174
- * `DEBUG_COMMAND_ARGS_INVALID` for a validation failure, or
175
- * `DEBUG_COMMAND_FAILED` wrapping anything the command itself threw. */
176
- invoke(name: string, args: unknown[]): Promise<unknown>;
177
- /** The tick-stamped event ring (cap 500, drops oldest).
178
- *
179
- * - `sinceSeq` given (run-4 friction #5 fix): filters to `seq > sinceSeq`
180
- * — the unambiguous fence a consumer should use to mean "everything
181
- * emitted after what I've already observed" (see `TickStampedEvent.seq`'s
182
- * doc comment for why `tick` alone can't do this: a debug-command
183
- * emission and a consumer's fence point can share one tick, and the
184
- * old `tick > sinceTick` filter silently dropped same-tick events).
185
- * Takes precedence over `sinceTick` when both are given.
186
- * - `sinceTick` only: the ORIGINAL (pre-fix) filter, `tick > sinceTick` —
187
- * kept for back-compat callers that only ever had a tick to fence on;
188
- * still has the same-tick blind spot by construction, so a new caller
189
- * should prefer `sinceSeq`.
190
- * - Neither given: the whole ring. */
191
- events(sinceTick?: number, sinceSeq?: number): TickStampedEvent[];
192
- }
193
- /**
194
- * The set of optional subsystem providers a mounted game may expose. Absence of
195
- * a provider means "capability not supported" — the editor degrades gracefully.
196
- */
197
- export interface SystemAdapters {
198
- physics?: PhysicsAdapter;
199
- networking?: NetworkingAdapter;
200
- input?: InputAdapter;
201
- assets?: AssetAdapter;
202
- navigation?: NavigationAdapter;
203
- audio?: AudioAdapter;
204
- debug?: DebugAdapter;
205
- }
206
- //# sourceMappingURL=system-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/system-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * System adapters — optional subsystem capability providers hung off a mounted
3
- * game (`MountedGame.systems`). Each is a thin capability boundary the editor can
4
- * coordinate with WITHOUT owning the implementation. The first-party
5
- * implementers wrap Rapier / Colyseus / the InputManager; an external game
6
- * supplies its own or none, and the editor degrades per `capabilities`.
7
- *
8
- * These are introspection/coordination boundaries, NOT re-implementations: e.g.
9
- * `NetworkingAdapter` is not a transport, and `PhysicsAdapter` does not replace
10
- * Rapier — it lets the editor ask "who owns this object" and "freeze it while I
11
- * edit it".
12
- */
13
- export {};
@@ -1,18 +0,0 @@
1
- /**
2
- * The neutral transform value used across adapter interfaces. Position + scale
3
- * are xyz; rotation is a quaternion (xyzw) — matching `Object3D.quaternion`, so
4
- * adapters never have to agree on an Euler convention.
5
- */
6
- export interface Transform {
7
- position: [number, number, number];
8
- rotation: [number, number, number, number];
9
- scale: [number, number, number];
10
- }
11
- /**
12
- * Who currently owns an object's transform — i.e. what writes it each frame.
13
- * The editor uses this to decide whether a gizmo edit is durable (`editor`),
14
- * needs simulation coordination (`physics`), or is best-effort/inspect-only
15
- * (`script`/`network`/`external`).
16
- */
17
- export type TransformOwner = 'editor' | 'physics' | 'animation' | 'script' | 'network' | 'external';
18
- //# sourceMappingURL=transform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/adapter/transform.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,108 +0,0 @@
1
- /**
2
- * VgaiSceneGameAdapter — the FIRST-PARTY implementer of {@link GameAdapter}.
3
- *
4
- * This is where `.vscn` + `GameComponent` + Rapier live now: the host no longer
5
- * knows about any of them. `mount(host)` builds the full first-party runtime
6
- * (the body that used to live inline in `create-runtime.ts`) from a neutral
7
- * {@link HostContext}, runs the game's `setup`/scene load, and returns a
8
- * {@link MountedGame}. First-party content is now just one implementer of the
9
- * same interface an unmodified external game implements (Phase B).
10
- *
11
- * `GameSetupFn` / `GameContext` are imported ONLY here (and in the example
12
- * `fromSetup` wrappers) — never by the host. That confinement is the inversion.
13
- */
14
- import type { EffectComposer } from 'postprocessing';
15
- import * as THREE from 'three';
16
- import type { WorldFrameHooks } from '../runtime/game';
17
- import type { EditorPreview, GameContext, GameSetupFn } from '../runtime/types';
18
- import type { ComponentRegistry } from '../scene/component-registry';
19
- import { type SceneInstance } from '../scene/scene-loader';
20
- import type { SceneFile } from '../scene/scene-types';
21
- import type { GameAdapter, MountedGame } from './game-adapter';
22
- import type { HostContext } from './host-context';
23
- /** How a {@link VgaiSceneGameAdapter} builds its game (the former RuntimeConfig). */
24
- export interface VgaiSceneConfig {
25
- /** Game setup function — registers systems and loads scenes. */
26
- setup?: GameSetupFn | undefined;
27
- /** Editor context — passed to setup() when launched from the editor. */
28
- editorPreview?: EditorPreview | undefined;
29
- /** Path to a .vscn.json scene file. Loaded if no setup is provided. */
30
- scenePath?: string | undefined;
31
- /** In-memory scene data. Loaded if no setup and no scenePath is provided. */
32
- sceneData?: SceneFile | undefined;
33
- /**
34
- * Component name -> GameComponent class map, threaded into the scene
35
- * loader's `SceneLoadContext.componentRegistry` for both the `scenePath`
36
- * and `sceneData` branches (never for `setup` — a custom setup already
37
- * owns its own registry, e.g. `template/src/scripts/main.ts`'s generic
38
- * fallback). Without this, a scene's `components:` entries throw
39
- * ("Component ... not found in registry") or, pre-T7.2-closure, were
40
- * simply unreachable through these two config options at all (the T7.2
41
- * finding `docs/CLI-ON-FOLDER-DESIGN.md` §1D calls out — see
42
- * `packages/editor/src/adapter-resolver.ts`, the only production caller
43
- * that sets this today).
44
- */
45
- componentRegistry?: ComponentRegistry | undefined;
46
- /** Input map JSON path. Defaults to 'inputmaps/default.inputmap.json'. */
47
- inputMapPath?: string | undefined;
48
- /** URL prefix for relative asset paths. Defaults to '/'. */
49
- assetPrefix?: string | undefined;
50
- /** Stable adapter id (for registry/conformance). Defaults to 'vgai-scene'. */
51
- id?: string | undefined;
52
- }
53
- /**
54
- * The first-party `MountedGame`, with concrete extras the editor host uses for
55
- * first-party features (HMR, physics sync) that are NOT part of the neutral
56
- * interface. The generic host only touches the `MountedGame` surface.
57
- */
58
- export interface VgaiMountedGame extends MountedGame {
59
- /**
60
- * First-party brand (checklist item 1 / T7.3 lookahead): a plain `'ctx' in
61
- * mounted` structural check misfires once world2d's `MountedGame2D`
62
- * (`world2d/pixi-game-adapter.ts`) also has a `ctx` key — its `ctx` is a
63
- * `World2DContext`, not a `GameContext`, and has none of
64
- * `queryByComponent`/`physics`/`collisions`/`camera`. This literal-`true`
65
- * property is what `isFirstPartyMounted` (`runtime/game.ts`) actually
66
- * checks; `game.ts` reads it via a structural `{ firstParty?: unknown }`
67
- * probe so it never needs a value import of this module (the existing
68
- * import is type-only and must stay that way).
69
- */
70
- readonly firstParty: true;
71
- readonly ctx: GameContext;
72
- readonly composer: EffectComposer | null;
73
- /** Warm-restart: dispose the current game, re-run a new setup on the same ctx. */
74
- hotReload(newSetup: GameSetupFn, editorPreview?: EditorPreview): Promise<void>;
75
- /**
76
- * Phase-partitioned frame entry point (T7.1 slice 2,
77
- * `docs/GAME-ROOT-DESIGN.md` §4) — wired onto this world's `WorldInstance`
78
- * by `registerThreeWorld` (`create-runtime.ts`). `Game.runFrame` is
79
- * the CANONICAL driver going forward: it calls `frame.runPhase` once per
80
- * (phase, substep) for every world, then `frame.endFrame` once per
81
- * substep after all roots finish all phases. `update` (below) remains
82
- * the legacy/direct entry point to the exact same `SystemRunner` — direct
83
- * callers (editor HMR, adapter conformance tests) keep using it unchanged.
84
- */
85
- readonly frame: WorldFrameHooks;
86
- }
87
- /**
88
- * Wrap a first-party `setup` function as a {@link GameAdapter}. This is how every
89
- * first-party example becomes an implementer of the same interface an external
90
- * game implements — with no change to the setup's body.
91
- */
92
- export declare function fromSetup(id: string, setup: GameSetupFn): GameAdapter;
93
- export declare class VgaiSceneGameAdapter implements GameAdapter {
94
- private readonly config;
95
- readonly id: string;
96
- constructor(config?: VgaiSceneConfig);
97
- mount(host: HostContext): Promise<VgaiMountedGame>;
98
- }
99
- /** The pose `adoptSceneCamera` compares against to detect that a component
100
- * already framed the runtime camera during scene load (#139). Capture with
101
- * `captureCameraPose(camera)` immediately BEFORE `loadScene`. */
102
- export interface CameraPose {
103
- position: THREE.Vector3;
104
- quaternion: THREE.Quaternion;
105
- }
106
- export declare function captureCameraPose(camera: THREE.PerspectiveCamera): CameraPose;
107
- export declare function adoptSceneCamera(sceneInstance: SceneInstance, runtimeCamera: THREE.PerspectiveCamera, preLoadPose?: CameraPose): boolean;
108
- //# sourceMappingURL=vgai-scene-game-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vgai-scene-game-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/vgai-scene-game-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAe,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAgBtD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,wEAAwE;IACxE,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,8EAA8E;IAC9E,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,kFAAkF;IAClF,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACjC;AAeD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAErE;AAED,qBAAa,oBAAqB,YAAW,WAAW;IAE1C,OAAO,CAAC,QAAQ,CAAC,MAAM;IADnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBACS,MAAM,GAAE,eAAoB;IAKnD,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;CAupBzD;AAcD;;kEAEkE;AAClE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAE7E;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,KAAK,CAAC,iBAAiB,EACtC,WAAW,CAAC,EAAE,UAAU,GACvB,OAAO,CAsDT"}