@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,129 +0,0 @@
1
- import type { EditorAgentBridge } from '@fps-games/editor-core';
2
- import type { FpsEditorLifecycleChangedEvent } from '@fps-games/editor-core/lifecycle';
3
- import type { EditorAgentBridgeCallResult, EditorAgentBridgeCapabilityId, EditorAgentBridgeCapabilityManifest, EditorAgentBridgeDiagnostic } from '@fps-games/editor-protocol';
4
- export declare const LOCAL_EDITOR_AGENT_BRIDGE_QUERY_PARAM = "fpsEditorAgentBridge";
5
- export declare const LOCAL_EDITOR_AGENT_BRIDGE_DEFAULT_URL = "ws://127.0.0.1:3777/editor-bridge";
6
- export declare const LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION: 1;
7
- export interface LocalEditorAgentBridgeSessionMetadata {
8
- label?: string;
9
- pageUrl?: string;
10
- workspaceRoot?: string;
11
- repoRemote?: string;
12
- branch?: string;
13
- gitSha?: string;
14
- projectRoot?: string;
15
- paTemplateRoot?: string;
16
- projectRepoRemote?: string;
17
- projectBranch?: string;
18
- projectGitSha?: string;
19
- editorBuildInfo?: Record<string, unknown> | null;
20
- }
21
- export type LocalEditorAgentBridgeTransportStatusKind = 'disabled' | 'connecting' | 'connected' | 'disconnected' | 'error';
22
- export interface LocalEditorAgentBridgeTransportStatus {
23
- status: LocalEditorAgentBridgeTransportStatusKind;
24
- url: string | null;
25
- sessionId: string | null;
26
- capabilityCount: number;
27
- lastChangedAt: string;
28
- connectedAt?: string;
29
- lastError?: string;
30
- }
31
- export type LocalEditorAgentBridgeTransportStatusListener = (status: LocalEditorAgentBridgeTransportStatus) => void;
32
- export interface LocalEditorAgentBridgeWebSocketLike {
33
- readonly readyState: number;
34
- send(data: string): void;
35
- close(code?: number, reason?: string): void;
36
- addEventListener(type: 'open' | 'message' | 'close' | 'error', listener: (event: unknown) => void): void;
37
- removeEventListener(type: 'open' | 'message' | 'close' | 'error', listener: (event: unknown) => void): void;
38
- }
39
- export interface LocalEditorAgentBridgeWebSocketConstructor {
40
- new (url: string): LocalEditorAgentBridgeWebSocketLike;
41
- }
42
- export interface LocalEditorAgentBridgeTransportController {
43
- readonly sessionId: string;
44
- readonly url: string;
45
- getStatus(): LocalEditorAgentBridgeTransportStatus;
46
- reportLifecycleTransition(event: FpsEditorLifecycleChangedEvent): boolean;
47
- dispose(): void;
48
- }
49
- export interface LocalEditorAgentBridgeWebSocketTransportOptions {
50
- url: string;
51
- sessionId?: string;
52
- metadata?: LocalEditorAgentBridgeSessionMetadata;
53
- WebSocketCtor?: LocalEditorAgentBridgeWebSocketConstructor | null;
54
- onStatusChange?: LocalEditorAgentBridgeTransportStatusListener;
55
- }
56
- export interface LocalEditorAgentBridgeWebSocketTransportFromQueryOptions extends Omit<LocalEditorAgentBridgeWebSocketTransportOptions, 'url'> {
57
- url?: string | null;
58
- searchParams?: URLSearchParams | null;
59
- baseUrl?: string | null;
60
- window?: (Window & typeof globalThis) | null;
61
- }
62
- export interface LocalEditorAgentBridgeSessionRegistrationMessage {
63
- type: 'session.register';
64
- protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;
65
- sessionId: string;
66
- capabilities: EditorAgentBridgeCapabilityManifest[];
67
- metadata?: LocalEditorAgentBridgeSessionMetadata;
68
- }
69
- export interface LocalEditorAgentBridgeSessionUnregisterMessage {
70
- type: 'session.unregister';
71
- protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;
72
- sessionId: string;
73
- }
74
- export interface LocalEditorAgentBridgeCapabilityResultMessage {
75
- type: 'capability.result';
76
- protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;
77
- sessionId: string;
78
- requestId: string;
79
- traceId?: string;
80
- traceStepId?: string;
81
- result: EditorAgentBridgeCallResult;
82
- }
83
- export interface LocalEditorAgentBridgeTransportErrorMessage {
84
- type: 'transport.error';
85
- protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;
86
- sessionId: string;
87
- requestId?: string;
88
- traceId?: string;
89
- traceStepId?: string;
90
- diagnostics: EditorAgentBridgeDiagnostic[];
91
- }
92
- export interface LocalEditorAgentBridgeLifecycleTransitionMessage {
93
- type: 'lifecycle.transition';
94
- protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;
95
- sessionId: string;
96
- traceId?: string;
97
- transactionId?: string;
98
- sourcePluginId?: string;
99
- transitionId: string;
100
- transitionType: FpsEditorLifecycleChangedEvent['transition']['type'];
101
- status: FpsEditorLifecycleChangedEvent['status'];
102
- lifecycle: {
103
- revision: number;
104
- transitioning: boolean;
105
- application: string;
106
- project: string;
107
- mode: string;
108
- document: string;
109
- preview: string;
110
- scopeCount: number;
111
- };
112
- errorMessage?: string;
113
- }
114
- export type LocalEditorAgentBridgeBrowserMessage = LocalEditorAgentBridgeSessionRegistrationMessage | LocalEditorAgentBridgeSessionUnregisterMessage | LocalEditorAgentBridgeCapabilityResultMessage | LocalEditorAgentBridgeLifecycleTransitionMessage | LocalEditorAgentBridgeTransportErrorMessage;
115
- export interface LocalEditorAgentBridgeCapabilityCallMessage {
116
- type: 'capability.call';
117
- protocolVersion?: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;
118
- requestId: string;
119
- capabilityId: EditorAgentBridgeCapabilityId;
120
- input?: unknown;
121
- traceId?: string;
122
- traceStepId?: string;
123
- }
124
- export type LocalEditorAgentBridgeServerMessage = LocalEditorAgentBridgeCapabilityCallMessage;
125
- export declare function createLocalEditorAgentBridgeWebSocketTransportFromQuery(bridge: EditorAgentBridge, options?: LocalEditorAgentBridgeWebSocketTransportFromQueryOptions): LocalEditorAgentBridgeTransportController | null;
126
- export declare function createLocalEditorAgentBridgeWebSocketTransport(bridge: EditorAgentBridge, options: LocalEditorAgentBridgeWebSocketTransportOptions): LocalEditorAgentBridgeTransportController | null;
127
- export declare function createDisabledLocalEditorAgentBridgeTransportStatus(): LocalEditorAgentBridgeTransportStatus;
128
- export declare function normalizeLocalEditorAgentBridgeWebSocketUrl(rawUrl: unknown, baseUrl?: string | null): string | null;
129
- //# sourceMappingURL=local-editor-agent-bridge-transport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-editor-agent-bridge-transport.d.ts","sourceRoot":"","sources":["../src/local-editor-agent-bridge-transport.ts"],"names":[],"mappings":"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"}
@@ -1,403 +0,0 @@
1
- export const LOCAL_EDITOR_AGENT_BRIDGE_QUERY_PARAM = 'fpsEditorAgentBridge';
2
- export const LOCAL_EDITOR_AGENT_BRIDGE_DEFAULT_URL = 'ws://127.0.0.1:3777/editor-bridge';
3
- export const LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION = 1;
4
- const WEB_SOCKET_OPEN = 1;
5
- const WEB_SOCKET_CLOSING = 2;
6
- export function createLocalEditorAgentBridgeWebSocketTransportFromQuery(bridge, options = {}) {
7
- const win = options.window ?? getCurrentWindow();
8
- const queryUrl = readLocalEditorAgentBridgeWebSocketQueryParam(options.searchParams ?? getSearchParams(win));
9
- const rawUrl = resolveLocalEditorAgentBridgeWebSocketConfigUrl(options.url, queryUrl);
10
- if (rawUrl == null || isLocalEditorAgentBridgeDisabledUrl(rawUrl)) {
11
- emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {
12
- status: 'disabled',
13
- url: null,
14
- sessionId: null,
15
- capabilityCount: bridge.listCapabilities().length,
16
- });
17
- return null;
18
- }
19
- const url = normalizeLocalEditorAgentBridgeWebSocketUrl(rawUrl, options.baseUrl ?? getLocationHref(win));
20
- if (!url) {
21
- emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {
22
- status: 'error',
23
- url: null,
24
- sessionId: null,
25
- capabilityCount: bridge.listCapabilities().length,
26
- lastError: 'Invalid Agent Bridge WebSocket URL.',
27
- });
28
- return null;
29
- }
30
- return createLocalEditorAgentBridgeWebSocketTransport(bridge, {
31
- ...options,
32
- url,
33
- WebSocketCtor: options.WebSocketCtor ?? getWebSocketConstructor(win),
34
- metadata: mergeLocalEditorAgentBridgeSessionMetadata(createWindowSessionMetadata(win), options.metadata),
35
- });
36
- }
37
- export function createLocalEditorAgentBridgeWebSocketTransport(bridge, options) {
38
- const url = normalizeLocalEditorAgentBridgeWebSocketUrl(options.url);
39
- const sessionId = options.sessionId?.trim() || createLocalEditorAgentBridgeSessionId();
40
- const capabilities = bridge.listCapabilities();
41
- const capabilityCount = capabilities.length;
42
- if (!url) {
43
- emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {
44
- status: 'error',
45
- url: null,
46
- sessionId,
47
- capabilityCount,
48
- lastError: 'Invalid Agent Bridge WebSocket URL.',
49
- });
50
- return null;
51
- }
52
- const WebSocketCtor = options.WebSocketCtor ?? getWebSocketConstructor(getCurrentWindow());
53
- if (!WebSocketCtor) {
54
- emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {
55
- status: 'error',
56
- url,
57
- sessionId,
58
- capabilityCount,
59
- lastError: 'WebSocket is not available in this environment.',
60
- });
61
- return null;
62
- }
63
- let socket;
64
- try {
65
- socket = new WebSocketCtor(url);
66
- }
67
- catch (error) {
68
- emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {
69
- status: 'error',
70
- url,
71
- sessionId,
72
- capabilityCount,
73
- lastError: error instanceof Error ? error.message : String(error),
74
- });
75
- return null;
76
- }
77
- let disposed = false;
78
- let disposeRequested = false;
79
- let activeCapabilityCalls = 0;
80
- let registered = false;
81
- let connectedAt;
82
- let currentStatus = createLocalEditorAgentBridgeTransportStatus({
83
- status: 'connecting',
84
- url,
85
- sessionId,
86
- capabilityCount,
87
- });
88
- const emitStatus = (status, lastError) => {
89
- if (status === 'connected' && !connectedAt)
90
- connectedAt = new Date().toISOString();
91
- currentStatus = createLocalEditorAgentBridgeTransportStatus({
92
- status,
93
- url,
94
- sessionId,
95
- capabilityCount,
96
- connectedAt,
97
- lastError: status === 'error' ? lastError : undefined,
98
- });
99
- options.onStatusChange?.({ ...currentStatus });
100
- };
101
- const sendMessage = (message) => {
102
- if (disposed || socket.readyState !== WEB_SOCKET_OPEN)
103
- return false;
104
- try {
105
- socket.send(JSON.stringify(message));
106
- return true;
107
- }
108
- catch (error) {
109
- emitStatus('error', error instanceof Error ? error.message : String(error));
110
- return false;
111
- }
112
- };
113
- const registerSession = () => {
114
- registered = sendMessage({
115
- type: 'session.register',
116
- protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,
117
- sessionId,
118
- capabilities,
119
- ...(options.metadata ? { metadata: options.metadata } : {}),
120
- });
121
- if (registered)
122
- emitStatus('connected');
123
- else
124
- emitStatus('error', 'Agent Bridge WebSocket could not register the editor session.');
125
- };
126
- const sendTransportError = (diagnostic, requestId, traceId, traceStepId) => {
127
- sendMessage({
128
- type: 'transport.error',
129
- protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,
130
- sessionId,
131
- ...(requestId ? { requestId } : {}),
132
- ...(traceId ? { traceId } : {}),
133
- ...(traceStepId ? { traceStepId } : {}),
134
- diagnostics: [diagnostic],
135
- });
136
- };
137
- const handleCapabilityCall = async (message) => {
138
- const result = await bridge.callCapability(message.capabilityId, message.input, {
139
- ...(message.traceId ? { traceId: message.traceId } : {}),
140
- ...(message.traceStepId ? { traceStepId: message.traceStepId } : {}),
141
- });
142
- sendMessage({
143
- type: 'capability.result',
144
- protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,
145
- sessionId,
146
- requestId: message.requestId,
147
- ...(message.traceId ? { traceId: message.traceId } : {}),
148
- ...(message.traceStepId ? { traceStepId: message.traceStepId } : {}),
149
- result,
150
- });
151
- };
152
- const handleMessage = (event) => {
153
- const raw = getWebSocketMessageData(event);
154
- const message = parseServerMessage(raw);
155
- if (!message) {
156
- sendTransportError({
157
- severity: 'error',
158
- source: 'transport',
159
- code: 'transport.invalidMessage',
160
- message: 'Agent Bridge WebSocket received an invalid message.',
161
- });
162
- return;
163
- }
164
- activeCapabilityCalls += 1;
165
- void handleCapabilityCall(message)
166
- .catch(error => {
167
- sendTransportError({
168
- severity: 'error',
169
- source: 'transport',
170
- code: 'transport.callFailed',
171
- message: error instanceof Error ? error.message : String(error),
172
- details: {
173
- capabilityId: message.capabilityId,
174
- },
175
- }, message.requestId, message.traceId, message.traceStepId);
176
- })
177
- .finally(() => {
178
- activeCapabilityCalls = Math.max(0, activeCapabilityCalls - 1);
179
- if (disposeRequested && activeCapabilityCalls === 0)
180
- finalizeTransportDisposal();
181
- });
182
- };
183
- const handleOpen = () => {
184
- if (!disposed)
185
- registerSession();
186
- };
187
- const handleClose = () => {
188
- registered = false;
189
- if (!disposed && currentStatus.status !== 'error')
190
- emitStatus('disconnected');
191
- };
192
- const handleError = () => {
193
- emitStatus('error', 'Agent Bridge WebSocket error.');
194
- };
195
- const finalizeTransportDisposal = () => {
196
- if (disposed)
197
- return;
198
- if (registered) {
199
- try {
200
- sendMessage({
201
- type: 'session.unregister',
202
- protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,
203
- sessionId,
204
- });
205
- }
206
- catch {
207
- // Continue releasing listeners and the socket.
208
- }
209
- }
210
- disposed = true;
211
- registered = false;
212
- socket.removeEventListener('open', handleOpen);
213
- socket.removeEventListener('message', handleMessage);
214
- socket.removeEventListener('close', handleClose);
215
- socket.removeEventListener('error', handleError);
216
- if (socket.readyState < WEB_SOCKET_CLOSING) {
217
- try {
218
- socket.close(1000, 'editor disposed');
219
- }
220
- catch {
221
- // Ignore close failures; disposal should never break the editor page.
222
- }
223
- }
224
- };
225
- const disposeTransport = () => {
226
- if (disposed || disposeRequested)
227
- return;
228
- disposeRequested = true;
229
- if (activeCapabilityCalls === 0)
230
- finalizeTransportDisposal();
231
- };
232
- try {
233
- socket.addEventListener('open', handleOpen);
234
- socket.addEventListener('message', handleMessage);
235
- socket.addEventListener('close', handleClose);
236
- socket.addEventListener('error', handleError);
237
- options.onStatusChange?.({ ...currentStatus });
238
- if (socket.readyState === WEB_SOCKET_OPEN)
239
- handleOpen();
240
- }
241
- catch (error) {
242
- disposeTransport();
243
- throw error;
244
- }
245
- return {
246
- sessionId,
247
- url,
248
- getStatus() {
249
- return { ...currentStatus };
250
- },
251
- reportLifecycleTransition(event) {
252
- const transition = event.transition;
253
- return sendMessage({
254
- type: 'lifecycle.transition',
255
- protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,
256
- sessionId,
257
- ...(transition.traceId ? { traceId: transition.traceId } : {}),
258
- ...(transition.transactionId ? { transactionId: transition.transactionId } : {}),
259
- ...(transition.sourcePluginId ? { sourcePluginId: transition.sourcePluginId } : {}),
260
- transitionId: transition.id,
261
- transitionType: transition.type,
262
- status: event.status,
263
- lifecycle: {
264
- revision: event.current.revision,
265
- transitioning: event.current.transitioning,
266
- application: event.current.application,
267
- project: event.current.project,
268
- mode: event.current.mode,
269
- document: event.current.document,
270
- preview: event.current.preview,
271
- scopeCount: event.current.scopes.length,
272
- },
273
- ...(event.status === 'failed' ? { errorMessage: event.error.message } : {}),
274
- });
275
- },
276
- dispose: disposeTransport,
277
- };
278
- }
279
- export function createDisabledLocalEditorAgentBridgeTransportStatus() {
280
- return createLocalEditorAgentBridgeTransportStatus({
281
- status: 'disabled',
282
- url: null,
283
- sessionId: null,
284
- capabilityCount: 0,
285
- });
286
- }
287
- function emitLocalEditorAgentBridgeTransportStatus(listener, input) {
288
- listener?.(createLocalEditorAgentBridgeTransportStatus(input));
289
- }
290
- function createLocalEditorAgentBridgeTransportStatus(input) {
291
- return {
292
- status: input.status,
293
- url: input.url,
294
- sessionId: input.sessionId,
295
- capabilityCount: input.capabilityCount,
296
- lastChangedAt: new Date().toISOString(),
297
- ...(input.connectedAt ? { connectedAt: input.connectedAt } : {}),
298
- ...(input.lastError ? { lastError: input.lastError } : {}),
299
- };
300
- }
301
- export function normalizeLocalEditorAgentBridgeWebSocketUrl(rawUrl, baseUrl) {
302
- if (typeof rawUrl !== 'string')
303
- return null;
304
- const trimmed = rawUrl.trim();
305
- if (!trimmed)
306
- return null;
307
- try {
308
- const url = baseUrl ? new URL(trimmed, baseUrl) : new URL(trimmed);
309
- if (url.protocol !== 'ws:' && url.protocol !== 'wss:')
310
- return null;
311
- return url.href;
312
- }
313
- catch {
314
- return null;
315
- }
316
- }
317
- function readLocalEditorAgentBridgeWebSocketQueryParam(searchParams) {
318
- return searchParams?.get(LOCAL_EDITOR_AGENT_BRIDGE_QUERY_PARAM) ?? null;
319
- }
320
- function resolveLocalEditorAgentBridgeWebSocketConfigUrl(optionUrl, queryUrl) {
321
- if (optionUrl === null)
322
- return null;
323
- if (typeof optionUrl === 'string')
324
- return optionUrl;
325
- return queryUrl ?? LOCAL_EDITOR_AGENT_BRIDGE_DEFAULT_URL;
326
- }
327
- function isLocalEditorAgentBridgeDisabledUrl(rawUrl) {
328
- const value = rawUrl.trim().toLowerCase();
329
- return value === '0' || value === 'false' || value === 'off' || value === 'disabled';
330
- }
331
- function parseServerMessage(raw) {
332
- if (typeof raw !== 'string')
333
- return null;
334
- try {
335
- const value = JSON.parse(raw);
336
- if (!value || typeof value !== 'object')
337
- return null;
338
- const record = value;
339
- if (record.type !== 'capability.call')
340
- return null;
341
- if (typeof record.requestId !== 'string' || !record.requestId.trim())
342
- return null;
343
- if (typeof record.capabilityId !== 'string' || !record.capabilityId.trim())
344
- return null;
345
- return {
346
- type: 'capability.call',
347
- protocolVersion: record.protocolVersion === LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION
348
- ? LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION
349
- : undefined,
350
- requestId: record.requestId,
351
- capabilityId: record.capabilityId,
352
- input: record.input,
353
- traceId: typeof record.traceId === 'string' && record.traceId.trim()
354
- ? record.traceId
355
- : undefined,
356
- traceStepId: typeof record.traceStepId === 'string' && record.traceStepId.trim()
357
- ? record.traceStepId
358
- : undefined,
359
- };
360
- }
361
- catch {
362
- return null;
363
- }
364
- }
365
- function getWebSocketMessageData(event) {
366
- if (!event || typeof event !== 'object')
367
- return event;
368
- return event.data;
369
- }
370
- function createLocalEditorAgentBridgeSessionId() {
371
- const random = Math.random().toString(36).slice(2, 10);
372
- return `fps-editor-${Date.now().toString(36)}-${random}`;
373
- }
374
- function createWindowSessionMetadata(win) {
375
- if (!win)
376
- return undefined;
377
- const label = typeof win.document?.title === 'string' && win.document.title.trim()
378
- ? win.document.title.trim()
379
- : undefined;
380
- const pageUrl = getLocationHref(win) ?? undefined;
381
- return label || pageUrl ? { label, pageUrl } : undefined;
382
- }
383
- function mergeLocalEditorAgentBridgeSessionMetadata(base, override) {
384
- if (!base)
385
- return override;
386
- if (!override)
387
- return base;
388
- return { ...override, ...base };
389
- }
390
- function getCurrentWindow() {
391
- return typeof window !== 'undefined' ? window : null;
392
- }
393
- function getSearchParams(win) {
394
- const search = win?.location?.search;
395
- return typeof search === 'string' ? new URLSearchParams(search) : null;
396
- }
397
- function getLocationHref(win) {
398
- return typeof win?.location?.href === 'string' ? win.location.href : null;
399
- }
400
- function getWebSocketConstructor(win) {
401
- return win?.WebSocket ?? null;
402
- }
403
- //# sourceMappingURL=local-editor-agent-bridge-transport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-editor-agent-bridge-transport.js","sourceRoot":"","sources":["../src/local-editor-agent-bridge-transport.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EditorAgentBridge } from '@fps-games/editor-core';\nimport type { FpsEditorLifecycleChangedEvent } from '@fps-games/editor-core/lifecycle';\nimport type {\n EditorAgentBridgeCallResult,\n EditorAgentBridgeCapabilityId,\n EditorAgentBridgeCapabilityManifest,\n EditorAgentBridgeDiagnostic,\n} from '@fps-games/editor-protocol';\n\nexport const LOCAL_EDITOR_AGENT_BRIDGE_QUERY_PARAM = 'fpsEditorAgentBridge';\nexport const LOCAL_EDITOR_AGENT_BRIDGE_DEFAULT_URL = 'ws://127.0.0.1:3777/editor-bridge';\nexport const LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION = 1 as const;\n\nconst WEB_SOCKET_OPEN = 1;\nconst WEB_SOCKET_CLOSING = 2;\n\nexport interface LocalEditorAgentBridgeSessionMetadata {\n label?: string;\n pageUrl?: string;\n workspaceRoot?: string;\n repoRemote?: string;\n branch?: string;\n gitSha?: string;\n projectRoot?: string;\n paTemplateRoot?: string;\n projectRepoRemote?: string;\n projectBranch?: string;\n projectGitSha?: string;\n editorBuildInfo?: Record<string, unknown> | null;\n}\n\nexport type LocalEditorAgentBridgeTransportStatusKind =\n | 'disabled'\n | 'connecting'\n | 'connected'\n | 'disconnected'\n | 'error';\n\nexport interface LocalEditorAgentBridgeTransportStatus {\n status: LocalEditorAgentBridgeTransportStatusKind;\n url: string | null;\n sessionId: string | null;\n capabilityCount: number;\n lastChangedAt: string;\n connectedAt?: string;\n lastError?: string;\n}\n\nexport type LocalEditorAgentBridgeTransportStatusListener =\n (status: LocalEditorAgentBridgeTransportStatus) => void;\n\nexport interface LocalEditorAgentBridgeWebSocketLike {\n readonly readyState: number;\n send(data: string): void;\n close(code?: number, reason?: string): void;\n addEventListener(type: 'open' | 'message' | 'close' | 'error', listener: (event: unknown) => void): void;\n removeEventListener(type: 'open' | 'message' | 'close' | 'error', listener: (event: unknown) => void): void;\n}\n\nexport interface LocalEditorAgentBridgeWebSocketConstructor {\n new(url: string): LocalEditorAgentBridgeWebSocketLike;\n}\n\nexport interface LocalEditorAgentBridgeTransportController {\n readonly sessionId: string;\n readonly url: string;\n getStatus(): LocalEditorAgentBridgeTransportStatus;\n reportLifecycleTransition(event: FpsEditorLifecycleChangedEvent): boolean;\n dispose(): void;\n}\n\nexport interface LocalEditorAgentBridgeWebSocketTransportOptions {\n url: string;\n sessionId?: string;\n metadata?: LocalEditorAgentBridgeSessionMetadata;\n WebSocketCtor?: LocalEditorAgentBridgeWebSocketConstructor | null;\n onStatusChange?: LocalEditorAgentBridgeTransportStatusListener;\n}\n\nexport interface LocalEditorAgentBridgeWebSocketTransportFromQueryOptions\n extends Omit<LocalEditorAgentBridgeWebSocketTransportOptions, 'url'> {\n url?: string | null;\n searchParams?: URLSearchParams | null;\n baseUrl?: string | null;\n window?: (Window & typeof globalThis) | null;\n}\n\nexport interface LocalEditorAgentBridgeSessionRegistrationMessage {\n type: 'session.register';\n protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;\n sessionId: string;\n capabilities: EditorAgentBridgeCapabilityManifest[];\n metadata?: LocalEditorAgentBridgeSessionMetadata;\n}\n\nexport interface LocalEditorAgentBridgeSessionUnregisterMessage {\n type: 'session.unregister';\n protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;\n sessionId: string;\n}\n\nexport interface LocalEditorAgentBridgeCapabilityResultMessage {\n type: 'capability.result';\n protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;\n sessionId: string;\n requestId: string;\n traceId?: string;\n traceStepId?: string;\n result: EditorAgentBridgeCallResult;\n}\n\nexport interface LocalEditorAgentBridgeTransportErrorMessage {\n type: 'transport.error';\n protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;\n sessionId: string;\n requestId?: string;\n traceId?: string;\n traceStepId?: string;\n diagnostics: EditorAgentBridgeDiagnostic[];\n}\n\nexport interface LocalEditorAgentBridgeLifecycleTransitionMessage {\n type: 'lifecycle.transition';\n protocolVersion: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;\n sessionId: string;\n traceId?: string;\n transactionId?: string;\n sourcePluginId?: string;\n transitionId: string;\n transitionType: FpsEditorLifecycleChangedEvent['transition']['type'];\n status: FpsEditorLifecycleChangedEvent['status'];\n lifecycle: {\n revision: number;\n transitioning: boolean;\n application: string;\n project: string;\n mode: string;\n document: string;\n preview: string;\n scopeCount: number;\n };\n errorMessage?: string;\n}\n\nexport type LocalEditorAgentBridgeBrowserMessage =\n | LocalEditorAgentBridgeSessionRegistrationMessage\n | LocalEditorAgentBridgeSessionUnregisterMessage\n | LocalEditorAgentBridgeCapabilityResultMessage\n | LocalEditorAgentBridgeLifecycleTransitionMessage\n | LocalEditorAgentBridgeTransportErrorMessage;\n\nexport interface LocalEditorAgentBridgeCapabilityCallMessage {\n type: 'capability.call';\n protocolVersion?: typeof LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION;\n requestId: string;\n capabilityId: EditorAgentBridgeCapabilityId;\n input?: unknown;\n traceId?: string;\n traceStepId?: string;\n}\n\nexport type LocalEditorAgentBridgeServerMessage = LocalEditorAgentBridgeCapabilityCallMessage;\n\nexport function createLocalEditorAgentBridgeWebSocketTransportFromQuery(\n bridge: EditorAgentBridge,\n options: LocalEditorAgentBridgeWebSocketTransportFromQueryOptions = {},\n): LocalEditorAgentBridgeTransportController | null {\n const win = options.window ?? getCurrentWindow();\n const queryUrl = readLocalEditorAgentBridgeWebSocketQueryParam(options.searchParams ?? getSearchParams(win));\n const rawUrl = resolveLocalEditorAgentBridgeWebSocketConfigUrl(options.url, queryUrl);\n if (rawUrl == null || isLocalEditorAgentBridgeDisabledUrl(rawUrl)) {\n emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {\n status: 'disabled',\n url: null,\n sessionId: null,\n capabilityCount: bridge.listCapabilities().length,\n });\n return null;\n }\n const url = normalizeLocalEditorAgentBridgeWebSocketUrl(\n rawUrl,\n options.baseUrl ?? getLocationHref(win),\n );\n if (!url) {\n emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {\n status: 'error',\n url: null,\n sessionId: null,\n capabilityCount: bridge.listCapabilities().length,\n lastError: 'Invalid Agent Bridge WebSocket URL.',\n });\n return null;\n }\n return createLocalEditorAgentBridgeWebSocketTransport(bridge, {\n ...options,\n url,\n WebSocketCtor: options.WebSocketCtor ?? getWebSocketConstructor(win),\n metadata: mergeLocalEditorAgentBridgeSessionMetadata(\n createWindowSessionMetadata(win),\n options.metadata,\n ),\n });\n}\n\nexport function createLocalEditorAgentBridgeWebSocketTransport(\n bridge: EditorAgentBridge,\n options: LocalEditorAgentBridgeWebSocketTransportOptions,\n): LocalEditorAgentBridgeTransportController | null {\n const url = normalizeLocalEditorAgentBridgeWebSocketUrl(options.url);\n const sessionId = options.sessionId?.trim() || createLocalEditorAgentBridgeSessionId();\n const capabilities = bridge.listCapabilities();\n const capabilityCount = capabilities.length;\n if (!url) {\n emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {\n status: 'error',\n url: null,\n sessionId,\n capabilityCount,\n lastError: 'Invalid Agent Bridge WebSocket URL.',\n });\n return null;\n }\n\n const WebSocketCtor = options.WebSocketCtor ?? getWebSocketConstructor(getCurrentWindow());\n if (!WebSocketCtor) {\n emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {\n status: 'error',\n url,\n sessionId,\n capabilityCount,\n lastError: 'WebSocket is not available in this environment.',\n });\n return null;\n }\n\n let socket: LocalEditorAgentBridgeWebSocketLike;\n try {\n socket = new WebSocketCtor(url);\n } catch (error) {\n emitLocalEditorAgentBridgeTransportStatus(options.onStatusChange, {\n status: 'error',\n url,\n sessionId,\n capabilityCount,\n lastError: error instanceof Error ? error.message : String(error),\n });\n return null;\n }\n let disposed = false;\n let disposeRequested = false;\n let activeCapabilityCalls = 0;\n let registered = false;\n let connectedAt: string | undefined;\n let currentStatus = createLocalEditorAgentBridgeTransportStatus({\n status: 'connecting',\n url,\n sessionId,\n capabilityCount,\n });\n\n const emitStatus = (\n status: LocalEditorAgentBridgeTransportStatusKind,\n lastError?: string,\n ): void => {\n if (status === 'connected' && !connectedAt) connectedAt = new Date().toISOString();\n currentStatus = createLocalEditorAgentBridgeTransportStatus({\n status,\n url,\n sessionId,\n capabilityCount,\n connectedAt,\n lastError: status === 'error' ? lastError : undefined,\n });\n options.onStatusChange?.({ ...currentStatus });\n };\n\n const sendMessage = (message: LocalEditorAgentBridgeBrowserMessage): boolean => {\n if (disposed || socket.readyState !== WEB_SOCKET_OPEN) return false;\n try {\n socket.send(JSON.stringify(message));\n return true;\n } catch (error) {\n emitStatus('error', error instanceof Error ? error.message : String(error));\n return false;\n }\n };\n\n const registerSession = () => {\n registered = sendMessage({\n type: 'session.register',\n protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,\n sessionId,\n capabilities,\n ...(options.metadata ? { metadata: options.metadata } : {}),\n });\n if (registered) emitStatus('connected');\n else emitStatus('error', 'Agent Bridge WebSocket could not register the editor session.');\n };\n\n const sendTransportError = (\n diagnostic: EditorAgentBridgeDiagnostic,\n requestId?: string,\n traceId?: string,\n traceStepId?: string,\n ) => {\n sendMessage({\n type: 'transport.error',\n protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,\n sessionId,\n ...(requestId ? { requestId } : {}),\n ...(traceId ? { traceId } : {}),\n ...(traceStepId ? { traceStepId } : {}),\n diagnostics: [diagnostic],\n });\n };\n\n const handleCapabilityCall = async (message: LocalEditorAgentBridgeCapabilityCallMessage) => {\n const result = await bridge.callCapability(message.capabilityId, message.input, {\n ...(message.traceId ? { traceId: message.traceId } : {}),\n ...(message.traceStepId ? { traceStepId: message.traceStepId } : {}),\n });\n sendMessage({\n type: 'capability.result',\n protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,\n sessionId,\n requestId: message.requestId,\n ...(message.traceId ? { traceId: message.traceId } : {}),\n ...(message.traceStepId ? { traceStepId: message.traceStepId } : {}),\n result,\n });\n };\n\n const handleMessage = (event: unknown) => {\n const raw = getWebSocketMessageData(event);\n const message = parseServerMessage(raw);\n if (!message) {\n sendTransportError({\n severity: 'error',\n source: 'transport',\n code: 'transport.invalidMessage',\n message: 'Agent Bridge WebSocket received an invalid message.',\n });\n return;\n }\n activeCapabilityCalls += 1;\n void handleCapabilityCall(message)\n .catch(error => {\n sendTransportError({\n severity: 'error',\n source: 'transport',\n code: 'transport.callFailed',\n message: error instanceof Error ? error.message : String(error),\n details: {\n capabilityId: message.capabilityId,\n },\n }, message.requestId, message.traceId, message.traceStepId);\n })\n .finally(() => {\n activeCapabilityCalls = Math.max(0, activeCapabilityCalls - 1);\n if (disposeRequested && activeCapabilityCalls === 0) finalizeTransportDisposal();\n });\n };\n\n const handleOpen = () => {\n if (!disposed) registerSession();\n };\n const handleClose = () => {\n registered = false;\n if (!disposed && currentStatus.status !== 'error') emitStatus('disconnected');\n };\n const handleError = () => {\n emitStatus('error', 'Agent Bridge WebSocket error.');\n };\n\n const finalizeTransportDisposal = () => {\n if (disposed) return;\n if (registered) {\n try {\n sendMessage({\n type: 'session.unregister',\n protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,\n sessionId,\n });\n } catch {\n // Continue releasing listeners and the socket.\n }\n }\n disposed = true;\n registered = false;\n socket.removeEventListener('open', handleOpen);\n socket.removeEventListener('message', handleMessage);\n socket.removeEventListener('close', handleClose);\n socket.removeEventListener('error', handleError);\n if (socket.readyState < WEB_SOCKET_CLOSING) {\n try {\n socket.close(1000, 'editor disposed');\n } catch {\n // Ignore close failures; disposal should never break the editor page.\n }\n }\n };\n const disposeTransport = () => {\n if (disposed || disposeRequested) return;\n disposeRequested = true;\n if (activeCapabilityCalls === 0) finalizeTransportDisposal();\n };\n\n try {\n socket.addEventListener('open', handleOpen);\n socket.addEventListener('message', handleMessage);\n socket.addEventListener('close', handleClose);\n socket.addEventListener('error', handleError);\n options.onStatusChange?.({ ...currentStatus });\n if (socket.readyState === WEB_SOCKET_OPEN) handleOpen();\n } catch (error) {\n disposeTransport();\n throw error;\n }\n\n return {\n sessionId,\n url,\n getStatus() {\n return { ...currentStatus };\n },\n reportLifecycleTransition(event) {\n const transition = event.transition;\n return sendMessage({\n type: 'lifecycle.transition',\n protocolVersion: LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION,\n sessionId,\n ...(transition.traceId ? { traceId: transition.traceId } : {}),\n ...(transition.transactionId ? { transactionId: transition.transactionId } : {}),\n ...(transition.sourcePluginId ? { sourcePluginId: transition.sourcePluginId } : {}),\n transitionId: transition.id,\n transitionType: transition.type,\n status: event.status,\n lifecycle: {\n revision: event.current.revision,\n transitioning: event.current.transitioning,\n application: event.current.application,\n project: event.current.project,\n mode: event.current.mode,\n document: event.current.document,\n preview: event.current.preview,\n scopeCount: event.current.scopes.length,\n },\n ...(event.status === 'failed' ? { errorMessage: event.error.message } : {}),\n });\n },\n dispose: disposeTransport,\n };\n}\n\nexport function createDisabledLocalEditorAgentBridgeTransportStatus(): LocalEditorAgentBridgeTransportStatus {\n return createLocalEditorAgentBridgeTransportStatus({\n status: 'disabled',\n url: null,\n sessionId: null,\n capabilityCount: 0,\n });\n}\n\nfunction emitLocalEditorAgentBridgeTransportStatus(\n listener: LocalEditorAgentBridgeTransportStatusListener | undefined,\n input: Omit<LocalEditorAgentBridgeTransportStatus, 'lastChangedAt'>,\n): void {\n listener?.(createLocalEditorAgentBridgeTransportStatus(input));\n}\n\nfunction createLocalEditorAgentBridgeTransportStatus(\n input: Omit<LocalEditorAgentBridgeTransportStatus, 'lastChangedAt'>,\n): LocalEditorAgentBridgeTransportStatus {\n return {\n status: input.status,\n url: input.url,\n sessionId: input.sessionId,\n capabilityCount: input.capabilityCount,\n lastChangedAt: new Date().toISOString(),\n ...(input.connectedAt ? { connectedAt: input.connectedAt } : {}),\n ...(input.lastError ? { lastError: input.lastError } : {}),\n };\n}\n\nexport function normalizeLocalEditorAgentBridgeWebSocketUrl(rawUrl: unknown, baseUrl?: string | null): string | null {\n if (typeof rawUrl !== 'string') return null;\n const trimmed = rawUrl.trim();\n if (!trimmed) return null;\n try {\n const url = baseUrl ? new URL(trimmed, baseUrl) : new URL(trimmed);\n if (url.protocol !== 'ws:' && url.protocol !== 'wss:') return null;\n return url.href;\n } catch {\n return null;\n }\n}\n\nfunction readLocalEditorAgentBridgeWebSocketQueryParam(searchParams: URLSearchParams | null): string | null {\n return searchParams?.get(LOCAL_EDITOR_AGENT_BRIDGE_QUERY_PARAM) ?? null;\n}\n\nfunction resolveLocalEditorAgentBridgeWebSocketConfigUrl(\n optionUrl: string | null | undefined,\n queryUrl: string | null,\n): string | null {\n if (optionUrl === null) return null;\n if (typeof optionUrl === 'string') return optionUrl;\n return queryUrl ?? LOCAL_EDITOR_AGENT_BRIDGE_DEFAULT_URL;\n}\n\nfunction isLocalEditorAgentBridgeDisabledUrl(rawUrl: string): boolean {\n const value = rawUrl.trim().toLowerCase();\n return value === '0' || value === 'false' || value === 'off' || value === 'disabled';\n}\n\nfunction parseServerMessage(raw: unknown): LocalEditorAgentBridgeServerMessage | null {\n if (typeof raw !== 'string') return null;\n try {\n const value = JSON.parse(raw) as unknown;\n if (!value || typeof value !== 'object') return null;\n const record = value as Record<string, unknown>;\n if (record.type !== 'capability.call') return null;\n if (typeof record.requestId !== 'string' || !record.requestId.trim()) return null;\n if (typeof record.capabilityId !== 'string' || !record.capabilityId.trim()) return null;\n return {\n type: 'capability.call',\n protocolVersion: record.protocolVersion === LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION\n ? LOCAL_EDITOR_AGENT_BRIDGE_TRANSPORT_PROTOCOL_VERSION\n : undefined,\n requestId: record.requestId,\n capabilityId: record.capabilityId as EditorAgentBridgeCapabilityId,\n input: record.input,\n traceId: typeof record.traceId === 'string' && record.traceId.trim()\n ? record.traceId\n : undefined,\n traceStepId: typeof record.traceStepId === 'string' && record.traceStepId.trim()\n ? record.traceStepId\n : undefined,\n };\n } catch {\n return null;\n }\n}\n\nfunction getWebSocketMessageData(event: unknown): unknown {\n if (!event || typeof event !== 'object') return event;\n return (event as { data?: unknown }).data;\n}\n\nfunction createLocalEditorAgentBridgeSessionId(): string {\n const random = Math.random().toString(36).slice(2, 10);\n return `fps-editor-${Date.now().toString(36)}-${random}`;\n}\n\nfunction createWindowSessionMetadata(win: Window | null): LocalEditorAgentBridgeSessionMetadata | undefined {\n if (!win) return undefined;\n const label = typeof win.document?.title === 'string' && win.document.title.trim()\n ? win.document.title.trim()\n : undefined;\n const pageUrl = getLocationHref(win) ?? undefined;\n return label || pageUrl ? { label, pageUrl } : undefined;\n}\n\nfunction mergeLocalEditorAgentBridgeSessionMetadata(\n base: LocalEditorAgentBridgeSessionMetadata | undefined,\n override: LocalEditorAgentBridgeSessionMetadata | undefined,\n): LocalEditorAgentBridgeSessionMetadata | undefined {\n if (!base) return override;\n if (!override) return base;\n return { ...override, ...base };\n}\n\nfunction getCurrentWindow(): (Window & typeof globalThis) | null {\n return typeof window !== 'undefined' ? window : null;\n}\n\nfunction getSearchParams(win: Window | null): URLSearchParams | null {\n const search = win?.location?.search;\n return typeof search === 'string' ? new URLSearchParams(search) : null;\n}\n\nfunction getLocationHref(win: Window | null): string | null {\n return typeof win?.location?.href === 'string' ? win.location.href : null;\n}\n\nfunction getWebSocketConstructor(win: Window | null): LocalEditorAgentBridgeWebSocketConstructor | null {\n return (win as unknown as { WebSocket?: LocalEditorAgentBridgeWebSocketConstructor } | null)?.WebSocket ?? null;\n}\n"]}
@@ -1,2 +0,0 @@
1
- export * from './agent-bridge/index.js';
2
- //# sourceMappingURL=local-editor-agent-bridge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-editor-agent-bridge.d.ts","sourceRoot":"","sources":["../src/local-editor-agent-bridge.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './agent-bridge/index.js';
2
- //# sourceMappingURL=local-editor-agent-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-editor-agent-bridge.js","sourceRoot":"","sources":["../src/local-editor-agent-bridge.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC","sourcesContent":["export * from './agent-bridge/index.js';\n"]}