@fps-games/editor 0.2.0-beta.2 → 0.2.0-beta.4

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 (652) hide show
  1. package/dist/agent-bridge/capabilities/assets.js.map +1 -1
  2. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
  3. package/dist/agent-bridge/capabilities/editor-state.js +26 -17
  4. package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
  5. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
  6. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
  7. package/dist/agent-bridge/capabilities/prefabs.js +61 -13
  8. package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
  9. package/dist/agent-bridge/capabilities/scene-objects.d.ts +1 -1
  10. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
  11. package/dist/agent-bridge/capabilities/scene-objects.js +110 -25
  12. package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
  13. package/dist/agent-bridge/capabilities/selection.d.ts.map +1 -1
  14. package/dist/agent-bridge/capabilities/selection.js +8 -5
  15. package/dist/agent-bridge/capabilities/selection.js.map +1 -1
  16. package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
  17. package/dist/agent-bridge/capabilities/shadows.js +11 -2
  18. package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
  19. package/dist/agent-bridge/capabilities/transform.d.ts.map +1 -1
  20. package/dist/agent-bridge/capabilities/transform.js +6 -4
  21. package/dist/agent-bridge/capabilities/transform.js.map +1 -1
  22. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  23. package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
  24. package/dist/agent-bridge/capabilities/viewport.js +79 -47
  25. package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
  26. package/dist/agent-bridge/capability-sources.js.map +1 -1
  27. package/dist/agent-bridge/diagnostics.js.map +1 -1
  28. package/dist/agent-bridge/index.js.map +1 -1
  29. package/dist/agent-bridge/register.js.map +1 -1
  30. package/dist/agent-bridge/shared.d.ts +8 -3
  31. package/dist/agent-bridge/shared.d.ts.map +1 -1
  32. package/dist/agent-bridge/shared.js +32 -0
  33. package/dist/agent-bridge/shared.js.map +1 -1
  34. package/dist/agent-bridge/source-types.js.map +1 -1
  35. package/dist/authoring-apply.js.map +1 -1
  36. package/dist/build-info.json +48 -48
  37. package/dist/editor-plugin-agent-capabilities.js.map +1 -1
  38. package/dist/editor-plugin-hierarchy-command.js.map +1 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
  41. package/dist/local-editor-agent-actions.d.ts.map +1 -1
  42. package/dist/local-editor-agent-actions.js +9 -5
  43. package/dist/local-editor-agent-actions.js.map +1 -1
  44. package/dist/local-editor-agent-bridge-transport.js.map +1 -1
  45. package/dist/local-editor-agent-bridge.js.map +1 -1
  46. package/dist/local-editor-agent-context.js.map +1 -1
  47. package/dist/local-editor-harness.d.ts +57 -1
  48. package/dist/local-editor-harness.d.ts.map +1 -1
  49. package/dist/local-editor-harness.js +393 -41
  50. package/dist/local-editor-harness.js.map +1 -1
  51. package/dist/local-editor-marker-graph.js.map +1 -1
  52. package/dist/local-editor-performance-stats.js.map +1 -1
  53. package/dist/local-editor-plugin-inspector.js.map +1 -1
  54. package/dist/local-editor-plugin-panel.js.map +1 -1
  55. package/dist/local-editor-scene-render-scheduler.js.map +1 -1
  56. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  57. package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
  58. package/dist/playable-babylon-facade.js.map +1 -1
  59. package/dist/playable-babylon-outline-inspector.js.map +1 -1
  60. package/dist/playable-babylon-outline-runtime.js.map +1 -1
  61. package/dist/playable-babylon-rendering.js.map +1 -1
  62. package/dist/playable-local-editor-host.d.ts +36 -0
  63. package/dist/playable-local-editor-host.d.ts.map +1 -1
  64. package/dist/playable-local-editor-host.js.map +1 -1
  65. package/dist/playable-product-local-editor.js.map +1 -1
  66. package/dist/playable-product-projection-preview.js.map +1 -1
  67. package/dist/playable-product-rendering.js.map +1 -1
  68. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  69. package/dist/playable-product-scene-capabilities.js +49 -2
  70. package/dist/playable-product-scene-capabilities.js.map +1 -1
  71. package/dist/playable-runtime-babylon.js.map +1 -1
  72. package/dist/playable-runtime.js.map +1 -1
  73. package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
  74. package/dist/playable-sdk-vite.js.map +1 -1
  75. package/dist/playable-sdk.js.map +1 -1
  76. package/dist/playable-standard-project.js.map +1 -1
  77. package/dist/static-shadow-cpu-worker.js.map +1 -1
  78. package/dist/vite.js.map +1 -1
  79. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
  80. package/node_modules/@fps-games/babylon-renderer/dist/environment/index.js.map +1 -1
  81. package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
  82. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
  83. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  84. package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
  85. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
  86. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
  87. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
  88. package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
  89. package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
  90. package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
  91. package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
  92. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  93. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  94. package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
  95. package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
  96. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
  97. package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
  98. package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
  99. package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
  100. package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
  101. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
  102. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
  103. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
  104. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
  105. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
  106. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
  107. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
  108. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
  109. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
  110. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
  111. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
  112. package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
  113. package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
  114. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  115. package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
  116. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
  117. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
  118. package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
  119. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  120. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
  121. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
  122. package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
  123. package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
  124. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
  125. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
  126. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
  127. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
  128. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  129. package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
  130. package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
  131. package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
  132. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
  133. package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
  134. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  135. package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
  136. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
  137. package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
  138. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  139. package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
  140. package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
  141. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  142. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
  143. package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
  144. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
  145. package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -1
  146. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  147. package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
  148. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  149. package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -1
  150. package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
  151. package/node_modules/@fps-games/editor-babylon/package.json +5 -5
  152. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
  153. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  154. package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
  155. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  156. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
  157. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
  158. package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
  159. package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
  160. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  161. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  162. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
  163. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
  164. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
  165. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
  166. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
  167. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +2 -1
  168. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  169. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +260 -94
  170. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  171. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
  172. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +7 -0
  173. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +1 -0
  174. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +186 -0
  175. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +1 -0
  176. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +2 -2
  177. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +1 -1
  178. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +14 -8
  179. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
  180. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -1
  181. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +23 -7
  182. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
  183. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  184. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  185. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  186. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +6 -0
  187. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  188. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts +3 -0
  189. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  190. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +60 -13
  191. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  192. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
  193. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
  194. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  195. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-plugin-panel.js.map +1 -1
  196. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  197. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  198. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  199. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  200. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +24 -0
  201. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -0
  202. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +69 -0
  203. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -0
  204. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
  205. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
  206. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
  207. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
  208. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  209. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
  210. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +58 -14
  211. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  212. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  213. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  214. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +1 -1
  215. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  216. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +196 -11
  217. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  218. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
  219. package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
  220. package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
  221. package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
  222. package/node_modules/@fps-games/editor-browser/package.json +4 -4
  223. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
  224. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
  225. package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
  226. package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
  227. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  228. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +9 -1
  229. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  230. package/node_modules/@fps-games/editor-core/dist/editor-session.js +18 -0
  231. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  232. package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
  233. package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
  234. package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
  235. package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
  236. package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
  237. package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
  238. package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
  239. package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
  240. package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
  241. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  242. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  243. package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
  244. package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
  245. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  246. package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
  247. package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
  248. package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
  249. package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
  250. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
  251. package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
  252. package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -1
  253. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
  254. package/node_modules/@fps-games/editor-core/package.json +6 -6
  255. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
  256. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  257. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +13 -1
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +58 -23
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.js.map +1 -1
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/identity.js.map +1 -1
  286. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
  287. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -1
  288. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
  289. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/runtime-scene.js.map +1 -1
  290. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
  291. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
  292. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
  293. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
  294. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
  295. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
  296. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
  297. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
  298. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
  299. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
  300. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
  301. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
  302. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
  303. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
  304. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
  305. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
  306. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
  307. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
  308. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
  309. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
  310. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -1
  311. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
  312. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/index.js.map +1 -1
  313. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
  314. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
  315. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
  316. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
  317. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
  318. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
  319. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
  320. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
  321. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
  322. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
  323. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
  324. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
  325. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
  326. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
  327. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
  328. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
  329. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
  330. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
  331. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
  332. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
  333. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
  334. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
  335. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
  336. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
  337. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
  338. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
  339. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
  340. package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
  341. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  342. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
  343. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
  344. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
  345. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/resolver.js.map +1 -1
  346. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
  347. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/types.js.map +1 -1
  348. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
  349. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  350. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
  351. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
  352. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  353. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/format.js.map +1 -1
  354. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
  355. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-fields.js.map +1 -1
  356. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
  357. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
  358. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
  359. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
  360. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
  361. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
  362. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
  363. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
  364. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
  365. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
  366. package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
  367. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
  368. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
  369. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
  370. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
  371. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
  372. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
  373. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
  374. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
  375. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
  376. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
  377. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
  378. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
  379. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
  380. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
  381. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  382. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
  383. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  384. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +5 -0
  385. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  386. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  387. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
  388. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  389. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  390. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  391. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
  392. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
  393. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
  394. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
  395. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
  396. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
  397. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  398. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
  399. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
  400. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
  401. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
  402. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
  403. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  404. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
  405. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
  406. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
  407. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
  408. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
  409. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
  410. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
  411. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
  412. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
  413. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
  414. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
  415. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
  416. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
  417. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
  418. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
  419. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
  420. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
  421. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
  422. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
  423. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
  424. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
  425. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -1
  426. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  427. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
  428. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -1
  429. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  430. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -1
  431. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
  432. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.js.map +1 -1
  433. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
  434. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  435. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -1
  436. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  437. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/index.js.map +1 -1
  438. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
  439. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
  440. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
  441. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
  442. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
  443. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
  444. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
  445. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
  446. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
  447. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
  448. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  449. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
  450. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
  451. package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
  452. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
  453. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
  454. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  455. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
  456. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  457. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
  458. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  459. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
  460. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  461. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-asset-actions.js.map +1 -1
  462. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  463. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
  464. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
  465. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  466. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/route.js.map +1 -1
  467. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  468. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
  469. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
  470. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
  471. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  472. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
  473. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +13 -1
  474. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  475. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
  476. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
  477. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
  478. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
  479. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  480. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
  481. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  482. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
  483. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  484. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  485. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
  486. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
  487. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
  488. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  489. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
  490. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
  491. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
  492. package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
  493. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
  494. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
  495. package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
  496. package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
  497. package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
  498. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  499. package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
  500. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
  501. package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
  502. package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
  503. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
  504. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
  505. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
  506. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
  507. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
  508. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
  509. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
  510. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +1 -1
  511. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
  512. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  513. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/report.js.map +1 -1
  514. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
  515. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -1
  516. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
  517. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
  518. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
  519. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
  520. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
  521. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
  522. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
  523. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  524. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  525. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  526. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts +3 -1
  527. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
  528. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
  529. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
  530. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
  531. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
  532. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  533. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
  534. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  535. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
  536. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  537. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  538. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
  539. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
  540. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +2 -11
  541. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
  542. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
  543. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  544. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +84 -6
  545. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  546. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts +2 -1
  547. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
  548. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
  549. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
  550. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
  551. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
  552. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
  553. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
  554. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
  555. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  556. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  557. package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
  558. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  559. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
  560. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
  561. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  562. package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
  563. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  564. package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
  565. package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
  566. package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
  567. package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
  568. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
  569. package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
  570. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  571. package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
  572. package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
  573. package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
  574. package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
  575. package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
  576. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts +2 -0
  577. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
  578. package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
  579. package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
  580. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  581. package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
  582. package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
  583. package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
  584. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  585. package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
  586. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
  587. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
  588. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
  589. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
  590. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
  591. package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
  592. package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
  593. package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
  594. package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
  595. package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
  596. package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
  597. package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
  598. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  599. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
  600. package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
  601. package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
  602. package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
  603. package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
  604. package/node_modules/@fps-games/playable-runtime/dist/tokens.js.map +1 -1
  605. package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
  606. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  607. package/node_modules/@fps-games/playable-runtime-data/dist/index.js.map +1 -1
  608. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  609. package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
  610. package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
  611. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  612. package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
  613. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  614. package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
  615. package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
  616. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  617. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  618. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  619. package/node_modules/@fps-games/plugin-assets/package.json +5 -5
  620. package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
  621. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  622. package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
  623. package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
  624. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  625. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  626. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  627. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  628. package/node_modules/@fps-games/plugin-materials/dist/reference.js.map +1 -1
  629. package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
  630. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  631. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  632. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  633. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  634. package/node_modules/@fps-games/plugin-rendering/dist/reference.js.map +1 -1
  635. package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
  636. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  637. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  638. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  639. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  640. package/node_modules/@fps-games/plugin-scene/dist/reference.js.map +1 -1
  641. package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
  642. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  643. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  644. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  645. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  646. package/node_modules/@fps-games/plugin-shadows/dist/reference.js.map +1 -1
  647. package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
  648. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  649. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  650. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  651. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  652. package/package.json +27 -19
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAU,CAAC;AAE9D,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW,EAAE,mBAAmB;CACxB,CAAC"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAU,CAAC;AAE9D,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,WAAW,EAAE,mBAAmB;CACxB,CAAC","sourcesContent":["import type {\n ResolvedSpatialMarkerGraph,\n ResolvedSpatialMarkerNode,\n SpatialMarkerTypeDefinition,\n SpatialRelation,\n SpatialRelationTypeDefinition,\n} from './marker-graph';\n\nexport const EDITOR_AGENT_CONTEXT_SCHEMA_VERSION = 1 as const;\n\nexport const EDITOR_AGENT_EVENT_NAME = {\n CONTEXT_ADD: 'agent.context.add',\n} as const;\n\nexport type EditorAgentEventName = typeof EDITOR_AGENT_EVENT_NAME[keyof typeof EDITOR_AGENT_EVENT_NAME];\n\nexport type EditorAgentJsonPrimitive = string | number | boolean | null;\nexport type EditorAgentJsonValue = EditorAgentJsonPrimitive | EditorAgentJsonObject | EditorAgentJsonValue[];\nexport interface EditorAgentJsonObject { [key: string]: EditorAgentJsonValue | undefined }\n\nexport interface EditorAgentVec3 {\n x: number;\n y: number;\n z: number;\n}\n\nexport interface EditorAgentTransform {\n position?: EditorAgentVec3;\n rotation?: EditorAgentVec3;\n scale?: EditorAgentVec3;\n}\n\nexport interface EditorAgentBounds {\n min?: EditorAgentVec3;\n max?: EditorAgentVec3;\n size?: EditorAgentVec3;\n center?: EditorAgentVec3;\n}\n\nexport interface EditorAgentSource {\n editor: 'fps-game-editor';\n surface: 'hierarchy' | 'selection' | 'region-binding' | 'marker' | 'marker-graph';\n projectId?: string;\n projectName?: string;\n}\n\nexport interface EditorAgentBindingCandidate {\n kind: string;\n id?: string;\n label?: string;\n path?: string;\n}\n\nexport interface EditorAgentSourceRef {\n kind: string;\n path?: string;\n jsonPath?: string;\n section?: string;\n label?: string;\n}\n\nexport interface EditorAgentRelationshipHint {\n type: string;\n description?: string;\n primaryObjectId?: string;\n supportingObjectIds?: string[];\n}\n\nexport interface EditorAgentContextSemantics {\n domainKind?: string;\n domainRole?: string;\n functionLabel?: string;\n functionDescription?: string;\n domainHints?: string[];\n bindingCandidates?: EditorAgentBindingCandidate[];\n sourceRefs?: EditorAgentSourceRef[];\n relationshipHints?: EditorAgentRelationshipHint[];\n metadata?: EditorAgentJsonObject;\n}\n\nexport interface EditorAgentContextBase extends EditorAgentContextSemantics {\n schemaVersion: typeof EDITOR_AGENT_CONTEXT_SCHEMA_VERSION;\n id: string;\n kind: EditorAgentContextKind;\n label: string;\n summary: string;\n createdAt: number;\n source: EditorAgentSource;\n}\n\nexport interface EditorAgentSceneObject {\n id: string;\n name?: string;\n label?: string;\n hierarchyPath?: string;\n objectKind?: string;\n transform?: EditorAgentTransform;\n bounds?: EditorAgentBounds;\n assetRefs?: string[];\n}\n\nexport interface EditorAgentRegion {\n id: string;\n label: string;\n bounds?: EditorAgentBounds;\n objectIds: string[];\n description?: string;\n}\n\nexport interface EditorAgentRegionRelationship {\n type: string;\n description?: string;\n}\n\nexport interface EditorAgentSceneObjectContext extends EditorAgentContextBase {\n kind: 'scene-object';\n object: EditorAgentSceneObject;\n}\n\nexport interface EditorAgentSceneObjectSetContext extends EditorAgentContextBase {\n kind: 'scene-object-set';\n objectIds: string[];\n objects: EditorAgentSceneObject[];\n}\n\nexport interface EditorAgentRegionBindingContext extends EditorAgentContextBase {\n kind: 'region-binding';\n region: EditorAgentRegion;\n relationship: EditorAgentRegionRelationship;\n}\n\nexport interface EditorAgentSpatialMarkerContext extends EditorAgentContextBase {\n kind: 'spatial-marker';\n marker: ResolvedSpatialMarkerNode;\n directRelations: SpatialRelation[];\n relatedMarkerIds?: string[];\n relatedObjectIds?: string[];\n markerTypes?: SpatialMarkerTypeDefinition[];\n relationTypes?: SpatialRelationTypeDefinition[];\n relationNeighborhood?: EditorAgentSpatialRelationNeighborhood;\n}\n\nexport interface EditorAgentSpatialRelationGraphContext extends EditorAgentContextBase {\n kind: 'spatial-relation-graph';\n graph: ResolvedSpatialMarkerGraph;\n focusMarkerIds?: string[];\n focusObjectIds?: string[];\n markerTypes?: SpatialMarkerTypeDefinition[];\n relationTypes?: SpatialRelationTypeDefinition[];\n graphIssues?: EditorAgentSpatialGraphIssue[];\n focusSummaries?: EditorAgentSpatialRelationSummary[];\n}\n\nexport interface EditorAgentSpatialRelationEndpointSummary {\n kind: string;\n id: string;\n label?: string;\n}\n\nexport interface EditorAgentSpatialRelationSummary {\n relationId?: string;\n relationType?: string;\n relationLabel?: string;\n directed?: boolean;\n from?: EditorAgentSpatialRelationEndpointSummary;\n to?: EditorAgentSpatialRelationEndpointSummary;\n summary: string;\n count?: number;\n}\n\nexport interface EditorAgentSpatialGraphIssue {\n code: string;\n severity: 'warning' | 'error';\n message: string;\n relationId?: string;\n markerId?: string;\n endpoint?: EditorAgentSpatialRelationEndpointSummary;\n}\n\nexport interface EditorAgentSpatialRelationNeighborhood {\n markerId: string;\n markerLabel?: string;\n oneHopRelations: SpatialRelation[];\n relatedMarkerIds?: string[];\n relatedObjectIds?: string[];\n twoHopSummaries?: EditorAgentSpatialRelationSummary[];\n localSummaries?: EditorAgentSpatialRelationSummary[];\n graphIssues?: EditorAgentSpatialGraphIssue[];\n}\n\nexport type EditorAgentContext =\n | EditorAgentSceneObjectContext\n | EditorAgentSceneObjectSetContext\n | EditorAgentRegionBindingContext\n | EditorAgentSpatialMarkerContext\n | EditorAgentSpatialRelationGraphContext;\n\nexport type EditorAgentContextKind =\n | 'scene-object'\n | 'scene-object-set'\n | 'region-binding'\n | 'spatial-marker'\n | 'spatial-relation-graph';\n\nexport interface EditorAgentContextAddEvent {\n name: typeof EDITOR_AGENT_EVENT_NAME.CONTEXT_ADD;\n context: EditorAgentContext;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared protocol surface for fps-game-editor packages and project adapters.\n *\n * This package intentionally contains no project schema, Babylon import, or\n * Forge Play implementation dependency. Runtime packages may depend on these\n * contracts; game projects provide adapters for project-specific semantics.\n */\n\nexport * from './agent';\nexport * from './agent-bridge';\nexport * from './agent-trace';\nexport * from './marker-graph';\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue = JsonPrimitive | JsonObject | JsonValue[];\nexport interface JsonObject { [key: string]: JsonValue | undefined }\n\nexport interface Vec3 {\n x: number;\n y: number;\n z: number;\n}\n\nexport type Position3D = Vec3;\nexport type Scale3D = Vec3;\nexport type Rotation3D = Vec3;\n\nexport interface ColorRGB {\n r: number;\n g: number;\n b: number;\n}\n\nexport type PersistentBinding = {\n kind: 'sceneNode';\n nodeId: string;\n rootNode: unknown;\n};\n\nexport type PersistentBindingSnapshot = {\n kind: 'sceneNode';\n nodeId: string;\n};\n\nexport type RuntimeProp = 'position' | 'rotation' | 'scaling';\n\nexport type MaterialRuntimeKind = 'pbr' | 'standard' | 'unknown';\n\nexport interface ArtistMaterialTextureRef {\n url?: string;\n textureAssetId?: string;\n}\n\nexport type ArtistMaterialAlphaMode = 'opaque' | 'mask' | 'blend';\nexport type ArtistMaterialLightingModel = 'lit' | 'unlit';\n\nexport interface ArtistBaseColorProfile {\n color?: ColorRGB;\n texture?: ArtistMaterialTextureRef | null;\n brightness?: number;\n saturation?: number;\n contrast?: number;\n hue?: number;\n}\n\nexport interface ArtistNormalProfile {\n texture?: ArtistMaterialTextureRef | null;\n strength?: number;\n}\n\nexport interface ArtistMetallicRoughnessProfile {\n texture?: ArtistMaterialTextureRef | null;\n}\n\nexport interface ArtistOcclusionProfile {\n texture?: ArtistMaterialTextureRef | null;\n strength?: number;\n}\n\nexport interface ArtistEmissionProfile {\n color?: ColorRGB;\n intensity?: number;\n texture?: ArtistMaterialTextureRef | null;\n maskTexture?: ArtistMaterialTextureRef | null;\n}\n\nexport interface ArtistAlphaProfile {\n mode?: ArtistMaterialAlphaMode;\n opacity?: number;\n cutoff?: number;\n texture?: ArtistMaterialTextureRef | null;\n}\n\nexport interface ArtistMaterialProfile {\n lightingModel?: ArtistMaterialLightingModel;\n baseColor?: ArtistBaseColorProfile;\n normal?: ArtistNormalProfile;\n metallic?: number;\n roughness?: number;\n metallicRoughness?: ArtistMetallicRoughnessProfile;\n occlusion?: ArtistOcclusionProfile;\n emission?: ArtistEmissionProfile;\n alpha?: ArtistAlphaProfile;\n}\n\nexport type SceneMaterialAssetKind = 'pbr' | 'standard';\nexport type SceneMaterialAssetSystemPreset = 'default-pbr' | 'default-standard';\n\nexport interface SceneMaterialAssetSystemConfig {\n readonly?: boolean;\n preset?: SceneMaterialAssetSystemPreset;\n}\n\nexport type SceneMaterialAssetOriginType = 'imported' | 'created' | 'duplicated' | 'preset';\n\nexport interface SceneMaterialAssetOriginConfig {\n type: SceneMaterialAssetOriginType;\n sourceAssetGuid?: string;\n sourceAssetId?: string;\n sourceSlotId?: string;\n sourceMaterialIndex?: number;\n sourceMaterialName?: string;\n sourceMaterialAssetId?: string;\n}\n\nexport interface SceneMaterialAssetConfig {\n id: string;\n guid?: string;\n name: string;\n profile: ArtistMaterialProfile;\n materialKind?: SceneMaterialAssetKind;\n system?: SceneMaterialAssetSystemConfig;\n origin?: SceneMaterialAssetOriginConfig;\n}\n\nexport interface SceneNodeMaterialBindingConfig {\n materialAssetId?: string;\n override?: ArtistMaterialProfile;\n}\n\nexport interface MaterialSlotSourceDescriptor {\n slotId: string;\n ownerNodePath: string;\n label?: string;\n nodeIndex?: number;\n nodeIndexPath?: number[];\n meshIndex?: number;\n primitiveIndex?: number;\n sourceMaterialIndex?: number;\n sourceMaterialIndices?: number[];\n materialName?: string;\n materialNames?: string[];\n triangleCount?: number;\n boundingBox?: {\n min?: [number, number, number];\n max?: [number, number, number];\n };\n}\n\nexport interface ArtistMaterialSlotBinding {\n slot: MaterialSlotSourceDescriptor;\n profile: ArtistMaterialProfile;\n materialKind?: SceneMaterialAssetKind;\n}\n\nexport type ArtistMaterialProp =\n | 'material.lightingModel'\n | 'material.baseColor.color'\n | 'material.baseColor.texture.url'\n | 'material.baseColor.texture.textureAssetId'\n | 'material.baseColor.brightness'\n | 'material.baseColor.saturation'\n | 'material.baseColor.contrast'\n | 'material.baseColor.hue'\n | 'material.normal.texture.url'\n | 'material.normal.texture.textureAssetId'\n | 'material.normal.strength'\n | 'material.emission.color'\n | 'material.emission.intensity'\n | 'material.emission.texture.url'\n | 'material.emission.texture.textureAssetId'\n | 'material.emission.maskTexture.url'\n | 'material.emission.maskTexture.textureAssetId'\n | 'material.metallic'\n | 'material.roughness'\n | 'material.metallicRoughness.texture.url'\n | 'material.metallicRoughness.texture.textureAssetId'\n | 'material.occlusion.texture.url'\n | 'material.occlusion.texture.textureAssetId'\n | 'material.occlusion.strength'\n | 'material.alpha.mode'\n | 'material.alpha.opacity'\n | 'material.alpha.cutoff'\n | 'material.alpha.texture.url'\n | 'material.alpha.texture.textureAssetId';\n\nexport type MaterialProp =\n | 'material.albedoColor'\n | 'material.emissiveColor'\n | 'material.metallic'\n | 'material.roughness'\n | 'material.alpha'\n | 'material.alphaCutOff'\n | 'material.transparencyMode'\n | 'material.backFaceCulling'\n | 'material.albedoTexture.url'\n | 'material.normalTexture.url'\n | 'material.normalTexture.level'\n | 'material.metallicTexture.url'\n | 'material.occlusionTexture.url'\n | 'material.emissiveTexture.url'\n | 'material.opacityTexture.url'\n | 'material.pbr.albedoColor'\n | 'material.pbr.baseWeight'\n | 'material.pbr.reflectivityColor'\n | 'material.pbr.microSurface'\n | 'material.pbr.emissiveColor'\n | 'material.pbr.emissiveIntensity'\n | 'material.pbr.ambientColor'\n | 'material.pbr.lightFalloff'\n | 'material.standard.diffuseColor'\n | 'material.standard.specularColor'\n | 'material.standard.specularPower'\n | 'material.standard.emissiveColor'\n | 'material.standard.ambientColor'\n | 'material.standard.useSpecularOverAlpha';\n\nexport type MaterialValue = ColorRGB | number | boolean | string | null;\n\nexport interface ResolveArtistMaterialProfileInput {\n originalProfile?: ArtistMaterialProfile | null;\n materialAssets?: readonly SceneMaterialAssetConfig[] | null;\n binding?: SceneNodeMaterialBindingConfig | null;\n}\n\nexport interface ResolveArtistMaterialProfileResult {\n profile: ArtistMaterialProfile;\n materialAsset: SceneMaterialAssetConfig | null;\n missingMaterialAssetId?: string;\n}\n\nfunction isFiniteNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction normalizeColorRGB(value: ColorRGB | undefined): ColorRGB | undefined {\n if (!value || !isFiniteNumber(value.r) || !isFiniteNumber(value.g) || !isFiniteNumber(value.b)) return undefined;\n return { r: value.r, g: value.g, b: value.b };\n}\n\nfunction normalizeMaterialTextureRef(value: ArtistMaterialTextureRef | null | undefined): ArtistMaterialTextureRef | null | undefined {\n if (value === null) return null;\n if (!value) return undefined;\n const url = typeof value.url === 'string' ? value.url.trim() : '';\n const textureAssetId = typeof value.textureAssetId === 'string' ? value.textureAssetId.trim() : '';\n if (!url && !textureAssetId) return undefined;\n return {\n ...(url ? { url } : {}),\n ...(textureAssetId ? { textureAssetId } : {}),\n };\n}\n\nfunction normalizeArtistMaterialAlphaMode(value: unknown): ArtistMaterialAlphaMode | undefined {\n return value === 'opaque' || value === 'mask' || value === 'blend' ? value : undefined;\n}\n\nfunction normalizeArtistMaterialLightingModel(value: unknown): ArtistMaterialLightingModel | undefined {\n return value === 'lit' || value === 'unlit' ? value : undefined;\n}\n\nexport function normalizeSceneMaterialAssetKind(value: unknown): SceneMaterialAssetKind | undefined {\n return value === 'pbr' || value === 'standard' ? value : undefined;\n}\n\nexport function resolveSceneMaterialAssetKind(\n materialAsset: Pick<SceneMaterialAssetConfig, 'materialKind' | 'system'> | null | undefined,\n): SceneMaterialAssetKind {\n return normalizeSceneMaterialAssetKind(materialAsset?.materialKind)\n ?? inferSceneMaterialAssetKindFromSystemPreset(materialAsset?.system?.preset)\n ?? 'pbr';\n}\n\nexport function normalizeSceneMaterialAssetSystemConfig(\n value: SceneMaterialAssetSystemConfig | null | undefined,\n): SceneMaterialAssetSystemConfig | undefined {\n if (!value || typeof value !== 'object') return undefined;\n const preset = value.preset === 'default-pbr' || value.preset === 'default-standard'\n ? value.preset\n : undefined;\n const readonly = value.readonly === true;\n if (!preset && !readonly) return undefined;\n return {\n ...(readonly ? { readonly } : {}),\n ...(preset ? { preset } : {}),\n };\n}\n\nexport function normalizeSceneMaterialAssetOriginConfig(\n value: SceneMaterialAssetOriginConfig | null | undefined,\n): SceneMaterialAssetOriginConfig | undefined {\n if (!value || typeof value !== 'object') return undefined;\n const type = value.type === 'imported'\n || value.type === 'created'\n || value.type === 'duplicated'\n || value.type === 'preset'\n ? value.type\n : undefined;\n if (!type) return undefined;\n const sourceAssetGuid = typeof value.sourceAssetGuid === 'string' ? value.sourceAssetGuid.trim() : '';\n const sourceAssetId = typeof value.sourceAssetId === 'string' ? value.sourceAssetId.trim() : '';\n const sourceSlotId = typeof value.sourceSlotId === 'string' ? value.sourceSlotId.trim() : '';\n const sourceMaterialName = typeof value.sourceMaterialName === 'string' ? value.sourceMaterialName.trim() : '';\n const sourceMaterialAssetId = typeof value.sourceMaterialAssetId === 'string' ? value.sourceMaterialAssetId.trim() : '';\n return {\n type,\n ...(sourceAssetGuid ? { sourceAssetGuid } : {}),\n ...(sourceAssetId ? { sourceAssetId } : {}),\n ...(sourceSlotId ? { sourceSlotId } : {}),\n ...(Number.isInteger(value.sourceMaterialIndex) ? { sourceMaterialIndex: value.sourceMaterialIndex } : {}),\n ...(sourceMaterialName ? { sourceMaterialName } : {}),\n ...(sourceMaterialAssetId ? { sourceMaterialAssetId } : {}),\n };\n}\n\nexport function isReadonlySceneMaterialAsset(\n materialAsset: Pick<SceneMaterialAssetConfig, 'system'> | null | undefined,\n): boolean {\n return materialAsset?.system?.readonly === true;\n}\n\nfunction inferSceneMaterialAssetKindFromSystemPreset(\n preset: unknown,\n): SceneMaterialAssetKind | undefined {\n if (preset === 'default-pbr') return 'pbr';\n if (preset === 'default-standard') return 'standard';\n return undefined;\n}\n\nexport function normalizeArtistMaterialProfile(profile: ArtistMaterialProfile | null | undefined): ArtistMaterialProfile | undefined {\n if (!profile || typeof profile !== 'object') return undefined;\n\n const normalized: ArtistMaterialProfile = {};\n const lightingModel = normalizeArtistMaterialLightingModel(profile.lightingModel);\n if (lightingModel) normalized.lightingModel = lightingModel;\n const baseColor: ArtistBaseColorProfile = {};\n const color = normalizeColorRGB(profile.baseColor?.color);\n if (color) baseColor.color = color;\n const texture = normalizeMaterialTextureRef(profile.baseColor?.texture);\n if (texture !== undefined) baseColor.texture = texture;\n if (isFiniteNumber(profile.baseColor?.brightness)) baseColor.brightness = profile.baseColor.brightness;\n if (isFiniteNumber(profile.baseColor?.saturation)) baseColor.saturation = profile.baseColor.saturation;\n if (isFiniteNumber(profile.baseColor?.contrast)) baseColor.contrast = profile.baseColor.contrast;\n if (isFiniteNumber(profile.baseColor?.hue)) baseColor.hue = profile.baseColor.hue;\n if (Object.keys(baseColor).length > 0) normalized.baseColor = baseColor;\n\n const normal: ArtistNormalProfile = {};\n const normalTexture = normalizeMaterialTextureRef(profile.normal?.texture);\n if (normalTexture !== undefined) normal.texture = normalTexture;\n if (isFiniteNumber(profile.normal?.strength)) normal.strength = profile.normal.strength;\n if (Object.keys(normal).length > 0) normalized.normal = normal;\n\n if (isFiniteNumber(profile.metallic)) normalized.metallic = profile.metallic;\n if (isFiniteNumber(profile.roughness)) normalized.roughness = profile.roughness;\n\n const metallicRoughness: ArtistMetallicRoughnessProfile = {};\n const metallicRoughnessTexture = normalizeMaterialTextureRef(profile.metallicRoughness?.texture);\n if (metallicRoughnessTexture !== undefined) metallicRoughness.texture = metallicRoughnessTexture;\n if (Object.keys(metallicRoughness).length > 0) normalized.metallicRoughness = metallicRoughness;\n\n const occlusion: ArtistOcclusionProfile = {};\n const occlusionTexture = normalizeMaterialTextureRef(profile.occlusion?.texture);\n if (occlusionTexture !== undefined) occlusion.texture = occlusionTexture;\n if (isFiniteNumber(profile.occlusion?.strength)) occlusion.strength = profile.occlusion.strength;\n if (Object.keys(occlusion).length > 0) normalized.occlusion = occlusion;\n\n const emission: ArtistEmissionProfile = {};\n const emissionColor = normalizeColorRGB(profile.emission?.color);\n if (emissionColor) emission.color = emissionColor;\n if (isFiniteNumber(profile.emission?.intensity)) emission.intensity = profile.emission.intensity;\n const emissionTexture = normalizeMaterialTextureRef(profile.emission?.texture);\n if (emissionTexture !== undefined) emission.texture = emissionTexture;\n const maskTexture = normalizeMaterialTextureRef(profile.emission?.maskTexture);\n if (maskTexture !== undefined) emission.maskTexture = maskTexture;\n if (Object.keys(emission).length > 0) normalized.emission = emission;\n\n const alpha: ArtistAlphaProfile = {};\n const alphaMode = normalizeArtistMaterialAlphaMode(profile.alpha?.mode);\n if (alphaMode) alpha.mode = alphaMode;\n if (isFiniteNumber(profile.alpha?.opacity)) alpha.opacity = profile.alpha.opacity;\n if (isFiniteNumber(profile.alpha?.cutoff)) alpha.cutoff = profile.alpha.cutoff;\n const alphaTexture = normalizeMaterialTextureRef(profile.alpha?.texture);\n if (alphaTexture !== undefined) alpha.texture = alphaTexture;\n if (Object.keys(alpha).length > 0) normalized.alpha = alpha;\n\n return Object.keys(normalized).length > 0 ? normalized : undefined;\n}\n\nexport function normalizeSceneMaterialAssetConfig(\n materialAsset: SceneMaterialAssetConfig | null | undefined,\n): SceneMaterialAssetConfig | undefined {\n if (!materialAsset || typeof materialAsset !== 'object') return undefined;\n const id = typeof materialAsset.id === 'string' ? materialAsset.id.trim() : '';\n const guid = typeof materialAsset.guid === 'string' ? materialAsset.guid.trim() : '';\n const name = typeof materialAsset.name === 'string' ? materialAsset.name.trim() : '';\n const profile = normalizeArtistMaterialProfile(materialAsset.profile);\n if (!id || !name || !profile) return undefined;\n const system = normalizeSceneMaterialAssetSystemConfig(materialAsset.system);\n const origin = normalizeSceneMaterialAssetOriginConfig(materialAsset.origin);\n const materialKind = normalizeSceneMaterialAssetKind(materialAsset.materialKind);\n const presetKind = inferSceneMaterialAssetKindFromSystemPreset(system?.preset);\n if (materialKind && presetKind && materialKind !== presetKind) return undefined;\n return {\n id,\n ...(guid ? { guid } : {}),\n name,\n profile,\n ...(materialKind ?? presetKind ? { materialKind: materialKind ?? presetKind } : {}),\n ...(system ? { system } : {}),\n ...(origin ? { origin } : {}),\n };\n}\n\nexport function sceneMaterialGuidToStableToken(guid: string): string {\n return String(guid ?? '').trim().toLowerCase().replace(/[^a-z0-9]+/g, '');\n}\n\nexport function createSceneMaterialAssetId(guid: string): string {\n const token = sceneMaterialGuidToStableToken(guid);\n return `mat_${token || 'material'}`;\n}\n\nexport function mergeArtistMaterialProfiles(\n ...profiles: Array<ArtistMaterialProfile | null | undefined>\n): ArtistMaterialProfile {\n const merged: ArtistMaterialProfile = {};\n for (const profile of profiles) {\n const normalized = normalizeArtistMaterialProfile(profile);\n if (!normalized) continue;\n if (normalized.lightingModel) merged.lightingModel = normalized.lightingModel;\n if (normalized.baseColor) {\n merged.baseColor = {\n ...(merged.baseColor ?? {}),\n ...normalized.baseColor,\n };\n }\n if (normalized.normal) {\n merged.normal = {\n ...(merged.normal ?? {}),\n ...normalized.normal,\n };\n }\n if (normalized.metallic !== undefined) merged.metallic = normalized.metallic;\n if (normalized.roughness !== undefined) merged.roughness = normalized.roughness;\n if (normalized.metallicRoughness) {\n merged.metallicRoughness = {\n ...(merged.metallicRoughness ?? {}),\n ...normalized.metallicRoughness,\n };\n }\n if (normalized.occlusion) {\n merged.occlusion = {\n ...(merged.occlusion ?? {}),\n ...normalized.occlusion,\n };\n }\n if (normalized.emission) {\n merged.emission = {\n ...(merged.emission ?? {}),\n ...normalized.emission,\n };\n }\n if (normalized.alpha) {\n merged.alpha = {\n ...(merged.alpha ?? {}),\n ...normalized.alpha,\n };\n }\n }\n return normalizedOrEmpty(merged);\n}\n\nexport function findSceneMaterialAsset(\n materialAssets: readonly SceneMaterialAssetConfig[] | null | undefined,\n materialAssetId: string | null | undefined,\n): SceneMaterialAssetConfig | null {\n const id = typeof materialAssetId === 'string' ? materialAssetId.trim() : '';\n if (!id || !materialAssets) return null;\n return materialAssets.find(asset => asset.id === id) ?? null;\n}\n\nexport function resolveArtistMaterialProfile(\n input: ResolveArtistMaterialProfileInput,\n): ResolveArtistMaterialProfileResult {\n const materialAssetId = typeof input.binding?.materialAssetId === 'string'\n ? input.binding.materialAssetId.trim()\n : '';\n const materialAsset = findSceneMaterialAsset(input.materialAssets, materialAssetId);\n const profile = mergeArtistMaterialProfiles(\n input.originalProfile,\n materialAsset?.profile,\n input.binding?.override,\n );\n return {\n profile,\n materialAsset,\n ...(materialAssetId && !materialAsset ? { missingMaterialAssetId: materialAssetId } : {}),\n };\n}\n\nfunction normalizedOrEmpty(profile: ArtistMaterialProfile): ArtistMaterialProfile {\n return normalizeArtistMaterialProfile(profile) ?? {};\n}\n\nexport type OutlineProp =\n | 'outline.renderOutline'\n | 'outline.outlineWidth'\n | 'outline.outlineColor';\n\nexport type OutlineValue = ColorRGB | number | boolean | null;\n\nexport interface EditorDocumentExport {\n sceneJsonText: string;\n expectedVersion?: number;\n version?: number;\n}\n\nexport interface EditorDocumentCommitArgs {\n version?: number;\n updatedAt?: string;\n sceneJsonText?: string;\n scenePath?: string;\n}\n\nexport interface EditorDuplicateResult {\n rootNode?: unknown;\n}\n\nexport type EditorTool = 'pick' | 'move' | 'rotate' | 'scale';\nexport type EditorMode = 'edit' | 'play';\nexport type RuntimeOwner = 'project' | 'unknown';\nexport type SelectionSource = 'viewport' | 'tree' | 'programmatic' | 'unknown';\n\nexport interface EditorRuntimeApi {\n active?: boolean;\n init(scene: unknown): void;\n showInspector(): Promise<void> | void;\n hideInspector(): void;\n setTool?(tool: EditorTool): void;\n getSelectedEntity?(): unknown | null;\n selectEntity?(entity: unknown | null, syncInspector?: boolean): void;\n duplicateSelected?(): Promise<boolean> | boolean;\n undo(): boolean;\n redo(): boolean;\n exportDocument(): EditorDocumentExport | null;\n commitSavedDocument(args: EditorDocumentCommitArgs): boolean;\n}\n\nexport interface EditRuntimeApi {\n active?: boolean;\n enter(): Promise<void>;\n exit(save?: boolean): Promise<void>;\n _focusSelected(): void;\n isViewportNavigationActive(): boolean;\n}\n\nexport interface EditorRuntime {\n owner?: RuntimeOwner;\n Editor: EditorRuntimeApi;\n Edit: EditRuntimeApi;\n handleCommand(name: string, params: Record<string, unknown>): Promise<void> | void;\n}\n\nexport interface SelectionController {\n createV2SelectionBridge?(v2: unknown): unknown;\n bindSelectionSourceTracking?(): void;\n unbindSelectionSourceTracking?(): void;\n enablePicking?(): void;\n reset?(): void;\n getSelectedEntity?(): unknown | null;\n getSelectedEntities?(): unknown[];\n selectEntity?(\n entity: unknown | null,\n syncInspector?: boolean,\n options?: { additive?: boolean; toggle?: boolean },\n ): void;\n}\n\nexport type EditorRuntimeChange =\n | {\n kind: 'transform';\n binding: PersistentBindingSnapshot;\n prop: RuntimeProp;\n value: Position3D | Scale3D | Rotation3D;\n rootNode?: unknown;\n selectedRootNode?: unknown | null;\n }\n | {\n kind: 'material';\n binding: PersistentBindingSnapshot;\n prop: MaterialProp;\n value: MaterialValue;\n ownerNodePath: string;\n rootNode?: unknown;\n selectedRootNode?: unknown | null;\n }\n | {\n kind: 'outline';\n binding: PersistentBindingSnapshot;\n prop: OutlineProp;\n value: OutlineValue;\n ownerNodePath: string;\n rootNode?: unknown;\n selectedRootNode?: unknown | null;\n }\n | {\n kind: 'selection';\n selectedRootNode?: unknown | null;\n };\n\nexport interface EditorPluginContext {\n scene: unknown | null;\n game: unknown | null;\n}\n\nexport interface EditorPlugin {\n id: string;\n normalizeSelection?(args: {\n source: SelectionSource;\n rawEntity: unknown;\n context: EditorPluginContext;\n }): unknown | null;\n resolvePersistentBinding?(node: unknown, context: EditorPluginContext): PersistentBinding | null;\n applyDocumentChange?(args: {\n binding: PersistentBinding;\n node: unknown;\n prop: string;\n context: EditorPluginContext;\n oldValue?: unknown;\n newValue?: unknown;\n }): boolean;\n duplicateSelection?(args: {\n binding: PersistentBinding;\n node: unknown;\n context: EditorPluginContext;\n }): EditorDuplicateResult | Promise<EditorDuplicateResult | null> | null;\n isDirty?(): boolean;\n canUndo?(): boolean;\n canRedo?(): boolean;\n undoDocumentChange?(context: EditorPluginContext): EditorRuntimeChange | null;\n redoDocumentChange?(context: EditorPluginContext): EditorRuntimeChange | null;\n exportDocument?(): EditorDocumentExport | null;\n commitSavedDocument?(args: EditorDocumentCommitArgs, context: EditorPluginContext): boolean;\n}\n\nexport interface EditorMessenger {\n event?(eventName: string, payload: Record<string, unknown>): void;\n send?(type: string, payload: Record<string, unknown>): void;\n}\n\nexport interface EditorBridgeLike {\n registerEditorPlugin?: (plugin: EditorPlugin) => void;\n registerEditorRuntime?: (runtime: EditorRuntime) => void;\n messenger?: EditorMessenger;\n editor?: unknown;\n}\n\nexport const EDITOR_COMMAND_NAME = {\n MODE_CHANGE: 'mode.change',\n UNDO: 'history.undo',\n REDO: 'history.redo',\n DOCUMENT_EXPORT: 'document.export',\n DOCUMENT_COMMIT: 'document.commit',\n INSPECTOR_FLUSH: 'inspector.flush',\n ASSET_REGISTRATION_PLAN: 'asset.registration.plan',\n ASSET_UNREGISTRATION_PLAN: 'asset.unregistration.plan',\n ASSET_LIBRARY_REFRESH: 'asset.library.refresh',\n ASSET_IMPORT: 'asset.import',\n EDITOR_ASSET_PLACE: 'editor.asset.place',\n ASSET_REMOVE: 'asset.remove',\n SCENE_NODE_CREATE: 'scene.node.create',\n SCENE_NODE_PATCH: 'scene.node.patch',\n SCENE_NODE_REMOVE: 'scene.node.remove',\n SELECTION_DUPLICATE: 'selection.duplicate',\n} as const;\n\nexport type EditorCommandName = typeof EDITOR_COMMAND_NAME[keyof typeof EDITOR_COMMAND_NAME];\n\nexport const EDITOR_EVENT_NAME = {\n DOCUMENT_EXPORTED: 'document.exported',\n UNDO_RESULT: 'history.undo.result',\n REDO_RESULT: 'history.redo.result',\n INSPECTOR_FLUSHED: 'inspector.flushed',\n ASSET_REGISTRATION_PLANNED: 'asset.registration.planned',\n ASSET_REGISTRATION_FAILED: 'asset.registration.failed',\n ASSET_UNREGISTRATION_PLANNED: 'asset.unregistration.planned',\n ASSET_UNREGISTRATION_FAILED: 'asset.unregistration.failed',\n ASSET_LIBRARY_REFRESHED: 'asset.library.refreshed',\n ASSET_IMPORT_RESULT: 'asset.import.result',\n EDITOR_ASSET_PLACE_RESULT: 'editor.asset.place.result',\n ASSET_REMOVE_RESULT: 'asset.remove.result',\n SCENE_NODE_CREATE_RESULT: 'scene.node.create.result',\n SCENE_NODE_PATCH_RESULT: 'scene.node.patch.result',\n SCENE_NODE_REMOVE_RESULT: 'scene.node.remove.result',\n MODE_READY: 'mode.ready',\n SELECTION_DUPLICATE_RESULT: 'selection.duplicate.result',\n} as const;\n\nexport type EditorEventName = typeof EDITOR_EVENT_NAME[keyof typeof EDITOR_EVENT_NAME];\n\nexport const EDITOR_POST_MESSAGE = {\n CONTEXT_CHANGE: 'context:change',\n} as const;\n\nexport type EditorPostMessageType = typeof EDITOR_POST_MESSAGE[keyof typeof EDITOR_POST_MESSAGE];\n\nexport const EDITOR_CAPABILITY = {\n SCENE_TREE: 'sceneTree',\n ASSET_IMPORT: 'assetImport',\n ASSET_REGISTRY_WRITE: 'assetRegistryWrite',\n TRANSFORM_GIZMO: 'transformGizmo',\n MATERIAL_EDITING: 'materialEditing',\n OUTLINE_EDITING: 'outlineEditing',\n DOCUMENT_EXPORT: 'documentExport',\n DOCUMENT_COMMIT: 'documentCommit',\n UNDO_REDO: 'undoRedo',\n INSPECTOR: 'inspector',\n} as const;\n\nexport type EditorCapabilityName = typeof EDITOR_CAPABILITY[keyof typeof EDITOR_CAPABILITY];\nexport type EditorCapabilities = Partial<Record<EditorCapabilityName, boolean>>;\n\n// Migration aliases matching the current project-side editor-package type names.\nexport type ProjectPersistentBinding = PersistentBinding;\nexport type ProjectPersistentBindingSnapshot = PersistentBindingSnapshot;\nexport type ProjectRuntimeProp = RuntimeProp;\nexport type ProjectMaterialRuntimeKind = MaterialRuntimeKind;\nexport type ProjectMaterialProp = MaterialProp;\nexport type ProjectMaterialValue = MaterialValue;\nexport type ProjectOutlineProp = OutlineProp;\nexport type ProjectOutlineValue = OutlineValue;\nexport type ProjectRotation3D = Rotation3D;\nexport type ProjectEditorDocumentExport = EditorDocumentExport;\nexport type ProjectEditorDocumentCommitArgs = EditorDocumentCommitArgs;\nexport type ProjectEditorDuplicateResult = EditorDuplicateResult;\nexport type ProjectEditorRuntimeApi = EditorRuntimeApi;\nexport type ProjectEditRuntimeApi = EditRuntimeApi;\nexport type ProjectEditorRuntime = EditorRuntime;\nexport type ProjectSelectionController = SelectionController;\nexport type ProjectEditorRuntimeChange = EditorRuntimeChange;\nexport type ProjectEditorPluginContext = EditorPluginContext;\nexport type ProjectEditorPlugin = EditorPlugin;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"marker-graph.js","sourceRoot":"","sources":["../src/marker-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"marker-graph.js","sourceRoot":"","sources":["../src/marker-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC","sourcesContent":["export { SPATIAL_MARKER_GRAPH_SCHEMA_VERSION } from '@fps-games/playable-contracts';\nexport type {\n AgentReadableSpatialFacts,\n ResolvedSpatialMarkerGraph,\n ResolvedSpatialMarkerNode,\n SpatialMarkerBounds,\n SpatialMarkerBoxGeometry,\n SpatialMarkerGeometry,\n SpatialMarkerGraph,\n SpatialMarkerJsonObject,\n SpatialMarkerJsonPrimitive,\n SpatialMarkerJsonValue,\n SpatialMarkerLocalFrame,\n SpatialMarkerNode,\n SpatialMarkerNodeKind,\n SpatialMarkerObjectBoundsGeometry,\n SpatialMarkerPointGeometry,\n SpatialMarkerPolyhedronGeometry,\n SpatialMarkerTargetKind,\n SpatialMarkerTargetRef,\n SpatialMarkerTypeDefinition,\n SpatialMarkerVec3,\n SpatialRelation,\n SpatialRelationEndpoint,\n SpatialRelationTypeDefinition,\n} from '@fps-games/playable-contracts';\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/editor-protocol",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.4",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Shared protocol types for fps-game-editor runtimes, adapters, and Forge Play bridges.",
@@ -14,6 +14,6 @@
14
14
  }
15
15
  },
16
16
  "dependencies": {
17
- "@fps-games/playable-contracts": "0.2.0-beta.2"
17
+ "@fps-games/playable-contracts": "0.2.0-beta.4"
18
18
  }
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contributions.js","sourceRoot":"","sources":["../src/contributions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contributions.js","sourceRoot":"","sources":["../src/contributions.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n defineFpsPluginEntry,\n defineFpsServiceToken,\n type FpsDisposer,\n type FpsPluginContext,\n type FpsPluginEntry,\n} from '@fps-games/plugin-api';\nimport type {\n FpsToolingAssetImporterContribution,\n FpsToolingCompilerContribution,\n FpsToolingMigrationContribution,\n} from './migration.js';\nimport { readExactToolingDataObject } from './data-object.js';\n\nexport type FpsToolingContributionKind = 'compiler' | 'migration' | 'asset-importer';\n\nexport interface FpsToolingContributionValueMap {\n readonly compiler: FpsToolingCompilerContribution<any, any>;\n readonly migration: FpsToolingMigrationContribution<any>;\n readonly 'asset-importer': FpsToolingAssetImporterContribution<any, any>;\n}\n\nexport type FpsToolingContribution<K extends FpsToolingContributionKind = FpsToolingContributionKind> = {\n [TKind in K]: {\n readonly id: string;\n readonly kind: TKind;\n readonly value: FpsToolingContributionValueMap[TKind];\n readonly priority?: number;\n }\n}[K];\n\nexport type FpsRegisteredToolingContribution<K extends FpsToolingContributionKind = FpsToolingContributionKind> = {\n [TKind in K]: FpsToolingContribution<TKind> & { readonly pluginId: string }\n}[K];\n\nexport interface FpsToolingContributionRegistry {\n get(id: string): FpsRegisteredToolingContribution | undefined;\n list(): readonly FpsRegisteredToolingContribution[];\n list<K extends FpsToolingContributionKind>(kind: K): readonly FpsRegisteredToolingContribution<K>[];\n}\n\ntype Registrar = (pluginId: string, contribution: FpsToolingContribution) => FpsDisposer;\nconst registrars = new WeakMap<FpsToolingContributionRegistry, Registrar>();\nconst trustedContexts = new WeakMap<FpsPluginContext, {\n registry: FpsToolingContributionRegistry;\n pluginId: string;\n registrationOpen: boolean;\n addDisposer(disposer: FpsDisposer): void;\n}>();\nconst CONTRIBUTION_KINDS = new Set<FpsToolingContributionKind>([\n 'compiler', 'migration', 'asset-importer',\n]);\n\nexport const FPS_TOOLING_CONTRIBUTIONS = defineFpsServiceToken<FpsToolingContributionRegistry>(\n 'fps.tooling.contributions',\n);\n\nexport function createFpsToolingContributionRegistry(): FpsToolingContributionRegistry {\n const entries = new Map<string, FpsRegisteredToolingContribution>();\n const registry: FpsToolingContributionRegistry = {\n get: id => entries.get(id),\n list: ((kind?: FpsToolingContributionKind) => {\n if (kind !== undefined) assertContributionKind(kind);\n return [...entries.values()]\n .filter(entry => kind === undefined || entry.kind === kind)\n .sort(compareContributions);\n }) as FpsToolingContributionRegistry['list'],\n };\n registrars.set(registry, (pluginId, contribution) => {\n const snapshot = snapshotContribution(contribution);\n const { id, kind } = snapshot;\n if (entries.has(id)) throw new Error(`Duplicate Tooling contribution id: ${id}`);\n const entry = Object.freeze({\n ...snapshot,\n pluginId,\n });\n entries.set(id, entry as FpsRegisteredToolingContribution);\n let active = true;\n return () => {\n if (!active) return;\n active = false;\n if (entries.get(id) === entry) entries.delete(id);\n };\n });\n return Object.freeze(registry);\n}\n\nexport function registerFpsToolingContribution<K extends FpsToolingContributionKind>(\n context: FpsPluginContext,\n contribution: FpsToolingContribution<K>,\n): FpsDisposer {\n const trusted = trustedContexts.get(context);\n if (!trusted) throw new Error('Tooling contribution registration requires a host-authenticated Plugin context.');\n if (!trusted.registrationOpen) throw new Error('Tooling contributions may only be registered during Plugin register.');\n if (context.services.get(FPS_TOOLING_CONTRIBUTIONS) !== trusted.registry) {\n throw new Error('Tooling contribution service does not belong to this Plugin Host.');\n }\n const registrar = registrars.get(trusted.registry);\n if (!registrar) throw new Error('Tooling contribution registry is not owned by this host.');\n const unregister = registrar(trusted.pluginId, contribution as FpsToolingContribution);\n trusted.addDisposer(unregister);\n let active = true;\n return () => {\n if (!active || !trusted.registrationOpen) return;\n active = false;\n return unregister();\n };\n}\n\nexport function bindFpsToolingPluginEntry(\n input: FpsPluginEntry,\n registry: FpsToolingContributionRegistry,\n): FpsPluginEntry {\n const entry = defineFpsPluginEntry(input);\n return {\n pluginId: entry.pluginId,\n environment: entry.environment,\n async register(context) {\n const trusted = {\n registry,\n pluginId: context.pluginId,\n registrationOpen: true,\n addDisposer: context.add.bind(context),\n };\n trustedContexts.set(context, trusted);\n try {\n return await entry.register(context);\n } finally {\n trusted.registrationOpen = false;\n }\n },\n ...(entry.start ? { start: (context: FpsPluginContext) => entry.start!(context) } : {}),\n ...(entry.stop ? { stop: (context: FpsPluginContext) => entry.stop!(context) } : {}),\n dispose: async context => {\n try { await entry.dispose?.(context); }\n finally { trustedContexts.delete(context); }\n },\n };\n}\n\nfunction assertContributionId(value: string): string {\n const id = value.trim();\n if (!/^[a-z0-9]+(?:[._-][a-z0-9]+)+$/.test(id)) {\n throw new Error(`Tooling contribution id must be namespaced lowercase, got: ${value}`);\n }\n return id;\n}\n\nfunction assertContributionKind(value: unknown): FpsToolingContributionKind {\n if (typeof value !== 'string' || !CONTRIBUTION_KINDS.has(value as FpsToolingContributionKind)) {\n throw new Error(`Unknown Tooling contribution kind: ${String(value)}`);\n }\n return value as FpsToolingContributionKind;\n}\n\nfunction normalizePriority(value: number | undefined): number {\n if (value === undefined) return 0;\n if (!Number.isFinite(value)) throw new Error('Tooling contribution priority must be finite.');\n return value;\n}\n\nfunction snapshotContribution(contribution: FpsToolingContribution): FpsToolingContribution {\n const root = readExactToolingDataObject(contribution, ['id', 'kind', 'value', 'priority'], 'Tooling contribution');\n if (typeof root.id !== 'string') throw new Error('Tooling contribution id must be a string.');\n const id = assertContributionId(root.id);\n const kind = assertContributionKind(root.kind);\n const priority = normalizePriority(root.priority as number | undefined);\n if (kind === 'compiler') {\n const compiler = readExactToolingDataObject(root.value, ['compilerId', 'compile'], `Tooling compiler ${id}`);\n assertContributionContract(compiler, 'compilerId', ['compile'], id);\n return {\n id, kind, priority,\n value: Object.freeze({\n compilerId: compiler.compilerId as string,\n compile: compiler.compile as FpsToolingCompilerContribution<any, any>['compile'],\n }),\n } as FpsToolingContribution<'compiler'>;\n }\n if (kind === 'migration') {\n const migration = readExactToolingDataObject(root.value, ['migrationId', 'plan', 'apply'], `Tooling migration ${id}`);\n assertContributionContract(migration, 'migrationId', ['plan', 'apply'], id);\n return {\n id, kind, priority,\n value: Object.freeze({\n migrationId: migration.migrationId as string,\n plan: migration.plan as FpsToolingMigrationContribution<any>['plan'],\n apply: migration.apply as FpsToolingMigrationContribution<any>['apply'],\n }),\n } as FpsToolingContribution<'migration'>;\n }\n const importer = readExactToolingDataObject(root.value, ['importerId', 'supports', 'import'], `Tooling asset importer ${id}`);\n assertContributionContract(importer, 'importerId', ['supports', 'import'], id);\n return {\n id, kind, priority,\n value: Object.freeze({\n importerId: importer.importerId as string,\n supports: importer.supports as FpsToolingAssetImporterContribution<any, any>['supports'],\n import: importer.import as FpsToolingAssetImporterContribution<any, any>['import'],\n }),\n } as FpsToolingContribution<'asset-importer'>;\n}\n\nfunction assertContributionContract(\n value: Record<string, unknown>,\n idField: string,\n methods: readonly string[],\n contributionId: string,\n): void {\n if (value[idField] !== contributionId) {\n throw new Error(`Tooling contribution id mismatch: ${contributionId} != ${String(value[idField])}`);\n }\n for (const method of methods) {\n if (typeof value[method] !== 'function') {\n throw new Error(`Tooling contribution method is required: ${contributionId}.${method}`);\n }\n }\n}\n\nfunction compareContributions(\n left: FpsRegisteredToolingContribution,\n right: FpsRegisteredToolingContribution,\n): number {\n const priority = (right.priority ?? 0) - (left.priority ?? 0);\n if (priority !== 0) return priority;\n return left.id < right.id ? -1 : left.id > right.id ? 1 : 0;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"data-object.js","sourceRoot":"","sources":["../src/data-object.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,0BAA0B,CACxC,KAAc,EACd,WAA8B,EAC9B,KAAa;IAEb,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC;IAC9G,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,MAAM,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,4BAA4B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrH,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc,EAAE,KAAK,GAAG,eAAe;IAC9E,OAAO,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AACD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"data-object.js","sourceRoot":"","sources":["../src/data-object.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,0BAA0B,CACxC,KAAc,EACd,WAA8B,EAC9B,KAAa;IAEb,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC;IAC9G,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,MAAM,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,4BAA4B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrH,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc,EAAE,KAAK,GAAG,eAAe;IAC9E,OAAO,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AACD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["export function readExactToolingDataObject(\n value: unknown,\n allowedKeys: readonly string[],\n label: string,\n): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error(`${label} must be an object.`);\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) throw new Error(`${label} must be a plain object.`);\n const allowed = new Set(allowedKeys);\n const result: Record<string, unknown> = Object.create(null);\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key !== 'string' || !allowed.has(key)) throw new Error(`${label} contains unknown field: ${String(key)}`);\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!descriptor?.enumerable || !('value' in descriptor)) {\n throw new Error(`${label} must contain enumerable data fields only: ${key}`);\n }\n result[key] = descriptor.value;\n }\n return result;\n}\n\nexport function snapshotFpsToolingConfig(value: unknown, label = 'Plugin config'): unknown {\n return snapshotFpsPluginConfig(value, label);\n}\nimport { snapshotFpsPluginConfig } from '@fps-games/plugin-api';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n defineFpsPluginManifest,\n type FpsDiagnostic,\n type FpsPluginEntry,\n type FpsPluginEnvironment,\n type FpsPluginManifest,\n type FpsServiceToken,\n} from '@fps-games/plugin-api';\nimport {\n createFpsPluginHost,\n resolveFpsPluginManifestOrder,\n type FpsPluginHost,\n} from '@fps-games/plugin-host';\nimport {\n FPS_TOOLING_CONTRIBUTIONS,\n bindFpsToolingPluginEntry,\n createFpsToolingContributionRegistry,\n type FpsToolingContributionRegistry,\n} from './contributions.js';\nimport { snapshotFpsToolingConfig } from './data-object.js';\n\nexport {\n FPS_TOOLING_CONTRIBUTIONS,\n registerFpsToolingContribution,\n} from './contributions.js';\nexport type {\n FpsRegisteredToolingContribution,\n FpsToolingContribution,\n FpsToolingContributionKind,\n FpsToolingContributionRegistry,\n FpsToolingContributionValueMap,\n} from './contributions.js';\nexport * from './migration.js';\n\nexport const FPS_PLUGIN_ENVIRONMENTS = Object.freeze([\n 'runtime', 'editor', 'renderer', 'tooling', 'agent',\n] as const satisfies readonly FpsPluginEnvironment[]);\n\nexport const FPS_PLUGIN_VIRTUAL_MODULE_IDS = Object.freeze({\n runtime: 'virtual:fps-plugins/runtime',\n editor: 'virtual:fps-plugins/editor',\n renderer: 'virtual:fps-plugins/renderer',\n tooling: 'virtual:fps-plugins/tooling',\n agent: 'virtual:fps-plugins/agent',\n} satisfies Record<FpsPluginEnvironment, string>);\n\nexport interface FpsToolingPluginPackageMetadata {\n readonly packageName: string;\n readonly packageVersion: string;\n readonly exportSubpaths: readonly string[];\n readonly manifest: FpsPluginManifest;\n readonly packageJsonPath?: string;\n}\n\nexport interface FpsToolingPluginEntryPlan {\n readonly pluginId: string;\n readonly packageName: string;\n readonly environment: FpsPluginEnvironment;\n readonly exportSubpath: string;\n readonly importSpecifier: string;\n readonly packageJsonPath?: string;\n readonly config: unknown;\n}\n\nexport interface FpsToolingPluginManifestPlan {\n readonly apiVersion: number;\n readonly plugins: readonly FpsToolingPluginPackageMetadata[];\n readonly entries: Readonly<Record<FpsPluginEnvironment, readonly FpsToolingPluginEntryPlan[]>>;\n readonly pluginConfigs: Readonly<Record<string, unknown>>;\n}\n\nexport interface FpsToolingPluginManifestPlanOptions {\n readonly apiVersion: number;\n readonly plugins: readonly FpsToolingPluginPackageMetadata[];\n readonly hostServiceIds?: Readonly<Partial<Record<FpsPluginEnvironment, readonly string[]>>>;\n readonly pluginConfigs?: Readonly<Record<string, unknown>>;\n}\n\nexport interface FpsToolingPluginHostOptions {\n readonly apiVersion: number;\n readonly manifests: readonly FpsPluginManifest[];\n readonly pluginConfigs?: Readonly<Record<string, unknown>>;\n readonly loadEntry: (manifest: FpsPluginManifest, environment: 'tooling') => Promise<FpsPluginEntry | null>;\n readonly initialServices?: readonly { token: FpsServiceToken<unknown>; value: unknown }[];\n readonly report?: (diagnostic: FpsDiagnostic) => void;\n}\n\nexport interface FpsToolingPluginHost extends FpsPluginHost {\n readonly contributions: FpsToolingContributionRegistry;\n}\n\nexport function createFpsToolingPluginHost(options: FpsToolingPluginHostOptions): FpsToolingPluginHost {\n const contributions = createFpsToolingContributionRegistry();\n const host = createFpsPluginHost({\n environment: 'tooling',\n apiVersion: options.apiVersion,\n manifests: options.manifests,\n pluginConfigs: options.pluginConfigs,\n loadEntry: async (manifest, environment) => {\n const entry = await options.loadEntry(manifest, environment as 'tooling');\n return entry ? bindFpsToolingPluginEntry(entry, contributions) : null;\n },\n initialServices: [\n { token: FPS_TOOLING_CONTRIBUTIONS as FpsServiceToken<unknown>, value: contributions },\n ...(options.initialServices ?? []),\n ],\n report: options.report,\n });\n Object.defineProperty(host, 'contributions', {\n value: contributions,\n enumerable: true,\n configurable: false,\n writable: false,\n });\n return host as FpsToolingPluginHost;\n}\n\nexport function createFpsToolingPluginManifestPlan(\n options: FpsToolingPluginManifestPlanOptions,\n): FpsToolingPluginManifestPlan {\n const packagesByPluginId = new Map<string, FpsToolingPluginPackageMetadata>();\n const packageNames = new Set<string>();\n for (const pluginPackage of options.plugins) {\n const packageName = assertPackageName(pluginPackage.packageName);\n if (packageNames.has(packageName)) throw new Error(`Duplicate Plugin package name: ${packageName}`);\n const manifest = defineFpsPluginManifest(pluginPackage.manifest);\n if (pluginPackage.packageVersion !== manifest.version) {\n throw new Error(\n `Plugin package and manifest versions must match: ${packageName} ${pluginPackage.packageVersion} != ${manifest.version}`,\n );\n }\n if (packagesByPluginId.has(manifest.id)) throw new Error(`Duplicate Plugin id in package metadata: ${manifest.id}`);\n packageNames.add(packageName);\n packagesByPluginId.set(manifest.id, Object.freeze({\n packageName,\n packageVersion: pluginPackage.packageVersion,\n exportSubpaths: Object.freeze([...new Set(pluginPackage.exportSubpaths)].sort()),\n manifest,\n ...(pluginPackage.packageJsonPath ? { packageJsonPath: pluginPackage.packageJsonPath } : {}),\n }));\n }\n const entries = Object.fromEntries(FPS_PLUGIN_ENVIRONMENTS.map(environment => {\n const ordered = resolveFpsPluginManifestOrder({\n environment,\n apiVersion: options.apiVersion,\n manifests: [...packagesByPluginId.values()].map(pluginPackage => pluginPackage.manifest),\n initialServiceIds: environment === 'tooling'\n ? [...new Set([FPS_TOOLING_CONTRIBUTIONS.id, ...(options.hostServiceIds?.tooling ?? [])])]\n : options.hostServiceIds?.[environment],\n });\n return [environment, Object.freeze(ordered.map(manifest => {\n const pluginPackage = packagesByPluginId.get(manifest.id)!;\n const exportSubpath = assertPluginExportSubpath(manifest.entries[environment]!, manifest.id, environment);\n return Object.freeze({\n pluginId: manifest.id,\n packageName: pluginPackage.packageName,\n environment,\n exportSubpath,\n importSpecifier: resolvePluginImportSpecifier(pluginPackage.packageName, exportSubpath),\n ...(pluginPackage.packageJsonPath\n ? { packageJsonPath: pluginPackage.packageJsonPath }\n : {}),\n config: snapshotFpsToolingConfig(options.pluginConfigs?.[manifest.id] ?? null, `Plugin config ${manifest.id}`),\n });\n }))];\n })) as Record<FpsPluginEnvironment, readonly FpsToolingPluginEntryPlan[]>;\n return Object.freeze({\n apiVersion: options.apiVersion,\n plugins: Object.freeze([...packagesByPluginId.values()].sort((left, right) => (\n left.manifest.id < right.manifest.id ? -1 : left.manifest.id > right.manifest.id ? 1 : 0\n ))),\n entries: Object.freeze(entries),\n pluginConfigs: Object.freeze(Object.fromEntries([...packagesByPluginId].map(([pluginId]) => [\n pluginId,\n snapshotFpsToolingConfig(options.pluginConfigs?.[pluginId] ?? null, `Plugin config ${pluginId}`),\n ]))),\n });\n}\n\nexport function createFpsVirtualPluginModules(\n plan: FpsToolingPluginManifestPlan,\n): Readonly<Record<string, string>> {\n return Object.freeze(Object.fromEntries(FPS_PLUGIN_ENVIRONMENTS.map(environment => [\n FPS_PLUGIN_VIRTUAL_MODULE_IDS[environment],\n createFpsVirtualPluginModule(plan, environment),\n ])));\n}\n\nexport function createFpsVirtualPluginModule(\n plan: FpsToolingPluginManifestPlan,\n environment: FpsPluginEnvironment,\n): string {\n const entries = plan.entries[environment];\n if (!entries) throw new Error(`Unknown Plugin environment: ${environment}`);\n const manifests = plan.plugins.map(pluginPackage => pluginPackage.manifest);\n return [\n 'const deepFreeze = value => {',\n \" if (value === null || typeof value !== 'object') return value;\",\n ' for (const nested of Object.values(value)) deepFreeze(nested);',\n ' return Object.freeze(value);',\n '};',\n `export const environment = ${JSON.stringify(environment)};`,\n `export const manifests = deepFreeze(${JSON.stringify(manifests)});`,\n 'export const entries = deepFreeze([',\n ...entries.map(entry => (\n ` Object.freeze({ pluginId: ${JSON.stringify(entry.pluginId)}, config: ${JSON.stringify(entry.config)}, load: () => import(${JSON.stringify(entry.importSpecifier)}).then(({ pluginEntry }) => pluginEntry) }),`\n )),\n ']);',\n `export const pluginConfigs = deepFreeze(${JSON.stringify(plan.pluginConfigs)});`,\n '',\n ].join('\\n');\n}\n\nfunction assertPackageName(value: string): string {\n const packageName = value.trim();\n if (!/^(?:@[a-z0-9][a-z0-9._-]*\\/)?[a-z0-9][a-z0-9._-]*$/.test(packageName)) {\n throw new Error(`Invalid Plugin package name: ${value}`);\n }\n return packageName;\n}\n\nfunction assertPluginExportSubpath(\n value: string,\n pluginId: string,\n environment: FpsPluginEnvironment,\n): string {\n if (value !== '.' && !/^\\.\\/[a-z0-9][a-z0-9._/-]*$/.test(value)) {\n throw new Error(`Plugin entry must be a package export subpath: ${pluginId} (${environment}) -> ${value}`);\n }\n if (value.includes('/dist/') || value.startsWith('./dist/')) {\n throw new Error(`Plugin entry must not expose internal dist paths: ${pluginId} (${environment}) -> ${value}`);\n }\n return value;\n}\n\nfunction resolvePluginImportSpecifier(packageName: string, exportSubpath: string): string {\n return exportSubpath === '.' ? packageName : `${packageName}${exportSubpath.slice(1)}`;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration.js","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FpsMaybePromise } from '@fps-games/plugin-api';\nimport { readExactToolingDataObject } from './data-object.js';\n\nexport interface FpsToolingMigrationPlan {\n readonly migrationId: string;\n readonly fromSchemaVersion: number;\n readonly toSchemaVersion: number;\n readonly changes: readonly string[];\n readonly blockers: readonly string[];\n}\n\nexport interface FpsToolingMigrationContribution<TSource = unknown> {\n readonly migrationId: string;\n plan(source: TSource): FpsMaybePromise<FpsToolingMigrationPlan>;\n apply(source: TSource, plan: FpsToolingMigrationPlan): FpsMaybePromise<TSource>;\n}\n\nexport interface FpsToolingCompilerContribution<TSource = unknown, TRuntime = unknown> {\n readonly compilerId: string;\n compile(source: TSource): FpsMaybePromise<TRuntime>;\n}\n\nexport interface FpsToolingAssetImporterContribution<TInput = unknown, TAsset = unknown> {\n readonly importerId: string;\n supports(input: TInput): FpsMaybePromise<boolean>;\n import(input: TInput): FpsMaybePromise<TAsset>;\n}\n\nexport interface FpsToolingMigrationTransactionOptions<TSource, TRuntime> {\n readonly source: TSource;\n cloneSource(source: TSource): TSource;\n readonly migration: FpsToolingMigrationContribution<TSource>;\n readonly compiler: FpsToolingCompilerContribution<TSource, TRuntime>;\n report(plan: FpsToolingMigrationPlan): FpsMaybePromise<void>;\n validate(runtime: TRuntime): FpsMaybePromise<void>;\n}\n\nexport interface FpsToolingMigrationTransactionResult<TSource, TRuntime> {\n readonly plan: FpsToolingMigrationPlan;\n readonly source: TSource;\n readonly runtime: TRuntime;\n}\n\nexport async function runFpsToolingMigrationTransaction<TSource, TRuntime>(\n options: FpsToolingMigrationTransactionOptions<TSource, TRuntime>,\n): Promise<FpsToolingMigrationTransactionResult<TSource, TRuntime>> {\n const planningSource = cloneOwnedSource(options.source, options.cloneSource, 'planning');\n const plan = snapshotMigrationPlan(await options.migration.plan(planningSource), options.migration.migrationId);\n await options.report(plan);\n if (plan.blockers.length > 0) {\n throw new Error(`Tooling migration is blocked: ${plan.migrationId}: ${plan.blockers.join('; ')}`);\n }\n const workingSource = cloneOwnedSource(options.source, options.cloneSource, 'apply');\n if (isObjectLike(planningSource) && workingSource === planningSource) {\n throw new Error('Tooling migration cloneSource must return separate planning and apply objects');\n }\n const source = await options.migration.apply(workingSource, plan);\n if (isObjectLike(source) && (source === options.source || source === planningSource)) {\n throw new Error('Tooling migration apply must return apply-owned source state');\n }\n const runtime = await options.compiler.compile(source);\n await options.validate(runtime);\n return Object.freeze({ plan, source, runtime });\n}\n\nfunction cloneOwnedSource<TSource>(\n source: TSource,\n cloneSource: (source: TSource) => TSource,\n phase: string,\n): TSource {\n const clone = cloneSource(source);\n if (isObjectLike(source) && clone === source) {\n throw new Error(`Tooling migration cloneSource must isolate object input for ${phase}`);\n }\n return clone;\n}\n\nfunction isObjectLike(value: unknown): value is object {\n return (typeof value === 'object' && value !== null) || typeof value === 'function';\n}\n\nfunction snapshotMigrationPlan(\n plan: FpsToolingMigrationPlan,\n expectedMigrationId: string,\n): FpsToolingMigrationPlan {\n const root = readExactToolingDataObject(\n plan,\n ['migrationId', 'fromSchemaVersion', 'toSchemaVersion', 'changes', 'blockers'],\n 'Tooling migration plan',\n );\n const migrationId = typeof root.migrationId === 'string' ? root.migrationId.trim() : '';\n if (!migrationId || migrationId !== expectedMigrationId.trim()) {\n throw new Error(`Tooling migration plan id mismatch: ${expectedMigrationId} != ${String(root.migrationId)}`);\n }\n if (!Number.isInteger(root.fromSchemaVersion) || !Number.isInteger(root.toSchemaVersion)) {\n throw new Error(`Tooling migration schema versions must be integers: ${migrationId}`);\n }\n const fromSchemaVersion = root.fromSchemaVersion as number;\n const toSchemaVersion = root.toSchemaVersion as number;\n if (toSchemaVersion <= fromSchemaVersion) {\n throw new Error(`Tooling migration must advance schema version: ${migrationId}`);\n }\n return Object.freeze({\n migrationId,\n fromSchemaVersion,\n toSchemaVersion,\n changes: snapshotStringList(root.changes as readonly string[], `${migrationId} changes`),\n blockers: snapshotStringList(root.blockers as readonly string[], `${migrationId} blockers`),\n });\n}\n\nfunction snapshotStringList(value: readonly string[], label: string): readonly string[] {\n if (!Array.isArray(value) || Object.getPrototypeOf(value) !== Array.prototype) {\n throw new Error(`Tooling migration ${label} must be a plain array`);\n }\n const result: string[] = [];\n for (let index = 0; index < value.length; index += 1) {\n const descriptor = Object.getOwnPropertyDescriptor(value, String(index));\n if (!descriptor?.enumerable || !('value' in descriptor)) {\n throw new Error(`Tooling migration ${label} must be a dense data array at index ${index}`);\n }\n if (typeof descriptor.value !== 'string' || !descriptor.value.trim()) {\n throw new Error(`Tooling migration ${label} must contain non-empty strings`);\n }\n result.push(descriptor.value.trim());\n }\n for (const key of Reflect.ownKeys(value)) {\n if (key === 'length') continue;\n if (typeof key !== 'string' || !/^(0|[1-9][0-9]*)$/.test(key) || Number(key) >= value.length) {\n throw new Error(`Tooling migration ${label} contains unsupported property: ${String(key)}`);\n }\n }\n return Object.freeze(result);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"package-metadata-node.js","sourceRoot":"","sources":["../src/package-metadata-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-metadata-node.js","sourceRoot":"","sources":["../src/package-metadata-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GAGxB,MAAM,uBAAuB,CAAC;AA0B/B,MAAM,UAAU,4BAA4B,CAC1C,OAA4C;IAE5C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAC1D,MAAM,eAAe,GAAG,wBAAwB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC3E,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,2CAA2C,WAAW,KAAK,eAAe,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,GAAG,gCAAgC,CAAC,WAAW,EAAE,MAAM,CAAC;YACxD,eAAe;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,OAA8C;;IAE9C,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxE,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GAAG,4BAA4B,CAAC;QAC5C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY;KACb,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACzF,KAAK,MAAM,aAAa,IAAI,QAAQ,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAE,CAAC;QAC7D,IAAI,SAAS,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,gEAAgE,aAAa,CAAC,WAAW,KAAK,SAAS,CAAC,QAAQ,OAAO,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CACnJ,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACvF,SAAS,CAAC,QAAQ;QAClB,SAAS,CAAC,MAAM;KACjB,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,cAAc,GAAoF,EAAE,CAAC;IAC3G,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;YACrF,MAAM,MAAM,GAAG,cAAc,MAAC,WAAmE,MAAlF,cAAc,OAA0E,EAAE,CAAA,CAAC;YAC1G,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,QAAQ;QACjB,aAAa;QACb,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAC1G,WAAW;YACX,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACjC,CAAC,CAAC,CAAC;KACL,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,mBAA2B,EAC3B,WAAoB;IAEpB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,mBAAmB,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,mBAAmB,eAAe,CAAC,CAAC;IACnG,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,mDAAmD,mBAAmB,cAAc,WAAW,EAAE,CAAC,CAAC;IACrH,CAAC;IACD,MAAM,cAAc,GAAG,qBAAqB,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,WAAW,kBAAkB,CAAC,CAAC;IACpG,IAAI,WAAW,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,yDAAyD,WAAW,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,CAAC,aAAkC,CAAC,CAAC;IACzF,IAAI,cAAc,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,oDAAoD,WAAW,IAAI,cAAc,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9H,CAAC;IACD,MAAM,cAAc,GAAG,yBAAyB,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,WAAW;QACX,cAAc;QACd,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;QAC7C,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,WAAmB,EAAE,WAAmB;IACxE,MAAM,qBAAqB,GAAG,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC/D,IAAI,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAClE,MAAM,SAAS,GAAG,OAAO,CAAC,qBAAqB,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAC5E,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,SAAS;YACrC,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW;oBAAE,OAAO,SAAS,CAAC;YACzF,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG;QAChB,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACnD,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/B,CAAC;IACF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YACnE,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,WAAW,KAAK,WAAW,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,yBAAyB,CAAC,WAAmB,EAAE,KAAc;IACpE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gEAAgE,WAAW,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,KAAa;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC","sourcesContent":["import { existsSync, readFileSync, readdirSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport { resolve } from 'node:path';\nimport {\n defineFpsPluginReference,\n defineFpsPluginManifest,\n type FpsPluginReference,\n type FpsPluginManifest,\n} from '@fps-games/plugin-api';\nimport type { FpsToolingPluginPackageMetadata } from './index.js';\n\nexport interface FpsPluginPackageJson {\n readonly name?: unknown;\n readonly version?: unknown;\n readonly exports?: unknown;\n readonly fpsGamePlugin?: unknown;\n}\n\nexport interface ReadFpsToolingPluginPackagesOptions {\n readonly projectRoot: string;\n readonly packageNames: readonly string[];\n}\n\nexport interface ReadFpsToolingPluginReferencesOptions {\n readonly projectRoot: string;\n readonly plugins: readonly FpsPluginReference[];\n}\n\nexport interface FpsConfiguredToolingPluginPackages {\n readonly plugins: readonly FpsToolingPluginPackageMetadata[];\n readonly pluginConfigs: Readonly<Record<string, unknown>>;\n readonly hostServiceIds: Readonly<Partial<Record<import('@fps-games/plugin-api').FpsPluginEnvironment, readonly string[]>>>;\n}\n\nexport function readFpsToolingPluginPackages(\n options: ReadFpsToolingPluginPackagesOptions,\n): readonly FpsToolingPluginPackageMetadata[] {\n const projectRoot = resolve(options.projectRoot);\n return Object.freeze(options.packageNames.map(packageName => {\n const packageJsonPath = resolvePluginPackageJson(packageName, projectRoot);\n let parsed: unknown;\n try {\n parsed = JSON.parse(readFileSync(packageJsonPath, 'utf8'));\n } catch (error) {\n throw new Error(\n `Unable to read Plugin package metadata: ${packageName} (${packageJsonPath}): ${formatError(error)}`,\n );\n }\n return Object.freeze({\n ...parseFpsToolingPluginPackageJson(packageName, parsed),\n packageJsonPath,\n });\n }));\n}\n\nexport function readFpsToolingPluginReferences(\n options: ReadFpsToolingPluginReferencesOptions,\n): FpsConfiguredToolingPluginPackages {\n const pluginReferences = options.plugins.map(plugin => defineFpsPluginReference(plugin));\n const packageNames = pluginReferences.map(plugin => plugin.packageName);\n if (new Set(packageNames).size !== packageNames.length) {\n throw new Error('Project Plugin references must use unique package names.');\n }\n const packages = readFpsToolingPluginPackages({\n projectRoot: options.projectRoot,\n packageNames,\n });\n const references = new Map(pluginReferences.map(plugin => [plugin.packageName, plugin]));\n for (const pluginPackage of packages) {\n const reference = references.get(pluginPackage.packageName)!;\n if (reference.pluginId !== pluginPackage.manifest.id) {\n throw new Error(\n `Project Plugin reference does not match package manifest for ${pluginPackage.packageName}: ${reference.pluginId} != ${pluginPackage.manifest.id}`,\n );\n }\n }\n const pluginConfigs = Object.freeze(Object.fromEntries(pluginReferences.map(reference => [\n reference.pluginId,\n reference.config,\n ])));\n const hostServiceIds: Partial<Record<import('@fps-games/plugin-api').FpsPluginEnvironment, string[]>> = {};\n for (const reference of pluginReferences) {\n for (const [environment, serviceIds] of Object.entries(reference.hostServices ?? {})) {\n const target = hostServiceIds[environment as import('@fps-games/plugin-api').FpsPluginEnvironment] ??= [];\n target.push(...(serviceIds ?? []));\n }\n }\n return Object.freeze({\n plugins: packages,\n pluginConfigs,\n hostServiceIds: Object.freeze(Object.fromEntries(Object.entries(hostServiceIds).map(([environment, ids]) => [\n environment,\n Object.freeze([...new Set(ids)]),\n ]))),\n });\n}\n\nexport function parseFpsToolingPluginPackageJson(\n expectedPackageName: string,\n packageJson: unknown,\n): FpsToolingPluginPackageMetadata {\n if (!isRecord(packageJson)) {\n throw new Error(`Plugin package metadata must be a JSON object: ${expectedPackageName}`);\n }\n const packageName = requireNonEmptyString(packageJson.name, `${expectedPackageName} package name`);\n if (packageName !== expectedPackageName) {\n throw new Error(`Resolved Plugin package name mismatch: expected ${expectedPackageName}, received ${packageName}`);\n }\n const packageVersion = requireNonEmptyString(packageJson.version, `${packageName} package version`);\n if (packageJson.fpsGamePlugin === undefined) {\n throw new Error(`Plugin package is missing package.json#fpsGamePlugin: ${packageName}`);\n }\n const manifest = defineFpsPluginManifest(packageJson.fpsGamePlugin as FpsPluginManifest);\n if (packageVersion !== manifest.version) {\n throw new Error(`Plugin package and manifest versions must match: ${packageName} ${packageVersion} != ${manifest.version}`);\n }\n const exportSubpaths = readPackageExportSubpaths(packageName, packageJson.exports);\n return Object.freeze({\n packageName,\n packageVersion,\n exportSubpaths: Object.freeze(exportSubpaths),\n manifest,\n });\n}\n\nfunction resolvePluginPackageJson(packageName: string, projectRoot: string): string {\n const workspacePackagesRoot = resolve(projectRoot, 'packages');\n if (existsSync(workspacePackagesRoot)) {\n for (const directory of readdirSync(workspacePackagesRoot).sort()) {\n const candidate = resolve(workspacePackagesRoot, directory, 'package.json');\n if (!existsSync(candidate)) continue;\n try {\n if (JSON.parse(readFileSync(candidate, 'utf8')).name === packageName) return candidate;\n } catch {\n // The normal metadata reader reports malformed selected package files.\n }\n }\n }\n const resolvers = [\n createRequire(resolve(projectRoot, 'package.json')),\n createRequire(import.meta.url),\n ];\n for (const resolver of resolvers) {\n for (const searchPath of resolver.resolve.paths(packageName) ?? []) {\n const candidate = resolve(searchPath, packageName, 'package.json');\n if (existsSync(candidate)) return candidate;\n }\n }\n throw new Error(`Plugin package must be installed from ${projectRoot}: ${packageName}`);\n}\n\nfunction readPackageExportSubpaths(packageName: string, value: unknown): readonly string[] {\n if (!isRecord(value)) return ['.'];\n const keys = Object.keys(value);\n const subpathKeys = keys.filter(key => key === '.' || key.startsWith('./'));\n const conditionKeys = keys.filter(key => key !== '.' && !key.startsWith('./'));\n if (subpathKeys.length > 0 && conditionKeys.length > 0) {\n throw new Error(`Plugin package exports must not mix subpaths and conditions: ${packageName}`);\n }\n return subpathKeys.length > 0 ? [...new Set(subpathKeys)].sort() : ['.'];\n}\n\nfunction requireNonEmptyString(value: unknown, label: string): string {\n if (typeof value !== 'string' || value.trim().length === 0) {\n throw new Error(`${label} must be a non-empty string`);\n }\n return value.trim();\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction formatError(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from 'node:path';\nimport type { Plugin, ResolvedConfig } from 'vite';\nimport type { FpsPluginReference } from '@fps-games/plugin-api';\nimport {\n FPS_PLUGIN_VIRTUAL_MODULE_IDS,\n createFpsToolingPluginManifestPlan,\n createFpsVirtualPluginModules,\n type FpsToolingPluginManifestPlan,\n type FpsToolingPluginManifestPlanOptions,\n} from './index.js';\nimport {\n readFpsToolingPluginPackages,\n readFpsToolingPluginReferences,\n type ReadFpsToolingPluginPackagesOptions,\n} from './package-metadata-node.js';\n\nconst RESOLVED_VIRTUAL_PREFIX = '\\0fps-plugins:';\n\nexport interface FpsPluginManifestVitePluginOptions extends FpsToolingPluginManifestPlanOptions {}\n\nexport interface FpsProjectPluginManifestVitePluginOptions\n extends Omit<FpsToolingPluginManifestPlanOptions, 'plugins'>,\n ReadFpsToolingPluginPackagesOptions {}\n\nexport interface FpsPluginManifestVitePlugin extends Plugin {\n readonly fpsPluginPlan: FpsToolingPluginManifestPlan;\n}\n\nexport interface FpsConfiguredPluginManifestVitePluginOptions\n extends Omit<FpsToolingPluginManifestPlanOptions, 'plugins'> {\n readonly projectRoot: string;\n readonly plugins: readonly FpsPluginReference[];\n}\n\nexport function createFpsPluginManifestVitePlugin(\n options: FpsPluginManifestVitePluginOptions,\n): FpsPluginManifestVitePlugin {\n const plan = createFpsToolingPluginManifestPlan(options);\n const modules = createFpsVirtualPluginModules(plan);\n const resolvedModules = new Map(Object.entries(modules).map(([id, source]) => [\n resolveVirtualModuleId(id), source,\n ]));\n\n return {\n name: 'fps-plugin-manifests',\n enforce: 'pre',\n fpsPluginPlan: plan,\n config() {\n return {\n ssr: {\n noExternal: plan.plugins.map(pluginPackage => pluginPackage.packageName),\n },\n };\n },\n async configResolved(config) {\n assertPluginPackagesNotExternal(plan, config);\n await assertVitePluginEntriesResolvable(plan, config);\n },\n async resolveId(id) {\n if (Object.prototype.hasOwnProperty.call(modules, id)) return resolveVirtualModuleId(id);\n const entry = Object.values(plan.entries).flat().find(candidate => candidate.importSpecifier === id);\n if (!entry?.packageJsonPath) return null;\n return this.resolve(id, entry.packageJsonPath, { skipSelf: true });\n },\n load(id) {\n return resolvedModules.get(id) ?? null;\n },\n };\n}\n\nfunction assertPluginPackagesNotExternal(\n plan: FpsToolingPluginManifestPlan,\n config: ResolvedConfig,\n): void {\n const external = config.ssr.external;\n if (!external) return;\n const packageNames = plan.plugins.map(pluginPackage => pluginPackage.packageName);\n if (external === true) {\n throw new Error('fps Plugin packages cannot be used with ssr.external: true');\n }\n for (const externalId of external) {\n const packageName = packageNames.find(name => externalId === name || externalId.startsWith(`${name}/`));\n if (packageName) {\n throw new Error(`fps Plugin package must not be listed in ssr.external: ${packageName}`);\n }\n }\n}\n\nasync function assertVitePluginEntriesResolvable(\n plan: FpsToolingPluginManifestPlan,\n config: ResolvedConfig,\n): Promise<void> {\n const resolveImport = config.createResolver();\n for (const environment of Object.keys(FPS_PLUGIN_VIRTUAL_MODULE_IDS) as (keyof typeof FPS_PLUGIN_VIRTUAL_MODULE_IDS)[]) {\n for (const entry of plan.entries[environment]) {\n const importer = entry.packageJsonPath ?? resolve(config.root, 'fps.config.ts');\n const targets = environment === 'runtime'\n ? [false, true]\n : [environment === 'tooling' || environment === 'agent'];\n for (const ssr of targets) {\n let resolved: string | undefined;\n try {\n resolved = await resolveImport(entry.importSpecifier, importer, false, ssr);\n } catch (error) {\n throw Object.assign(new Error(\n `Vite cannot resolve Plugin entry before startup: ${entry.pluginId} (${environment}, ${ssr ? 'ssr' : 'client'}) -> ${entry.importSpecifier}`,\n ), { cause: error });\n }\n if (!resolved) {\n throw new Error(\n `Vite cannot resolve Plugin entry before startup: ${entry.pluginId} (${environment}, ${ssr ? 'ssr' : 'client'}) -> ${entry.importSpecifier}`,\n );\n }\n }\n }\n }\n}\n\nexport function createFpsProjectPluginManifestVitePlugin(\n options: FpsProjectPluginManifestVitePluginOptions,\n): FpsPluginManifestVitePlugin {\n return createFpsPluginManifestVitePlugin({\n apiVersion: options.apiVersion,\n plugins: readFpsToolingPluginPackages(options),\n pluginConfigs: options.pluginConfigs,\n hostServiceIds: options.hostServiceIds,\n });\n}\n\nexport function createFpsConfiguredPluginManifestVitePlugin(\n options: FpsConfiguredPluginManifestVitePluginOptions,\n): FpsPluginManifestVitePlugin {\n const configured = readFpsToolingPluginReferences(options);\n return createFpsPluginManifestVitePlugin({\n apiVersion: options.apiVersion,\n plugins: configured.plugins,\n pluginConfigs: configured.pluginConfigs,\n hostServiceIds: mergeHostServiceIds(configured.hostServiceIds, options.hostServiceIds),\n });\n}\n\nfunction mergeHostServiceIds(\n left: Readonly<Partial<Record<keyof typeof FPS_PLUGIN_VIRTUAL_MODULE_IDS, readonly string[]>>>,\n right: Readonly<Partial<Record<keyof typeof FPS_PLUGIN_VIRTUAL_MODULE_IDS, readonly string[]>>> | undefined,\n): Readonly<Partial<Record<keyof typeof FPS_PLUGIN_VIRTUAL_MODULE_IDS, readonly string[]>>> {\n return Object.freeze(Object.fromEntries(Object.keys(FPS_PLUGIN_VIRTUAL_MODULE_IDS).flatMap(environment => {\n const ids = [...new Set([\n ...(left[environment as keyof typeof FPS_PLUGIN_VIRTUAL_MODULE_IDS] ?? []),\n ...(right?.[environment as keyof typeof FPS_PLUGIN_VIRTUAL_MODULE_IDS] ?? []),\n ])];\n return ids.length > 0 ? [[environment, Object.freeze(ids)]] : [];\n })));\n}\n\nfunction resolveVirtualModuleId(id: string): string {\n const environment = Object.entries(FPS_PLUGIN_VIRTUAL_MODULE_IDS).find(([, moduleId]) => moduleId === id)?.[0];\n if (!environment) throw new Error(`Unknown fps Plugin virtual module: ${id}`);\n return `${RESOLVED_VIRTUAL_PREFIX}${environment}`;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/editor-tooling",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.4",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Static Plugin manifest planning and tooling host for fps-game-editor.",
@@ -22,8 +22,8 @@
22
22
  }
23
23
  },
24
24
  "dependencies": {
25
- "@fps-games/plugin-api": "0.2.0-beta.2",
26
- "@fps-games/plugin-host": "0.2.0-beta.2"
25
+ "@fps-games/plugin-api": "0.2.0-beta.4",
26
+ "@fps-games/plugin-host": "0.2.0-beta.4"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "vite": "^5.4.21"
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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","sourcesContent":["export type PlayableEditorAssetKind = 'model' | 'texture' | 'image' | 'sound';\n\nexport const PLAYABLE_EDITOR_ASSET_CATALOG_KINDS = ['model', 'texture', 'image', 'sound'] as const;\n\nexport const PLAYABLE_EDITOR_MODEL_EXTENSIONS = ['.glb', '.gltf'] as const;\nexport const PLAYABLE_EDITOR_IMAGE_EXTENSIONS = ['.png', '.jpg', '.jpeg', '.webp'] as const;\nexport const PLAYABLE_EDITOR_ENVIRONMENT_TEXTURE_EXTENSIONS = ['.env', '.hdr', '.dds', '.ktx', '.ktx2'] as const;\nexport const PLAYABLE_EDITOR_TEXTURE_EXTENSIONS = [\n ...PLAYABLE_EDITOR_IMAGE_EXTENSIONS,\n ...PLAYABLE_EDITOR_ENVIRONMENT_TEXTURE_EXTENSIONS,\n] as const;\nexport const PLAYABLE_EDITOR_SOUND_EXTENSIONS = ['.mp3', '.wav', '.ogg', '.flac', '.aac', '.m4a'] as const;\nexport const PLAYABLE_EDITOR_DEFAULT_EXTENSIONS = [\n ...PLAYABLE_EDITOR_MODEL_EXTENSIONS,\n ...PLAYABLE_EDITOR_TEXTURE_EXTENSIONS,\n ...PLAYABLE_EDITOR_SOUND_EXTENSIONS,\n] as const;\n\nexport interface PlayableAssetRandomSource {\n randomUUID?(): string;\n fillRandomBytes?(bytes: Uint8Array): void;\n}\n\nexport function createPlayableEditorAssetGuid(randomSource: PlayableAssetRandomSource): string {\n if (randomSource.randomUUID) return randomSource.randomUUID();\n return createFallbackPlayableEditorAssetGuid(randomSource);\n}\n\nexport function guidToPlayableEditorAssetStableToken(guid: unknown): string {\n return String(guid ?? '').trim().toLowerCase().replace(/-/g, '');\n}\n\nexport function createPlayableEditorAssetId(kind: PlayableEditorAssetKind, guid: string): string {\n const token = guidToPlayableEditorAssetStableToken(guid);\n const prefix = kind === 'model'\n ? 'asset'\n : kind === 'texture'\n ? 'texture'\n : kind === 'sound'\n ? 'sound'\n : 'image';\n return `${prefix}_${token}`;\n}\n\nexport function toPlayableEditorAssetImportName(value: unknown): string {\n const raw = String(value ?? '').trim();\n const segments = raw.split(/[^a-zA-Z0-9_$]+/).filter(Boolean);\n const camel = segments\n .map((segment, index) => index === 0\n ? segment\n : `${segment.charAt(0).toUpperCase()}${segment.slice(1)}`)\n .join('');\n const safe = camel.replace(/[^a-zA-Z0-9_$]/g, '') || 'assetUrl';\n return /^[a-zA-Z_$]/.test(safe) ? safe : `asset${safe}`;\n}\n\nexport function normalizePlayableEditorAssetKind(\n value: unknown,\n filePath = '',\n): PlayableEditorAssetKind | null {\n const raw = String(value ?? '').trim().toLowerCase();\n if (raw === 'glb' || raw === 'gltf' || raw === 'model') return 'model';\n if (raw === 'groundtexture' || raw === 'ground-texture' || raw === 'texture') return 'texture';\n if (raw === 'ui' || raw === 'image' || raw === 'img') return 'image';\n if (raw === 'audio' || raw === 'sound') return 'sound';\n\n const extension = getPlayableEditorAssetPathExtension(filePath);\n if ((PLAYABLE_EDITOR_MODEL_EXTENSIONS as readonly string[]).includes(extension)) return 'model';\n if ((PLAYABLE_EDITOR_SOUND_EXTENSIONS as readonly string[]).includes(extension)) return 'sound';\n if ((PLAYABLE_EDITOR_TEXTURE_EXTENSIONS as readonly string[]).includes(extension)) return 'texture';\n return null;\n}\n\nfunction getPlayableEditorAssetPathExtension(filePath: string): string {\n const cleanPath = filePath.split(/[?#]/, 1)[0] ?? '';\n const slashIndex = Math.max(cleanPath.lastIndexOf('/'), cleanPath.lastIndexOf('\\\\'));\n const fileName = cleanPath.slice(slashIndex + 1);\n const dotIndex = fileName.lastIndexOf('.');\n return dotIndex >= 0 ? fileName.slice(dotIndex).toLowerCase() : '';\n}\n\nfunction createFallbackPlayableEditorAssetGuid(randomSource: PlayableAssetRandomSource): string {\n const bytes = new Uint8Array(16);\n if (!randomSource.fillRandomBytes) throw new Error('Asset GUID random source must provide randomUUID or fillRandomBytes.');\n randomSource.fillRandomBytes(bytes);\n if (bytes.every((byte) => byte === 0)) {\n throw new Error('Asset GUID random source returned no entropy.');\n }\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n const hex = [...bytes].map((byte) => byte.toString(16).padStart(2, '0')).join('');\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n}\n\nexport function stripKnownPlayableEditorAssetExtension(value: unknown): string {\n let raw = String(value ?? '').trim();\n const lower = raw.toLowerCase();\n for (const extension of [...PLAYABLE_EDITOR_DEFAULT_EXTENSIONS].sort((a, b) => b.length - a.length)) {\n if (lower.endsWith(extension)) {\n raw = raw.slice(0, -extension.length);\n break;\n }\n }\n return raw;\n}\n\nexport function normalizePlayableEditorAssetDisplayName(value: unknown, fallback: unknown): string {\n const displayName = String(value ?? '').trim() || stripKnownPlayableEditorAssetExtension(fallback);\n return displayName || 'Asset';\n}\n\nexport function normalizePlayableEditorAssetCodeKey(value: unknown, fallback: unknown): string | null {\n const raw = stripKnownPlayableEditorAssetExtension(value || fallback)\n .trim()\n .toLowerCase()\n .normalize('NFKD')\n .replace(/[^a-z0-9]+/g, '_')\n .replace(/^_+|_+$/g, '')\n .replace(/_{2,}/g, '_');\n return raw || null;\n}\n\nexport function getPlayableEditorAssetKindExtensions(kind: PlayableEditorAssetKind): readonly string[] {\n if (kind === 'model') return PLAYABLE_EDITOR_MODEL_EXTENSIONS;\n if (kind === 'sound') return PLAYABLE_EDITOR_SOUND_EXTENSIONS;\n if (kind === 'texture') return PLAYABLE_EDITOR_TEXTURE_EXTENSIONS;\n if (kind === 'image') return PLAYABLE_EDITOR_IMAGE_EXTENSIONS;\n return [];\n}\n"]}
@@ -1,2 +1,3 @@
1
1
  export * from './identity.js';
2
+ export * from './portable-path.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './identity.js';
2
+ export * from './portable-path.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './identity.js';\nexport * from './portable-path.js';\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function normalizePlayablePortableAssetPath(value: unknown): string | undefined;
2
+ //# sourceMappingURL=portable-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable-path.d.ts","sourceRoot":"","sources":["../src/portable-path.ts"],"names":[],"mappings":"AAAA,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAoBrF"}
@@ -0,0 +1,25 @@
1
+ export function normalizePlayablePortableAssetPath(value) {
2
+ const raw = typeof value === 'string' && value.trim() ? value.trim() : undefined;
3
+ if (!raw)
4
+ return undefined;
5
+ if (raw.includes('\0'))
6
+ throw new Error('external_asset_path_must_be_portable');
7
+ const normalized = raw.replace(/\\/g, '/');
8
+ if (normalized.startsWith('/')
9
+ || /^[a-z]:\//i.test(normalized)
10
+ || /^[a-z][a-z0-9+.-]*:/i.test(normalized)) {
11
+ throw new Error('external_asset_path_must_be_portable');
12
+ }
13
+ const parts = [];
14
+ for (const part of normalized.split('/')) {
15
+ if (!part || part === '.')
16
+ continue;
17
+ if (part === '..')
18
+ throw new Error('external_asset_path_must_be_portable');
19
+ parts.push(part);
20
+ }
21
+ if (parts.length === 0)
22
+ throw new Error('external_asset_path_must_be_portable');
23
+ return parts.join('/');
24
+ }
25
+ //# sourceMappingURL=portable-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable-path.js","sourceRoot":"","sources":["../src/portable-path.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kCAAkC,CAAC,KAAc;IAC/D,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3C,IACE,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;WACvB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;WAC7B,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAC1C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG;YAAE,SAAS;QACpC,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC","sourcesContent":["export function normalizePlayablePortableAssetPath(value: unknown): string | undefined {\n const raw = typeof value === 'string' && value.trim() ? value.trim() : undefined;\n if (!raw) return undefined;\n if (raw.includes('\\0')) throw new Error('external_asset_path_must_be_portable');\n const normalized = raw.replace(/\\\\/g, '/');\n if (\n normalized.startsWith('/')\n || /^[a-z]:\\//i.test(normalized)\n || /^[a-z][a-z0-9+.-]*:/i.test(normalized)\n ) {\n throw new Error('external_asset_path_must_be_portable');\n }\n const parts: string[] = [];\n for (const part of normalized.split('/')) {\n if (!part || part === '.') continue;\n if (part === '..') throw new Error('external_asset_path_must_be_portable');\n parts.push(part);\n }\n if (parts.length === 0) throw new Error('external_asset_path_must_be_portable');\n return parts.join('/');\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/playable-assets",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.4",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Environment-neutral asset identity and catalog domain logic.",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoDA,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAU,CAAC;AAgD1D,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoDA,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAU,CAAC;AAgD1D,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC","sourcesContent":["export interface FpsVec3 {\n x: number;\n y: number;\n z: number;\n}\n\nexport interface FpsTransform {\n position: FpsVec3;\n rotation: FpsVec3;\n scale: FpsVec3;\n}\n\nexport interface EditorTransformVec3 extends FpsVec3 {}\n\nexport type EditorTransformMatrix = [\n number, number, number, number,\n number, number, number, number,\n number, number, number, number,\n number, number, number, number,\n];\n\nexport interface EditorTransformTrsSnapshot {\n mode?: 'trs';\n position: EditorTransformVec3;\n rotation: EditorTransformVec3;\n scale: EditorTransformVec3;\n}\n\nexport interface EditorTransformMatrixSnapshot {\n mode: 'matrix';\n matrix: EditorTransformMatrix;\n}\n\nexport type EditorTransformSnapshot = EditorTransformTrsSnapshot | EditorTransformMatrixSnapshot;\n\nexport type FpsRuntimeTransformSnapshot =\n | {\n readonly mode?: 'trs';\n readonly position: Readonly<FpsVec3>;\n readonly rotation: Readonly<FpsVec3>;\n readonly scale: Readonly<FpsVec3>;\n }\n | {\n readonly mode: 'matrix';\n readonly matrix: readonly [\n number, number, number, number,\n number, number, number, number,\n number, number, number, number,\n number, number, number, number,\n ];\n };\n\nexport const FPS_RUNTIME_DATA_SCHEMA_VERSION = 1 as const;\n\nexport interface FpsRuntimeAsset {\n readonly id: string;\n readonly kind: string;\n readonly url?: string;\n readonly metadata?: Readonly<Record<string, unknown>>;\n}\n\nexport interface FpsRuntimeMaterial {\n readonly id: string;\n readonly kind: string;\n readonly parameters?: Readonly<Record<string, unknown>>;\n readonly metadata?: Readonly<Record<string, unknown>>;\n}\n\nexport interface FpsRuntimeSceneNode {\n readonly id: string;\n readonly name?: string;\n readonly parentId?: string | null;\n readonly transform?: FpsRuntimeTransformSnapshot;\n readonly active?: boolean;\n readonly visible?: boolean;\n readonly shadow?: unknown;\n readonly shadowPlan?: unknown;\n readonly materialLightingModel?: 'lit' | 'unlit' | 'unknown';\n readonly receiveDynamicShadows?: boolean;\n readonly metadata?: Readonly<Record<string, unknown>>;\n}\n\nexport interface FpsRuntimePluginData {\n readonly pluginId: string;\n readonly schemaVersion: number;\n readonly data: unknown;\n}\n\nexport interface FpsRuntimeData<\n TAsset extends FpsRuntimeAsset = FpsRuntimeAsset,\n TNode extends FpsRuntimeSceneNode = FpsRuntimeSceneNode,\n> {\n readonly schemaVersion: typeof FPS_RUNTIME_DATA_SCHEMA_VERSION;\n readonly assets: readonly TAsset[];\n readonly materials?: readonly FpsRuntimeMaterial[];\n readonly scene: { readonly nodes: readonly TNode[] };\n readonly rendering?: unknown;\n readonly plugins?: readonly FpsRuntimePluginData[];\n readonly metadata?: Readonly<Record<string, unknown>>;\n}\nexport * from './marker-graph.js';\nexport * from './marker-graph-validation.js';\n"]}