@fps-games/editor 0.2.1-beta.2 → 0.2.1-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 (595) hide show
  1. package/dist/build-info.json +46 -46
  2. package/dist/editor-commands/capabilities/assets.d.ts +8 -0
  3. package/dist/editor-commands/capabilities/assets.d.ts.map +1 -0
  4. package/dist/{agent-bridge → editor-commands}/capabilities/assets.js +41 -41
  5. package/dist/editor-commands/capabilities/assets.js.map +1 -0
  6. package/dist/editor-commands/capabilities/editor-state.d.ts +5 -0
  7. package/dist/editor-commands/capabilities/editor-state.d.ts.map +1 -0
  8. package/dist/{agent-bridge → editor-commands}/capabilities/editor-state.js +22 -22
  9. package/dist/editor-commands/capabilities/editor-state.js.map +1 -0
  10. package/dist/editor-commands/capabilities/hierarchy.d.ts +4 -0
  11. package/dist/editor-commands/capabilities/hierarchy.d.ts.map +1 -0
  12. package/dist/{agent-bridge → editor-commands}/capabilities/hierarchy.js +5 -5
  13. package/dist/editor-commands/capabilities/hierarchy.js.map +1 -0
  14. package/dist/editor-commands/capabilities/host-lifecycle.d.ts +11 -0
  15. package/dist/editor-commands/capabilities/host-lifecycle.d.ts.map +1 -0
  16. package/dist/editor-commands/capabilities/host-lifecycle.js +149 -0
  17. package/dist/editor-commands/capabilities/host-lifecycle.js.map +1 -0
  18. package/dist/editor-commands/capabilities/prefabs.d.ts +5 -0
  19. package/dist/editor-commands/capabilities/prefabs.d.ts.map +1 -0
  20. package/dist/{agent-bridge → editor-commands}/capabilities/prefabs.js +93 -93
  21. package/dist/editor-commands/capabilities/prefabs.js.map +1 -0
  22. package/dist/editor-commands/capabilities/scene-objects.d.ts +8 -0
  23. package/dist/editor-commands/capabilities/scene-objects.d.ts.map +1 -0
  24. package/dist/editor-commands/capabilities/scene-objects.js +480 -0
  25. package/dist/editor-commands/capabilities/scene-objects.js.map +1 -0
  26. package/dist/editor-commands/capabilities/selection.d.ts +5 -0
  27. package/dist/editor-commands/capabilities/selection.d.ts.map +1 -0
  28. package/dist/editor-commands/capabilities/selection.js +60 -0
  29. package/dist/editor-commands/capabilities/selection.js.map +1 -0
  30. package/dist/editor-commands/capabilities/shadows.d.ts +5 -0
  31. package/dist/editor-commands/capabilities/shadows.d.ts.map +1 -0
  32. package/dist/{agent-bridge → editor-commands}/capabilities/shadows.js +74 -74
  33. package/dist/editor-commands/capabilities/shadows.js.map +1 -0
  34. package/dist/editor-commands/capabilities/transform.d.ts +5 -0
  35. package/dist/editor-commands/capabilities/transform.d.ts.map +1 -0
  36. package/dist/editor-commands/capabilities/transform.js +164 -0
  37. package/dist/editor-commands/capabilities/transform.js.map +1 -0
  38. package/dist/editor-commands/capabilities/ui-regions.d.ts +4 -0
  39. package/dist/editor-commands/capabilities/ui-regions.d.ts.map +1 -0
  40. package/dist/{agent-bridge → editor-commands}/capabilities/ui-regions.js +55 -57
  41. package/dist/editor-commands/capabilities/ui-regions.js.map +1 -0
  42. package/dist/editor-commands/capabilities/viewport.d.ts +5 -0
  43. package/dist/editor-commands/capabilities/viewport.d.ts.map +1 -0
  44. package/dist/{agent-bridge → editor-commands}/capabilities/viewport.js +100 -100
  45. package/dist/editor-commands/capabilities/viewport.js.map +1 -0
  46. package/dist/editor-commands/command-sources.d.ts +7 -0
  47. package/dist/editor-commands/command-sources.d.ts.map +1 -0
  48. package/dist/editor-commands/command-sources.js +34 -0
  49. package/dist/editor-commands/command-sources.js.map +1 -0
  50. package/dist/editor-commands/diagnostics.d.ts +12 -0
  51. package/dist/editor-commands/diagnostics.d.ts.map +1 -0
  52. package/dist/{agent-bridge → editor-commands}/diagnostics.js +4 -4
  53. package/dist/editor-commands/diagnostics.js.map +1 -0
  54. package/dist/{agent-bridge → editor-commands}/index.d.ts +1 -1
  55. package/dist/editor-commands/index.d.ts.map +1 -0
  56. package/dist/{agent-bridge → editor-commands}/index.js +1 -1
  57. package/dist/editor-commands/index.js.map +1 -0
  58. package/dist/editor-commands/register.d.ts +4 -0
  59. package/dist/editor-commands/register.d.ts.map +1 -0
  60. package/dist/{agent-bridge → editor-commands}/register.js +323 -286
  61. package/dist/editor-commands/register.js.map +1 -0
  62. package/dist/{agent-bridge → editor-commands}/shared.d.ts +80 -80
  63. package/dist/editor-commands/shared.d.ts.map +1 -0
  64. package/dist/{agent-bridge → editor-commands}/shared.js +29 -29
  65. package/dist/editor-commands/shared.js.map +1 -0
  66. package/dist/editor-commands/source-types.d.ts +110 -0
  67. package/dist/editor-commands/source-types.d.ts.map +1 -0
  68. package/dist/editor-commands/source-types.js.map +1 -0
  69. package/dist/editor-plugin-commands.d.ts +4 -0
  70. package/dist/editor-plugin-commands.d.ts.map +1 -0
  71. package/dist/editor-plugin-commands.js +18 -0
  72. package/dist/editor-plugin-commands.js.map +1 -0
  73. package/dist/index.d.ts +2 -2
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +1 -1
  76. package/dist/index.js.map +1 -1
  77. package/dist/local-editor-commands.d.ts +2 -0
  78. package/dist/local-editor-commands.d.ts.map +1 -0
  79. package/dist/local-editor-commands.js +2 -0
  80. package/dist/local-editor-commands.js.map +1 -0
  81. package/dist/local-editor-harness.d.ts +35 -21
  82. package/dist/local-editor-harness.d.ts.map +1 -1
  83. package/dist/local-editor-harness.js +1737 -374
  84. package/dist/local-editor-harness.js.map +1 -1
  85. package/dist/local-editor-prefab-stage-transaction.d.ts +2 -1
  86. package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -1
  87. package/dist/local-editor-prefab-stage-transaction.js +6 -5
  88. package/dist/local-editor-prefab-stage-transaction.js.map +1 -1
  89. package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
  90. package/dist/local-editor-scene-view-interaction-runtime.js +2 -5
  91. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  92. package/dist/playable-babylon-rendering.d.ts +8 -7
  93. package/dist/playable-babylon-rendering.d.ts.map +1 -1
  94. package/dist/playable-babylon-rendering.js +77 -32
  95. package/dist/playable-babylon-rendering.js.map +1 -1
  96. package/dist/playable-local-editor-entry.d.ts +10 -0
  97. package/dist/playable-local-editor-entry.d.ts.map +1 -1
  98. package/dist/playable-local-editor-entry.js +10 -2
  99. package/dist/playable-local-editor-entry.js.map +1 -1
  100. package/dist/playable-local-editor-host.d.ts +3 -32
  101. package/dist/playable-local-editor-host.d.ts.map +1 -1
  102. package/dist/playable-local-editor-host.js +6 -70
  103. package/dist/playable-local-editor-host.js.map +1 -1
  104. package/dist/playable-product-local-editor.d.ts +1 -2
  105. package/dist/playable-product-local-editor.d.ts.map +1 -1
  106. package/dist/playable-product-local-editor.js +0 -1
  107. package/dist/playable-product-local-editor.js.map +1 -1
  108. package/dist/playable-product-projection-preview.d.ts +2 -0
  109. package/dist/playable-product-projection-preview.d.ts.map +1 -1
  110. package/dist/playable-product-projection-preview.js +8 -5
  111. package/dist/playable-product-projection-preview.js.map +1 -1
  112. package/dist/playable-product-scene-capabilities.d.ts +0 -2
  113. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  114. package/dist/playable-product-scene-capabilities.js +33 -6
  115. package/dist/playable-product-scene-capabilities.js.map +1 -1
  116. package/dist/playable-runtime-babylon.d.ts +4 -0
  117. package/dist/playable-runtime-babylon.d.ts.map +1 -1
  118. package/dist/playable-runtime-babylon.js +4 -0
  119. package/dist/playable-runtime-babylon.js.map +1 -1
  120. package/dist/playable-sdk.d.ts +2 -2
  121. package/dist/playable-sdk.d.ts.map +1 -1
  122. package/dist/playable-sdk.js +1 -1
  123. package/dist/playable-sdk.js.map +1 -1
  124. package/dist/playable-standard-project.d.ts +0 -3
  125. package/dist/playable-standard-project.d.ts.map +1 -1
  126. package/dist/playable-standard-project.js +14 -6
  127. package/dist/playable-standard-project.js.map +1 -1
  128. package/dist/project-service-projection.d.ts +16 -0
  129. package/dist/project-service-projection.d.ts.map +1 -0
  130. package/dist/project-service-projection.js +67 -0
  131. package/dist/project-service-projection.js.map +1 -0
  132. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.d.ts +4 -2
  133. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.d.ts.map +1 -1
  134. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js +301 -121
  135. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
  136. package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js +5 -4
  137. package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
  138. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.d.ts +4 -4
  139. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.d.ts.map +1 -1
  140. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js +1 -1
  141. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
  142. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +2 -0
  143. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -1
  144. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +12 -1
  145. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -1
  146. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +6 -3
  147. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
  148. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +100 -39
  149. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  150. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +18 -0
  151. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
  152. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +54 -18
  153. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  154. package/node_modules/@fps-games/babylon-renderer/dist/reference.d.ts +1 -3
  155. package/node_modules/@fps-games/babylon-renderer/dist/reference.d.ts.map +1 -1
  156. package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
  157. package/node_modules/@fps-games/babylon-renderer/package.json +11 -8
  158. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +1 -0
  159. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  160. package/node_modules/@fps-games/editor-babylon/dist/projection.js +1 -1
  161. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  162. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -1
  163. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +127 -13
  164. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -1
  165. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
  166. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +66 -1
  167. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  168. package/node_modules/@fps-games/editor-babylon/package.json +6 -6
  169. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts +32 -0
  170. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts.map +1 -0
  171. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js +254 -0
  172. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js.map +1 -0
  173. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
  174. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  175. package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
  176. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  177. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts +68 -0
  178. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts.map +1 -0
  179. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js +650 -0
  180. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js.map +1 -0
  181. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +1 -0
  182. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -1
  183. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +22 -0
  184. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -1
  185. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +8 -0
  186. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  187. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +117 -6
  188. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  189. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +14 -1
  190. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  191. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +100 -1
  192. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  193. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +8 -1
  194. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  195. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +75 -2
  196. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  197. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +37 -12
  198. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  199. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  200. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +25 -2
  201. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  202. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +332 -107
  203. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  204. package/node_modules/@fps-games/editor-browser/package.json +7 -7
  205. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts +107 -0
  206. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts.map +1 -0
  207. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js +1211 -0
  208. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js.map +1 -0
  209. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts +34 -0
  210. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts.map +1 -0
  211. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js +260 -0
  212. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js.map +1 -0
  213. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts +9 -0
  214. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts.map +1 -0
  215. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js +14 -0
  216. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js.map +1 -0
  217. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts +18 -0
  218. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts.map +1 -0
  219. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js +113 -0
  220. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js.map +1 -0
  221. package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts +82 -0
  222. package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts.map +1 -0
  223. package/node_modules/@fps-games/editor-core/dist/editor-command-system.js +1098 -0
  224. package/node_modules/@fps-games/editor-core/dist/editor-command-system.js.map +1 -0
  225. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -7
  226. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
  227. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +62 -103
  228. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  229. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts +30 -0
  230. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts.map +1 -0
  231. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js +540 -0
  232. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js.map +1 -0
  233. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts +9 -0
  234. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts.map +1 -0
  235. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js +61 -0
  236. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js.map +1 -0
  237. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +55 -0
  238. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  239. package/node_modules/@fps-games/editor-core/dist/editor-session.js +247 -6
  240. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  241. package/node_modules/@fps-games/editor-core/dist/index.d.ts +6 -2
  242. package/node_modules/@fps-games/editor-core/dist/index.d.ts.map +1 -1
  243. package/node_modules/@fps-games/editor-core/dist/index.js +6 -2
  244. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  245. package/node_modules/@fps-games/editor-core/package.json +6 -6
  246. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts +0 -1
  247. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts.map +1 -1
  248. package/node_modules/@fps-games/editor-forge-play/dist/index.js +0 -1
  249. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  250. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  251. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.d.ts.map +1 -1
  252. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js +10 -3
  253. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
  254. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.d.ts +2 -1
  255. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.d.ts.map +1 -1
  256. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js +1 -1
  257. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts +2 -0
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +41 -1
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +27 -1
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +214 -7
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +1 -0
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +11 -3
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +2 -4
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +0 -1
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +77 -31
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +8 -1
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.d.ts +21 -1
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.d.ts.map +1 -1
  286. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js +90 -4
  287. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
  288. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts +27 -1
  289. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts.map +1 -1
  290. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js +161 -1
  291. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  292. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts +2 -2
  293. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts.map +1 -1
  294. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js +5 -92
  295. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
  296. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts +7 -0
  297. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts.map +1 -1
  298. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js +26 -9
  299. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
  300. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts +9 -0
  301. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
  302. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +19 -8
  303. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
  304. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
  305. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  306. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +4 -0
  307. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  308. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts +5 -0
  309. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts.map +1 -1
  310. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js +16 -4
  311. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
  312. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +9 -0
  313. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
  314. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +12 -2
  315. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  316. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.d.ts +2 -1
  317. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.d.ts.map +1 -1
  318. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js +10 -5
  319. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
  320. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts +1 -0
  321. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
  322. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +1 -0
  323. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  324. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +17 -82
  325. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  326. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +53 -57
  327. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  328. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.d.ts.map +1 -1
  329. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js +3 -2
  330. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
  331. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts +10 -0
  332. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts.map +1 -0
  333. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js +256 -0
  334. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js.map +1 -0
  335. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
  336. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +7 -5
  337. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  338. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +4 -4
  339. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  340. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +2 -1
  341. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
  342. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  343. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js +1 -5
  344. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
  345. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  346. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +8 -0
  347. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  348. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +1 -0
  349. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  350. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  351. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +187 -12
  352. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  353. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts +2 -0
  354. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts.map +1 -1
  355. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
  356. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  357. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +47 -0
  358. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  359. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.d.ts +27 -0
  360. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.d.ts.map +1 -0
  361. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js +592 -0
  362. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js.map +1 -0
  363. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +3 -1
  364. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -1
  365. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +2 -1
  366. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  367. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  368. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +61 -6
  369. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  370. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +0 -2
  371. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  372. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js +1 -10
  373. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  374. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  375. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +21 -0
  376. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  377. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.d.ts +13 -0
  378. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.d.ts.map +1 -0
  379. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js +18 -0
  380. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js.map +1 -0
  381. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts +28 -0
  382. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts.map +1 -0
  383. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js +863 -0
  384. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js.map +1 -0
  385. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +2 -0
  386. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  387. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  388. package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
  389. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.d.ts +1626 -0
  390. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.d.ts.map +1 -0
  391. package/node_modules/@fps-games/editor-protocol/dist/{agent-bridge.js → editor-command-capabilities.js} +766 -620
  392. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.js.map +1 -0
  393. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts +69 -0
  394. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts.map +1 -0
  395. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js +22 -0
  396. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js.map +1 -0
  397. package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts +136 -0
  398. package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts.map +1 -0
  399. package/node_modules/@fps-games/editor-protocol/dist/editor-command.js +2 -0
  400. package/node_modules/@fps-games/editor-protocol/dist/editor-command.js.map +1 -0
  401. package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts +225 -0
  402. package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts.map +1 -0
  403. package/node_modules/@fps-games/editor-protocol/dist/editor-service.js +4 -0
  404. package/node_modules/@fps-games/editor-protocol/dist/editor-service.js.map +1 -0
  405. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +6 -3
  406. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  407. package/node_modules/@fps-games/editor-protocol/dist/index.js +6 -3
  408. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  409. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  410. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  411. package/node_modules/@fps-games/editor-ui/package.json +1 -1
  412. package/node_modules/@fps-games/playable-assets/dist/identity.d.ts +1 -0
  413. package/node_modules/@fps-games/playable-assets/dist/identity.d.ts.map +1 -1
  414. package/node_modules/@fps-games/playable-assets/dist/identity.js +1 -1
  415. package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
  416. package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
  417. package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
  418. package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
  419. package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
  420. package/node_modules/@fps-games/playable-assets/dist/resource-resolver.d.ts +46 -0
  421. package/node_modules/@fps-games/playable-assets/dist/resource-resolver.d.ts.map +1 -0
  422. package/node_modules/@fps-games/playable-assets/dist/resource-resolver.js +109 -0
  423. package/node_modules/@fps-games/playable-assets/dist/resource-resolver.js.map +1 -0
  424. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  425. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  426. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  427. package/node_modules/@fps-games/playable-runtime/dist/runtime.d.ts.map +1 -1
  428. package/node_modules/@fps-games/playable-runtime/dist/runtime.js +5 -0
  429. package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
  430. package/node_modules/@fps-games/playable-runtime/dist/types.d.ts +2 -0
  431. package/node_modules/@fps-games/playable-runtime/dist/types.d.ts.map +1 -1
  432. package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
  433. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  434. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  435. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  436. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  437. package/node_modules/@fps-games/plugin-assets/dist/reference.d.ts.map +1 -1
  438. package/node_modules/@fps-games/plugin-assets/dist/reference.js +11 -4
  439. package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
  440. package/node_modules/@fps-games/plugin-assets/dist/renderer.d.ts +8 -0
  441. package/node_modules/@fps-games/plugin-assets/dist/renderer.d.ts.map +1 -0
  442. package/node_modules/@fps-games/plugin-assets/dist/renderer.js +13 -0
  443. package/node_modules/@fps-games/plugin-assets/dist/renderer.js.map +1 -0
  444. package/node_modules/@fps-games/plugin-assets/dist/resources.d.ts +12 -0
  445. package/node_modules/@fps-games/plugin-assets/dist/resources.d.ts.map +1 -0
  446. package/node_modules/@fps-games/plugin-assets/dist/resources.js +8 -0
  447. package/node_modules/@fps-games/plugin-assets/dist/resources.js.map +1 -0
  448. package/node_modules/@fps-games/plugin-assets/dist/runtime.d.ts +2 -1
  449. package/node_modules/@fps-games/plugin-assets/dist/runtime.d.ts.map +1 -1
  450. package/node_modules/@fps-games/plugin-assets/dist/runtime.js +3 -0
  451. package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
  452. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  453. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  454. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  455. package/node_modules/@fps-games/plugin-assets/package.json +32 -8
  456. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +1 -0
  457. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -1
  458. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +78 -4
  459. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -1
  460. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +1 -1
  461. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +1 -1
  462. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -1
  463. package/node_modules/@fps-games/plugin-hierarchy/package.json +5 -5
  464. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  465. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  466. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  467. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  468. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  469. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  470. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  471. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  472. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  473. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  474. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  475. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  476. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  477. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  478. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  479. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  480. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  481. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +1 -1
  482. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +1 -1
  483. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -1
  484. package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +5 -5
  485. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  486. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  487. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  488. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  489. package/package.json +24 -22
  490. package/dist/agent-bridge/capabilities/assets.d.ts +0 -8
  491. package/dist/agent-bridge/capabilities/assets.d.ts.map +0 -1
  492. package/dist/agent-bridge/capabilities/assets.js.map +0 -1
  493. package/dist/agent-bridge/capabilities/editor-state.d.ts +0 -5
  494. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +0 -1
  495. package/dist/agent-bridge/capabilities/editor-state.js.map +0 -1
  496. package/dist/agent-bridge/capabilities/hierarchy.d.ts +0 -4
  497. package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +0 -1
  498. package/dist/agent-bridge/capabilities/hierarchy.js.map +0 -1
  499. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts +0 -11
  500. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts.map +0 -1
  501. package/dist/agent-bridge/capabilities/host-lifecycle.js +0 -149
  502. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +0 -1
  503. package/dist/agent-bridge/capabilities/prefabs.d.ts +0 -5
  504. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +0 -1
  505. package/dist/agent-bridge/capabilities/prefabs.js.map +0 -1
  506. package/dist/agent-bridge/capabilities/scene-objects.d.ts +0 -8
  507. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +0 -1
  508. package/dist/agent-bridge/capabilities/scene-objects.js +0 -480
  509. package/dist/agent-bridge/capabilities/scene-objects.js.map +0 -1
  510. package/dist/agent-bridge/capabilities/selection.d.ts +0 -5
  511. package/dist/agent-bridge/capabilities/selection.d.ts.map +0 -1
  512. package/dist/agent-bridge/capabilities/selection.js +0 -60
  513. package/dist/agent-bridge/capabilities/selection.js.map +0 -1
  514. package/dist/agent-bridge/capabilities/shadows.d.ts +0 -5
  515. package/dist/agent-bridge/capabilities/shadows.d.ts.map +0 -1
  516. package/dist/agent-bridge/capabilities/shadows.js.map +0 -1
  517. package/dist/agent-bridge/capabilities/transform.d.ts +0 -5
  518. package/dist/agent-bridge/capabilities/transform.d.ts.map +0 -1
  519. package/dist/agent-bridge/capabilities/transform.js +0 -164
  520. package/dist/agent-bridge/capabilities/transform.js.map +0 -1
  521. package/dist/agent-bridge/capabilities/ui-regions.d.ts +0 -4
  522. package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +0 -1
  523. package/dist/agent-bridge/capabilities/ui-regions.js.map +0 -1
  524. package/dist/agent-bridge/capabilities/viewport.d.ts +0 -5
  525. package/dist/agent-bridge/capabilities/viewport.d.ts.map +0 -1
  526. package/dist/agent-bridge/capabilities/viewport.js.map +0 -1
  527. package/dist/agent-bridge/capability-sources.d.ts +0 -7
  528. package/dist/agent-bridge/capability-sources.d.ts.map +0 -1
  529. package/dist/agent-bridge/capability-sources.js +0 -34
  530. package/dist/agent-bridge/capability-sources.js.map +0 -1
  531. package/dist/agent-bridge/diagnostics.d.ts +0 -12
  532. package/dist/agent-bridge/diagnostics.d.ts.map +0 -1
  533. package/dist/agent-bridge/diagnostics.js.map +0 -1
  534. package/dist/agent-bridge/index.d.ts.map +0 -1
  535. package/dist/agent-bridge/index.js.map +0 -1
  536. package/dist/agent-bridge/register.d.ts +0 -4
  537. package/dist/agent-bridge/register.d.ts.map +0 -1
  538. package/dist/agent-bridge/register.js.map +0 -1
  539. package/dist/agent-bridge/shared.d.ts.map +0 -1
  540. package/dist/agent-bridge/shared.js.map +0 -1
  541. package/dist/agent-bridge/source-types.d.ts +0 -110
  542. package/dist/agent-bridge/source-types.d.ts.map +0 -1
  543. package/dist/agent-bridge/source-types.js.map +0 -1
  544. package/dist/editor-plugin-agent-capabilities.d.ts +0 -4
  545. package/dist/editor-plugin-agent-capabilities.d.ts.map +0 -1
  546. package/dist/editor-plugin-agent-capabilities.js +0 -64
  547. package/dist/editor-plugin-agent-capabilities.js.map +0 -1
  548. package/dist/local-editor-agent-actions.d.ts +0 -43
  549. package/dist/local-editor-agent-actions.d.ts.map +0 -1
  550. package/dist/local-editor-agent-actions.js +0 -321
  551. package/dist/local-editor-agent-actions.js.map +0 -1
  552. package/dist/local-editor-agent-bridge-transport.d.ts +0 -129
  553. package/dist/local-editor-agent-bridge-transport.d.ts.map +0 -1
  554. package/dist/local-editor-agent-bridge-transport.js +0 -403
  555. package/dist/local-editor-agent-bridge-transport.js.map +0 -1
  556. package/dist/local-editor-agent-bridge.d.ts +0 -2
  557. package/dist/local-editor-agent-bridge.d.ts.map +0 -1
  558. package/dist/local-editor-agent-bridge.js +0 -2
  559. package/dist/local-editor-agent-bridge.js.map +0 -1
  560. package/dist/local-editor-agent-context.d.ts +0 -68
  561. package/dist/local-editor-agent-context.d.ts.map +0 -1
  562. package/dist/local-editor-agent-context.js +0 -716
  563. package/dist/local-editor-agent-context.js.map +0 -1
  564. package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts +0 -22
  565. package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts.map +0 -1
  566. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js +0 -106
  567. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +0 -1
  568. package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts +0 -17
  569. package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts.map +0 -1
  570. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js +0 -14
  571. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +0 -1
  572. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts +0 -23
  573. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts.map +0 -1
  574. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js +0 -47
  575. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +0 -1
  576. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts +0 -112
  577. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts.map +0 -1
  578. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js +0 -159
  579. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +0 -1
  580. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts +0 -15
  581. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts.map +0 -1
  582. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js +0 -76
  583. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +0 -1
  584. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +0 -1622
  585. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +0 -1
  586. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +0 -1
  587. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts +0 -68
  588. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts.map +0 -1
  589. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js +0 -23
  590. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +0 -1
  591. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +0 -187
  592. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +0 -1
  593. package/node_modules/@fps-games/editor-protocol/dist/agent.js +0 -5
  594. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +0 -1
  595. /package/dist/{agent-bridge → editor-commands}/source-types.js +0 -0
@@ -1,4 +1,4 @@
1
- import type { PlayableLocalEditorDataSafetyOperation, PlayableLocalEditorInteractionPolicy, PlayableLocalEditorLoadingOverlayContent, PlayableLocalEditorSaveFailureState, PlayableLocalEditorUnsavedChangesState } from './types';
1
+ import type { PlayableLocalEditorDataSafetyOperation, PlayableLocalEditorInteractionPolicy, PlayableLocalEditorLoadingOverlayContent, PlayableLocalEditorPreparedAuthoringSource, PlayableLocalEditorSaveFailureState, PlayableLocalEditorUnsavedChangesState } from './types';
2
2
  export type PlayableForgePlayMode = 'play' | 'edit';
3
3
  export interface PlayableForgePlayMessageEvent {
4
4
  source: unknown;
@@ -72,7 +72,25 @@ export interface PlayableForgePlaySaveState {
72
72
  }
73
73
  export interface PlayableForgePlayDocumentExportResult {
74
74
  documentFingerprint: string | null;
75
+ documentRevision: number | null;
76
+ expectedVersion?: number;
77
+ preparedAuthoringSource?: PlayableLocalEditorPreparedAuthoringSource;
75
78
  }
79
+ export type PlayableForgePlaySaveTransactionPhase = 'idle' | 'preparing-authoring' | 'awaiting-platform-commit' | 'committing' | 'committed' | 'rejected';
80
+ export interface PlayableForgePlaySaveTransactionRejection {
81
+ code: string;
82
+ message?: string;
83
+ }
84
+ export interface PlayableForgePlaySaveTransactionSnapshot {
85
+ readonly requestId: string | null;
86
+ readonly phase: PlayableForgePlaySaveTransactionPhase;
87
+ readonly stage: 'document.export' | 'document.commit' | null;
88
+ readonly expectedVersion?: number;
89
+ readonly actualVersion?: number;
90
+ readonly rejection: Readonly<PlayableForgePlaySaveTransactionRejection> | null;
91
+ }
92
+ /** @deprecated Use PlayableForgePlaySaveTransactionSnapshot. */
93
+ export type PlayableForgePlaySaveTransaction = PlayableForgePlaySaveTransactionSnapshot;
76
94
  export interface PlayableForgePlayBridgeInstallOptions {
77
95
  window: PlayableForgePlayWindowLike;
78
96
  harness: PlayableForgePlayBridgeHarness;
@@ -94,6 +112,8 @@ export interface PlayableForgePlayBridgeInstallOptions {
94
112
  payload: Record<string, unknown>;
95
113
  saveState: PlayableForgePlaySaveState;
96
114
  documentFingerprint: string | null;
115
+ documentRevision: number | null;
116
+ preparedAuthoringSource?: PlayableLocalEditorPreparedAuthoringSource;
97
117
  }) => Promise<void>;
98
118
  exitEditor?: (reason: 'save' | 'discard') => Promise<boolean>;
99
119
  handleProjectAssetCommand?: (name: string, payload: Record<string, unknown>) => Promise<void>;
@@ -106,6 +126,8 @@ export interface PlayableForgePlayBridgeInstallOptions {
106
126
  reportError?: (error: unknown) => void;
107
127
  initialMode?: PlayableForgePlayMode;
108
128
  overlayHideDelayMs?: number;
129
+ /** Test hook for deterministic bridge-session assertions. */
130
+ createSessionId?: () => string;
109
131
  }
110
132
  export interface PlayableForgePlayModeBridge {
111
133
  switchMode(mode: PlayableForgePlayMode, options?: {
@@ -113,7 +135,11 @@ export interface PlayableForgePlayModeBridge {
113
135
  }): Promise<void>;
114
136
  commitPlatformSave(): Promise<void>;
115
137
  getMode(): PlayableForgePlayMode;
138
+ getSessionId(): string;
116
139
  getSaveState(): PlayableForgePlaySaveState;
140
+ getSaveTransaction(): PlayableForgePlaySaveTransactionSnapshot;
141
+ acknowledgeEditorSessionReady(): void;
142
+ postEvent(name: string, payload?: Record<string, unknown>): void;
117
143
  dispose(): void;
118
144
  }
119
145
  //# sourceMappingURL=forge-play-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"forge-play-types.d.ts","sourceRoot":"","sources":["../../src/local-harness/forge-play-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge-play-types.d.ts","sourceRoot":"","sources":["../../src/local-harness/forge-play-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"forge-play-types.js","sourceRoot":"","sources":["../../src/local-harness/forge-play-types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n PlayableLocalEditorDataSafetyOperation,\n PlayableLocalEditorInteractionPolicy,\n PlayableLocalEditorLoadingOverlayContent,\n PlayableLocalEditorSaveFailureState,\n PlayableLocalEditorUnsavedChangesState,\n} from './types';\n\nexport type PlayableForgePlayMode = 'play' | 'edit';\n\nexport interface PlayableForgePlayMessageEvent {\n source: unknown;\n data: unknown;\n stopImmediatePropagation?: () => void;\n}\n\nexport interface PlayableForgePlayWindowLike {\n parent: {\n postMessage(message: unknown, targetOrigin: string): void;\n } | null;\n addEventListener(\n type: 'message',\n listener: (event: PlayableForgePlayMessageEvent) => void,\n options?: { capture?: boolean },\n ): void;\n removeEventListener(\n type: 'message',\n listener: (event: PlayableForgePlayMessageEvent) => void,\n options?: { capture?: boolean },\n ): void;\n setTimeout(handler: () => void, timeout: number): unknown;\n clearTimeout(id: unknown): void;\n queueMicrotask?(handler: () => void): void;\n}\n\nexport type PlayableForgePlayOperationOrigin = 'user' | 'agent' | 'system';\nexport type PlayableForgePlayProjectionWaitPolicy = 'none' | 'settled';\nexport type PlayableForgePlayHistoryOperation = 'undo' | 'redo';\n\nexport interface PlayableForgePlayHistoryOperationOptions {\n origin?: PlayableForgePlayOperationOrigin;\n waitForProjection?: PlayableForgePlayProjectionWaitPolicy;\n}\n\nexport interface PlayableForgePlayHistoryProjectionResult {\n waitPolicy: PlayableForgePlayProjectionWaitPolicy;\n idle: boolean;\n activeBatchIds: number[];\n lastBatch: unknown | null;\n}\n\nexport interface PlayableForgePlayHistoryStateResult {\n canUndo: boolean;\n canRedo: boolean;\n}\n\nexport interface PlayableForgePlayHistoryOperationResult<TDocument = unknown> {\n ok: boolean;\n operation: PlayableForgePlayHistoryOperation;\n origin: PlayableForgePlayOperationOrigin;\n waitForProjection: PlayableForgePlayProjectionWaitPolicy;\n documentChanged: boolean;\n transactionLabel: string | null;\n workingDocument: TDocument | null;\n dirty: boolean;\n history: PlayableForgePlayHistoryStateResult;\n status: string;\n projection: PlayableForgePlayHistoryProjectionResult;\n error?: string;\n}\n\nexport interface PlayableForgePlayBridgeHarness {\n enterEditor(): Promise<void>;\n saveScene(): Promise<boolean>;\n discardAndRunGame(): Promise<void>;\n render(): void;\n getWorkingDocument(): unknown | null;\n getUnsavedChangesState?(): PlayableLocalEditorUnsavedChangesState;\n getSaveFailureState?(): PlayableLocalEditorSaveFailureState | null;\n undo?(options?: PlayableForgePlayHistoryOperationOptions): Promise<PlayableForgePlayHistoryOperationResult>;\n redo?(options?: PlayableForgePlayHistoryOperationOptions): Promise<PlayableForgePlayHistoryOperationResult>;\n}\n\nexport interface PlayableForgePlayBridgeLoadingOverlay {\n show(content: PlayableLocalEditorLoadingOverlayContent): void;\n hide(): void;\n isVisible(): boolean;\n}\n\nexport interface PlayableForgePlaySaveState {\n preparedRevision: number;\n committedRevision: number;\n}\n\nexport interface PlayableForgePlayDocumentExportResult {\n documentFingerprint: string | null;\n}\n\nexport interface PlayableForgePlayBridgeInstallOptions {\n window: PlayableForgePlayWindowLike;\n harness: PlayableForgePlayBridgeHarness;\n loadingOverlay: PlayableForgePlayBridgeLoadingOverlay;\n loadingContent: {\n saveScene: PlayableLocalEditorLoadingOverlayContent;\n saveAndRunGame: PlayableLocalEditorLoadingOverlayContent;\n discardAndRunGame: PlayableLocalEditorLoadingOverlayContent;\n };\n exportDocument?: (input: {\n payload: Record<string, unknown>;\n saveState: PlayableForgePlaySaveState;\n postEvent: (name: string, payload?: Record<string, unknown>) => void;\n }) => Promise<PlayableForgePlayDocumentExportResult> | PlayableForgePlayDocumentExportResult;\n saveDocument?: (operation: PlayableLocalEditorDataSafetyOperation) => Promise<boolean>;\n saveAndExitEditor?: (operation: PlayableLocalEditorDataSafetyOperation) => Promise<boolean>;\n preflightRun?: () => Promise<boolean>;\n commitDocument?: (input: {\n payload: Record<string, unknown>;\n saveState: PlayableForgePlaySaveState;\n documentFingerprint: string | null;\n }) => Promise<void>;\n exitEditor?: (reason: 'save' | 'discard') => Promise<boolean>;\n handleProjectAssetCommand?: (name: string, payload: Record<string, unknown>) => Promise<void>;\n handleAssetDrop?: (payload: Record<string, unknown>) => void;\n hasUnsavedPlatformChanges?: () => boolean;\n interactions?: PlayableLocalEditorInteractionPolicy;\n waitForPaint?: () => Promise<void>;\n renderAfterEnter?: boolean;\n readMode?: () => PlayableForgePlayMode;\n reportError?: (error: unknown) => void;\n initialMode?: PlayableForgePlayMode;\n overlayHideDelayMs?: number;\n}\n\nexport interface PlayableForgePlayModeBridge {\n switchMode(mode: PlayableForgePlayMode, options?: { save?: boolean }): Promise<void>;\n commitPlatformSave(): Promise<void>;\n getMode(): PlayableForgePlayMode;\n getSaveState(): PlayableForgePlaySaveState;\n dispose(): void;\n}\n"]}
1
+ {"version":3,"file":"forge-play-types.js","sourceRoot":"","sources":["../../src/local-harness/forge-play-types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n PlayableLocalEditorDataSafetyOperation,\n PlayableLocalEditorInteractionPolicy,\n PlayableLocalEditorLoadingOverlayContent,\n PlayableLocalEditorPreparedAuthoringSource,\n PlayableLocalEditorSaveFailureState,\n PlayableLocalEditorUnsavedChangesState,\n} from './types';\n\nexport type PlayableForgePlayMode = 'play' | 'edit';\n\nexport interface PlayableForgePlayMessageEvent {\n source: unknown;\n data: unknown;\n stopImmediatePropagation?: () => void;\n}\n\nexport interface PlayableForgePlayWindowLike {\n parent: {\n postMessage(message: unknown, targetOrigin: string): void;\n } | null;\n addEventListener(\n type: 'message',\n listener: (event: PlayableForgePlayMessageEvent) => void,\n options?: { capture?: boolean },\n ): void;\n removeEventListener(\n type: 'message',\n listener: (event: PlayableForgePlayMessageEvent) => void,\n options?: { capture?: boolean },\n ): void;\n setTimeout(handler: () => void, timeout: number): unknown;\n clearTimeout(id: unknown): void;\n queueMicrotask?(handler: () => void): void;\n}\n\nexport type PlayableForgePlayOperationOrigin = 'user' | 'agent' | 'system';\nexport type PlayableForgePlayProjectionWaitPolicy = 'none' | 'settled';\nexport type PlayableForgePlayHistoryOperation = 'undo' | 'redo';\n\nexport interface PlayableForgePlayHistoryOperationOptions {\n origin?: PlayableForgePlayOperationOrigin;\n waitForProjection?: PlayableForgePlayProjectionWaitPolicy;\n}\n\nexport interface PlayableForgePlayHistoryProjectionResult {\n waitPolicy: PlayableForgePlayProjectionWaitPolicy;\n idle: boolean;\n activeBatchIds: number[];\n lastBatch: unknown | null;\n}\n\nexport interface PlayableForgePlayHistoryStateResult {\n canUndo: boolean;\n canRedo: boolean;\n}\n\nexport interface PlayableForgePlayHistoryOperationResult<TDocument = unknown> {\n ok: boolean;\n operation: PlayableForgePlayHistoryOperation;\n origin: PlayableForgePlayOperationOrigin;\n waitForProjection: PlayableForgePlayProjectionWaitPolicy;\n documentChanged: boolean;\n transactionLabel: string | null;\n workingDocument: TDocument | null;\n dirty: boolean;\n history: PlayableForgePlayHistoryStateResult;\n status: string;\n projection: PlayableForgePlayHistoryProjectionResult;\n error?: string;\n}\n\nexport interface PlayableForgePlayBridgeHarness {\n enterEditor(): Promise<void>;\n saveScene(): Promise<boolean>;\n discardAndRunGame(): Promise<void>;\n render(): void;\n getWorkingDocument(): unknown | null;\n getUnsavedChangesState?(): PlayableLocalEditorUnsavedChangesState;\n getSaveFailureState?(): PlayableLocalEditorSaveFailureState | null;\n undo?(options?: PlayableForgePlayHistoryOperationOptions): Promise<PlayableForgePlayHistoryOperationResult>;\n redo?(options?: PlayableForgePlayHistoryOperationOptions): Promise<PlayableForgePlayHistoryOperationResult>;\n}\n\nexport interface PlayableForgePlayBridgeLoadingOverlay {\n show(content: PlayableLocalEditorLoadingOverlayContent): void;\n hide(): void;\n isVisible(): boolean;\n}\n\nexport interface PlayableForgePlaySaveState {\n preparedRevision: number;\n committedRevision: number;\n}\n\nexport interface PlayableForgePlayDocumentExportResult {\n documentFingerprint: string | null;\n documentRevision: number | null;\n expectedVersion?: number;\n preparedAuthoringSource?: PlayableLocalEditorPreparedAuthoringSource;\n}\n\nexport type PlayableForgePlaySaveTransactionPhase =\n | 'idle'\n | 'preparing-authoring'\n | 'awaiting-platform-commit'\n | 'committing'\n | 'committed'\n | 'rejected';\n\nexport interface PlayableForgePlaySaveTransactionRejection {\n code: string;\n message?: string;\n}\n\nexport interface PlayableForgePlaySaveTransactionSnapshot {\n readonly requestId: string | null;\n readonly phase: PlayableForgePlaySaveTransactionPhase;\n readonly stage: 'document.export' | 'document.commit' | null;\n readonly expectedVersion?: number;\n readonly actualVersion?: number;\n readonly rejection: Readonly<PlayableForgePlaySaveTransactionRejection> | null;\n}\n\n/** @deprecated Use PlayableForgePlaySaveTransactionSnapshot. */\nexport type PlayableForgePlaySaveTransaction = PlayableForgePlaySaveTransactionSnapshot;\n\nexport interface PlayableForgePlayBridgeInstallOptions {\n window: PlayableForgePlayWindowLike;\n harness: PlayableForgePlayBridgeHarness;\n loadingOverlay: PlayableForgePlayBridgeLoadingOverlay;\n loadingContent: {\n saveScene: PlayableLocalEditorLoadingOverlayContent;\n saveAndRunGame: PlayableLocalEditorLoadingOverlayContent;\n discardAndRunGame: PlayableLocalEditorLoadingOverlayContent;\n };\n exportDocument?: (input: {\n payload: Record<string, unknown>;\n saveState: PlayableForgePlaySaveState;\n postEvent: (name: string, payload?: Record<string, unknown>) => void;\n }) => Promise<PlayableForgePlayDocumentExportResult> | PlayableForgePlayDocumentExportResult;\n saveDocument?: (operation: PlayableLocalEditorDataSafetyOperation) => Promise<boolean>;\n saveAndExitEditor?: (operation: PlayableLocalEditorDataSafetyOperation) => Promise<boolean>;\n preflightRun?: () => Promise<boolean>;\n commitDocument?: (input: {\n payload: Record<string, unknown>;\n saveState: PlayableForgePlaySaveState;\n documentFingerprint: string | null;\n documentRevision: number | null;\n preparedAuthoringSource?: PlayableLocalEditorPreparedAuthoringSource;\n }) => Promise<void>;\n exitEditor?: (reason: 'save' | 'discard') => Promise<boolean>;\n handleProjectAssetCommand?: (name: string, payload: Record<string, unknown>) => Promise<void>;\n handleAssetDrop?: (payload: Record<string, unknown>) => void;\n hasUnsavedPlatformChanges?: () => boolean;\n interactions?: PlayableLocalEditorInteractionPolicy;\n waitForPaint?: () => Promise<void>;\n renderAfterEnter?: boolean;\n readMode?: () => PlayableForgePlayMode;\n reportError?: (error: unknown) => void;\n initialMode?: PlayableForgePlayMode;\n overlayHideDelayMs?: number;\n /** Test hook for deterministic bridge-session assertions. */\n createSessionId?: () => string;\n}\n\nexport interface PlayableForgePlayModeBridge {\n switchMode(mode: PlayableForgePlayMode, options?: { save?: boolean }): Promise<void>;\n commitPlatformSave(): Promise<void>;\n getMode(): PlayableForgePlayMode;\n getSessionId(): string;\n getSaveState(): PlayableForgePlaySaveState;\n getSaveTransaction(): PlayableForgePlaySaveTransactionSnapshot;\n acknowledgeEditorSessionReady(): void;\n postEvent(name: string, payload?: Record<string, unknown>): void;\n dispose(): void;\n}\n"]}
@@ -19,11 +19,13 @@ export declare const PLAYABLE_FORGE_PLAY_COMMAND: {
19
19
  };
20
20
  export declare const PLAYABLE_FORGE_PLAY_EVENT: {
21
21
  readonly SCENE_READY: "scene.ready";
22
+ readonly EDITOR_SESSION_READY: "editor.session.ready";
22
23
  readonly FIRST_FRAME: "scene.first_frame";
23
24
  readonly MODE_CHANGE: "mode.change";
24
25
  readonly HISTORY_UNDO_RESULT: "history.undo.result";
25
26
  readonly HISTORY_REDO_RESULT: "history.redo.result";
26
27
  readonly DOCUMENT_EXPORTED: "document.exported";
28
+ readonly DOCUMENT_COMMITTED: "document.committed";
27
29
  readonly ASSET_IMPORT_RESULT: "asset.import.result";
28
30
  readonly ASSET_UPDATE_RESULT: "asset.update.result";
29
31
  readonly ASSET_LIBRARY_REFRESHED: "asset.library.refreshed";
@@ -1 +1 @@
1
- {"version":3,"file":"forge-play.d.ts","sourceRoot":"","sources":["../../src/local-harness/forge-play.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,qCAAqC,EACrC,iCAAiC,EACjC,wCAAwC,EAIxC,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAQ5B,eAAO,MAAM,iCAAiC,2BAA2B,CAAC;AAE1E,eAAO,MAAM,gCAAgC;;;CAGnC,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;;;;;;;;;;CAY9B,CAAC;AAEX,eAAO,MAAM,yBAAyB;;;;;;;;;;;;CAY5B,CAAC;AAEX,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAY/E,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYtE,CAAC;AAEF,eAAO,MAAM,0CAA0C,aAMrD,CAAC;AAEH,eAAO,MAAM,oCAAoC,aAG/C,CAAC;AAEH,wBAAgB,gCAAgC,IAAI,0BAA0B,CAK7E;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGnF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAInG;AAED,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,wCAAwC,CAK1C;AAED,wBAAgB,0CAA0C,CACxD,SAAS,EAAE,iCAAiC,GAC3C,MAAM,CAIR;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,EACvD,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,IAAI,CAcN;AAQD,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,qCAAqC,GAC7C,2BAA2B,CAid7B;AAED,wBAAgB,0CAA0C,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO3F"}
1
+ {"version":3,"file":"forge-play.d.ts","sourceRoot":"","sources":["../../src/local-harness/forge-play.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,qCAAqC,EACrC,iCAAiC,EACjC,wCAAwC,EAIxC,2BAA2B,EAC3B,0BAA0B,EAG1B,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAS5B,eAAO,MAAM,iCAAiC,2BAA2B,CAAC;AAE1E,eAAO,MAAM,gCAAgC;;;CAGnC,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;;;;;;;;;;CAY9B,CAAC;AAEX,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;CAc5B,CAAC;AAEX,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAc/E,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYtE,CAAC;AAEF,eAAO,MAAM,0CAA0C,aAMrD,CAAC;AAEH,eAAO,MAAM,oCAAoC,aAG/C,CAAC;AAEH,wBAAgB,gCAAgC,IAAI,0BAA0B,CAK7E;AAiBD,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGnF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAInG;AAED,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,wCAAwC,CAK1C;AAED,wBAAgB,0CAA0C,CACxD,SAAS,EAAE,iCAAiC,GAC3C,MAAM,CAIR;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,EACvD,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,IAAI,CAcN;AAQD,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,qCAAqC,GAC7C,2BAA2B,CA0pB7B;AAED,wBAAgB,0CAA0C,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO3F"}
@@ -19,11 +19,13 @@ export const PLAYABLE_FORGE_PLAY_COMMAND = {
19
19
  };
20
20
  export const PLAYABLE_FORGE_PLAY_EVENT = {
21
21
  SCENE_READY: 'scene.ready',
22
+ EDITOR_SESSION_READY: 'editor.session.ready',
22
23
  FIRST_FRAME: 'scene.first_frame',
23
24
  MODE_CHANGE: 'mode.change',
24
25
  HISTORY_UNDO_RESULT: 'history.undo.result',
25
26
  HISTORY_REDO_RESULT: 'history.redo.result',
26
27
  DOCUMENT_EXPORTED: 'document.exported',
28
+ DOCUMENT_COMMITTED: 'document.committed',
27
29
  ASSET_IMPORT_RESULT: 'asset.import.result',
28
30
  ASSET_UPDATE_RESULT: 'asset.update.result',
29
31
  ASSET_LIBRARY_REFRESHED: 'asset.library.refreshed',
@@ -32,11 +34,13 @@ export const PLAYABLE_FORGE_PLAY_EVENT = {
32
34
  };
33
35
  export const PLAYABLE_FORGE_PLAY_EVENT_ALIASES = {
34
36
  [PLAYABLE_FORGE_PLAY_EVENT.SCENE_READY]: ['scene:ready', 'lifecycle:ready'],
37
+ [PLAYABLE_FORGE_PLAY_EVENT.EDITOR_SESSION_READY]: ['editor:session:ready'],
35
38
  [PLAYABLE_FORGE_PLAY_EVENT.FIRST_FRAME]: ['scene:first_frame', 'lifecycle:firstFrame'],
36
39
  [PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE]: ['mode:change', 'mode:changed'],
37
40
  [PLAYABLE_FORGE_PLAY_EVENT.HISTORY_UNDO_RESULT]: ['history:undo:result'],
38
41
  [PLAYABLE_FORGE_PLAY_EVENT.HISTORY_REDO_RESULT]: ['history:redo:result'],
39
42
  [PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_EXPORTED]: ['document:exported'],
43
+ [PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_COMMITTED]: ['document:committed'],
40
44
  [PLAYABLE_FORGE_PLAY_EVENT.ASSET_IMPORT_RESULT]: ['asset:import:result'],
41
45
  [PLAYABLE_FORGE_PLAY_EVENT.ASSET_UPDATE_RESULT]: ['asset:update:result'],
42
46
  [PLAYABLE_FORGE_PLAY_EVENT.ASSET_LIBRARY_REFRESHED]: ['asset:library:refreshed'],
@@ -73,6 +77,19 @@ export function createPlayableForgePlaySaveState() {
73
77
  committedRevision: 0,
74
78
  };
75
79
  }
80
+ function createPlayableForgePlaySaveTransaction() {
81
+ return {
82
+ requestId: null,
83
+ phase: 'idle',
84
+ stage: null,
85
+ rejection: null,
86
+ };
87
+ }
88
+ function readPlayableForgePlayPlatformVersion(payload) {
89
+ return typeof payload.version === 'number' && Number.isFinite(payload.version)
90
+ ? payload.version
91
+ : undefined;
92
+ }
76
93
  export function normalizePlayableForgePlayCommandName(value) {
77
94
  if (typeof value !== 'string')
78
95
  return null;
@@ -118,9 +135,15 @@ function readPlayableForgePlayHistoryOrigin(value) {
118
135
  }
119
136
  export function installPlayableForgePlayModeBridge(options) {
120
137
  let currentMode = options.initialMode ?? 'play';
138
+ const sessionId = options.createSessionId?.()
139
+ ?? `fps-${Date.now()}-${Math.random().toString(36).slice(2)}`;
121
140
  let inFlight = null;
122
141
  const saveState = createPlayableForgePlaySaveState();
142
+ let saveTransaction = createPlayableForgePlaySaveTransaction();
123
143
  let preparedDocumentFingerprint = null;
144
+ let preparedDocumentRevision = null;
145
+ let preparedCommittedDocumentFingerprint = null;
146
+ let preparedAuthoringSource = null;
124
147
  let committedDocumentFingerprint = null;
125
148
  let preparedRequestId = null;
126
149
  let commitInFlight = null;
@@ -131,10 +154,46 @@ export function installPlayableForgePlayModeBridge(options) {
131
154
  const invalidatePreparedPlatformSave = () => {
132
155
  saveState.preparedRevision = saveState.committedRevision;
133
156
  preparedDocumentFingerprint = null;
157
+ preparedDocumentRevision = null;
158
+ preparedCommittedDocumentFingerprint = null;
159
+ preparedAuthoringSource = null;
134
160
  preparedRequestId = null;
135
161
  };
162
+ const setSaveTransaction = (phase, input = {}) => {
163
+ const value = (key, fallback) => (Object.prototype.hasOwnProperty.call(input, key) ? input[key] : fallback);
164
+ const expectedVersion = value('expectedVersion', saveTransaction.expectedVersion);
165
+ const actualVersion = value('actualVersion', saveTransaction.actualVersion);
166
+ saveTransaction = {
167
+ requestId: value('requestId', saveTransaction.requestId),
168
+ phase,
169
+ stage: value('stage', saveTransaction.stage),
170
+ ...(expectedVersion === undefined ? {} : { expectedVersion }),
171
+ ...(actualVersion === undefined ? {} : { actualVersion }),
172
+ rejection: value('rejection', null),
173
+ };
174
+ };
136
175
  const postEvent = (name, payload = {}) => {
137
- postPlayableForgePlayEvent(options.window, name, payload);
176
+ postPlayableForgePlayEvent(options.window, name, { ...payload, sessionId });
177
+ };
178
+ const acknowledgeEditorSessionReady = () => {
179
+ if (readMode() !== 'edit' || options.harness.getWorkingDocument() === null)
180
+ return;
181
+ postEvent(PLAYABLE_FORGE_PLAY_EVENT.EDITOR_SESSION_READY, {
182
+ mode: 'edit',
183
+ editorSessionReady: true,
184
+ });
185
+ };
186
+ const reportSaveTransactionError = (input) => {
187
+ const has = (key) => Object.prototype.hasOwnProperty.call(input, key);
188
+ postEvent(PLAYABLE_FORGE_PLAY_EVENT.SYSTEM_ERROR, {
189
+ code: input.code,
190
+ stage: input.stage,
191
+ expectedRequestId: has('expectedRequestId') ? input.expectedRequestId : saveTransaction.requestId,
192
+ actualRequestId: input.actualRequestId,
193
+ expectedVersion: has('expectedVersion') ? input.expectedVersion : saveTransaction.expectedVersion,
194
+ actualVersion: has('actualVersion') ? input.actualVersion : null,
195
+ ...(input.message ? { message: input.message } : {}),
196
+ });
138
197
  };
139
198
  const notifySaveFailed = async (operation, error) => {
140
199
  const notify = options.interactions?.notifySaveFailed;
@@ -248,6 +307,8 @@ export function installPlayableForgePlayModeBridge(options) {
248
307
  await inFlight;
249
308
  if (readMode() === mode && !shouldRunExit()) {
250
309
  postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode });
310
+ if (mode === 'edit')
311
+ acknowledgeEditorSessionReady();
251
312
  return;
252
313
  }
253
314
  inFlight = (async () => {
@@ -269,8 +330,12 @@ export function installPlayableForgePlayModeBridge(options) {
269
330
  saveState.preparedRevision = 0;
270
331
  saveState.committedRevision = 0;
271
332
  preparedDocumentFingerprint = null;
333
+ preparedDocumentRevision = null;
334
+ preparedCommittedDocumentFingerprint = null;
335
+ preparedAuthoringSource = null;
272
336
  committedDocumentFingerprint = null;
273
337
  preparedRequestId = null;
338
+ saveTransaction = createPlayableForgePlaySaveTransaction();
274
339
  await options.harness.enterEditor();
275
340
  if (options.renderAfterEnter !== false)
276
341
  options.harness.render();
@@ -369,41 +434,112 @@ export function installPlayableForgePlayModeBridge(options) {
369
434
  })();
370
435
  try {
371
436
  await inFlight;
437
+ if (mode === 'edit')
438
+ acknowledgeEditorSessionReady();
372
439
  }
373
440
  finally {
374
441
  inFlight = null;
375
442
  }
376
443
  };
377
444
  const commitPlatformSave = async (payload = {}) => {
445
+ const requestId = readPlayableForgePlayRequestId(payload) ?? null;
446
+ const actualVersion = readPlayableForgePlayPlatformVersion(payload);
447
+ if (!requestId) {
448
+ reportSaveTransactionError({
449
+ code: 'document_commit_request_id_required',
450
+ stage: 'document.commit',
451
+ actualRequestId: null,
452
+ actualVersion,
453
+ });
454
+ return;
455
+ }
378
456
  if (inFlight)
379
457
  await inFlight;
380
- const requestId = readPlayableForgePlayRequestId(payload) ?? null;
381
- if (!requestId || !preparedRequestId || requestId !== preparedRequestId)
458
+ if (saveTransaction.phase === 'committed' && requestId === saveTransaction.requestId)
459
+ return;
460
+ if (!preparedRequestId) {
461
+ reportSaveTransactionError({
462
+ code: 'document_commit_no_pending',
463
+ stage: 'document.commit',
464
+ actualRequestId: requestId,
465
+ actualVersion,
466
+ });
467
+ return;
468
+ }
469
+ if (requestId !== preparedRequestId) {
470
+ reportSaveTransactionError({
471
+ code: 'document_commit_request_id_mismatch',
472
+ stage: 'document.commit',
473
+ actualRequestId: requestId,
474
+ expectedRequestId: preparedRequestId,
475
+ actualVersion,
476
+ });
382
477
  return;
478
+ }
383
479
  if (commitInFlight) {
384
480
  if (commitInFlight.requestId === requestId)
385
481
  return commitInFlight.promise;
386
482
  await commitInFlight.promise;
387
483
  return commitPlatformSave(payload);
388
484
  }
389
- if (saveState.preparedRevision <= saveState.committedRevision)
485
+ if (saveState.preparedRevision <= saveState.committedRevision) {
486
+ reportSaveTransactionError({
487
+ code: 'document_commit_no_pending',
488
+ stage: 'document.commit',
489
+ actualRequestId: requestId,
490
+ expectedRequestId: preparedRequestId,
491
+ actualVersion,
492
+ });
390
493
  return;
494
+ }
495
+ setSaveTransaction('committing', {
496
+ requestId,
497
+ stage: 'document.commit',
498
+ actualVersion,
499
+ });
391
500
  const commitOperation = (async () => {
392
501
  try {
393
502
  const currentDocumentFingerprint = createPlayableForgePlayDocumentFingerprint(options.harness.getWorkingDocument());
394
- if (currentDocumentFingerprint !== preparedDocumentFingerprint) {
503
+ const hasProjectServiceTransaction = typeof preparedAuthoringSource?.serviceTransactionId === 'string'
504
+ && preparedAuthoringSource.serviceTransactionId.length > 0;
505
+ if (!hasProjectServiceTransaction
506
+ && currentDocumentFingerprint !== preparedDocumentFingerprint) {
395
507
  throw new Error('Editor document changed after export; prepare a new export before commit.');
396
508
  }
397
509
  await options.commitDocument?.({
398
510
  payload,
399
511
  saveState,
400
512
  documentFingerprint: preparedDocumentFingerprint,
513
+ documentRevision: preparedDocumentRevision,
514
+ ...(preparedAuthoringSource ? { preparedAuthoringSource } : {}),
401
515
  });
402
516
  saveState.committedRevision = saveState.preparedRevision;
403
- committedDocumentFingerprint = preparedDocumentFingerprint;
517
+ committedDocumentFingerprint = preparedCommittedDocumentFingerprint
518
+ ?? preparedDocumentFingerprint;
519
+ setSaveTransaction('committed', {
520
+ requestId,
521
+ stage: 'document.commit',
522
+ actualVersion,
523
+ });
524
+ postEvent(PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_COMMITTED, {
525
+ requestId,
526
+ ...(saveTransaction.expectedVersion === undefined
527
+ ? {}
528
+ : { expectedVersion: saveTransaction.expectedVersion }),
529
+ ...(actualVersion === undefined ? {} : { actualVersion }),
530
+ });
404
531
  }
405
532
  catch (error) {
406
533
  invalidatePreparedPlatformSave();
534
+ setSaveTransaction('rejected', {
535
+ requestId,
536
+ stage: 'document.commit',
537
+ actualVersion,
538
+ rejection: {
539
+ code: 'document_commit_failed',
540
+ message: error instanceof Error ? error.message : String(error),
541
+ },
542
+ });
407
543
  throw error;
408
544
  }
409
545
  })();
@@ -443,6 +579,15 @@ export function installPlayableForgePlayModeBridge(options) {
443
579
  if (message.type !== PLAYABLE_FORGE_PLAY_POST_MESSAGE.COMMAND)
444
580
  return;
445
581
  const payload = readRecord(message.payload);
582
+ const hasSessionId = Object.prototype.hasOwnProperty.call(payload, 'sessionId');
583
+ if (hasSessionId && payload.sessionId !== sessionId) {
584
+ postEvent(PLAYABLE_FORGE_PLAY_EVENT.SYSTEM_ERROR, {
585
+ code: 'editor_session_mismatch',
586
+ expectedSessionId: sessionId,
587
+ actualSessionId: payload.sessionId,
588
+ });
589
+ return;
590
+ }
446
591
  const commandName = normalizePlayableForgePlayCommandName(payload.name);
447
592
  if (commandName === PLAYABLE_FORGE_PLAY_COMMAND.ASSETS_DROP) {
448
593
  options.handleAssetDrop?.(payload);
@@ -471,6 +616,18 @@ export function installPlayableForgePlayModeBridge(options) {
471
616
  const requestId = readPlayableForgePlayRequestId(payload);
472
617
  if (!requestId) {
473
618
  scheduleSaveOverlayHide();
619
+ setSaveTransaction('rejected', {
620
+ requestId: null,
621
+ stage: 'document.export',
622
+ rejection: { code: 'document_export_request_id_required' },
623
+ });
624
+ reportSaveTransactionError({
625
+ code: 'document_export_request_id_required',
626
+ stage: 'document.export',
627
+ actualRequestId: null,
628
+ expectedRequestId: null,
629
+ expectedVersion: null,
630
+ });
474
631
  postEvent(PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_EXPORTED, {
475
632
  error: 'document_export_request_id_required',
476
633
  });
@@ -484,10 +641,20 @@ export function installPlayableForgePlayModeBridge(options) {
484
641
  });
485
642
  return;
486
643
  }
644
+ setSaveTransaction('preparing-authoring', {
645
+ requestId,
646
+ stage: 'document.export',
647
+ expectedVersion: undefined,
648
+ actualVersion: undefined,
649
+ rejection: null,
650
+ });
487
651
  const exportDocument = options.exportDocument;
488
652
  const revisionBeforeExport = saveState.preparedRevision;
489
653
  const committedRevisionBeforeExport = saveState.committedRevision;
490
654
  const preparedFingerprintBeforeExport = preparedDocumentFingerprint;
655
+ const preparedDocumentRevisionBeforeExport = preparedDocumentRevision;
656
+ const preparedCommittedFingerprintBeforeExport = preparedCommittedDocumentFingerprint;
657
+ const preparedAuthoringSourceBeforeExport = preparedAuthoringSource;
491
658
  const committedFingerprintBeforeExport = committedDocumentFingerprint;
492
659
  const preparedRequestIdBeforeExport = preparedRequestId;
493
660
  const exported = exportDocument
@@ -499,15 +666,38 @@ export function installPlayableForgePlayModeBridge(options) {
499
666
  throw new Error('Document export did not return the exported document fingerprint.');
500
667
  }
501
668
  preparedDocumentFingerprint = result.documentFingerprint;
669
+ preparedDocumentRevision = result.documentRevision;
670
+ preparedAuthoringSource = result.preparedAuthoringSource ?? null;
671
+ preparedCommittedDocumentFingerprint = result.preparedAuthoringSource
672
+ ? createPlayableForgePlayDocumentFingerprint(result.preparedAuthoringSource.document)
673
+ : result.documentFingerprint;
502
674
  committedDocumentFingerprint = null;
503
675
  preparedRequestId = requestId;
676
+ setSaveTransaction('awaiting-platform-commit', {
677
+ requestId,
678
+ stage: 'document.export',
679
+ expectedVersion: result.expectedVersion,
680
+ actualVersion: undefined,
681
+ rejection: null,
682
+ });
504
683
  }
505
684
  }).catch(async (error) => {
506
685
  saveState.preparedRevision = revisionBeforeExport;
507
686
  saveState.committedRevision = committedRevisionBeforeExport;
508
687
  preparedDocumentFingerprint = preparedFingerprintBeforeExport;
688
+ preparedDocumentRevision = preparedDocumentRevisionBeforeExport;
689
+ preparedCommittedDocumentFingerprint = preparedCommittedFingerprintBeforeExport;
690
+ preparedAuthoringSource = preparedAuthoringSourceBeforeExport;
509
691
  committedDocumentFingerprint = committedFingerprintBeforeExport;
510
692
  preparedRequestId = preparedRequestIdBeforeExport;
693
+ setSaveTransaction('rejected', {
694
+ requestId,
695
+ stage: 'document.export',
696
+ rejection: {
697
+ code: 'document_export_failed',
698
+ message: error instanceof Error ? error.message : String(error),
699
+ },
700
+ });
511
701
  options.loadingOverlay.hide();
512
702
  await notifySaveFailed('forge-play-document-export', error);
513
703
  postEvent(PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_EXPORTED, {
@@ -545,9 +735,15 @@ export function installPlayableForgePlayModeBridge(options) {
545
735
  };
546
736
  options.window.addEventListener('message', onMessage, { capture: true });
547
737
  const postReadyEvents = () => {
548
- postEvent(PLAYABLE_FORGE_PLAY_EVENT.SCENE_READY, { mode: readMode() });
738
+ const editorSessionReady = readMode() === 'edit' && options.harness.getWorkingDocument() !== null;
739
+ postEvent(PLAYABLE_FORGE_PLAY_EVENT.SCENE_READY, {
740
+ mode: readMode(),
741
+ editorSessionReady,
742
+ });
549
743
  postEvent(PLAYABLE_FORGE_PLAY_EVENT.FIRST_FRAME);
550
744
  postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: readMode() });
745
+ if (editorSessionReady)
746
+ acknowledgeEditorSessionReady();
551
747
  };
552
748
  if (options.window.queueMicrotask)
553
749
  options.window.queueMicrotask(postReadyEvents);
@@ -559,9 +755,20 @@ export function installPlayableForgePlayModeBridge(options) {
559
755
  getMode() {
560
756
  return readMode();
561
757
  },
758
+ getSessionId() {
759
+ return sessionId;
760
+ },
562
761
  getSaveState() {
563
762
  return saveState;
564
763
  },
764
+ getSaveTransaction() {
765
+ return Object.freeze({
766
+ ...saveTransaction,
767
+ rejection: saveTransaction.rejection ? Object.freeze({ ...saveTransaction.rejection }) : null,
768
+ });
769
+ },
770
+ acknowledgeEditorSessionReady,
771
+ postEvent,
565
772
  dispose() {
566
773
  clearOverlayHideTimer();
567
774
  options.window.removeEventListener('message', onMessage, { capture: true });