@fps-games/editor 0.2.1-beta.3 → 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 (514) hide show
  1. package/dist/build-info.json +44 -44
  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 +1721 -367
  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-local-editor-entry.d.ts +10 -0
  93. package/dist/playable-local-editor-entry.d.ts.map +1 -1
  94. package/dist/playable-local-editor-entry.js +10 -2
  95. package/dist/playable-local-editor-entry.js.map +1 -1
  96. package/dist/playable-local-editor-host.d.ts +3 -32
  97. package/dist/playable-local-editor-host.d.ts.map +1 -1
  98. package/dist/playable-local-editor-host.js +6 -70
  99. package/dist/playable-local-editor-host.js.map +1 -1
  100. package/dist/playable-product-local-editor.d.ts +1 -2
  101. package/dist/playable-product-local-editor.d.ts.map +1 -1
  102. package/dist/playable-product-local-editor.js +0 -1
  103. package/dist/playable-product-local-editor.js.map +1 -1
  104. package/dist/playable-product-projection-preview.d.ts.map +1 -1
  105. package/dist/playable-product-projection-preview.js +1 -1
  106. package/dist/playable-product-projection-preview.js.map +1 -1
  107. package/dist/playable-product-scene-capabilities.d.ts +0 -2
  108. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  109. package/dist/playable-product-scene-capabilities.js +33 -6
  110. package/dist/playable-product-scene-capabilities.js.map +1 -1
  111. package/dist/playable-runtime-babylon.d.ts +4 -0
  112. package/dist/playable-runtime-babylon.d.ts.map +1 -1
  113. package/dist/playable-runtime-babylon.js +4 -0
  114. package/dist/playable-runtime-babylon.js.map +1 -1
  115. package/dist/playable-sdk.d.ts +1 -1
  116. package/dist/playable-sdk.d.ts.map +1 -1
  117. package/dist/playable-sdk.js.map +1 -1
  118. package/dist/playable-standard-project.d.ts +0 -2
  119. package/dist/playable-standard-project.d.ts.map +1 -1
  120. package/dist/playable-standard-project.js +1 -2
  121. package/dist/playable-standard-project.js.map +1 -1
  122. package/dist/project-service-projection.d.ts +16 -0
  123. package/dist/project-service-projection.d.ts.map +1 -0
  124. package/dist/project-service-projection.js +67 -0
  125. package/dist/project-service-projection.js.map +1 -0
  126. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +18 -0
  127. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
  128. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +54 -18
  129. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  130. package/node_modules/@fps-games/babylon-renderer/package.json +9 -9
  131. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +1 -0
  132. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  133. package/node_modules/@fps-games/editor-babylon/dist/projection.js +1 -1
  134. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  135. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -1
  136. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +127 -13
  137. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -1
  138. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
  139. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +66 -1
  140. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  141. package/node_modules/@fps-games/editor-babylon/package.json +6 -6
  142. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts +32 -0
  143. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts.map +1 -0
  144. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js +254 -0
  145. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js.map +1 -0
  146. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
  147. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  148. package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
  149. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  150. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts +68 -0
  151. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts.map +1 -0
  152. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js +650 -0
  153. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js.map +1 -0
  154. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +1 -0
  155. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -1
  156. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +22 -0
  157. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -1
  158. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +8 -0
  159. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  160. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +117 -6
  161. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  162. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +14 -1
  163. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  164. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +100 -1
  165. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  166. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +8 -1
  167. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  168. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +75 -2
  169. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  170. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +37 -12
  171. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  172. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  173. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +25 -2
  174. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  175. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +332 -107
  176. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  177. package/node_modules/@fps-games/editor-browser/package.json +7 -7
  178. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts +107 -0
  179. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts.map +1 -0
  180. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js +1211 -0
  181. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js.map +1 -0
  182. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts +34 -0
  183. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts.map +1 -0
  184. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js +260 -0
  185. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js.map +1 -0
  186. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts +9 -0
  187. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts.map +1 -0
  188. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js +14 -0
  189. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js.map +1 -0
  190. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts +18 -0
  191. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts.map +1 -0
  192. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js +113 -0
  193. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js.map +1 -0
  194. package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts +82 -0
  195. package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts.map +1 -0
  196. package/node_modules/@fps-games/editor-core/dist/editor-command-system.js +1098 -0
  197. package/node_modules/@fps-games/editor-core/dist/editor-command-system.js.map +1 -0
  198. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -7
  199. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
  200. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +62 -103
  201. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  202. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts +30 -0
  203. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts.map +1 -0
  204. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js +540 -0
  205. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js.map +1 -0
  206. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts +9 -0
  207. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts.map +1 -0
  208. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js +61 -0
  209. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js.map +1 -0
  210. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +55 -0
  211. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  212. package/node_modules/@fps-games/editor-core/dist/editor-session.js +247 -6
  213. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  214. package/node_modules/@fps-games/editor-core/dist/index.d.ts +6 -2
  215. package/node_modules/@fps-games/editor-core/dist/index.d.ts.map +1 -1
  216. package/node_modules/@fps-games/editor-core/dist/index.js +6 -2
  217. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  218. package/node_modules/@fps-games/editor-core/package.json +6 -6
  219. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts +0 -1
  220. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts.map +1 -1
  221. package/node_modules/@fps-games/editor-forge-play/dist/index.js +0 -1
  222. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  223. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  224. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts +2 -0
  225. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts.map +1 -1
  226. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  227. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +41 -1
  228. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  229. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +27 -1
  230. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  231. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  232. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
  233. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  234. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +214 -7
  235. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  236. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +1 -0
  237. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
  238. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +11 -3
  239. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  240. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +2 -4
  241. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  242. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +0 -1
  243. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  244. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  245. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +77 -31
  246. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  247. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +8 -1
  248. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
  249. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  250. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.d.ts +21 -1
  251. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.d.ts.map +1 -1
  252. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js +90 -4
  253. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
  254. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts +27 -1
  255. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts.map +1 -1
  256. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js +161 -1
  257. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts +2 -2
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js +5 -92
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts +7 -0
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts.map +1 -1
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js +26 -9
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts +9 -0
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +19 -8
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts +5 -0
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts.map +1 -1
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js +16 -4
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +9 -0
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +12 -2
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.d.ts +2 -1
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.d.ts.map +1 -1
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js +10 -5
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts +1 -0
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +1 -0
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  286. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +17 -82
  287. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  288. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +53 -57
  289. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  290. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.d.ts.map +1 -1
  291. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js +3 -2
  292. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
  293. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts +10 -0
  294. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts.map +1 -0
  295. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js +256 -0
  296. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js.map +1 -0
  297. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
  298. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +7 -5
  299. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  300. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  301. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +8 -0
  302. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  303. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +1 -0
  304. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  305. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  306. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +134 -12
  307. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  308. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  309. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +47 -0
  310. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  311. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.d.ts +27 -0
  312. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.d.ts.map +1 -0
  313. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js +592 -0
  314. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js.map +1 -0
  315. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +3 -1
  316. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -1
  317. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +2 -1
  318. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  319. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  320. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +61 -6
  321. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  322. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +0 -2
  323. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  324. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js +1 -10
  325. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  326. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  327. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +21 -0
  328. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  329. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.d.ts +13 -0
  330. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.d.ts.map +1 -0
  331. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js +18 -0
  332. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js.map +1 -0
  333. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts +28 -0
  334. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts.map +1 -0
  335. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js +863 -0
  336. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js.map +1 -0
  337. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +2 -0
  338. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  339. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  340. package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
  341. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.d.ts +1626 -0
  342. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.d.ts.map +1 -0
  343. package/node_modules/@fps-games/editor-protocol/dist/{agent-bridge.js → editor-command-capabilities.js} +766 -620
  344. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.js.map +1 -0
  345. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts +69 -0
  346. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts.map +1 -0
  347. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js +22 -0
  348. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js.map +1 -0
  349. package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts +136 -0
  350. package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts.map +1 -0
  351. package/node_modules/@fps-games/editor-protocol/dist/editor-command.js +2 -0
  352. package/node_modules/@fps-games/editor-protocol/dist/editor-command.js.map +1 -0
  353. package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts +225 -0
  354. package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts.map +1 -0
  355. package/node_modules/@fps-games/editor-protocol/dist/editor-service.js +4 -0
  356. package/node_modules/@fps-games/editor-protocol/dist/editor-service.js.map +1 -0
  357. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +6 -3
  358. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  359. package/node_modules/@fps-games/editor-protocol/dist/index.js +6 -3
  360. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  361. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  362. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  363. package/node_modules/@fps-games/editor-ui/package.json +1 -1
  364. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  365. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  366. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  367. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  368. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  369. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  370. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  371. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  372. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  373. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  374. package/node_modules/@fps-games/plugin-assets/package.json +6 -6
  375. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +1 -0
  376. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -1
  377. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +78 -4
  378. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -1
  379. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +1 -1
  380. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +1 -1
  381. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -1
  382. package/node_modules/@fps-games/plugin-hierarchy/package.json +5 -5
  383. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  384. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  385. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  386. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  387. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  388. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  389. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  390. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  391. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  392. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  393. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  394. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  395. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  396. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  397. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  398. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  399. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  400. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +1 -1
  401. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +1 -1
  402. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -1
  403. package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +5 -5
  404. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  405. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  406. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  407. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  408. package/package.json +23 -23
  409. package/dist/agent-bridge/capabilities/assets.d.ts +0 -8
  410. package/dist/agent-bridge/capabilities/assets.d.ts.map +0 -1
  411. package/dist/agent-bridge/capabilities/assets.js.map +0 -1
  412. package/dist/agent-bridge/capabilities/editor-state.d.ts +0 -5
  413. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +0 -1
  414. package/dist/agent-bridge/capabilities/editor-state.js.map +0 -1
  415. package/dist/agent-bridge/capabilities/hierarchy.d.ts +0 -4
  416. package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +0 -1
  417. package/dist/agent-bridge/capabilities/hierarchy.js.map +0 -1
  418. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts +0 -11
  419. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts.map +0 -1
  420. package/dist/agent-bridge/capabilities/host-lifecycle.js +0 -149
  421. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +0 -1
  422. package/dist/agent-bridge/capabilities/prefabs.d.ts +0 -5
  423. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +0 -1
  424. package/dist/agent-bridge/capabilities/prefabs.js.map +0 -1
  425. package/dist/agent-bridge/capabilities/scene-objects.d.ts +0 -8
  426. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +0 -1
  427. package/dist/agent-bridge/capabilities/scene-objects.js +0 -480
  428. package/dist/agent-bridge/capabilities/scene-objects.js.map +0 -1
  429. package/dist/agent-bridge/capabilities/selection.d.ts +0 -5
  430. package/dist/agent-bridge/capabilities/selection.d.ts.map +0 -1
  431. package/dist/agent-bridge/capabilities/selection.js +0 -60
  432. package/dist/agent-bridge/capabilities/selection.js.map +0 -1
  433. package/dist/agent-bridge/capabilities/shadows.d.ts +0 -5
  434. package/dist/agent-bridge/capabilities/shadows.d.ts.map +0 -1
  435. package/dist/agent-bridge/capabilities/shadows.js.map +0 -1
  436. package/dist/agent-bridge/capabilities/transform.d.ts +0 -5
  437. package/dist/agent-bridge/capabilities/transform.d.ts.map +0 -1
  438. package/dist/agent-bridge/capabilities/transform.js +0 -164
  439. package/dist/agent-bridge/capabilities/transform.js.map +0 -1
  440. package/dist/agent-bridge/capabilities/ui-regions.d.ts +0 -4
  441. package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +0 -1
  442. package/dist/agent-bridge/capabilities/ui-regions.js.map +0 -1
  443. package/dist/agent-bridge/capabilities/viewport.d.ts +0 -5
  444. package/dist/agent-bridge/capabilities/viewport.d.ts.map +0 -1
  445. package/dist/agent-bridge/capabilities/viewport.js.map +0 -1
  446. package/dist/agent-bridge/capability-sources.d.ts +0 -7
  447. package/dist/agent-bridge/capability-sources.d.ts.map +0 -1
  448. package/dist/agent-bridge/capability-sources.js +0 -34
  449. package/dist/agent-bridge/capability-sources.js.map +0 -1
  450. package/dist/agent-bridge/diagnostics.d.ts +0 -12
  451. package/dist/agent-bridge/diagnostics.d.ts.map +0 -1
  452. package/dist/agent-bridge/diagnostics.js.map +0 -1
  453. package/dist/agent-bridge/index.d.ts.map +0 -1
  454. package/dist/agent-bridge/index.js.map +0 -1
  455. package/dist/agent-bridge/register.d.ts +0 -4
  456. package/dist/agent-bridge/register.d.ts.map +0 -1
  457. package/dist/agent-bridge/register.js.map +0 -1
  458. package/dist/agent-bridge/shared.d.ts.map +0 -1
  459. package/dist/agent-bridge/shared.js.map +0 -1
  460. package/dist/agent-bridge/source-types.d.ts +0 -110
  461. package/dist/agent-bridge/source-types.d.ts.map +0 -1
  462. package/dist/agent-bridge/source-types.js.map +0 -1
  463. package/dist/editor-plugin-agent-capabilities.d.ts +0 -4
  464. package/dist/editor-plugin-agent-capabilities.d.ts.map +0 -1
  465. package/dist/editor-plugin-agent-capabilities.js +0 -64
  466. package/dist/editor-plugin-agent-capabilities.js.map +0 -1
  467. package/dist/local-editor-agent-actions.d.ts +0 -43
  468. package/dist/local-editor-agent-actions.d.ts.map +0 -1
  469. package/dist/local-editor-agent-actions.js +0 -321
  470. package/dist/local-editor-agent-actions.js.map +0 -1
  471. package/dist/local-editor-agent-bridge-transport.d.ts +0 -129
  472. package/dist/local-editor-agent-bridge-transport.d.ts.map +0 -1
  473. package/dist/local-editor-agent-bridge-transport.js +0 -403
  474. package/dist/local-editor-agent-bridge-transport.js.map +0 -1
  475. package/dist/local-editor-agent-bridge.d.ts +0 -2
  476. package/dist/local-editor-agent-bridge.d.ts.map +0 -1
  477. package/dist/local-editor-agent-bridge.js +0 -2
  478. package/dist/local-editor-agent-bridge.js.map +0 -1
  479. package/dist/local-editor-agent-context.d.ts +0 -68
  480. package/dist/local-editor-agent-context.d.ts.map +0 -1
  481. package/dist/local-editor-agent-context.js +0 -716
  482. package/dist/local-editor-agent-context.js.map +0 -1
  483. package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts +0 -22
  484. package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts.map +0 -1
  485. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js +0 -106
  486. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +0 -1
  487. package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts +0 -17
  488. package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts.map +0 -1
  489. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js +0 -14
  490. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +0 -1
  491. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts +0 -23
  492. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts.map +0 -1
  493. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js +0 -47
  494. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +0 -1
  495. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts +0 -112
  496. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts.map +0 -1
  497. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js +0 -159
  498. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +0 -1
  499. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts +0 -15
  500. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts.map +0 -1
  501. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js +0 -76
  502. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +0 -1
  503. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +0 -1622
  504. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +0 -1
  505. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +0 -1
  506. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts +0 -68
  507. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts.map +0 -1
  508. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js +0 -23
  509. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +0 -1
  510. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +0 -187
  511. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +0 -1
  512. package/node_modules/@fps-games/editor-protocol/dist/agent.js +0 -5
  513. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +0 -1
  514. /package/dist/{agent-bridge → editor-commands}/source-types.js +0 -0
@@ -1,24 +1,24 @@
1
- import { EDITOR_AGENT_BRIDGE_CAPABILITY_ID, } from '@fps-games/editor-protocol';
2
- import { cloneVec3, createLocalEditorAgentBridgeFailure, isLocalEditorAgentBridgeVec3, } from '../diagnostics.js';
3
- import { cloneAgentBridgeSelection, getAgentBridgeSafeSceneHierarchy, getAgentBridgeSafeSceneReadModel, hasAgentBridgeSafeSceneScope, isAgentBridgeHierarchyObjectSelectable, normalizeAgentBridgeIdList, normalizeAgentBridgeString, } from '../shared.js';
4
- export function createLocalEditorAgentBridgeViewportSource(state, options, renderUi, operations) {
1
+ import { EDITOR_COMMAND_ID, } from '@fps-games/editor-protocol';
2
+ import { cloneVec3, createLocalEditorCommandFailure, isLocalEditorCommandVec3, } from '../diagnostics.js';
3
+ import { cloneEditorCommandSelection, getEditorCommandSafeSceneHierarchy, getEditorCommandSafeSceneReadModel, hasEditorCommandSafeSceneScope, isEditorCommandHierarchyObjectSelectable, normalizeEditorCommandIdList, normalizeEditorCommandString, } from '../shared.js';
4
+ export function createLocalEditorCommandViewportSource(state, options, renderUi, operations) {
5
5
  return {
6
6
  focusObject(input) {
7
7
  const objectId = typeof input?.objectId === 'string' ? input.objectId.trim() : '';
8
8
  if (!objectId) {
9
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FOCUS_OBJECT, 'viewport.focusObject requires objectId.', { code: 'viewport.invalidInput' });
9
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_FOCUS_OBJECT, 'viewport.focusObject requires objectId.', { code: 'viewport.invalidInput' });
10
10
  }
11
11
  const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;
12
- const hierarchy = document ? getAgentBridgeSafeSceneHierarchy(operations) : [];
13
- if (!document || !isAgentBridgeHierarchyObjectSelectable(options, document, objectId, hierarchy)) {
14
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FOCUS_OBJECT, `Viewport object was not found: ${objectId}`, { code: 'viewport.targetNotFound', objectId });
12
+ const hierarchy = document ? getEditorCommandSafeSceneHierarchy(operations) : [];
13
+ if (!document || !isEditorCommandHierarchyObjectSelectable(options, document, objectId, hierarchy)) {
14
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_FOCUS_OBJECT, `Viewport object was not found: ${objectId}`, { code: 'viewport.targetNotFound', objectId });
15
15
  }
16
16
  const focused = operations.focusProjectionNode(objectId);
17
17
  renderUi();
18
18
  return { objectId, focused };
19
19
  },
20
20
  frameSelection() {
21
- const scopedSelection = getAgentBridgeViewportSelection(operations);
21
+ const scopedSelection = getEditorCommandViewportSelection(operations);
22
22
  const selection = scopedSelection.selection;
23
23
  const focused = selection.activeId
24
24
  ? scopedSelection.scene
@@ -28,23 +28,23 @@ export function createLocalEditorAgentBridgeViewportSource(state, options, rende
28
28
  renderUi();
29
29
  return {
30
30
  focused,
31
- selection: cloneAgentBridgeSelection(selection),
31
+ selection: cloneEditorCommandSelection(selection),
32
32
  };
33
33
  },
34
34
  getCamera() {
35
- return createAgentBridgeViewportCameraState(state, operations);
35
+ return createEditorCommandViewportCameraState(state, operations);
36
36
  },
37
37
  setCameraPreset(input) {
38
- return setAgentBridgeViewportCameraPreset(state, options, input, renderUi, operations);
38
+ return setEditorCommandViewportCameraPreset(state, options, input, renderUi, operations);
39
39
  },
40
40
  orbitCamera(input) {
41
- return orbitAgentBridgeViewportCamera(state, options, input, renderUi, operations);
41
+ return orbitEditorCommandViewportCamera(state, options, input, renderUi, operations);
42
42
  },
43
43
  getVisibilitySnapshot() {
44
- return createAgentBridgeViewportVisibilitySnapshot(state, operations);
44
+ return createEditorCommandViewportVisibilitySnapshot(state, operations);
45
45
  },
46
46
  setVisibility(input) {
47
- const result = setAgentBridgeViewportVisibility(state, options, input, operations);
47
+ const result = setEditorCommandViewportVisibility(state, options, input, operations);
48
48
  if ('ok' in result && result.ok === false)
49
49
  return result;
50
50
  operations.refreshShadowPreview?.();
@@ -53,8 +53,8 @@ export function createLocalEditorAgentBridgeViewportSource(state, options, rende
53
53
  return result;
54
54
  },
55
55
  clearVisibility() {
56
- if (!hasAgentBridgeSafeSceneScope(operations)) {
57
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_CLEAR, 'Scene viewport visibility is unavailable outside the Scene Hierarchy scope.', { code: 'viewport.sceneScopeRequired' });
56
+ if (!hasEditorCommandSafeSceneScope(operations)) {
57
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_VISIBILITY_CLEAR, 'Scene viewport visibility is unavailable outside the Scene Hierarchy scope.', { code: 'viewport.sceneScopeRequired' });
58
58
  }
59
59
  const previousCount = Object.keys(state.previewVisibility.overrides).length;
60
60
  const wasIsolated = state.previewVisibility.isolatedObjectIds.length > 0;
@@ -69,11 +69,11 @@ export function createLocalEditorAgentBridgeViewportSource(state, options, rende
69
69
  renderUi();
70
70
  return {
71
71
  changed: previousCount > 0 || wasIsolated,
72
- snapshot: createAgentBridgeViewportVisibilitySnapshot(state, operations),
72
+ snapshot: createEditorCommandViewportVisibilitySnapshot(state, operations),
73
73
  };
74
74
  },
75
75
  enterIsolation(input) {
76
- const result = enterAgentBridgeViewportIsolation(state, options, input, operations);
76
+ const result = enterEditorCommandViewportIsolation(state, options, input, operations);
77
77
  if ('ok' in result && result.ok === false)
78
78
  return result;
79
79
  operations.refreshShadowPreview?.();
@@ -83,19 +83,19 @@ export function createLocalEditorAgentBridgeViewportSource(state, options, rende
83
83
  },
84
84
  };
85
85
  }
86
- function setAgentBridgeViewportVisibility(state, options, input, operations) {
87
- const ids = normalizeAgentBridgeIdList(Array.isArray(input.objectIds) ? input.objectIds : []);
86
+ function setEditorCommandViewportVisibility(state, options, input, operations) {
87
+ const ids = normalizeEditorCommandIdList(Array.isArray(input.objectIds) ? input.objectIds : []);
88
88
  if (ids.length === 0) {
89
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SET, 'viewport.visibility.set requires at least one objectId.', { code: 'viewport.visibility.invalidInput' });
89
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_VISIBILITY_SET, 'viewport.visibility.set requires at least one objectId.', { code: 'viewport.visibility.invalidInput' });
90
90
  }
91
91
  if (typeof input.visible !== 'boolean') {
92
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SET, 'viewport.visibility.set requires visible to be boolean.', { code: 'viewport.visibility.invalidInput' });
92
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_VISIBILITY_SET, 'viewport.visibility.set requires visible to be boolean.', { code: 'viewport.visibility.invalidInput' });
93
93
  }
94
94
  const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;
95
- const hierarchy = document ? getAgentBridgeSafeSceneHierarchy(operations) : [];
96
- const invalidId = ids.find(id => !document || !isAgentBridgeHierarchyObjectSelectable(options, document, id, hierarchy));
95
+ const hierarchy = document ? getEditorCommandSafeSceneHierarchy(operations) : [];
96
+ const invalidId = ids.find(id => !document || !isEditorCommandHierarchyObjectSelectable(options, document, id, hierarchy));
97
97
  if (invalidId) {
98
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SET, `Viewport object was not found: ${invalidId}`, { code: 'viewport.targetNotFound', objectId: invalidId });
98
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_VISIBILITY_SET, `Viewport object was not found: ${invalidId}`, { code: 'viewport.targetNotFound', objectId: invalidId });
99
99
  }
100
100
  const previous = JSON.stringify(state.previewVisibility.overrides);
101
101
  const safeIds = new Set(hierarchy.map(item => item.id));
@@ -120,7 +120,7 @@ function setAgentBridgeViewportVisibility(state, options, input, operations) {
120
120
  else {
121
121
  state.previewVisibility.isolatedObjectIds = state.previewVisibility.isolatedObjectIds.filter(id => safeIds.has(id));
122
122
  }
123
- state.previewVisibility.reason = normalizeAgentBridgeString(input.reason) || undefined;
123
+ state.previewVisibility.reason = normalizeEditorCommandString(input.reason) || undefined;
124
124
  state.projection?.clearPreviewVisibilityOverrides?.();
125
125
  const entries = state.projection?.setPreviewVisibilityOverrides?.(nextOverrides) ?? [];
126
126
  const diagnostics = blockedIds.length > 0
@@ -134,24 +134,24 @@ function setAgentBridgeViewportVisibility(state, options, input, operations) {
134
134
  : undefined;
135
135
  return {
136
136
  changed: previous !== JSON.stringify(state.previewVisibility.overrides),
137
- snapshot: createAgentBridgeViewportVisibilitySnapshot(state, operations, entries, diagnostics),
137
+ snapshot: createEditorCommandViewportVisibilitySnapshot(state, operations, entries, diagnostics),
138
138
  ...(diagnostics ? { diagnostics } : {}),
139
139
  };
140
140
  }
141
- function enterAgentBridgeViewportIsolation(state, options, input, operations) {
142
- const targetIds = normalizeAgentBridgeIdList(Array.isArray(input.objectIds) ? input.objectIds : []);
141
+ function enterEditorCommandViewportIsolation(state, options, input, operations) {
142
+ const targetIds = normalizeEditorCommandIdList(Array.isArray(input.objectIds) ? input.objectIds : []);
143
143
  if (targetIds.length === 0) {
144
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_ISOLATION_ENTER, 'viewport.isolation.enter requires at least one objectId.', { code: 'viewport.isolation.invalidInput' });
144
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_ISOLATION_ENTER, 'viewport.isolation.enter requires at least one objectId.', { code: 'viewport.isolation.invalidInput' });
145
145
  }
146
146
  const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;
147
- const hierarchy = document ? getAgentBridgeSafeSceneHierarchy(operations) : [];
148
- const invalidId = targetIds.find(id => !document || !isAgentBridgeHierarchyObjectSelectable(options, document, id, hierarchy));
147
+ const hierarchy = document ? getEditorCommandSafeSceneHierarchy(operations) : [];
148
+ const invalidId = targetIds.find(id => !document || !isEditorCommandHierarchyObjectSelectable(options, document, id, hierarchy));
149
149
  if (invalidId) {
150
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_ISOLATION_ENTER, `Viewport object was not found: ${invalidId}`, { code: 'viewport.targetNotFound', objectId: invalidId });
150
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_ISOLATION_ENTER, `Viewport object was not found: ${invalidId}`, { code: 'viewport.targetNotFound', objectId: invalidId });
151
151
  }
152
- const objectIds = createAgentBridgeViewportObjectIds(state, operations);
152
+ const objectIds = createEditorCommandViewportObjectIds(state, operations);
153
153
  if (objectIds.length === 0) {
154
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_ISOLATION_ENTER, 'Viewport projection is unavailable or has no visible objects to isolate.', { code: 'viewport.projectionUnavailable' });
154
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_ISOLATION_ENTER, 'Viewport projection is unavailable or has no visible objects to isolate.', { code: 'viewport.projectionUnavailable' });
155
155
  }
156
156
  const keep = new Set(targetIds);
157
157
  for (const targetId of targetIds) {
@@ -168,7 +168,7 @@ function enterAgentBridgeViewportIsolation(state, options, input, operations) {
168
168
  state.previewVisibility.isolatedObjectIds = [...keep];
169
169
  delete state.previewVisibility.protectedObjectIds;
170
170
  delete state.previewVisibility.protectedReceiverIds;
171
- state.previewVisibility.reason = normalizeAgentBridgeString(input.reason) || undefined;
171
+ state.previewVisibility.reason = normalizeEditorCommandString(input.reason) || undefined;
172
172
  state.projection?.clearPreviewVisibilityOverrides?.();
173
173
  const entries = state.projection?.setPreviewVisibilityOverrides?.(nextOverrides) ?? [];
174
174
  const diagnostics = input.includeShadowDependencies
@@ -181,13 +181,13 @@ function enterAgentBridgeViewportIsolation(state, options, input, operations) {
181
181
  : undefined;
182
182
  return {
183
183
  changed: previous !== JSON.stringify(state.previewVisibility),
184
- snapshot: createAgentBridgeViewportVisibilitySnapshot(state, operations, entries, diagnostics),
184
+ snapshot: createEditorCommandViewportVisibilitySnapshot(state, operations, entries, diagnostics),
185
185
  ...(diagnostics ? { diagnostics } : {}),
186
186
  };
187
187
  }
188
- function createAgentBridgeViewportVisibilitySnapshot(state, operations, entries, diagnostics) {
188
+ function createEditorCommandViewportVisibilitySnapshot(state, operations, entries, diagnostics) {
189
189
  const projectionEntries = entries ?? state.projection?.getPreviewVisibilityOverrides?.() ?? [];
190
- const safeIds = new Set(getAgentBridgeSafeSceneHierarchy(operations).map(item => item.id));
190
+ const safeIds = new Set(getEditorCommandSafeSceneHierarchy(operations).map(item => item.id));
191
191
  const safeProjectionEntries = projectionEntries.filter(entry => safeIds.has(entry.nodeId));
192
192
  const entryById = new Map(safeProjectionEntries.map(entry => [entry.nodeId, entry]));
193
193
  const objectIds = new Set([
@@ -216,11 +216,11 @@ function createAgentBridgeViewportVisibilitySnapshot(state, operations, entries,
216
216
  ...(diagnostics?.length ? { diagnostics } : {}),
217
217
  };
218
218
  }
219
- function createAgentBridgeViewportObjectIds(state, operations) {
219
+ function createEditorCommandViewportObjectIds(state, operations) {
220
220
  const fromOverrides = Object.keys(state.previewVisibility.overrides);
221
221
  const fromProjectedNodes = state.projection?.getProjectedNodeIds?.() ?? [];
222
222
  const fromProjection = state.projection?.getPreviewVisibilityOverrides?.().map(entry => entry.nodeId) ?? [];
223
- const safeScene = getAgentBridgeSafeSceneReadModel(operations);
223
+ const safeScene = getEditorCommandSafeSceneReadModel(operations);
224
224
  const sessionIds = safeScene.selection.selectedIds;
225
225
  const ids = new Set([...fromProjectedNodes, ...fromOverrides, ...fromProjection, ...sessionIds]);
226
226
  const safeIds = new Set(safeScene.hierarchy.map(item => item.id));
@@ -228,9 +228,9 @@ function createAgentBridgeViewportObjectIds(state, operations) {
228
228
  return [...ids].filter(id => safeIds.has(id));
229
229
  return [];
230
230
  }
231
- function createAgentBridgeViewportCameraState(state, operations) {
231
+ function createEditorCommandViewportCameraState(state, operations) {
232
232
  const cameraState = state.sceneViewCamera?.getState();
233
- const selection = getAgentBridgeViewportSelection(operations).selection;
233
+ const selection = getEditorCommandViewportSelection(operations).selection;
234
234
  const alpha = cameraState?.alpha;
235
235
  const beta = cameraState?.beta;
236
236
  const radius = cameraState?.radius;
@@ -242,29 +242,29 @@ function createAgentBridgeViewportCameraState(state, operations) {
242
242
  ...(typeof alpha === 'number' && Number.isFinite(alpha) ? { alpha } : {}),
243
243
  ...(typeof beta === 'number' && Number.isFinite(beta) ? { beta } : {}),
244
244
  ...(typeof radius === 'number' && Number.isFinite(radius) ? { radius } : {}),
245
- selection: cloneAgentBridgeSelection(selection),
245
+ selection: cloneEditorCommandSelection(selection),
246
246
  };
247
247
  }
248
- function setAgentBridgeViewportCameraPreset(state, options, input, renderUi, operations) {
248
+ function setEditorCommandViewportCameraPreset(state, options, input, renderUi, operations) {
249
249
  if (state.mode !== 'editor' || !state.session) {
250
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET, 'Editor is not in edit mode.', { code: 'editor.notReady' });
250
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET, 'Editor is not in edit mode.', { code: 'editor.notReady' });
251
251
  }
252
252
  if (state.sceneCameraPreviewEnabled) {
253
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET, 'Viewport camera presets are unavailable during Scene Camera preview.', { code: 'viewport.camera.previewActive' });
253
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET, 'Viewport camera presets are unavailable during Scene Camera preview.', { code: 'viewport.camera.previewActive' });
254
254
  }
255
255
  if (!state.sceneViewCamera) {
256
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET, 'Viewport camera is unavailable.', { code: 'viewport.camera.unavailable' });
256
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET, 'Viewport camera is unavailable.', { code: 'viewport.camera.unavailable' });
257
257
  }
258
- const target = resolveAgentBridgeViewportCameraTarget(state, options, input.target, EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET, operations);
258
+ const target = resolveEditorCommandViewportCameraTarget(state, options, input.target, EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET, operations);
259
259
  if (!target.ok)
260
260
  return target.result;
261
- const preset = normalizeAgentBridgeViewportCameraPreset(input.preset);
261
+ const preset = normalizeEditorCommandViewportCameraPreset(input.preset);
262
262
  if (!preset) {
263
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET, 'viewport.camera.setPreset requires a supported preset.', { code: 'viewport.camera.invalidPreset' });
263
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET, 'viewport.camera.setPreset requires a supported preset.', { code: 'viewport.camera.invalidPreset' });
264
264
  }
265
- const radius = normalizeAgentBridgePositiveNumber(input.radius, null);
266
- const distanceScale = normalizeAgentBridgePositiveNumber(input.distanceScale, 1);
267
- const baseRadius = target.radius ?? createAgentBridgeViewportCameraState(state, operations).radius ?? undefined;
265
+ const radius = normalizeEditorCommandPositiveNumber(input.radius, null);
266
+ const distanceScale = normalizeEditorCommandPositiveNumber(input.distanceScale, 1);
267
+ const baseRadius = target.radius ?? createEditorCommandViewportCameraState(state, operations).radius ?? undefined;
268
268
  const scaledRadius = baseRadius && distanceScale ? baseRadius * distanceScale : baseRadius;
269
269
  const changed = state.sceneViewCamera.setViewPreset(preset, {
270
270
  target: target.target,
@@ -278,26 +278,26 @@ function setAgentBridgeViewportCameraPreset(state, options, input, renderUi, ope
278
278
  if (changed)
279
279
  operations.requestSceneFrame('agent-viewport-camera-set-preset');
280
280
  renderUi();
281
- return createAgentBridgeViewportCameraMutationOutput(state, changed, operations);
281
+ return createEditorCommandViewportCameraMutationOutput(state, changed, operations);
282
282
  }
283
- function orbitAgentBridgeViewportCamera(state, options, input, renderUi, operations) {
283
+ function orbitEditorCommandViewportCamera(state, options, input, renderUi, operations) {
284
284
  if (state.mode !== 'editor' || !state.session) {
285
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT, 'Editor is not in edit mode.', { code: 'editor.notReady' });
285
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_CAMERA_ORBIT, 'Editor is not in edit mode.', { code: 'editor.notReady' });
286
286
  }
287
287
  if (state.sceneCameraPreviewEnabled) {
288
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT, 'Viewport camera orbit is unavailable during Scene Camera preview.', { code: 'viewport.camera.previewActive' });
288
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_CAMERA_ORBIT, 'Viewport camera orbit is unavailable during Scene Camera preview.', { code: 'viewport.camera.previewActive' });
289
289
  }
290
290
  if (!state.sceneViewCamera) {
291
- return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT, 'Viewport camera is unavailable.', { code: 'viewport.camera.unavailable' });
291
+ return createLocalEditorCommandFailure(EDITOR_COMMAND_ID.VIEWPORT_CAMERA_ORBIT, 'Viewport camera is unavailable.', { code: 'viewport.camera.unavailable' });
292
292
  }
293
- const target = resolveAgentBridgeViewportCameraTarget(state, options, input.target, EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT, operations);
293
+ const target = resolveEditorCommandViewportCameraTarget(state, options, input.target, EDITOR_COMMAND_ID.VIEWPORT_CAMERA_ORBIT, operations);
294
294
  if (!target.ok)
295
295
  return target.result;
296
296
  const changed = state.sceneViewCamera.orbit({
297
297
  target: target.target ?? undefined,
298
- yawDeltaDeg: normalizeAgentBridgeFiniteNumber(input.yawDeltaDeg, 0),
299
- pitchDeltaDeg: normalizeAgentBridgeFiniteNumber(input.pitchDeltaDeg, 0),
300
- distanceScale: normalizeAgentBridgePositiveNumber(input.distanceScale, 1) ?? undefined,
298
+ yawDeltaDeg: normalizeEditorCommandFiniteNumber(input.yawDeltaDeg, 0),
299
+ pitchDeltaDeg: normalizeEditorCommandFiniteNumber(input.pitchDeltaDeg, 0),
300
+ distanceScale: normalizeEditorCommandPositiveNumber(input.distanceScale, 1) ?? undefined,
301
301
  });
302
302
  operations.syncViewportCameraState();
303
303
  state.status = 'Viewport camera: orbit';
@@ -307,10 +307,10 @@ function orbitAgentBridgeViewportCamera(state, options, input, renderUi, operati
307
307
  if (changed)
308
308
  operations.requestSceneFrame('agent-viewport-camera-orbit');
309
309
  renderUi();
310
- return createAgentBridgeViewportCameraMutationOutput(state, changed, operations);
310
+ return createEditorCommandViewportCameraMutationOutput(state, changed, operations);
311
311
  }
312
- function createAgentBridgeViewportCameraMutationOutput(state, changed, operations) {
313
- const cameraState = createAgentBridgeViewportCameraState(state, operations);
312
+ function createEditorCommandViewportCameraMutationOutput(state, changed, operations) {
313
+ const cameraState = createEditorCommandViewportCameraState(state, operations);
314
314
  return {
315
315
  changed,
316
316
  viewPreset: cameraState.viewPreset,
@@ -320,80 +320,80 @@ function createAgentBridgeViewportCameraMutationOutput(state, changed, operation
320
320
  selection: cameraState.selection,
321
321
  };
322
322
  }
323
- function resolveAgentBridgeViewportCameraTarget(state, options, input, capabilityId, operations) {
324
- const target = input ?? createDefaultAgentBridgeViewportCameraTarget(operations);
323
+ function resolveEditorCommandViewportCameraTarget(state, options, input, capabilityId, operations) {
324
+ const target = input ?? createDefaultEditorCommandViewportCameraTarget(operations);
325
325
  if (target.kind === 'point') {
326
- if (!isLocalEditorAgentBridgeVec3(target.point)) {
326
+ if (!isLocalEditorCommandVec3(target.point)) {
327
327
  return {
328
328
  ok: false,
329
- result: createLocalEditorAgentBridgeFailure(capabilityId, 'Camera point target requires a finite Vec3 point.', { code: 'viewport.camera.invalidTarget' }),
329
+ result: createLocalEditorCommandFailure(capabilityId, 'Camera point target requires a finite Vec3 point.', { code: 'viewport.camera.invalidTarget' }),
330
330
  };
331
331
  }
332
332
  return { ok: true, target: cloneVec3(target.point) };
333
333
  }
334
334
  if (target.kind === 'scene')
335
- return resolveAgentBridgeSceneCameraTarget(state, options, operations);
335
+ return resolveEditorCommandSceneCameraTarget(state, options, operations);
336
336
  if (target.kind === 'selection')
337
- return resolveAgentBridgeSelectionCameraTarget(state, capabilityId, operations);
337
+ return resolveEditorCommandSelectionCameraTarget(state, capabilityId, operations);
338
338
  if (target.kind === 'object') {
339
- const objectId = normalizeAgentBridgeString(target.objectId);
339
+ const objectId = normalizeEditorCommandString(target.objectId);
340
340
  if (!objectId) {
341
341
  return {
342
342
  ok: false,
343
- result: createLocalEditorAgentBridgeFailure(capabilityId, 'Camera object target requires objectId.', { code: 'viewport.camera.invalidTarget' }),
343
+ result: createLocalEditorCommandFailure(capabilityId, 'Camera object target requires objectId.', { code: 'viewport.camera.invalidTarget' }),
344
344
  };
345
345
  }
346
346
  const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;
347
- const hierarchy = document ? getAgentBridgeSafeSceneHierarchy(operations) : [];
348
- if (!document || !isAgentBridgeHierarchyObjectSelectable(options, document, objectId, hierarchy)) {
347
+ const hierarchy = document ? getEditorCommandSafeSceneHierarchy(operations) : [];
348
+ if (!document || !isEditorCommandHierarchyObjectSelectable(options, document, objectId, hierarchy)) {
349
349
  return {
350
350
  ok: false,
351
- result: createLocalEditorAgentBridgeFailure(capabilityId, `Camera target object was not found: ${objectId}`, { code: 'viewport.camera.targetNotFound', objectId }),
351
+ result: createLocalEditorCommandFailure(capabilityId, `Camera target object was not found: ${objectId}`, { code: 'viewport.camera.targetNotFound', objectId }),
352
352
  };
353
353
  }
354
- return resolveAgentBridgeObjectCameraTarget(state, objectId, capabilityId);
354
+ return resolveEditorCommandObjectCameraTarget(state, objectId, capabilityId);
355
355
  }
356
356
  return {
357
357
  ok: false,
358
- result: createLocalEditorAgentBridgeFailure(capabilityId, 'Unsupported camera target.', { code: 'viewport.camera.invalidTarget' }),
358
+ result: createLocalEditorCommandFailure(capabilityId, 'Unsupported camera target.', { code: 'viewport.camera.invalidTarget' }),
359
359
  };
360
360
  }
361
- function createDefaultAgentBridgeViewportCameraTarget(operations) {
362
- const selection = getAgentBridgeViewportSelection(operations).selection;
361
+ function createDefaultEditorCommandViewportCameraTarget(operations) {
362
+ const selection = getEditorCommandViewportSelection(operations).selection;
363
363
  return selection.activeId ? { kind: 'selection' } : { kind: 'scene' };
364
364
  }
365
- function resolveAgentBridgeSelectionCameraTarget(state, capabilityId, operations) {
366
- const selection = getAgentBridgeViewportSelection(operations).selection;
365
+ function resolveEditorCommandSelectionCameraTarget(state, capabilityId, operations) {
366
+ const selection = getEditorCommandViewportSelection(operations).selection;
367
367
  const selectedIds = selection.selectedIds.length > 0
368
368
  ? selection.selectedIds
369
369
  : selection.activeId ? [selection.activeId] : [];
370
370
  if (selectedIds.length === 0) {
371
371
  return {
372
372
  ok: false,
373
- result: createLocalEditorAgentBridgeFailure(capabilityId, 'Camera target selection is empty.', { code: 'viewport.camera.emptySelection' }),
373
+ result: createLocalEditorCommandFailure(capabilityId, 'Camera target selection is empty.', { code: 'viewport.camera.emptySelection' }),
374
374
  };
375
375
  }
376
376
  const bounds = state.projection?.getSelectionBounds(selectedIds) ?? null;
377
377
  if (!bounds) {
378
378
  return {
379
379
  ok: false,
380
- result: createLocalEditorAgentBridgeFailure(capabilityId, 'Camera target selection has no projection bounds.', { code: 'viewport.camera.missingBounds', objectId: selection.activeId ?? undefined }),
380
+ result: createLocalEditorCommandFailure(capabilityId, 'Camera target selection has no projection bounds.', { code: 'viewport.camera.missingBounds', objectId: selection.activeId ?? undefined }),
381
381
  };
382
382
  }
383
383
  return {
384
384
  ok: true,
385
385
  target: cloneVec3(bounds.center),
386
- radius: createAgentBridgeCameraRadiusFromBounds(bounds),
386
+ radius: createEditorCommandCameraRadiusFromBounds(bounds),
387
387
  };
388
388
  }
389
- function resolveAgentBridgeSceneCameraTarget(state, options, operations) {
389
+ function resolveEditorCommandSceneCameraTarget(state, options, operations) {
390
390
  const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;
391
391
  if (!document)
392
392
  return { ok: true, target: null };
393
- const hierarchy = getAgentBridgeSafeSceneHierarchy(operations);
393
+ const hierarchy = getEditorCommandSafeSceneHierarchy(operations);
394
394
  const objectIds = hierarchy
395
395
  .map(item => item.id)
396
- .filter(objectId => isAgentBridgeHierarchyObjectSelectable(options, document, objectId, hierarchy));
396
+ .filter(objectId => isEditorCommandHierarchyObjectSelectable(options, document, objectId, hierarchy));
397
397
  if (objectIds.length === 0)
398
398
  return { ok: true, target: null };
399
399
  const bounds = state.projection?.getSelectionBounds(objectIds) ?? null;
@@ -402,34 +402,34 @@ function resolveAgentBridgeSceneCameraTarget(state, options, operations) {
402
402
  return {
403
403
  ok: true,
404
404
  target: cloneVec3(bounds.center),
405
- radius: createAgentBridgeCameraRadiusFromBounds(bounds),
405
+ radius: createEditorCommandCameraRadiusFromBounds(bounds),
406
406
  };
407
407
  }
408
- function getAgentBridgeViewportSelection(operations) {
409
- const safeScene = getAgentBridgeSafeSceneReadModel(operations);
408
+ function getEditorCommandViewportSelection(operations) {
409
+ const safeScene = getEditorCommandSafeSceneReadModel(operations);
410
410
  return safeScene.scopeType === 'scene'
411
411
  ? { selection: safeScene.selection, scene: true }
412
412
  : { selection: operations.getPreviewSelection(), scene: false };
413
413
  }
414
- function resolveAgentBridgeObjectCameraTarget(state, objectId, capabilityId) {
414
+ function resolveEditorCommandObjectCameraTarget(state, objectId, capabilityId) {
415
415
  const bounds = state.projection?.getSelectionBounds([objectId]) ?? null;
416
416
  if (!bounds) {
417
417
  return {
418
418
  ok: false,
419
- result: createLocalEditorAgentBridgeFailure(capabilityId, `Camera target object has no projection bounds: ${objectId}`, { code: 'viewport.camera.missingBounds', objectId }),
419
+ result: createLocalEditorCommandFailure(capabilityId, `Camera target object has no projection bounds: ${objectId}`, { code: 'viewport.camera.missingBounds', objectId }),
420
420
  };
421
421
  }
422
422
  return {
423
423
  ok: true,
424
424
  target: cloneVec3(bounds.center),
425
- radius: createAgentBridgeCameraRadiusFromBounds(bounds),
425
+ radius: createEditorCommandCameraRadiusFromBounds(bounds),
426
426
  };
427
427
  }
428
- function createAgentBridgeCameraRadiusFromBounds(bounds) {
428
+ function createEditorCommandCameraRadiusFromBounds(bounds) {
429
429
  const radius = Math.hypot(bounds.size.x, bounds.size.y, bounds.size.z);
430
430
  return Number.isFinite(radius) && radius > 0 ? Math.max(radius * 1.5, 2) : undefined;
431
431
  }
432
- function normalizeAgentBridgeViewportCameraPreset(value) {
432
+ function normalizeEditorCommandViewportCameraPreset(value) {
433
433
  const preset = value === 'perspective'
434
434
  || value === 'top'
435
435
  || value === 'bottom'
@@ -443,10 +443,10 @@ function normalizeAgentBridgeViewportCameraPreset(value) {
443
443
  : null;
444
444
  return preset;
445
445
  }
446
- function normalizeAgentBridgeFiniteNumber(value, fallback) {
446
+ function normalizeEditorCommandFiniteNumber(value, fallback) {
447
447
  return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
448
448
  }
449
- function normalizeAgentBridgePositiveNumber(value, fallback) {
449
+ function normalizeEditorCommandPositiveNumber(value, fallback) {
450
450
  return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : fallback;
451
451
  }
452
452
  //# sourceMappingURL=viewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/editor-commands/capabilities/viewport.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EditorSelectionState, EditorViewportViewPreset } from '@fps-games/editor-core';\nimport {\n EDITOR_COMMAND_ID,\n type EditorCommandVec3,\n type EditorCommandViewportCameraOrbitInput,\n type EditorCommandViewportCameraPreset,\n type EditorCommandViewportCameraSetPresetInput,\n type EditorCommandViewportCameraSetPresetOutput,\n type EditorCommandViewportCameraState,\n type EditorCommandViewportCameraTarget,\n type EditorCommandViewportIsolationEnterInput,\n type EditorCommandViewportIsolationEnterOutput,\n type EditorCommandViewportVisibilityEntry,\n type EditorCommandViewportVisibilityMutationOutput,\n type EditorCommandViewportVisibilitySetInput,\n type EditorCommandViewportVisibilitySnapshotOutput,\n} from '@fps-games/editor-protocol';\nimport {\n cloneVec3,\n createLocalEditorCommandFailure,\n isLocalEditorCommandVec3,\n} from '../diagnostics.js';\nimport type { LocalEditorCommandViewportSource } from '../source-types.js';\nimport {\n cloneEditorCommandSelection,\n getEditorCommandSafeSceneHierarchy,\n getEditorCommandSafeSceneReadModel,\n hasEditorCommandSafeSceneScope,\n isEditorCommandHierarchyObjectSelectable,\n normalizeEditorCommandIdList,\n normalizeEditorCommandString,\n type LocalEditorCommandPreviewVisibilityEntry,\n type LocalEditorCommandCapabilitySourceOperations,\n type LocalEditorCommandHarnessState,\n} from '../shared.js';\nimport type { LocalEditorHarnessOptions } from '../../local-editor-harness.js';\n\nexport function createLocalEditorCommandViewportSource<TDocument, TPatch, TAsset>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): LocalEditorCommandViewportSource {\n return {\n focusObject(input) {\n const objectId = typeof input?.objectId === 'string' ? input.objectId.trim() : '';\n if (!objectId) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_FOCUS_OBJECT,\n 'viewport.focusObject requires objectId.',\n { code: 'viewport.invalidInput' },\n );\n }\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const hierarchy = document ? getEditorCommandSafeSceneHierarchy(operations) : [];\n if (!document || !isEditorCommandHierarchyObjectSelectable(options, document, objectId, hierarchy)) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_FOCUS_OBJECT,\n `Viewport object was not found: ${objectId}`,\n { code: 'viewport.targetNotFound', objectId },\n );\n }\n const focused = operations.focusProjectionNode(objectId);\n renderUi();\n return { objectId, focused };\n },\n frameSelection() {\n const scopedSelection = getEditorCommandViewportSelection(operations);\n const selection = scopedSelection.selection;\n const focused = selection.activeId\n ? scopedSelection.scene\n ? operations.focusProjectionNode(selection.activeId)\n : operations.focusPreviewSelection()\n : false;\n renderUi();\n return {\n focused,\n selection: cloneEditorCommandSelection(selection),\n };\n },\n getCamera() {\n return createEditorCommandViewportCameraState(state, operations);\n },\n setCameraPreset(input) {\n return setEditorCommandViewportCameraPreset(state, options, input, renderUi, operations);\n },\n orbitCamera(input) {\n return orbitEditorCommandViewportCamera(state, options, input, renderUi, operations);\n },\n getVisibilitySnapshot() {\n return createEditorCommandViewportVisibilitySnapshot(state, operations);\n },\n setVisibility(input) {\n const result = setEditorCommandViewportVisibility(state, options, input, operations);\n if ('ok' in result && result.ok === false) return result;\n operations.refreshShadowPreview?.();\n operations.requestSceneFrame('agent-viewport-visibility-set');\n renderUi();\n return result;\n },\n clearVisibility() {\n if (!hasEditorCommandSafeSceneScope(operations)) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_VISIBILITY_CLEAR,\n 'Scene viewport visibility is unavailable outside the Scene Hierarchy scope.',\n { code: 'viewport.sceneScopeRequired' },\n );\n }\n const previousCount = Object.keys(state.previewVisibility.overrides).length;\n const wasIsolated = state.previewVisibility.isolatedObjectIds.length > 0;\n state.previewVisibility.overrides = {};\n state.previewVisibility.isolatedObjectIds = [];\n delete state.previewVisibility.protectedObjectIds;\n delete state.previewVisibility.protectedReceiverIds;\n delete state.previewVisibility.reason;\n state.projection?.clearPreviewVisibilityOverrides?.();\n operations.refreshShadowPreview?.();\n operations.requestSceneFrame('agent-viewport-visibility-clear');\n renderUi();\n return {\n changed: previousCount > 0 || wasIsolated,\n snapshot: createEditorCommandViewportVisibilitySnapshot(state, operations),\n };\n },\n enterIsolation(input) {\n const result = enterEditorCommandViewportIsolation(state, options, input, operations);\n if ('ok' in result && result.ok === false) return result;\n operations.refreshShadowPreview?.();\n operations.requestSceneFrame('agent-viewport-isolation-enter');\n renderUi();\n return result;\n },\n };\n}\n\nfunction setEditorCommandViewportVisibility<TDocument, TPatch, TAsset>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorCommandViewportVisibilitySetInput,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): EditorCommandViewportVisibilityMutationOutput | ReturnType<typeof createLocalEditorCommandFailure> {\n const ids = normalizeEditorCommandIdList(Array.isArray(input.objectIds) ? input.objectIds : []);\n if (ids.length === 0) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_VISIBILITY_SET,\n 'viewport.visibility.set requires at least one objectId.',\n { code: 'viewport.visibility.invalidInput' },\n );\n }\n if (typeof input.visible !== 'boolean') {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_VISIBILITY_SET,\n 'viewport.visibility.set requires visible to be boolean.',\n { code: 'viewport.visibility.invalidInput' },\n );\n }\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const hierarchy = document ? getEditorCommandSafeSceneHierarchy(operations) : [];\n const invalidId = ids.find(id => !document || !isEditorCommandHierarchyObjectSelectable(options, document, id, hierarchy));\n if (invalidId) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_VISIBILITY_SET,\n `Viewport object was not found: ${invalidId}`,\n { code: 'viewport.targetNotFound', objectId: invalidId },\n );\n }\n const previous = JSON.stringify(state.previewVisibility.overrides);\n const safeIds = new Set(hierarchy.map(item => item.id));\n const nextOverrides = Object.fromEntries(\n Object.entries(state.previewVisibility.overrides).filter(([id]) => safeIds.has(id)),\n );\n const protectedIds = new Set([\n ...(state.previewVisibility.protectedObjectIds ?? []),\n ...(state.previewVisibility.protectedReceiverIds ?? []),\n ]);\n const blockedIds: string[] = [];\n for (const id of ids) {\n if (input.visible === false && protectedIds.has(id)) {\n nextOverrides[id] = true;\n blockedIds.push(id);\n continue;\n }\n nextOverrides[id] = input.visible;\n }\n state.previewVisibility.overrides = nextOverrides;\n if (blockedIds.length === 0) {\n state.previewVisibility.isolatedObjectIds = [];\n } else {\n state.previewVisibility.isolatedObjectIds = state.previewVisibility.isolatedObjectIds.filter(id => safeIds.has(id));\n }\n state.previewVisibility.reason = normalizeEditorCommandString(input.reason) || undefined;\n state.projection?.clearPreviewVisibilityOverrides?.();\n const entries = state.projection?.setPreviewVisibilityOverrides?.(nextOverrides) ?? [];\n const diagnostics = blockedIds.length > 0\n ? [{\n code: 'shadow.receiverProtectedInDebugContext',\n message: 'One or more objects are protected by the active Shadow Debug Context and were kept visible. Clear shadow.debug.context before hiding protected receivers.',\n source: 'editor' as const,\n severity: 'warning' as const,\n details: { objectIds: blockedIds },\n }]\n : undefined;\n return {\n changed: previous !== JSON.stringify(state.previewVisibility.overrides),\n snapshot: createEditorCommandViewportVisibilitySnapshot(state, operations, entries, diagnostics),\n ...(diagnostics ? { diagnostics } : {}),\n };\n}\n\nfunction enterEditorCommandViewportIsolation<TDocument, TPatch, TAsset>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorCommandViewportIsolationEnterInput,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): EditorCommandViewportIsolationEnterOutput | ReturnType<typeof createLocalEditorCommandFailure> {\n const targetIds = normalizeEditorCommandIdList(Array.isArray(input.objectIds) ? input.objectIds : []);\n if (targetIds.length === 0) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_ISOLATION_ENTER,\n 'viewport.isolation.enter requires at least one objectId.',\n { code: 'viewport.isolation.invalidInput' },\n );\n }\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const hierarchy = document ? getEditorCommandSafeSceneHierarchy(operations) : [];\n const invalidId = targetIds.find(id => !document || !isEditorCommandHierarchyObjectSelectable(options, document, id, hierarchy));\n if (invalidId) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_ISOLATION_ENTER,\n `Viewport object was not found: ${invalidId}`,\n { code: 'viewport.targetNotFound', objectId: invalidId },\n );\n }\n const objectIds = createEditorCommandViewportObjectIds(state, operations);\n if (objectIds.length === 0) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_ISOLATION_ENTER,\n 'Viewport projection is unavailable or has no visible objects to isolate.',\n { code: 'viewport.projectionUnavailable' },\n );\n }\n const keep = new Set(targetIds);\n for (const targetId of targetIds) {\n for (const parentId of state.projection?.getProjectionParentIds?.(targetId) ?? []) {\n if (hierarchy.some(item => item.id === parentId)) keep.add(parentId);\n }\n }\n const nextOverrides: Record<string, boolean> = {};\n for (const id of objectIds) nextOverrides[id] = keep.has(id);\n const previous = JSON.stringify(state.previewVisibility);\n state.previewVisibility.overrides = nextOverrides;\n state.previewVisibility.isolatedObjectIds = [...keep];\n delete state.previewVisibility.protectedObjectIds;\n delete state.previewVisibility.protectedReceiverIds;\n state.previewVisibility.reason = normalizeEditorCommandString(input.reason) || undefined;\n state.projection?.clearPreviewVisibilityOverrides?.();\n const entries = state.projection?.setPreviewVisibilityOverrides?.(nextOverrides) ?? [];\n const diagnostics = input.includeShadowDependencies\n ? [{\n code: 'viewport.isolation.shadowDependenciesPending',\n message: 'Shadow dependency expansion will be resolved by shadow debug capabilities; this isolation kept the requested objectIds and required transform ancestors.',\n source: 'editor' as const,\n severity: 'info' as const,\n }]\n : undefined;\n return {\n changed: previous !== JSON.stringify(state.previewVisibility),\n snapshot: createEditorCommandViewportVisibilitySnapshot(state, operations, entries, diagnostics),\n ...(diagnostics ? { diagnostics } : {}),\n };\n}\n\nfunction createEditorCommandViewportVisibilitySnapshot<TDocument, TPatch>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n entries?: readonly LocalEditorCommandPreviewVisibilityEntry[],\n diagnostics?: EditorCommandViewportVisibilityEntry['diagnostics'],\n): EditorCommandViewportVisibilitySnapshotOutput {\n const projectionEntries = entries ?? state.projection?.getPreviewVisibilityOverrides?.() ?? [];\n const safeIds = new Set(getEditorCommandSafeSceneHierarchy(operations).map(item => item.id));\n const safeProjectionEntries = projectionEntries.filter(entry => safeIds.has(entry.nodeId));\n const entryById = new Map(safeProjectionEntries.map(entry => [entry.nodeId, entry]));\n const objectIds = new Set<string>([\n ...Object.keys(state.previewVisibility.overrides).filter(id => safeIds.has(id)),\n ...safeProjectionEntries.map(entry => entry.nodeId),\n ...state.previewVisibility.isolatedObjectIds.filter(id => safeIds.has(id)),\n ]);\n const isolatedIds = new Set(state.previewVisibility.isolatedObjectIds.filter(id => safeIds.has(id)));\n const normalizedEntries = [...objectIds].sort().map((objectId): EditorCommandViewportVisibilityEntry => {\n const projectionEntry = entryById.get(objectId);\n const overrideVisible = state.previewVisibility.overrides[objectId];\n const authoredVisible = projectionEntry?.authoredActive ?? true;\n return {\n objectId,\n authoredVisible,\n previewVisible: projectionEntry?.effectiveVisible ?? (authoredVisible && overrideVisible !== false),\n ...(typeof overrideVisible === 'boolean' ? { overrideVisible } : {}),\n isolated: isolatedIds.has(objectId),\n };\n });\n return {\n isolated: isolatedIds.size > 0,\n isolatedObjectIds: [...isolatedIds],\n entries: normalizedEntries,\n ...(state.previewVisibility.reason ? { reason: state.previewVisibility.reason } : {}),\n ...(diagnostics?.length ? { diagnostics } : {}),\n };\n}\n\nfunction createEditorCommandViewportObjectIds<TDocument, TPatch>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): string[] {\n const fromOverrides = Object.keys(state.previewVisibility.overrides);\n const fromProjectedNodes = state.projection?.getProjectedNodeIds?.() ?? [];\n const fromProjection = state.projection?.getPreviewVisibilityOverrides?.().map(entry => entry.nodeId) ?? [];\n const safeScene = getEditorCommandSafeSceneReadModel(operations);\n const sessionIds = safeScene.selection.selectedIds;\n const ids = new Set([...fromProjectedNodes, ...fromOverrides, ...fromProjection, ...sessionIds]);\n const safeIds = new Set(safeScene.hierarchy.map(item => item.id));\n if (ids.size > 0) return [...ids].filter(id => safeIds.has(id));\n return [];\n}\n\nfunction createEditorCommandViewportCameraState<TDocument, TPatch>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): EditorCommandViewportCameraState {\n const cameraState = state.sceneViewCamera?.getState();\n const selection = getEditorCommandViewportSelection(operations).selection;\n const alpha = cameraState?.alpha;\n const beta = cameraState?.beta;\n const radius = cameraState?.radius;\n return {\n viewPreset: (cameraState?.viewPreset ?? state.viewportTools.viewPreset) as EditorCommandViewportCameraPreset,\n projectionMode: cameraState?.projectionMode ?? state.viewportTools.projectionMode,\n ...(cameraState?.target ? { target: cloneVec3(cameraState.target) } : {}),\n ...(cameraState?.position ? { position: cloneVec3(cameraState.position) } : {}),\n ...(typeof alpha === 'number' && Number.isFinite(alpha) ? { alpha } : {}),\n ...(typeof beta === 'number' && Number.isFinite(beta) ? { beta } : {}),\n ...(typeof radius === 'number' && Number.isFinite(radius) ? { radius } : {}),\n selection: cloneEditorCommandSelection(selection),\n };\n}\n\nfunction setEditorCommandViewportCameraPreset<TDocument, TPatch, TAsset>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorCommandViewportCameraSetPresetInput,\n renderUi: () => void,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): EditorCommandViewportCameraSetPresetOutput | ReturnType<typeof createLocalEditorCommandFailure> {\n if (state.mode !== 'editor' || !state.session) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady' },\n );\n }\n if (state.sceneCameraPreviewEnabled) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET,\n 'Viewport camera presets are unavailable during Scene Camera preview.',\n { code: 'viewport.camera.previewActive' },\n );\n }\n if (!state.sceneViewCamera) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET,\n 'Viewport camera is unavailable.',\n { code: 'viewport.camera.unavailable' },\n );\n }\n const target = resolveEditorCommandViewportCameraTarget(\n state,\n options,\n input.target,\n EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET,\n operations,\n );\n if (!target.ok) return target.result;\n const preset = normalizeEditorCommandViewportCameraPreset(input.preset);\n if (!preset) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_CAMERA_SET_PRESET,\n 'viewport.camera.setPreset requires a supported preset.',\n { code: 'viewport.camera.invalidPreset' },\n );\n }\n const radius = normalizeEditorCommandPositiveNumber(input.radius, null);\n const distanceScale = normalizeEditorCommandPositiveNumber(input.distanceScale, 1);\n const baseRadius = target.radius ?? createEditorCommandViewportCameraState(state, operations).radius ?? undefined;\n const scaledRadius = baseRadius && distanceScale ? baseRadius * distanceScale : baseRadius;\n const changed = state.sceneViewCamera.setViewPreset(preset, {\n target: target.target,\n radius: radius ?? scaledRadius,\n });\n operations.syncViewportCameraState();\n state.status = `Viewport camera: ${preset}`;\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n if (changed) operations.requestSceneFrame('agent-viewport-camera-set-preset');\n renderUi();\n return createEditorCommandViewportCameraMutationOutput(state, changed, operations);\n}\n\nfunction orbitEditorCommandViewportCamera<TDocument, TPatch, TAsset>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorCommandViewportCameraOrbitInput,\n renderUi: () => void,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): EditorCommandViewportCameraSetPresetOutput | ReturnType<typeof createLocalEditorCommandFailure> {\n if (state.mode !== 'editor' || !state.session) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_CAMERA_ORBIT,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady' },\n );\n }\n if (state.sceneCameraPreviewEnabled) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_CAMERA_ORBIT,\n 'Viewport camera orbit is unavailable during Scene Camera preview.',\n { code: 'viewport.camera.previewActive' },\n );\n }\n if (!state.sceneViewCamera) {\n return createLocalEditorCommandFailure(\n EDITOR_COMMAND_ID.VIEWPORT_CAMERA_ORBIT,\n 'Viewport camera is unavailable.',\n { code: 'viewport.camera.unavailable' },\n );\n }\n const target = resolveEditorCommandViewportCameraTarget(\n state,\n options,\n input.target,\n EDITOR_COMMAND_ID.VIEWPORT_CAMERA_ORBIT,\n operations,\n );\n if (!target.ok) return target.result;\n const changed = state.sceneViewCamera.orbit({\n target: target.target ?? undefined,\n yawDeltaDeg: normalizeEditorCommandFiniteNumber(input.yawDeltaDeg, 0),\n pitchDeltaDeg: normalizeEditorCommandFiniteNumber(input.pitchDeltaDeg, 0),\n distanceScale: normalizeEditorCommandPositiveNumber(input.distanceScale, 1) ?? undefined,\n });\n operations.syncViewportCameraState();\n state.status = 'Viewport camera: orbit';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n if (changed) operations.requestSceneFrame('agent-viewport-camera-orbit');\n renderUi();\n return createEditorCommandViewportCameraMutationOutput(state, changed, operations);\n}\n\nfunction createEditorCommandViewportCameraMutationOutput<TDocument, TPatch>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n changed: boolean,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): EditorCommandViewportCameraSetPresetOutput {\n const cameraState = createEditorCommandViewportCameraState(state, operations);\n return {\n changed,\n viewPreset: cameraState.viewPreset,\n projectionMode: cameraState.projectionMode,\n ...(cameraState.target ? { target: cameraState.target } : {}),\n ...(cameraState.radius !== undefined ? { radius: cameraState.radius } : {}),\n selection: cameraState.selection,\n };\n}\n\nfunction resolveEditorCommandViewportCameraTarget<TDocument, TPatch, TAsset>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorCommandViewportCameraTarget | undefined,\n capabilityId: string,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): { ok: true; target: EditorCommandVec3 | null; radius?: number } | { ok: false; result: ReturnType<typeof createLocalEditorCommandFailure> } {\n const target = input ?? createDefaultEditorCommandViewportCameraTarget(operations);\n if (target.kind === 'point') {\n if (!isLocalEditorCommandVec3(target.point)) {\n return {\n ok: false,\n result: createLocalEditorCommandFailure(\n capabilityId,\n 'Camera point target requires a finite Vec3 point.',\n { code: 'viewport.camera.invalidTarget' },\n ),\n };\n }\n return { ok: true, target: cloneVec3(target.point) };\n }\n if (target.kind === 'scene') return resolveEditorCommandSceneCameraTarget(state, options, operations);\n if (target.kind === 'selection') return resolveEditorCommandSelectionCameraTarget(state, capabilityId, operations);\n if (target.kind === 'object') {\n const objectId = normalizeEditorCommandString(target.objectId);\n if (!objectId) {\n return {\n ok: false,\n result: createLocalEditorCommandFailure(\n capabilityId,\n 'Camera object target requires objectId.',\n { code: 'viewport.camera.invalidTarget' },\n ),\n };\n }\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const hierarchy = document ? getEditorCommandSafeSceneHierarchy(operations) : [];\n if (!document || !isEditorCommandHierarchyObjectSelectable(options, document, objectId, hierarchy)) {\n return {\n ok: false,\n result: createLocalEditorCommandFailure(\n capabilityId,\n `Camera target object was not found: ${objectId}`,\n { code: 'viewport.camera.targetNotFound', objectId },\n ),\n };\n }\n return resolveEditorCommandObjectCameraTarget(state, objectId, capabilityId);\n }\n return {\n ok: false,\n result: createLocalEditorCommandFailure(\n capabilityId,\n 'Unsupported camera target.',\n { code: 'viewport.camera.invalidTarget' },\n ),\n };\n}\n\nfunction createDefaultEditorCommandViewportCameraTarget<TDocument>(\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): EditorCommandViewportCameraTarget {\n const selection = getEditorCommandViewportSelection(operations).selection;\n return selection.activeId ? { kind: 'selection' } : { kind: 'scene' };\n}\n\nfunction resolveEditorCommandSelectionCameraTarget<TDocument, TPatch>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n capabilityId: string,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): { ok: true; target: EditorCommandVec3 | null; radius?: number } | { ok: false; result: ReturnType<typeof createLocalEditorCommandFailure> } {\n const selection = getEditorCommandViewportSelection(operations).selection;\n const selectedIds = selection.selectedIds.length > 0\n ? selection.selectedIds\n : selection.activeId ? [selection.activeId] : [];\n if (selectedIds.length === 0) {\n return {\n ok: false,\n result: createLocalEditorCommandFailure(\n capabilityId,\n 'Camera target selection is empty.',\n { code: 'viewport.camera.emptySelection' },\n ),\n };\n }\n const bounds = state.projection?.getSelectionBounds(selectedIds) ?? null;\n if (!bounds) {\n return {\n ok: false,\n result: createLocalEditorCommandFailure(\n capabilityId,\n 'Camera target selection has no projection bounds.',\n { code: 'viewport.camera.missingBounds', objectId: selection.activeId ?? undefined },\n ),\n };\n }\n return {\n ok: true,\n target: cloneVec3(bounds.center),\n radius: createEditorCommandCameraRadiusFromBounds(bounds),\n };\n}\n\nfunction resolveEditorCommandSceneCameraTarget<TDocument, TPatch, TAsset>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): { ok: true; target: EditorCommandVec3 | null; radius?: number } {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n if (!document) return { ok: true, target: null };\n const hierarchy = getEditorCommandSafeSceneHierarchy(operations);\n const objectIds = hierarchy\n .map(item => item.id)\n .filter(objectId => isEditorCommandHierarchyObjectSelectable(options, document, objectId, hierarchy));\n if (objectIds.length === 0) return { ok: true, target: null };\n const bounds = state.projection?.getSelectionBounds(objectIds) ?? null;\n if (!bounds) return { ok: true, target: null };\n return {\n ok: true,\n target: cloneVec3(bounds.center),\n radius: createEditorCommandCameraRadiusFromBounds(bounds),\n };\n}\n\nfunction getEditorCommandViewportSelection<TDocument>(\n operations: LocalEditorCommandCapabilitySourceOperations<TDocument>,\n): { selection: EditorSelectionState; scene: boolean } {\n const safeScene = getEditorCommandSafeSceneReadModel(operations);\n return safeScene.scopeType === 'scene'\n ? { selection: safeScene.selection, scene: true }\n : { selection: operations.getPreviewSelection(), scene: false };\n}\n\nfunction resolveEditorCommandObjectCameraTarget<TDocument, TPatch>(\n state: LocalEditorCommandHarnessState<TDocument, TPatch>,\n objectId: string,\n capabilityId: string,\n): { ok: true; target: EditorCommandVec3 | null; radius?: number } | { ok: false; result: ReturnType<typeof createLocalEditorCommandFailure> } {\n const bounds = state.projection?.getSelectionBounds([objectId]) ?? null;\n if (!bounds) {\n return {\n ok: false,\n result: createLocalEditorCommandFailure(\n capabilityId,\n `Camera target object has no projection bounds: ${objectId}`,\n { code: 'viewport.camera.missingBounds', objectId },\n ),\n };\n }\n return {\n ok: true,\n target: cloneVec3(bounds.center),\n radius: createEditorCommandCameraRadiusFromBounds(bounds),\n };\n}\n\nfunction createEditorCommandCameraRadiusFromBounds(bounds: { size: EditorCommandVec3 }): number | undefined {\n const radius = Math.hypot(bounds.size.x, bounds.size.y, bounds.size.z);\n return Number.isFinite(radius) && radius > 0 ? Math.max(radius * 1.5, 2) : undefined;\n}\n\nfunction normalizeEditorCommandViewportCameraPreset(value: unknown): EditorViewportViewPreset | null {\n const preset = value === 'perspective'\n || value === 'top'\n || value === 'bottom'\n || value === 'front'\n || value === 'back'\n || value === 'left'\n || value === 'right'\n || value === 'iso'\n || value === 'threeQuarterTop'\n ? value\n : null;\n return preset as EditorViewportViewPreset | null;\n}\n\nfunction normalizeEditorCommandFiniteNumber(value: unknown, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback;\n}\n\nfunction normalizeEditorCommandPositiveNumber(value: unknown, fallback: number | null): number | null {\n return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : fallback;\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { LocalEditorHarnessOptions } from '../local-editor-harness.js';
2
+ import type { EditorCommandCallContext } from '@fps-games/editor-core';
3
+ import type { LocalEditorCommandCapabilitySources } from './source-types.js';
4
+ import type { LocalEditorCommandCapabilitySourceOperations, LocalEditorCommandHarnessState } from './shared.js';
5
+ export * from './shared.js';
6
+ export declare function createLocalEditorCommandCapabilitySources<TDocument, TPatch, TAsset>(state: LocalEditorCommandHarnessState<TDocument, TPatch>, options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>, renderUi: () => void, enterEditor: (context?: EditorCommandCallContext) => Promise<void>, saveAndRun: (context?: EditorCommandCallContext) => Promise<boolean>, discardAndRun: (context?: EditorCommandCallContext) => Promise<boolean>, operations: LocalEditorCommandCapabilitySourceOperations<TDocument>): LocalEditorCommandCapabilitySources;
7
+ //# sourceMappingURL=command-sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-sources.d.ts","sourceRoot":"","sources":["../../src/editor-commands/command-sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAYvE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EACV,4CAA4C,EAC5C,8BAA8B,EAC/B,MAAM,aAAa,CAAC;AAErB,cAAc,aAAa,CAAC;AAE5B,wBAAgB,yCAAyC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EACjF,KAAK,EAAE,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,EACxD,OAAO,EAAE,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7D,QAAQ,EAAE,MAAM,IAAI,EACpB,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,EAClE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,OAAO,CAAC,EACpE,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,OAAO,CAAC,EACvE,UAAU,EAAE,4CAA4C,CAAC,SAAS,CAAC,GAClE,mCAAmC,CAoBrC"}