@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,159 +0,0 @@
1
- export function describePlayableEditorAgentObject(document, objectId, services) {
2
- const gameObject = services.findGameObject(document, objectId);
3
- if (!gameObject)
4
- return null;
5
- const nodeKind = services.readNodeKind(gameObject);
6
- const asset = services.findAsset(document, gameObject);
7
- const label = gameObject.name || gameObject.id;
8
- const prefabSummary = services.createPrefabSummary(document, gameObject.id);
9
- const bindingCandidates = [
10
- {
11
- kind: 'scene-node',
12
- id: gameObject.id,
13
- label,
14
- path: `scene.gameObjects.${gameObject.id}`,
15
- },
16
- ...(asset ? [{
17
- kind: 'scene-asset',
18
- id: asset.id,
19
- label: asset.displayName || asset.id,
20
- path: `assets.${asset.id}`,
21
- }] : []),
22
- ...(prefabSummary ? createPlayableEditorAgentPrefabBindingCandidates(prefabSummary) : []),
23
- ];
24
- return {
25
- domainKind: prefabSummary ? `${services.domainPrefix}:prefab-instance` : `${services.domainPrefix}:${nodeKind}`,
26
- domainRole: prefabSummary ? 'prefab-instance' : resolvePlayableEditorAgentGameplayRole(gameObject, nodeKind, services),
27
- functionLabel: label,
28
- functionDescription: prefabSummary
29
- ? `${label} is a prefab instance from ${prefabSummary.prefabDisplayName ?? prefabSummary.prefabId}.`
30
- : asset
31
- ? `${label} is a ${nodeKind} scene node using asset ${asset.displayName || asset.id}.`
32
- : `${label} is a ${nodeKind} scene node in the editable scene document.`,
33
- domainHints: [
34
- prefabSummary
35
- ? 'Interpret this as a prefab instance. Prefer editing prefab defaults for shared shadow/material behavior before overriding this instance.'
36
- : `Interpret this as a ${nodeKind} node from ${services.domainPrefix}'s scene graph.`,
37
- ...(asset ? [`Asset reference: ${asset.displayName || asset.id}.`] : []),
38
- ...(prefabSummary?.sourceAssetId ? [`Prefab source asset: ${prefabSummary.sourceAssetDisplayName ?? prefabSummary.sourceAssetId}.`] : []),
39
- ],
40
- bindingCandidates,
41
- sourceRefs: [
42
- {
43
- kind: 'scene-document',
44
- path: 'scene.gameObjects',
45
- label,
46
- },
47
- ],
48
- metadata: {
49
- nodeKind,
50
- ...(asset ? { assetId: asset.id, assetDisplayName: asset.displayName || asset.id } : {}),
51
- ...(prefabSummary ? { prefab: toPlayableEditorAgentJsonObject(prefabSummary) } : {}),
52
- },
53
- };
54
- }
55
- export function describePlayableEditorAgentObjectSet(document, objectIds, services) {
56
- const gameObjects = services.findGameObjects(document, objectIds);
57
- if (gameObjects.length === 0)
58
- return null;
59
- const nodeKinds = [...new Set(gameObjects.map(services.readNodeKind))];
60
- const prefabSummaries = gameObjects
61
- .map(gameObject => services.createPrefabSummary(document, gameObject.id))
62
- .filter((summary) => !!summary);
63
- return {
64
- domainKind: `${services.domainPrefix}:scene-object-set`,
65
- domainRole: 'selection',
66
- functionLabel: `${gameObjects.length} selected scene nodes`,
67
- functionDescription: `A multi-selection from the ${services.domainPrefix} scene graph.`,
68
- domainHints: [
69
- 'Consider these nodes together before proposing scene edits or domain bindings.',
70
- `Selected node kinds: ${nodeKinds.join(', ')}.`,
71
- ],
72
- relationshipHints: [{
73
- type: 'selection',
74
- description: 'The user selected these scene nodes together in the editor hierarchy.',
75
- primaryObjectId: gameObjects[0]?.id,
76
- supportingObjectIds: gameObjects.slice(1).map(gameObject => gameObject.id),
77
- }],
78
- sourceRefs: gameObjects.map(gameObject => ({
79
- kind: 'scene-document',
80
- path: 'scene.gameObjects',
81
- label: gameObject.name || gameObject.id,
82
- })),
83
- metadata: {
84
- objectCount: gameObjects.length,
85
- nodeKinds,
86
- ...(prefabSummaries.length > 0 ? { prefabs: prefabSummaries.map(toPlayableEditorAgentJsonObject) } : {}),
87
- },
88
- };
89
- }
90
- export function describePlayableEditorAgentRegionBinding(document, objectIds, services) {
91
- const gameObjects = services.findGameObjects(document, objectIds);
92
- if (gameObjects.length === 0)
93
- return null;
94
- return {
95
- domainKind: `${services.domainPrefix}:selection-region`,
96
- domainRole: 'region-binding',
97
- functionLabel: `${gameObjects.length} nodes as scene region`,
98
- functionDescription: 'The selected scene nodes are being treated as a candidate scene region.',
99
- domainHints: [
100
- 'Use the selected nodes as landmarks or bounds for reasoning about an editable scene region.',
101
- 'Prefer suggestions that preserve the selected nodes and describe their spatial relationship.',
102
- ],
103
- relationshipHints: [{
104
- type: 'selection-region',
105
- description: 'The current multi-selection defines a region relationship for Agent reasoning.',
106
- primaryObjectId: gameObjects[0]?.id,
107
- supportingObjectIds: gameObjects.slice(1).map(gameObject => gameObject.id),
108
- }],
109
- sourceRefs: gameObjects.map(gameObject => ({
110
- kind: 'scene-document',
111
- path: 'scene.gameObjects',
112
- label: gameObject.name || gameObject.id,
113
- })),
114
- metadata: {
115
- objectCount: gameObjects.length,
116
- objectIds: gameObjects.map(gameObject => gameObject.id),
117
- },
118
- };
119
- }
120
- function createPlayableEditorAgentPrefabBindingCandidates(prefabSummary) {
121
- return [
122
- {
123
- kind: 'prefab-definition',
124
- id: prefabSummary.prefabId,
125
- label: prefabSummary.prefabDisplayName ?? prefabSummary.prefabId,
126
- path: `assets.${prefabSummary.prefabId}`,
127
- },
128
- ...(prefabSummary.sourceAssetId ? [{
129
- kind: 'prefab-source-asset',
130
- id: prefabSummary.sourceAssetId,
131
- label: prefabSummary.sourceAssetDisplayName ?? prefabSummary.sourceAssetId,
132
- path: `assets.${prefabSummary.sourceAssetId}`,
133
- }] : []),
134
- ...prefabSummary.materialTargets.map(target => ({
135
- kind: 'prefab-material-override-target',
136
- id: target.slotId ?? target.ownerNodePath ?? target.bindingPath,
137
- label: target.label,
138
- path: `assets.${prefabSummary.prefabId}.${target.bindingPath}`,
139
- })),
140
- ];
141
- }
142
- function resolvePlayableEditorAgentGameplayRole(gameObject, nodeKind, services) {
143
- const projectRole = services.resolveDomainRole?.(gameObject, nodeKind);
144
- if (projectRole)
145
- return projectRole;
146
- if (gameObject.camera)
147
- return 'camera';
148
- if (gameObject.light)
149
- return 'light';
150
- if (services.hasModelRenderer(gameObject))
151
- return 'asset-instance';
152
- if (gameObject.primitive?.shape)
153
- return `primitive-${gameObject.primitive.shape}`;
154
- return nodeKind;
155
- }
156
- function toPlayableEditorAgentJsonObject(value) {
157
- return structuredClone(value);
158
- }
159
- //# sourceMappingURL=agent-descriptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-descriptions.js","sourceRoot":"","sources":["../../src/local-harness/agent-descriptions.ts"],"names":[],"mappings":"AAiDA,MAAM,UAAU,iCAAiC,CAC/C,QAAmB,EACnB,QAAgB,EAChB,QAA8E;IAE9E,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC;IAC/C,MAAM,aAAa,GAAG,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5E,MAAM,iBAAiB,GAAG;QACxB;YACE,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,KAAK;YACL,IAAI,EAAE,qBAAqB,UAAU,CAAC,EAAE,EAAE;SAC3C;QACD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACX,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE;gBACpC,IAAI,EAAE,UAAU,KAAK,CAAC,EAAE,EAAE;aAC3B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACR,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,gDAAgD,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAC;IACF,OAAO;QACL,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,kBAAkB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,IAAI,QAAQ,EAAE;QAC/G,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,sCAAsC,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACtH,aAAa,EAAE,KAAK;QACpB,mBAAmB,EAAE,aAAa;YAChC,CAAC,CAAC,GAAG,KAAK,8BAA8B,aAAa,CAAC,iBAAiB,IAAI,aAAa,CAAC,QAAQ,GAAG;YACpG,CAAC,CAAC,KAAK;gBACL,CAAC,CAAC,GAAG,KAAK,SAAS,QAAQ,2BAA2B,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,GAAG;gBACtF,CAAC,CAAC,GAAG,KAAK,SAAS,QAAQ,6CAA6C;QAC5E,WAAW,EAAE;YACX,aAAa;gBACX,CAAC,CAAC,0IAA0I;gBAC5I,CAAC,CAAC,uBAAuB,QAAQ,cAAc,QAAQ,CAAC,YAAY,iBAAiB;YACvF,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,wBAAwB,aAAa,CAAC,sBAAsB,IAAI,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1I;QACD,iBAAiB;QACjB,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,mBAAmB;gBACzB,KAAK;aACN;SACF;QACD,QAAQ,EAAE;YACR,QAAQ;YACR,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,+BAA+B,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAIlD,QAAmB,EACnB,SAA4B,EAC5B,QAA8E;IAE9E,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,WAAW;SAChC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;SACxE,MAAM,CAAC,CAAC,OAAO,EAAmD,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACnF,OAAO;QACL,UAAU,EAAE,GAAG,QAAQ,CAAC,YAAY,mBAAmB;QACvD,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,GAAG,WAAW,CAAC,MAAM,uBAAuB;QAC3D,mBAAmB,EAAE,8BAA8B,QAAQ,CAAC,YAAY,eAAe;QACvF,WAAW,EAAE;YACX,gFAAgF;YAChF,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAChD;QACD,iBAAiB,EAAE,CAAC;gBAClB,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,uEAAuE;gBACpF,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnC,mBAAmB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;aAC3E,CAAC;QACF,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE;SACxC,CAAC,CAAC;QACH,QAAQ,EAAE;YACR,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,SAAS;YACT,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzG;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC,CAItD,QAAmB,EACnB,SAA4B,EAC5B,QAA8E;IAE9E,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO;QACL,UAAU,EAAE,GAAG,QAAQ,CAAC,YAAY,mBAAmB;QACvD,UAAU,EAAE,gBAAgB;QAC5B,aAAa,EAAE,GAAG,WAAW,CAAC,MAAM,wBAAwB;QAC5D,mBAAmB,EAAE,yEAAyE;QAC9F,WAAW,EAAE;YACX,6FAA6F;YAC7F,8FAA8F;SAC/F;QACD,iBAAiB,EAAE,CAAC;gBAClB,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,gFAAgF;gBAC7F,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnC,mBAAmB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;aAC3E,CAAC;QACF,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE;SACxC,CAAC,CAAC;QACH,QAAQ,EAAE;YACR,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;SACxD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gDAAgD,CAAC,aAAmD;IAC3G,OAAO;QACL;YACE,IAAI,EAAE,mBAAmB;YACzB,EAAE,EAAE,aAAa,CAAC,QAAQ;YAC1B,KAAK,EAAE,aAAa,CAAC,iBAAiB,IAAI,aAAa,CAAC,QAAQ;YAChE,IAAI,EAAE,UAAU,aAAa,CAAC,QAAQ,EAAE;SACzC;QACD,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,EAAE,qBAAqB;gBAC3B,EAAE,EAAE,aAAa,CAAC,aAAa;gBAC/B,KAAK,EAAE,aAAa,CAAC,sBAAsB,IAAI,aAAa,CAAC,aAAa;gBAC1E,IAAI,EAAE,UAAU,aAAa,CAAC,aAAa,EAAE;aAC9C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACR,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,iCAAiC;YACvC,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,WAAW;YAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,UAAU,aAAa,CAAC,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE;SAC/D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAC7C,UAAuB,EACvB,QAAgB,EAChB,QAGC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvE,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,IAAI,UAAU,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,UAAU,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACnE,IAAI,UAAU,CAAC,SAAS,EAAE,KAAK;QAAE,OAAO,aAAa,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAClF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,+BAA+B,CAAmB,KAAQ;IACjE,OAAO,eAAe,CAAC,KAAK,CAA6C,CAAC;AAC5E,CAAC","sourcesContent":["export type PlayableEditorAgentJsonValue =\n | null\n | string\n | number\n | boolean\n | PlayableEditorAgentJsonValue[]\n | { [key: string]: PlayableEditorAgentJsonValue };\n\nexport type PlayableEditorAgentJsonObject = { [key: string]: PlayableEditorAgentJsonValue };\n\nexport interface PlayableEditorAgentGameObjectLike {\n id: string;\n name?: string;\n camera?: unknown;\n light?: unknown;\n primitive?: { shape?: string } | null;\n}\n\nexport interface PlayableEditorAgentAssetLike {\n id: string;\n displayName?: string;\n}\n\nexport interface PlayableEditorAgentPrefabMaterialTargetLike {\n slotId?: string;\n ownerNodePath?: string;\n bindingPath: string;\n label: string;\n}\n\nexport interface PlayableEditorAgentPrefabSummaryLike {\n prefabId: string;\n prefabDisplayName?: string;\n sourceAssetId?: string;\n sourceAssetDisplayName?: string;\n materialTargets: readonly PlayableEditorAgentPrefabMaterialTargetLike[];\n}\n\nexport interface PlayableEditorAgentObjectDescriptionServices<TDocument, TGameObject extends PlayableEditorAgentGameObjectLike> {\n findGameObject: (document: TDocument, objectId: string) => TGameObject | null;\n findGameObjects: (document: TDocument, objectIds: readonly string[]) => TGameObject[];\n readNodeKind: (gameObject: TGameObject) => string;\n findAsset: (document: TDocument, gameObject: TGameObject) => PlayableEditorAgentAssetLike | null;\n createPrefabSummary: (document: TDocument, gameObjectId: string) => PlayableEditorAgentPrefabSummaryLike | null;\n hasModelRenderer: (gameObject: TGameObject) => boolean;\n resolveDomainRole?: (gameObject: TGameObject, nodeKind: string) => string | null | undefined;\n domainPrefix: string;\n}\n\nexport function describePlayableEditorAgentObject<TDocument, TGameObject extends PlayableEditorAgentGameObjectLike>(\n document: TDocument,\n objectId: string,\n services: PlayableEditorAgentObjectDescriptionServices<TDocument, TGameObject>,\n) {\n const gameObject = services.findGameObject(document, objectId);\n if (!gameObject) return null;\n const nodeKind = services.readNodeKind(gameObject);\n const asset = services.findAsset(document, gameObject);\n const label = gameObject.name || gameObject.id;\n const prefabSummary = services.createPrefabSummary(document, gameObject.id);\n const bindingCandidates = [\n {\n kind: 'scene-node',\n id: gameObject.id,\n label,\n path: `scene.gameObjects.${gameObject.id}`,\n },\n ...(asset ? [{\n kind: 'scene-asset',\n id: asset.id,\n label: asset.displayName || asset.id,\n path: `assets.${asset.id}`,\n }] : []),\n ...(prefabSummary ? createPlayableEditorAgentPrefabBindingCandidates(prefabSummary) : []),\n ];\n return {\n domainKind: prefabSummary ? `${services.domainPrefix}:prefab-instance` : `${services.domainPrefix}:${nodeKind}`,\n domainRole: prefabSummary ? 'prefab-instance' : resolvePlayableEditorAgentGameplayRole(gameObject, nodeKind, services),\n functionLabel: label,\n functionDescription: prefabSummary\n ? `${label} is a prefab instance from ${prefabSummary.prefabDisplayName ?? prefabSummary.prefabId}.`\n : asset\n ? `${label} is a ${nodeKind} scene node using asset ${asset.displayName || asset.id}.`\n : `${label} is a ${nodeKind} scene node in the editable scene document.`,\n domainHints: [\n prefabSummary\n ? 'Interpret this as a prefab instance. Prefer editing prefab defaults for shared shadow/material behavior before overriding this instance.'\n : `Interpret this as a ${nodeKind} node from ${services.domainPrefix}'s scene graph.`,\n ...(asset ? [`Asset reference: ${asset.displayName || asset.id}.`] : []),\n ...(prefabSummary?.sourceAssetId ? [`Prefab source asset: ${prefabSummary.sourceAssetDisplayName ?? prefabSummary.sourceAssetId}.`] : []),\n ],\n bindingCandidates,\n sourceRefs: [\n {\n kind: 'scene-document',\n path: 'scene.gameObjects',\n label,\n },\n ],\n metadata: {\n nodeKind,\n ...(asset ? { assetId: asset.id, assetDisplayName: asset.displayName || asset.id } : {}),\n ...(prefabSummary ? { prefab: toPlayableEditorAgentJsonObject(prefabSummary) } : {}),\n },\n };\n}\n\nexport function describePlayableEditorAgentObjectSet<\n TDocument,\n TGameObject extends PlayableEditorAgentGameObjectLike,\n>(\n document: TDocument,\n objectIds: readonly string[],\n services: PlayableEditorAgentObjectDescriptionServices<TDocument, TGameObject>,\n) {\n const gameObjects = services.findGameObjects(document, objectIds);\n if (gameObjects.length === 0) return null;\n const nodeKinds = [...new Set(gameObjects.map(services.readNodeKind))];\n const prefabSummaries = gameObjects\n .map(gameObject => services.createPrefabSummary(document, gameObject.id))\n .filter((summary): summary is PlayableEditorAgentPrefabSummaryLike => !!summary);\n return {\n domainKind: `${services.domainPrefix}:scene-object-set`,\n domainRole: 'selection',\n functionLabel: `${gameObjects.length} selected scene nodes`,\n functionDescription: `A multi-selection from the ${services.domainPrefix} scene graph.`,\n domainHints: [\n 'Consider these nodes together before proposing scene edits or domain bindings.',\n `Selected node kinds: ${nodeKinds.join(', ')}.`,\n ],\n relationshipHints: [{\n type: 'selection',\n description: 'The user selected these scene nodes together in the editor hierarchy.',\n primaryObjectId: gameObjects[0]?.id,\n supportingObjectIds: gameObjects.slice(1).map(gameObject => gameObject.id),\n }],\n sourceRefs: gameObjects.map(gameObject => ({\n kind: 'scene-document',\n path: 'scene.gameObjects',\n label: gameObject.name || gameObject.id,\n })),\n metadata: {\n objectCount: gameObjects.length,\n nodeKinds,\n ...(prefabSummaries.length > 0 ? { prefabs: prefabSummaries.map(toPlayableEditorAgentJsonObject) } : {}),\n },\n };\n}\n\nexport function describePlayableEditorAgentRegionBinding<\n TDocument,\n TGameObject extends PlayableEditorAgentGameObjectLike,\n>(\n document: TDocument,\n objectIds: readonly string[],\n services: PlayableEditorAgentObjectDescriptionServices<TDocument, TGameObject>,\n) {\n const gameObjects = services.findGameObjects(document, objectIds);\n if (gameObjects.length === 0) return null;\n return {\n domainKind: `${services.domainPrefix}:selection-region`,\n domainRole: 'region-binding',\n functionLabel: `${gameObjects.length} nodes as scene region`,\n functionDescription: 'The selected scene nodes are being treated as a candidate scene region.',\n domainHints: [\n 'Use the selected nodes as landmarks or bounds for reasoning about an editable scene region.',\n 'Prefer suggestions that preserve the selected nodes and describe their spatial relationship.',\n ],\n relationshipHints: [{\n type: 'selection-region',\n description: 'The current multi-selection defines a region relationship for Agent reasoning.',\n primaryObjectId: gameObjects[0]?.id,\n supportingObjectIds: gameObjects.slice(1).map(gameObject => gameObject.id),\n }],\n sourceRefs: gameObjects.map(gameObject => ({\n kind: 'scene-document',\n path: 'scene.gameObjects',\n label: gameObject.name || gameObject.id,\n })),\n metadata: {\n objectCount: gameObjects.length,\n objectIds: gameObjects.map(gameObject => gameObject.id),\n },\n };\n}\n\nfunction createPlayableEditorAgentPrefabBindingCandidates(prefabSummary: PlayableEditorAgentPrefabSummaryLike) {\n return [\n {\n kind: 'prefab-definition',\n id: prefabSummary.prefabId,\n label: prefabSummary.prefabDisplayName ?? prefabSummary.prefabId,\n path: `assets.${prefabSummary.prefabId}`,\n },\n ...(prefabSummary.sourceAssetId ? [{\n kind: 'prefab-source-asset',\n id: prefabSummary.sourceAssetId,\n label: prefabSummary.sourceAssetDisplayName ?? prefabSummary.sourceAssetId,\n path: `assets.${prefabSummary.sourceAssetId}`,\n }] : []),\n ...prefabSummary.materialTargets.map(target => ({\n kind: 'prefab-material-override-target',\n id: target.slotId ?? target.ownerNodePath ?? target.bindingPath,\n label: target.label,\n path: `assets.${prefabSummary.prefabId}.${target.bindingPath}`,\n })),\n ];\n}\n\nfunction resolvePlayableEditorAgentGameplayRole<TGameObject extends PlayableEditorAgentGameObjectLike>(\n gameObject: TGameObject,\n nodeKind: string,\n services: Pick<\n PlayableEditorAgentObjectDescriptionServices<unknown, TGameObject>,\n 'hasModelRenderer' | 'resolveDomainRole'\n >,\n): string {\n const projectRole = services.resolveDomainRole?.(gameObject, nodeKind);\n if (projectRole) return projectRole;\n if (gameObject.camera) return 'camera';\n if (gameObject.light) return 'light';\n if (services.hasModelRenderer(gameObject)) return 'asset-instance';\n if (gameObject.primitive?.shape) return `primitive-${gameObject.primitive.shape}`;\n return nodeKind;\n}\n\nfunction toPlayableEditorAgentJsonObject<T extends object>(value: T): PlayableEditorAgentJsonObject {\n return structuredClone(value) as unknown as PlayableEditorAgentJsonObject;\n}\n"]}
@@ -1,15 +0,0 @@
1
- import type { PlayableEditorViteResolvedIntegration } from './types';
2
- export type PlayableEditorViteGitWorkspaceInfo = {
3
- root: string;
4
- repoRemote?: string;
5
- branch?: string;
6
- gitSha?: string;
7
- };
8
- export interface PlayableEditorViteAgentSessionMetadataOptions {
9
- projectRoot: string;
10
- integration: Pick<PlayableEditorViteResolvedIntegration, 'localEditorRepo' | 'editorPackageRoot' | 'buildInfo'>;
11
- readGitOutput?: (cwd: string, args: string[]) => string | null;
12
- readJsonRecord?: (filePath: string) => Record<string, unknown> | null;
13
- }
14
- export declare function createPlayableEditorViteAgentSessionMetadata(options: PlayableEditorViteAgentSessionMetadataOptions): Record<string, unknown>;
15
- //# sourceMappingURL=session-metadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-metadata.d.ts","sourceRoot":"","sources":["../../src/vite/session-metadata.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,qCAAqC,EACtC,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,6CAA6C;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,IAAI,CACf,qCAAqC,EACrC,iBAAiB,GAAG,mBAAmB,GAAG,WAAW,CACtD,CAAC;IACF,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/D,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACvE;AAED,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,6CAA6C,GACrD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB"}
@@ -1,76 +0,0 @@
1
- import { existsSync, readFileSync } from 'node:fs';
2
- import { spawnSync } from 'node:child_process';
3
- import path from 'node:path';
4
- export function createPlayableEditorViteAgentSessionMetadata(options) {
5
- const readGitOutput = options.readGitOutput ?? readPlayableEditorViteGitOutput;
6
- const readJsonRecord = options.readJsonRecord ?? readPlayableEditorViteJsonRecord;
7
- const editorGit = readPlayableEditorViteGitWorkspaceInfo(options.integration.localEditorRepo, readGitOutput);
8
- const projectGit = readPlayableEditorViteGitWorkspaceInfo(options.projectRoot, readGitOutput);
9
- const workspaceRoot = editorGit?.root ?? options.integration.localEditorRepo;
10
- const projectWorkspaceRoot = projectGit?.root ?? options.projectRoot;
11
- return {
12
- ...(workspaceRoot ? { workspaceRoot } : {}),
13
- ...(editorGit?.repoRemote ? { repoRemote: editorGit.repoRemote } : {}),
14
- ...(editorGit?.branch ? { branch: editorGit.branch } : {}),
15
- ...(editorGit?.gitSha ? { gitSha: editorGit.gitSha } : {}),
16
- projectRoot: projectWorkspaceRoot,
17
- ...(projectGit?.repoRemote ? { projectRepoRemote: projectGit.repoRemote } : {}),
18
- ...(projectGit?.branch ? { projectBranch: projectGit.branch } : {}),
19
- ...(projectGit?.gitSha ? { projectGitSha: projectGit.gitSha } : {}),
20
- editorBuildInfo: createPlayableEditorViteBuildInfoMetadata(options.integration, readJsonRecord),
21
- };
22
- }
23
- function createPlayableEditorViteBuildInfoMetadata(integration, readJsonRecord) {
24
- const packageJsonPath = path.join(integration.editorPackageRoot, 'package.json');
25
- const buildInfoPath = path.join(integration.editorPackageRoot, 'dist', 'build-info.json');
26
- const packageJson = readJsonRecord(packageJsonPath);
27
- const distBuildInfo = readJsonRecord(buildInfoPath);
28
- return {
29
- source: integration.localEditorRepo ? 'local-source' : 'bundled-package',
30
- packageJsonPath,
31
- ...(typeof packageJson?.name === 'string' ? { packageName: packageJson.name } : {}),
32
- ...(typeof packageJson?.version === 'string' ? { version: packageJson.version } : {}),
33
- ...(distBuildInfo ? { buildInfo: distBuildInfo } : {}),
34
- ...(!distBuildInfo ? { buildInfo: integration.buildInfo } : {}),
35
- };
36
- }
37
- function readPlayableEditorViteGitWorkspaceInfo(root, readGitOutput) {
38
- if (!root || !existsSync(root))
39
- return null;
40
- const workspaceRoot = readGitOutput(root, ['rev-parse', '--show-toplevel']) ?? root;
41
- const branch = readGitOutput(workspaceRoot, ['branch', '--show-current'])
42
- ?? readGitOutput(workspaceRoot, ['rev-parse', '--abbrev-ref', 'HEAD']);
43
- const repoRemote = readGitOutput(workspaceRoot, ['config', '--get', 'remote.origin.url']);
44
- const gitSha = readGitOutput(workspaceRoot, ['rev-parse', 'HEAD']);
45
- return {
46
- root: workspaceRoot,
47
- ...(repoRemote ? { repoRemote } : {}),
48
- ...(branch && branch !== 'HEAD' ? { branch } : {}),
49
- ...(gitSha ? { gitSha } : {}),
50
- };
51
- }
52
- function readPlayableEditorViteGitOutput(cwd, args) {
53
- const result = spawnSync('git', args, {
54
- cwd,
55
- encoding: 'utf8',
56
- stdio: ['ignore', 'pipe', 'ignore'],
57
- });
58
- if (result.status !== 0)
59
- return null;
60
- const value = String(result.stdout ?? '').trim();
61
- return value || null;
62
- }
63
- function readPlayableEditorViteJsonRecord(filePath) {
64
- if (!existsSync(filePath))
65
- return null;
66
- try {
67
- const value = JSON.parse(readFileSync(filePath, 'utf8') || '{}');
68
- return value && typeof value === 'object' && !Array.isArray(value)
69
- ? value
70
- : null;
71
- }
72
- catch {
73
- return null;
74
- }
75
- }
76
- //# sourceMappingURL=session-metadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-metadata.js","sourceRoot":"","sources":["../../src/vite/session-metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { spawnSync } from 'node:child_process';\nimport path from 'node:path';\nimport type {\n PlayableEditorViteResolvedIntegration,\n} from './types';\n\nexport type PlayableEditorViteGitWorkspaceInfo = {\n root: string;\n repoRemote?: string;\n branch?: string;\n gitSha?: string;\n};\n\nexport interface PlayableEditorViteAgentSessionMetadataOptions {\n projectRoot: string;\n integration: Pick<\n PlayableEditorViteResolvedIntegration,\n 'localEditorRepo' | 'editorPackageRoot' | 'buildInfo'\n >;\n readGitOutput?: (cwd: string, args: string[]) => string | null;\n readJsonRecord?: (filePath: string) => Record<string, unknown> | null;\n}\n\nexport function createPlayableEditorViteAgentSessionMetadata(\n options: PlayableEditorViteAgentSessionMetadataOptions,\n): Record<string, unknown> {\n const readGitOutput = options.readGitOutput ?? readPlayableEditorViteGitOutput;\n const readJsonRecord = options.readJsonRecord ?? readPlayableEditorViteJsonRecord;\n const editorGit = readPlayableEditorViteGitWorkspaceInfo(options.integration.localEditorRepo, readGitOutput);\n const projectGit = readPlayableEditorViteGitWorkspaceInfo(options.projectRoot, readGitOutput);\n const workspaceRoot = editorGit?.root ?? options.integration.localEditorRepo;\n const projectWorkspaceRoot = projectGit?.root ?? options.projectRoot;\n return {\n ...(workspaceRoot ? { workspaceRoot } : {}),\n ...(editorGit?.repoRemote ? { repoRemote: editorGit.repoRemote } : {}),\n ...(editorGit?.branch ? { branch: editorGit.branch } : {}),\n ...(editorGit?.gitSha ? { gitSha: editorGit.gitSha } : {}),\n projectRoot: projectWorkspaceRoot,\n ...(projectGit?.repoRemote ? { projectRepoRemote: projectGit.repoRemote } : {}),\n ...(projectGit?.branch ? { projectBranch: projectGit.branch } : {}),\n ...(projectGit?.gitSha ? { projectGitSha: projectGit.gitSha } : {}),\n editorBuildInfo: createPlayableEditorViteBuildInfoMetadata(options.integration, readJsonRecord),\n };\n}\n\nfunction createPlayableEditorViteBuildInfoMetadata(\n integration: Pick<PlayableEditorViteResolvedIntegration, 'localEditorRepo' | 'editorPackageRoot' | 'buildInfo'>,\n readJsonRecord: (filePath: string) => Record<string, unknown> | null,\n): Record<string, unknown> {\n const packageJsonPath = path.join(integration.editorPackageRoot, 'package.json');\n const buildInfoPath = path.join(integration.editorPackageRoot, 'dist', 'build-info.json');\n const packageJson = readJsonRecord(packageJsonPath);\n const distBuildInfo = readJsonRecord(buildInfoPath);\n return {\n source: integration.localEditorRepo ? 'local-source' : 'bundled-package',\n packageJsonPath,\n ...(typeof packageJson?.name === 'string' ? { packageName: packageJson.name } : {}),\n ...(typeof packageJson?.version === 'string' ? { version: packageJson.version } : {}),\n ...(distBuildInfo ? { buildInfo: distBuildInfo } : {}),\n ...(!distBuildInfo ? { buildInfo: integration.buildInfo } : {}),\n };\n}\n\nfunction readPlayableEditorViteGitWorkspaceInfo(\n root: string | null,\n readGitOutput: (cwd: string, args: string[]) => string | null,\n): PlayableEditorViteGitWorkspaceInfo | null {\n if (!root || !existsSync(root)) return null;\n const workspaceRoot = readGitOutput(root, ['rev-parse', '--show-toplevel']) ?? root;\n const branch = readGitOutput(workspaceRoot, ['branch', '--show-current'])\n ?? readGitOutput(workspaceRoot, ['rev-parse', '--abbrev-ref', 'HEAD']);\n const repoRemote = readGitOutput(workspaceRoot, ['config', '--get', 'remote.origin.url']);\n const gitSha = readGitOutput(workspaceRoot, ['rev-parse', 'HEAD']);\n return {\n root: workspaceRoot,\n ...(repoRemote ? { repoRemote } : {}),\n ...(branch && branch !== 'HEAD' ? { branch } : {}),\n ...(gitSha ? { gitSha } : {}),\n };\n}\n\nfunction readPlayableEditorViteGitOutput(cwd: string, args: string[]): string | null {\n const result = spawnSync('git', args, {\n cwd,\n encoding: 'utf8',\n stdio: ['ignore', 'pipe', 'ignore'],\n });\n if (result.status !== 0) return null;\n const value = String(result.stdout ?? '').trim();\n return value || null;\n}\n\nfunction readPlayableEditorViteJsonRecord(filePath: string): Record<string, unknown> | null {\n if (!existsSync(filePath)) return null;\n try {\n const value = JSON.parse(readFileSync(filePath, 'utf8') || '{}') as unknown;\n return value && typeof value === 'object' && !Array.isArray(value)\n ? value as Record<string, unknown>\n : null;\n } catch {\n return null;\n }\n}\n"]}