@forgeax/view 0.5.0-dev.13604.c415409c3b9d → 0.5.0-dev.13619.c20ebf66cef4

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 (275) hide show
  1. package/README.md +50 -6
  2. package/dist/build-revision.json +1 -1
  3. package/dist/modules/backend.mjs +34 -34
  4. package/dist/modules/browser.mjs +55 -49
  5. package/dist/modules/chunks/{chunk-B6QUJ33G.mjs → chunk-25PFC2DY.mjs} +3 -3
  6. package/dist/modules/chunks/{chunk-6KM24NH6.mjs → chunk-3Y5WN22T.mjs} +3 -3
  7. package/dist/modules/chunks/chunk-3Y5WN22T.mjs.map +7 -0
  8. package/dist/modules/chunks/{chunk-D2RCKG7Q.mjs → chunk-43L37UYV.mjs} +6 -6
  9. package/dist/modules/chunks/{chunk-FNRGLCZW.mjs → chunk-4RTL3LS3.mjs} +36 -10
  10. package/dist/modules/chunks/chunk-4RTL3LS3.mjs.map +7 -0
  11. package/dist/modules/chunks/{chunk-WVU3CQ62.mjs → chunk-4ZI5DFBR.mjs} +3 -3
  12. package/dist/modules/chunks/{chunk-47RJSHLM.mjs → chunk-5HJ336VM.mjs} +3 -3
  13. package/dist/modules/chunks/{chunk-PVP5YBNR.mjs → chunk-5N5FDO5Y.mjs} +2 -2
  14. package/dist/modules/chunks/{chunk-APD2EWSZ.mjs → chunk-5PZL6W3F.mjs} +2 -2
  15. package/dist/modules/chunks/{chunk-LZ57Y73Z.mjs → chunk-5SHQXSSM.mjs} +9 -7
  16. package/dist/modules/chunks/chunk-5SHQXSSM.mjs.map +7 -0
  17. package/dist/modules/chunks/{chunk-KI4WGTWL.mjs → chunk-5WVRCLHN.mjs} +2 -2
  18. package/dist/modules/chunks/{chunk-YNHEYXDG.mjs → chunk-7MQIGD6Q.mjs} +3 -3
  19. package/dist/modules/chunks/{chunk-F5RLQAPN.mjs → chunk-7YWMB7HV.mjs} +3 -3
  20. package/dist/modules/chunks/{chunk-FICPCJKR.mjs → chunk-A22PJUZM.mjs} +3 -3
  21. package/dist/modules/chunks/{chunk-P5XMFZY4.mjs → chunk-A7HXBQUG.mjs} +2 -2
  22. package/dist/modules/chunks/{chunk-TTRUYO7Q.mjs → chunk-AOD6XLJC.mjs} +3 -3
  23. package/dist/modules/chunks/{chunk-TTRUYO7Q.mjs.map → chunk-AOD6XLJC.mjs.map} +2 -2
  24. package/dist/modules/chunks/{chunk-HRKW766Y.mjs → chunk-AZHCKPUL.mjs} +2 -2
  25. package/dist/modules/chunks/chunk-BJTFQQQR.mjs +13 -0
  26. package/dist/modules/chunks/chunk-BJTFQQQR.mjs.map +7 -0
  27. package/dist/modules/chunks/{chunk-6I7RY73G.mjs → chunk-CEB76QBE.mjs} +4 -4
  28. package/dist/modules/chunks/{chunk-VKNIYV2W.mjs → chunk-CRPXFJ6K.mjs} +202 -35
  29. package/dist/modules/chunks/chunk-CRPXFJ6K.mjs.map +7 -0
  30. package/dist/modules/chunks/{chunk-U64FRQKP.mjs → chunk-CVIF6DYH.mjs} +3 -3
  31. package/dist/modules/chunks/{chunk-DWT3TA6M.mjs → chunk-CYQ7BITZ.mjs} +9 -8
  32. package/dist/modules/chunks/chunk-CYQ7BITZ.mjs.map +7 -0
  33. package/dist/modules/chunks/{chunk-OQXDADAS.mjs → chunk-D3GX7HWI.mjs} +6 -6
  34. package/dist/modules/chunks/chunk-D3GX7HWI.mjs.map +7 -0
  35. package/dist/modules/chunks/{chunk-XQYF2P6M.mjs → chunk-D3ISMGT6.mjs} +7 -7
  36. package/dist/modules/chunks/{chunk-OKQ5RBKO.mjs → chunk-DC3PU6SO.mjs} +2 -2
  37. package/dist/modules/chunks/{chunk-4T3D67CS.mjs → chunk-DJKXBCZH.mjs} +7 -7
  38. package/dist/modules/chunks/{chunk-E3PJGTLI.mjs → chunk-DX4M6LZH.mjs} +5 -5
  39. package/dist/modules/chunks/{chunk-IZAHIOFU.mjs → chunk-EOW4JGVV.mjs} +6 -6
  40. package/dist/modules/chunks/{chunk-U5R6MVM4.mjs → chunk-EQRDY5CQ.mjs} +2 -2
  41. package/dist/modules/chunks/{chunk-7IGFAI5H.mjs → chunk-EW7VMNZA.mjs} +5 -5
  42. package/dist/modules/chunks/{chunk-FMCHH5R4.mjs → chunk-FSSKCXPL.mjs} +3 -3
  43. package/dist/modules/chunks/{chunk-357UOBAS.mjs → chunk-FSYQ3LBQ.mjs} +2 -2
  44. package/dist/modules/chunks/{chunk-D25SR5FS.mjs → chunk-FVSDKOXR.mjs} +3 -3
  45. package/dist/modules/chunks/{chunk-XMP4THLF.mjs → chunk-J7QRK3FU.mjs} +4 -4
  46. package/dist/modules/chunks/{chunk-D57DDEV2.mjs → chunk-JE4N575J.mjs} +5 -5
  47. package/dist/modules/chunks/{chunk-ZIDEETK4.mjs → chunk-JKDBKS7P.mjs} +3 -3
  48. package/dist/modules/chunks/{chunk-U5J7OTEB.mjs → chunk-K4C5WOTT.mjs} +3 -3
  49. package/dist/modules/chunks/{chunk-QUFVUMSY.mjs → chunk-KOBAWLZL.mjs} +2 -2
  50. package/dist/modules/chunks/{chunk-CX5WREJC.mjs → chunk-KY2AWNDR.mjs} +2 -2
  51. package/dist/modules/chunks/{chunk-RJVOH7G2.mjs → chunk-L24HPIQP.mjs} +27 -27
  52. package/dist/modules/chunks/{chunk-27XASYEH.mjs → chunk-LCVL3V5U.mjs} +17 -11
  53. package/dist/modules/chunks/chunk-LCVL3V5U.mjs.map +7 -0
  54. package/dist/modules/chunks/{chunk-PJFFCRRD.mjs → chunk-LOVO3P2Q.mjs} +2 -2
  55. package/dist/modules/chunks/{chunk-X4NNZ5X6.mjs → chunk-M66NDY35.mjs} +3 -3
  56. package/dist/modules/chunks/{chunk-EZSGDSCC.mjs → chunk-M7XSCLYV.mjs} +18 -4
  57. package/dist/modules/chunks/chunk-M7XSCLYV.mjs.map +7 -0
  58. package/dist/modules/chunks/{chunk-YLCJNKIW.mjs → chunk-MFEFV3YF.mjs} +70 -30
  59. package/dist/modules/chunks/chunk-MFEFV3YF.mjs.map +7 -0
  60. package/dist/modules/chunks/{chunk-55F55BQY.mjs → chunk-MUBV2LNK.mjs} +3 -3
  61. package/dist/modules/chunks/{chunk-M6S5YA6X.mjs → chunk-NHNPQ3ZS.mjs} +3 -3
  62. package/dist/modules/chunks/{chunk-STQPRNEO.mjs → chunk-NSPN5OQ5.mjs} +2 -2
  63. package/dist/modules/chunks/{chunk-XE6ITXHT.mjs → chunk-NZ4N7AVG.mjs} +2 -2
  64. package/dist/modules/chunks/{chunk-KAGFU64Y.mjs → chunk-OGFZB75B.mjs} +2 -2
  65. package/dist/modules/chunks/{chunk-EWSCJF77.mjs → chunk-OS7BK3FO.mjs} +2 -2
  66. package/dist/modules/chunks/{chunk-HWZCLROY.mjs → chunk-P27F2TZN.mjs} +248 -42
  67. package/dist/modules/chunks/chunk-P27F2TZN.mjs.map +7 -0
  68. package/dist/modules/chunks/{chunk-5W7SC5D4.mjs → chunk-P2Y73QJJ.mjs} +11 -1
  69. package/dist/modules/chunks/{chunk-5W7SC5D4.mjs.map → chunk-P2Y73QJJ.mjs.map} +2 -2
  70. package/dist/modules/chunks/{chunk-U6UMATPV.mjs → chunk-P3ZW2T37.mjs} +3 -3
  71. package/dist/modules/chunks/{chunk-INTTYJVW.mjs → chunk-PHCUCHVL.mjs} +2 -2
  72. package/dist/modules/chunks/{chunk-JK7K7RG3.mjs → chunk-QNJL265P.mjs} +4 -4
  73. package/dist/modules/chunks/{chunk-ZGOGO7SS.mjs → chunk-QNSUBUZF.mjs} +1 -1
  74. package/dist/modules/chunks/{chunk-5YTMN435.mjs → chunk-QNUBIFAY.mjs} +13 -3
  75. package/dist/modules/chunks/chunk-QNUBIFAY.mjs.map +7 -0
  76. package/dist/modules/chunks/{chunk-TXLD7JI5.mjs → chunk-QQP7ZGQD.mjs} +2 -2
  77. package/dist/modules/chunks/{chunk-E3Z7GLFU.mjs → chunk-QYJZ3SOV.mjs} +12 -1
  78. package/dist/modules/chunks/chunk-QYJZ3SOV.mjs.map +7 -0
  79. package/dist/modules/chunks/{chunk-PZIAKZJC.mjs → chunk-R6MT6F3T.mjs} +3 -3
  80. package/dist/modules/chunks/{chunk-P4UPH74B.mjs → chunk-RGM4S2BE.mjs} +3 -3
  81. package/dist/modules/chunks/{chunk-AGVLPYVE.mjs → chunk-SKZC6VTV.mjs} +2 -2
  82. package/dist/modules/chunks/{chunk-4D3Q7K44.mjs → chunk-SSVRSFTX.mjs} +2 -2
  83. package/dist/modules/chunks/{chunk-2Z5KEV6L.mjs → chunk-TFBSEYKW.mjs} +3 -3
  84. package/dist/modules/chunks/{chunk-K2QZRFLE.mjs → chunk-TPLT4PBX.mjs} +4 -4
  85. package/dist/modules/chunks/{chunk-5PHAXNFO.mjs → chunk-U5LBMAG3.mjs} +3 -3
  86. package/dist/modules/chunks/{chunk-46UEGAXY.mjs → chunk-V4SOFUJI.mjs} +6 -6
  87. package/dist/modules/chunks/{chunk-IJPWKKIU.mjs → chunk-VD3C4DYT.mjs} +14 -13
  88. package/dist/modules/chunks/chunk-VD3C4DYT.mjs.map +7 -0
  89. package/dist/modules/chunks/{chunk-YFQGSDK3.mjs → chunk-VD4QU7KY.mjs} +2 -2
  90. package/dist/modules/chunks/{chunk-KX2WU5Z6.mjs → chunk-WC6NGMGI.mjs} +3 -3
  91. package/dist/modules/chunks/{chunk-H256DQT6.mjs → chunk-XOZ5EMNY.mjs} +2 -2
  92. package/dist/modules/chunks/{chunk-ZHO2G4JR.mjs → chunk-XXJ32F5P.mjs} +3 -3
  93. package/dist/modules/chunks/{chunk-VW2ZF3P4.mjs → chunk-Y4SFATAM.mjs} +6 -6
  94. package/dist/modules/chunks/{chunk-SRYQLFBV.mjs → chunk-ZKFH7EMU.mjs} +2 -2
  95. package/dist/modules/chunks/{chunk-CKYXAT7H.mjs → chunk-ZRG7LDCA.mjs} +2 -2
  96. package/dist/modules/chunks/{chunk-PW5CE2Y6.mjs → chunk-ZW7LLDOL.mjs} +2 -2
  97. package/dist/modules/cli-contributions.mjs +14 -14
  98. package/dist/modules/cli.mjs +5 -5
  99. package/dist/modules/command-executor.mjs +3 -3
  100. package/dist/modules/embedded.mjs +82 -42
  101. package/dist/modules/embedded.mjs.map +2 -2
  102. package/dist/modules/extension-bridge.mjs +4 -4
  103. package/dist/modules/frontend-root.mjs +46 -46
  104. package/dist/modules/index.mjs +71 -65
  105. package/dist/modules/index.mjs.map +1 -1
  106. package/dist/modules/pages/scene.mjs +5 -5
  107. package/dist/modules/plugin.mjs +35 -35
  108. package/dist/modules/plugins/asset/frontend.mjs +10 -10
  109. package/dist/modules/plugins/asset/identity.mjs +9 -9
  110. package/dist/modules/plugins/asset/ui.mjs +3 -3
  111. package/dist/modules/plugins/content-browser/frontend.mjs +3 -3
  112. package/dist/modules/plugins/content-browser/identity.mjs +2 -2
  113. package/dist/modules/plugins/content-browser/ui.mjs +3 -3
  114. package/dist/modules/plugins/display/api.mjs +1 -1
  115. package/dist/modules/plugins/display/backend.mjs +4 -4
  116. package/dist/modules/plugins/display/frontend.mjs +5 -5
  117. package/dist/modules/plugins/display/identity.mjs +2 -2
  118. package/dist/modules/plugins/display/ui.mjs +3 -3
  119. package/dist/modules/plugins/inspector/frontend.mjs +3 -3
  120. package/dist/modules/plugins/inspector/identity.mjs +2 -2
  121. package/dist/modules/plugins/inspector/ui.mjs +3 -3
  122. package/dist/modules/plugins/material/frontend.mjs +10 -10
  123. package/dist/modules/plugins/material/identity.mjs +9 -9
  124. package/dist/modules/plugins/material/ui.mjs +10 -10
  125. package/dist/modules/plugins/mesh/frontend.mjs +10 -10
  126. package/dist/modules/plugins/mesh/identity.mjs +9 -9
  127. package/dist/modules/plugins/mesh/ui.mjs +10 -10
  128. package/dist/modules/plugins/plugins/api.mjs +4 -4
  129. package/dist/modules/plugins/plugins/backend.mjs +7 -7
  130. package/dist/modules/plugins/plugins/cli.mjs +5 -5
  131. package/dist/modules/plugins/plugins/frontend.mjs +3 -3
  132. package/dist/modules/plugins/plugins/identity.mjs +2 -2
  133. package/dist/modules/plugins/plugins/runtime.mjs +6 -6
  134. package/dist/modules/plugins/plugins/ui/panel.mjs +3 -3
  135. package/dist/modules/plugins/plugins/ui.mjs +4 -4
  136. package/dist/modules/plugins/scene/frontend.mjs +5 -5
  137. package/dist/modules/plugins/scene/identity.mjs +2 -2
  138. package/dist/modules/plugins/scene-tree/frontend.mjs +3 -3
  139. package/dist/modules/plugins/scene-tree/identity.mjs +2 -2
  140. package/dist/modules/plugins/scene-tree/ui.mjs +3 -3
  141. package/dist/modules/plugins/texture/frontend.mjs +10 -10
  142. package/dist/modules/plugins/texture/identity.mjs +9 -9
  143. package/dist/modules/plugins/texture/ui.mjs +10 -10
  144. package/dist/modules/plugins/viewport/frontend.mjs +12 -12
  145. package/dist/modules/plugins/viewport/identity.mjs +2 -2
  146. package/dist/modules/plugins/viewport/presentation.mjs +4 -4
  147. package/dist/modules/plugins/viewport/schema.mjs +2 -2
  148. package/dist/modules/plugins/viewport/workspace-shell.mjs +9 -9
  149. package/dist/modules/product.mjs +35 -35
  150. package/dist/modules/shell/frontend.mjs +1 -1
  151. package/dist/modules/viewer/catalog/backend.mjs +31 -31
  152. package/dist/modules/viewer/catalog/frontend.mjs +42 -42
  153. package/dist/modules/viewer/catalog/shared.mjs +20 -20
  154. package/dist/modules/viewer/catalog.mjs +51 -51
  155. package/dist/modules/viewer/cli.mjs +10 -10
  156. package/dist/modules/viewer-host/frontend.mjs +48 -48
  157. package/dist/modules/viewer-host/page-registry.mjs +6 -6
  158. package/dist/modules/viewer-host.mjs +7 -7
  159. package/dist/modules/viewer.mjs +51 -51
  160. package/dist/modules/workspace/api.mjs +1 -1
  161. package/dist/modules/workspace/backend.mjs +10 -10
  162. package/dist/modules/workspace/broker.mjs +9 -9
  163. package/dist/modules/workspace/cli.mjs +2 -2
  164. package/dist/modules/workspace/client.mjs +3 -3
  165. package/dist/modules/workspace/command-error.mjs +2 -2
  166. package/dist/modules/workspace/contract.mjs +7 -1
  167. package/dist/modules/workspace/engine-adapter.mjs +3 -3
  168. package/dist/modules/workspace/extension-bridge.mjs +4 -4
  169. package/dist/modules/workspace/frontend-plugin.mjs +8 -8
  170. package/dist/modules/workspace/frontend.mjs +9 -9
  171. package/dist/modules/workspace/page-title.mjs +3 -3
  172. package/dist/modules/workspace/presentation.mjs +4 -4
  173. package/dist/modules/workspace/preview-surface.mjs +7 -7
  174. package/dist/modules/workspace/project-session.mjs +2 -2
  175. package/dist/modules/workspace/render-resize-sync.mjs +2 -2
  176. package/dist/modules/workspace/resident.mjs +4 -4
  177. package/dist/modules/workspace/resource-open.mjs +5 -5
  178. package/dist/modules/workspace/resource-page.mjs +8 -8
  179. package/dist/modules/workspace/tool-runtime.mjs +7 -5
  180. package/dist/modules/workspace/view-trace.mjs +3 -3
  181. package/dist/modules/workspace/workspace-recovery.mjs +4 -4
  182. package/dist/modules/workspace/workspace-state.mjs +2 -2
  183. package/dist/modules/workspace-frontend.mjs +8 -8
  184. package/dist/viewer/assets/{embedded-DXSSFAyM.js → embedded-BZSPh0if.js} +2 -2
  185. package/dist/viewer/assets/{embedded-DXSSFAyM.js.map → embedded-BZSPh0if.js.map} +1 -1
  186. package/dist/viewer/assets/main-CmJEE-8D.js +22 -0
  187. package/dist/viewer/assets/main-CmJEE-8D.js.map +1 -0
  188. package/dist/viewer/assets/panels-ui-Cm3As_jE.js +12 -0
  189. package/dist/viewer/assets/panels-ui-Cm3As_jE.js.map +1 -0
  190. package/dist/viewer/assets/style-CcYzhsIZ.css +2 -0
  191. package/dist/viewer/index.html +3 -3
  192. package/dist/viewer/panels.js +1 -1
  193. package/package.json +2 -2
  194. package/scripts/verify-runtime-content-engine.mjs +7 -4
  195. package/skills/forgeax-view-cli/SKILL.md +4 -0
  196. package/dist/modules/chunks/chunk-27XASYEH.mjs.map +0 -7
  197. package/dist/modules/chunks/chunk-5YTMN435.mjs.map +0 -7
  198. package/dist/modules/chunks/chunk-6KM24NH6.mjs.map +0 -7
  199. package/dist/modules/chunks/chunk-DWT3TA6M.mjs.map +0 -7
  200. package/dist/modules/chunks/chunk-E3Z7GLFU.mjs.map +0 -7
  201. package/dist/modules/chunks/chunk-EZSGDSCC.mjs.map +0 -7
  202. package/dist/modules/chunks/chunk-FNRGLCZW.mjs.map +0 -7
  203. package/dist/modules/chunks/chunk-HWZCLROY.mjs.map +0 -7
  204. package/dist/modules/chunks/chunk-IJPWKKIU.mjs.map +0 -7
  205. package/dist/modules/chunks/chunk-LZ57Y73Z.mjs.map +0 -7
  206. package/dist/modules/chunks/chunk-OQXDADAS.mjs.map +0 -7
  207. package/dist/modules/chunks/chunk-QELNKFSI.mjs +0 -10
  208. package/dist/modules/chunks/chunk-QELNKFSI.mjs.map +0 -7
  209. package/dist/modules/chunks/chunk-VKNIYV2W.mjs.map +0 -7
  210. package/dist/modules/chunks/chunk-YLCJNKIW.mjs.map +0 -7
  211. package/dist/viewer/assets/main-CI6ZQziX.js +0 -22
  212. package/dist/viewer/assets/main-CI6ZQziX.js.map +0 -1
  213. package/dist/viewer/assets/panels-ui-CfUtl68h.js +0 -12
  214. package/dist/viewer/assets/panels-ui-CfUtl68h.js.map +0 -1
  215. package/dist/viewer/assets/style-gOtSMZif.css +0 -2
  216. /package/dist/modules/chunks/{chunk-B6QUJ33G.mjs.map → chunk-25PFC2DY.mjs.map} +0 -0
  217. /package/dist/modules/chunks/{chunk-D2RCKG7Q.mjs.map → chunk-43L37UYV.mjs.map} +0 -0
  218. /package/dist/modules/chunks/{chunk-WVU3CQ62.mjs.map → chunk-4ZI5DFBR.mjs.map} +0 -0
  219. /package/dist/modules/chunks/{chunk-47RJSHLM.mjs.map → chunk-5HJ336VM.mjs.map} +0 -0
  220. /package/dist/modules/chunks/{chunk-PVP5YBNR.mjs.map → chunk-5N5FDO5Y.mjs.map} +0 -0
  221. /package/dist/modules/chunks/{chunk-APD2EWSZ.mjs.map → chunk-5PZL6W3F.mjs.map} +0 -0
  222. /package/dist/modules/chunks/{chunk-KI4WGTWL.mjs.map → chunk-5WVRCLHN.mjs.map} +0 -0
  223. /package/dist/modules/chunks/{chunk-YNHEYXDG.mjs.map → chunk-7MQIGD6Q.mjs.map} +0 -0
  224. /package/dist/modules/chunks/{chunk-F5RLQAPN.mjs.map → chunk-7YWMB7HV.mjs.map} +0 -0
  225. /package/dist/modules/chunks/{chunk-FICPCJKR.mjs.map → chunk-A22PJUZM.mjs.map} +0 -0
  226. /package/dist/modules/chunks/{chunk-P5XMFZY4.mjs.map → chunk-A7HXBQUG.mjs.map} +0 -0
  227. /package/dist/modules/chunks/{chunk-HRKW766Y.mjs.map → chunk-AZHCKPUL.mjs.map} +0 -0
  228. /package/dist/modules/chunks/{chunk-6I7RY73G.mjs.map → chunk-CEB76QBE.mjs.map} +0 -0
  229. /package/dist/modules/chunks/{chunk-U64FRQKP.mjs.map → chunk-CVIF6DYH.mjs.map} +0 -0
  230. /package/dist/modules/chunks/{chunk-XQYF2P6M.mjs.map → chunk-D3ISMGT6.mjs.map} +0 -0
  231. /package/dist/modules/chunks/{chunk-OKQ5RBKO.mjs.map → chunk-DC3PU6SO.mjs.map} +0 -0
  232. /package/dist/modules/chunks/{chunk-4T3D67CS.mjs.map → chunk-DJKXBCZH.mjs.map} +0 -0
  233. /package/dist/modules/chunks/{chunk-E3PJGTLI.mjs.map → chunk-DX4M6LZH.mjs.map} +0 -0
  234. /package/dist/modules/chunks/{chunk-IZAHIOFU.mjs.map → chunk-EOW4JGVV.mjs.map} +0 -0
  235. /package/dist/modules/chunks/{chunk-U5R6MVM4.mjs.map → chunk-EQRDY5CQ.mjs.map} +0 -0
  236. /package/dist/modules/chunks/{chunk-7IGFAI5H.mjs.map → chunk-EW7VMNZA.mjs.map} +0 -0
  237. /package/dist/modules/chunks/{chunk-FMCHH5R4.mjs.map → chunk-FSSKCXPL.mjs.map} +0 -0
  238. /package/dist/modules/chunks/{chunk-357UOBAS.mjs.map → chunk-FSYQ3LBQ.mjs.map} +0 -0
  239. /package/dist/modules/chunks/{chunk-D25SR5FS.mjs.map → chunk-FVSDKOXR.mjs.map} +0 -0
  240. /package/dist/modules/chunks/{chunk-XMP4THLF.mjs.map → chunk-J7QRK3FU.mjs.map} +0 -0
  241. /package/dist/modules/chunks/{chunk-D57DDEV2.mjs.map → chunk-JE4N575J.mjs.map} +0 -0
  242. /package/dist/modules/chunks/{chunk-ZIDEETK4.mjs.map → chunk-JKDBKS7P.mjs.map} +0 -0
  243. /package/dist/modules/chunks/{chunk-U5J7OTEB.mjs.map → chunk-K4C5WOTT.mjs.map} +0 -0
  244. /package/dist/modules/chunks/{chunk-QUFVUMSY.mjs.map → chunk-KOBAWLZL.mjs.map} +0 -0
  245. /package/dist/modules/chunks/{chunk-CX5WREJC.mjs.map → chunk-KY2AWNDR.mjs.map} +0 -0
  246. /package/dist/modules/chunks/{chunk-RJVOH7G2.mjs.map → chunk-L24HPIQP.mjs.map} +0 -0
  247. /package/dist/modules/chunks/{chunk-PJFFCRRD.mjs.map → chunk-LOVO3P2Q.mjs.map} +0 -0
  248. /package/dist/modules/chunks/{chunk-X4NNZ5X6.mjs.map → chunk-M66NDY35.mjs.map} +0 -0
  249. /package/dist/modules/chunks/{chunk-55F55BQY.mjs.map → chunk-MUBV2LNK.mjs.map} +0 -0
  250. /package/dist/modules/chunks/{chunk-M6S5YA6X.mjs.map → chunk-NHNPQ3ZS.mjs.map} +0 -0
  251. /package/dist/modules/chunks/{chunk-STQPRNEO.mjs.map → chunk-NSPN5OQ5.mjs.map} +0 -0
  252. /package/dist/modules/chunks/{chunk-XE6ITXHT.mjs.map → chunk-NZ4N7AVG.mjs.map} +0 -0
  253. /package/dist/modules/chunks/{chunk-KAGFU64Y.mjs.map → chunk-OGFZB75B.mjs.map} +0 -0
  254. /package/dist/modules/chunks/{chunk-EWSCJF77.mjs.map → chunk-OS7BK3FO.mjs.map} +0 -0
  255. /package/dist/modules/chunks/{chunk-U6UMATPV.mjs.map → chunk-P3ZW2T37.mjs.map} +0 -0
  256. /package/dist/modules/chunks/{chunk-INTTYJVW.mjs.map → chunk-PHCUCHVL.mjs.map} +0 -0
  257. /package/dist/modules/chunks/{chunk-JK7K7RG3.mjs.map → chunk-QNJL265P.mjs.map} +0 -0
  258. /package/dist/modules/chunks/{chunk-ZGOGO7SS.mjs.map → chunk-QNSUBUZF.mjs.map} +0 -0
  259. /package/dist/modules/chunks/{chunk-TXLD7JI5.mjs.map → chunk-QQP7ZGQD.mjs.map} +0 -0
  260. /package/dist/modules/chunks/{chunk-PZIAKZJC.mjs.map → chunk-R6MT6F3T.mjs.map} +0 -0
  261. /package/dist/modules/chunks/{chunk-P4UPH74B.mjs.map → chunk-RGM4S2BE.mjs.map} +0 -0
  262. /package/dist/modules/chunks/{chunk-AGVLPYVE.mjs.map → chunk-SKZC6VTV.mjs.map} +0 -0
  263. /package/dist/modules/chunks/{chunk-4D3Q7K44.mjs.map → chunk-SSVRSFTX.mjs.map} +0 -0
  264. /package/dist/modules/chunks/{chunk-2Z5KEV6L.mjs.map → chunk-TFBSEYKW.mjs.map} +0 -0
  265. /package/dist/modules/chunks/{chunk-K2QZRFLE.mjs.map → chunk-TPLT4PBX.mjs.map} +0 -0
  266. /package/dist/modules/chunks/{chunk-5PHAXNFO.mjs.map → chunk-U5LBMAG3.mjs.map} +0 -0
  267. /package/dist/modules/chunks/{chunk-46UEGAXY.mjs.map → chunk-V4SOFUJI.mjs.map} +0 -0
  268. /package/dist/modules/chunks/{chunk-YFQGSDK3.mjs.map → chunk-VD4QU7KY.mjs.map} +0 -0
  269. /package/dist/modules/chunks/{chunk-KX2WU5Z6.mjs.map → chunk-WC6NGMGI.mjs.map} +0 -0
  270. /package/dist/modules/chunks/{chunk-H256DQT6.mjs.map → chunk-XOZ5EMNY.mjs.map} +0 -0
  271. /package/dist/modules/chunks/{chunk-ZHO2G4JR.mjs.map → chunk-XXJ32F5P.mjs.map} +0 -0
  272. /package/dist/modules/chunks/{chunk-VW2ZF3P4.mjs.map → chunk-Y4SFATAM.mjs.map} +0 -0
  273. /package/dist/modules/chunks/{chunk-SRYQLFBV.mjs.map → chunk-ZKFH7EMU.mjs.map} +0 -0
  274. /package/dist/modules/chunks/{chunk-CKYXAT7H.mjs.map → chunk-ZRG7LDCA.mjs.map} +0 -0
  275. /package/dist/modules/chunks/{chunk-PW5CE2Y6.mjs.map → chunk-ZW7LLDOL.mjs.map} +0 -0
package/README.md CHANGED
@@ -276,10 +276,51 @@ loop and retains the World, tools and renderer; explicit hidden capture still
276
276
  uses that same App. Revealing the page restores layout and rendering. Independent
277
277
  game and Play execution keep their own lifetimes and are not paused by View.
278
278
 
279
- The Content Browser presents the Engine catalog; selection inspects read-only
280
- asset metadata and double-click opens the exact Engine preview. Assets from
279
+ The Content Browser joins the Engine catalog with Pack's bounded source index.
280
+ `workspace.summary` is the bounded workspace query for external status readers:
281
+ it exposes project identity, phase, browser generation, revision and at most 16
282
+ target identities, with a `hasMoreTargets` flag. It does not serialize catalog
283
+ assets, resource opens or page selection. The full `tabs.get` snapshot remains
284
+ the View UI state contract.
285
+ `pages.list` separately returns at most 16 connected page IDs with their bounded
286
+ workspace summaries. `pack.reveal` is a public workspace operation: the same
287
+ project/source revision and optional page ID can be submitted through the API,
288
+ `forgeax view workspace call`, or another client adapter. Its result is a
289
+ visible-page receipt or an explicit non-action failure; no adapter owns reveal.
290
+ Zero-output and malformed Pack sources remain file cards with diagnostics, and
291
+ one-output Packs retain their source parent. Activating a Pack only expands it;
292
+ selecting a specific output opens the existing Engine preview route. Assets from
281
293
  `.pack.ts` show their Catalog `sourceKey` when present; GUIDs remain their
282
- operation identity. Hierarchy and Inspector use the optional live target tools
294
+ operation identity. A page-scoped Pack reveal checks project/source revision,
295
+ targets one authenticated frontend connection, and accepts `shown` only after
296
+ the Editor, Content Browser Dock panel and Pack card are visible. Workspace
297
+ selection/open requests and Display run binding belong to that frontend
298
+ connection; disconnect retires its projection and pending reveal.
299
+ Reveal temporarily admits only the addressed Pack through the current filters.
300
+ Search and filter preferences stay intact; manual navigation cancels the focus.
301
+ Request cancellation and timeout retire the pending receipt and notify the exact
302
+ frontend to stop remaining asynchronous navigation. A late visible acknowledgment
303
+ cannot complete a cancelled request; an old cancellation cannot cancel a newer reveal.
304
+ The entry URL uses `view-frontend`; after a project opens, the full View shell
305
+ uses the exact `forgeax-workspace:<sessionId>:<targetId>` caller of the current
306
+ headed project target. Both are page sessions, while other Engine target callers
307
+ cannot claim the View page. Each fresh entry document opens its own Engine
308
+ session from the confirmed project intent; it does not copy another document's
309
+ headed target URL. Each target still owns one accepted browser caller. Refresh
310
+ retains that target and replaces only its browser generation. View selection,
311
+ resource opens and Display bindings belong to the exact frontend connection.
312
+ The Pack receipt rechecks the source revision and project at acknowledgment.
313
+
314
+ > [!NOTE]
315
+ > A page-less CLI client can still use page operations such as `tabs.get`,
316
+ > `scene.select`, and `asset.open` when exactly one View frontend is connected;
317
+ > the Broker directs those calls to that page's session. With multiple pages,
318
+ > these operations return `view-page-ambiguous` before changing page or Engine
319
+ > state. `workspace.summary` and Engine project facts remain shared reads.
320
+ > Use `pages.list` to choose an exact page, then `pack.reveal` to direct a
321
+ > revision-bound Pack navigation. Both operations have CLI entry points.
322
+
323
+ Hierarchy and Inspector use the optional live target tools
283
324
  plugin, reporting capability errors when absent. `dev:ui` starts a private
284
325
  fixture Host and serves the same Viewer code path as `dev`. Its catalog and
285
326
  scene responses arrive through the Host workspace API. Use
@@ -700,11 +741,14 @@ const api = await connectViewWorkspace({
700
741
  const tabId = 'forgeax-user-workspace';
701
742
  const state = await api.openProject(projectRoot, { tabId });
702
743
  const projectId = state.project.id;
703
- const { assets } = await api.listAssets(projectId, { tabId });
744
+ const targetId = state.projectTarget.targetId;
745
+ const targetGeneration = state.projectTarget.generation;
746
+ const target = { projectId, tabId, targetId, targetGeneration };
747
+ const { assets } = await api.listAssets(projectId, target);
704
748
  const scene = assets.find((asset) => asset.kind === 'scene');
705
749
  if (scene) {
706
- await api.inspectAsset(scene.guid, { projectId, tabId });
707
- await api.openAsset(scene.guid, { projectId, tabId });
750
+ await api.inspectAsset(scene.guid, target);
751
+ await api.openAsset(scene.guid, target);
708
752
  }
709
753
  ```
710
754
 
@@ -1 +1 @@
1
- {"codeRevision":"1803fe06a4440233ec0495ef340afc9f8b0e350ce211dd66b15412f48dfecad1","viewerDigest":"20561802de9394166c9b84b8d6909d09e6c4940e20735f0f12f854374a228d9a"}
1
+ {"codeRevision":"f22cccc5b7694100d44cd8f254c5ee6a82560a18160029a3e63563983d3a1387","viewerDigest":"3e40dd7f75d36cdaa4e47d1e731a1301411efabfa235ae5ca0446261daea1892"}
@@ -2,45 +2,45 @@ import {
2
2
  createViewBackend,
3
3
  createViewHostBinding,
4
4
  createViewPlatformBinding
5
- } from "./chunks/chunk-LZ57Y73Z.mjs";
6
- import "./chunks/chunk-XQYF2P6M.mjs";
7
- import "./chunks/chunk-YLCJNKIW.mjs";
5
+ } from "./chunks/chunk-5SHQXSSM.mjs";
6
+ import "./chunks/chunk-D3ISMGT6.mjs";
7
+ import "./chunks/chunk-MFEFV3YF.mjs";
8
8
  import "./chunks/chunk-GQANC3HH.mjs";
9
9
  import "./chunks/chunk-YY4G5LVX.mjs";
10
- import "./chunks/chunk-6KM24NH6.mjs";
11
- import "./chunks/chunk-27XASYEH.mjs";
12
- import "./chunks/chunk-HWZCLROY.mjs";
13
- import "./chunks/chunk-55F55BQY.mjs";
14
- import "./chunks/chunk-U5J7OTEB.mjs";
15
- import "./chunks/chunk-IJPWKKIU.mjs";
16
- import "./chunks/chunk-D25SR5FS.mjs";
17
- import "./chunks/chunk-AGVLPYVE.mjs";
18
- import "./chunks/chunk-7IGFAI5H.mjs";
19
- import "./chunks/chunk-OKQ5RBKO.mjs";
20
- import "./chunks/chunk-EZSGDSCC.mjs";
21
- import "./chunks/chunk-EWSCJF77.mjs";
22
- import "./chunks/chunk-X4NNZ5X6.mjs";
23
- import "./chunks/chunk-FMCHH5R4.mjs";
24
- import "./chunks/chunk-STQPRNEO.mjs";
25
- import "./chunks/chunk-PZIAKZJC.mjs";
26
- import "./chunks/chunk-QUFVUMSY.mjs";
27
- import "./chunks/chunk-HRKW766Y.mjs";
28
- import "./chunks/chunk-KX2WU5Z6.mjs";
29
- import "./chunks/chunk-B6QUJ33G.mjs";
30
- import "./chunks/chunk-PJFFCRRD.mjs";
10
+ import "./chunks/chunk-3Y5WN22T.mjs";
11
+ import "./chunks/chunk-LCVL3V5U.mjs";
12
+ import "./chunks/chunk-P27F2TZN.mjs";
13
+ import "./chunks/chunk-MUBV2LNK.mjs";
14
+ import "./chunks/chunk-K4C5WOTT.mjs";
15
+ import "./chunks/chunk-VD3C4DYT.mjs";
16
+ import "./chunks/chunk-FVSDKOXR.mjs";
17
+ import "./chunks/chunk-SKZC6VTV.mjs";
18
+ import "./chunks/chunk-EW7VMNZA.mjs";
19
+ import "./chunks/chunk-DC3PU6SO.mjs";
20
+ import "./chunks/chunk-M7XSCLYV.mjs";
21
+ import "./chunks/chunk-OS7BK3FO.mjs";
22
+ import "./chunks/chunk-M66NDY35.mjs";
23
+ import "./chunks/chunk-FSSKCXPL.mjs";
24
+ import "./chunks/chunk-NSPN5OQ5.mjs";
25
+ import "./chunks/chunk-R6MT6F3T.mjs";
26
+ import "./chunks/chunk-KOBAWLZL.mjs";
27
+ import "./chunks/chunk-AZHCKPUL.mjs";
28
+ import "./chunks/chunk-WC6NGMGI.mjs";
29
+ import "./chunks/chunk-25PFC2DY.mjs";
30
+ import "./chunks/chunk-LOVO3P2Q.mjs";
31
31
  import "./chunks/chunk-IM3H4F4X.mjs";
32
- import "./chunks/chunk-K2QZRFLE.mjs";
33
- import "./chunks/chunk-H256DQT6.mjs";
32
+ import "./chunks/chunk-TPLT4PBX.mjs";
33
+ import "./chunks/chunk-XOZ5EMNY.mjs";
34
34
  import "./chunks/chunk-QW3ZY2AD.mjs";
35
- import "./chunks/chunk-FNRGLCZW.mjs";
36
- import "./chunks/chunk-5YTMN435.mjs";
37
- import "./chunks/chunk-ZIDEETK4.mjs";
38
- import "./chunks/chunk-KAGFU64Y.mjs";
39
- import "./chunks/chunk-U5R6MVM4.mjs";
35
+ import "./chunks/chunk-4RTL3LS3.mjs";
36
+ import "./chunks/chunk-QNUBIFAY.mjs";
37
+ import "./chunks/chunk-JKDBKS7P.mjs";
38
+ import "./chunks/chunk-OGFZB75B.mjs";
39
+ import "./chunks/chunk-EQRDY5CQ.mjs";
40
40
  import "./chunks/chunk-J5B4LX5H.mjs";
41
- import "./chunks/chunk-P5XMFZY4.mjs";
42
- import "./chunks/chunk-TXLD7JI5.mjs";
43
- import "./chunks/chunk-E3Z7GLFU.mjs";
41
+ import "./chunks/chunk-A7HXBQUG.mjs";
42
+ import "./chunks/chunk-QQP7ZGQD.mjs";
43
+ import "./chunks/chunk-QYJZ3SOV.mjs";
44
44
  import "./chunks/chunk-4XEXLHX4.mjs";
45
45
  import "./chunks/chunk-QAXALJEY.mjs";
46
46
  import "./chunks/chunk-JU5PV2T2.mjs";
@@ -6,41 +6,41 @@ import {
6
6
  VIEW_EXTENSION_ID,
7
7
  createViewExtensionTransport,
8
8
  createViewExtensionWorkspaceClient
9
- } from "./chunks/chunk-M6S5YA6X.mjs";
9
+ } from "./chunks/chunk-NHNPQ3ZS.mjs";
10
10
  import {
11
11
  connectViewFrontend,
12
12
  mountViewViewer,
13
13
  mountViewWorkspace
14
- } from "./chunks/chunk-D2RCKG7Q.mjs";
15
- import "./chunks/chunk-XMP4THLF.mjs";
16
- import "./chunks/chunk-RJVOH7G2.mjs";
17
- import "./chunks/chunk-E3PJGTLI.mjs";
18
- import "./chunks/chunk-YNHEYXDG.mjs";
19
- import "./chunks/chunk-U64FRQKP.mjs";
20
- import "./chunks/chunk-U6UMATPV.mjs";
21
- import "./chunks/chunk-YFQGSDK3.mjs";
22
- import "./chunks/chunk-ZHO2G4JR.mjs";
23
- import "./chunks/chunk-CX5WREJC.mjs";
24
- import "./chunks/chunk-TTRUYO7Q.mjs";
25
- import "./chunks/chunk-F5RLQAPN.mjs";
14
+ } from "./chunks/chunk-43L37UYV.mjs";
15
+ import "./chunks/chunk-J7QRK3FU.mjs";
16
+ import "./chunks/chunk-L24HPIQP.mjs";
17
+ import "./chunks/chunk-DX4M6LZH.mjs";
18
+ import "./chunks/chunk-7MQIGD6Q.mjs";
19
+ import "./chunks/chunk-CVIF6DYH.mjs";
20
+ import "./chunks/chunk-P3ZW2T37.mjs";
21
+ import "./chunks/chunk-VD4QU7KY.mjs";
22
+ import "./chunks/chunk-XXJ32F5P.mjs";
23
+ import "./chunks/chunk-KY2AWNDR.mjs";
24
+ import "./chunks/chunk-AOD6XLJC.mjs";
25
+ import "./chunks/chunk-7YWMB7HV.mjs";
26
26
  import {
27
27
  ViewWorkspaceInputController,
28
28
  ViewWorkspaceShell,
29
29
  createBrowserPagePresentation
30
- } from "./chunks/chunk-4T3D67CS.mjs";
31
- import "./chunks/chunk-4D3Q7K44.mjs";
32
- import "./chunks/chunk-PVP5YBNR.mjs";
30
+ } from "./chunks/chunk-DJKXBCZH.mjs";
31
+ import "./chunks/chunk-SSVRSFTX.mjs";
32
+ import "./chunks/chunk-5N5FDO5Y.mjs";
33
33
  import {
34
34
  createViewSlotRegistry
35
35
  } from "./chunks/chunk-GQOXQ4AV.mjs";
36
- import "./chunks/chunk-INTTYJVW.mjs";
36
+ import "./chunks/chunk-PHCUCHVL.mjs";
37
37
  import "./chunks/chunk-Q2NO32WU.mjs";
38
- import "./chunks/chunk-OQXDADAS.mjs";
39
- import "./chunks/chunk-IJPWKKIU.mjs";
40
- import "./chunks/chunk-D25SR5FS.mjs";
38
+ import "./chunks/chunk-D3GX7HWI.mjs";
39
+ import "./chunks/chunk-VD3C4DYT.mjs";
40
+ import "./chunks/chunk-FVSDKOXR.mjs";
41
41
  import {
42
42
  DISPLAY_SURFACE_ID
43
- } from "./chunks/chunk-AGVLPYVE.mjs";
43
+ } from "./chunks/chunk-SKZC6VTV.mjs";
44
44
  import {
45
45
  VIEW_INSPECTOR_API_VERSION,
46
46
  VIEW_INSPECTOR_OPERATIONS,
@@ -50,41 +50,44 @@ import {
50
50
  ViewInspectorPanel,
51
51
  createInspectorRequest,
52
52
  createViewInspectorToolContributions
53
- } from "./chunks/chunk-7IGFAI5H.mjs";
54
- import "./chunks/chunk-OKQ5RBKO.mjs";
55
- import "./chunks/chunk-EZSGDSCC.mjs";
56
- import "./chunks/chunk-EWSCJF77.mjs";
57
- import "./chunks/chunk-X4NNZ5X6.mjs";
58
- import "./chunks/chunk-FMCHH5R4.mjs";
59
- import "./chunks/chunk-STQPRNEO.mjs";
60
- import "./chunks/chunk-PZIAKZJC.mjs";
61
- import "./chunks/chunk-QUFVUMSY.mjs";
62
- import "./chunks/chunk-HRKW766Y.mjs";
63
- import "./chunks/chunk-KX2WU5Z6.mjs";
64
- import "./chunks/chunk-B6QUJ33G.mjs";
65
- import "./chunks/chunk-PJFFCRRD.mjs";
53
+ } from "./chunks/chunk-EW7VMNZA.mjs";
54
+ import "./chunks/chunk-DC3PU6SO.mjs";
55
+ import "./chunks/chunk-M7XSCLYV.mjs";
56
+ import "./chunks/chunk-OS7BK3FO.mjs";
57
+ import "./chunks/chunk-M66NDY35.mjs";
58
+ import "./chunks/chunk-FSSKCXPL.mjs";
59
+ import "./chunks/chunk-NSPN5OQ5.mjs";
60
+ import "./chunks/chunk-R6MT6F3T.mjs";
61
+ import "./chunks/chunk-KOBAWLZL.mjs";
62
+ import "./chunks/chunk-AZHCKPUL.mjs";
63
+ import "./chunks/chunk-WC6NGMGI.mjs";
64
+ import "./chunks/chunk-25PFC2DY.mjs";
65
+ import "./chunks/chunk-LOVO3P2Q.mjs";
66
66
  import "./chunks/chunk-IM3H4F4X.mjs";
67
- import "./chunks/chunk-K2QZRFLE.mjs";
68
- import "./chunks/chunk-H256DQT6.mjs";
67
+ import "./chunks/chunk-TPLT4PBX.mjs";
68
+ import "./chunks/chunk-XOZ5EMNY.mjs";
69
69
  import "./chunks/chunk-QW3ZY2AD.mjs";
70
70
  import {
71
71
  ViewWorkspaceClient,
72
72
  createViewWorkspaceClient
73
- } from "./chunks/chunk-FNRGLCZW.mjs";
74
- import "./chunks/chunk-5YTMN435.mjs";
75
- import "./chunks/chunk-ZIDEETK4.mjs";
76
- import "./chunks/chunk-KAGFU64Y.mjs";
77
- import "./chunks/chunk-U5R6MVM4.mjs";
78
- import "./chunks/chunk-APD2EWSZ.mjs";
79
- import "./chunks/chunk-357UOBAS.mjs";
73
+ } from "./chunks/chunk-4RTL3LS3.mjs";
74
+ import "./chunks/chunk-QNUBIFAY.mjs";
75
+ import "./chunks/chunk-JKDBKS7P.mjs";
76
+ import "./chunks/chunk-OGFZB75B.mjs";
77
+ import "./chunks/chunk-EQRDY5CQ.mjs";
78
+ import "./chunks/chunk-5PZL6W3F.mjs";
79
+ import "./chunks/chunk-FSYQ3LBQ.mjs";
80
80
  import "./chunks/chunk-J5B4LX5H.mjs";
81
- import "./chunks/chunk-WVU3CQ62.mjs";
82
- import "./chunks/chunk-CKYXAT7H.mjs";
83
- import "./chunks/chunk-P5XMFZY4.mjs";
84
- import "./chunks/chunk-TXLD7JI5.mjs";
81
+ import "./chunks/chunk-4ZI5DFBR.mjs";
82
+ import "./chunks/chunk-ZRG7LDCA.mjs";
83
+ import "./chunks/chunk-A7HXBQUG.mjs";
84
+ import "./chunks/chunk-QQP7ZGQD.mjs";
85
85
  import {
86
86
  VIEW_DISPLAY_TAB_ID,
87
87
  VIEW_FILE_GET_SERVICE,
88
+ VIEW_PACK_REVEAL_ACK_SERVICE,
89
+ VIEW_PACK_REVEAL_TOPIC,
90
+ VIEW_PACK_SOURCES_SERVICE,
88
91
  VIEW_PAGE_TYPES,
89
92
  VIEW_WORKSPACE_API_VERSION,
90
93
  VIEW_WORKSPACE_COOK_MODES,
@@ -115,9 +118,9 @@ import {
115
118
  workspaceError,
116
119
  workspaceInspectionFactRows,
117
120
  workspaceUiFingerprint
118
- } from "./chunks/chunk-E3Z7GLFU.mjs";
121
+ } from "./chunks/chunk-QYJZ3SOV.mjs";
119
122
  import "./chunks/chunk-4XEXLHX4.mjs";
120
- import "./chunks/chunk-ZGOGO7SS.mjs";
123
+ import "./chunks/chunk-QNSUBUZF.mjs";
121
124
  import "./chunks/chunk-QAXALJEY.mjs";
122
125
  import "./chunks/chunk-FLGC65SR.mjs";
123
126
  export {
@@ -131,6 +134,9 @@ export {
131
134
  VIEW_INSPECTOR_SERVICES,
132
135
  VIEW_INSPECTOR_TOPIC,
133
136
  VIEW_LAYOUT_HOST_ID,
137
+ VIEW_PACK_REVEAL_ACK_SERVICE,
138
+ VIEW_PACK_REVEAL_TOPIC,
139
+ VIEW_PACK_SOURCES_SERVICE,
134
140
  VIEW_PAGE_TYPES,
135
141
  VIEW_WORKSPACE_API_VERSION,
136
142
  VIEW_WORKSPACE_COOK_MODES,
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  attachPreviewRenderResizeSync
3
- } from "./chunk-PJFFCRRD.mjs";
3
+ } from "./chunk-LOVO3P2Q.mjs";
4
4
  import {
5
5
  keepSurfaceInContainer,
6
6
  watchUntilReady
7
7
  } from "./chunk-QW3ZY2AD.mjs";
8
8
  import {
9
9
  logResourceOpen
10
- } from "./chunk-ZIDEETK4.mjs";
10
+ } from "./chunk-JKDBKS7P.mjs";
11
11
 
12
12
  // packages/view-workspace-core/src/preview-surface.ts
13
13
  var OWNER_PLACEMENT = "owner";
@@ -240,4 +240,4 @@ export {
240
240
  dedicatedPreviewPresentation,
241
241
  bindWorkspacePreviewSurface
242
242
  };
243
- //# sourceMappingURL=chunk-B6QUJ33G.mjs.map
243
+ //# sourceMappingURL=chunk-25PFC2DY.mjs.map
@@ -44,7 +44,7 @@ function createViewStatusToolContributions(broker, description) {
44
44
  outputSchema: { type: "object" },
45
45
  evidence: []
46
46
  },
47
- async () => broker.handshake()
47
+ async (_args, context) => broker.handshake(context.caller)
48
48
  )
49
49
  ];
50
50
  }
@@ -85,7 +85,7 @@ function createDisplayApiTools(broker) {
85
85
  inputSchema: bindingInput,
86
86
  outputSchema: { type: "object" },
87
87
  evidence: []
88
- }, (args) => broker.bind(args))] : []
88
+ }, (args, context) => broker.bind(args, context.caller))] : []
89
89
  ];
90
90
  }
91
91
 
@@ -94,4 +94,4 @@ export {
94
94
  DISPLAY_STATUS_OPERATION_DESCRIPTION,
95
95
  createDisplayApiTools
96
96
  };
97
- //# sourceMappingURL=chunk-6KM24NH6.mjs.map
97
+ //# sourceMappingURL=chunk-3Y5WN22T.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/view-plugin-display/src/tool-runtime.ts", "../../../packages/view-plugin-display/src/api.ts"],
4
+ "sourcesContent": ["import type { ToolApi, ToolCallerIdentity, ToolRuntimeError, ToolSchema, ToolDescriptor } from '@forgeax/engine-tool-runtime';\nimport { defineTool } from '@forgeax/engine-tool-runtime';\n\nexport const VIEW_STATUS_OPERATION = 'view.display.status';\n\nfunction toolFailureError(failure: ToolRuntimeError) {\n const diagnostic =\n (typeof failure?.hint === 'string' && failure.hint.trim() !== '' ? failure.hint : undefined)\n ?? (typeof failure?.expected === 'string' && failure.expected.trim() !== '' ? failure.expected : undefined);\n const detail = failure.detail && typeof failure.detail === 'object' && !Array.isArray(failure.detail) ? failure.detail as Record<string, unknown> : {};\n return Object.assign(new Error(diagnostic ?? String(failure ?? 'view-status-provider-failed')), { name: 'ViewToolError', code: detail.code ?? detail.remoteCode ?? failure.code, expected: failure.expected, hint: failure.hint ?? diagnostic, detail: failure.detail ?? { failure } });\n}\n\nexport async function runViewToolApi(\n api: ToolApi,\n { operation, args = {}, caller, signal, providerId, generation }: { operation: string; args?: unknown; caller?: ToolCallerIdentity; signal?: AbortSignal; providerId?: string; generation?: number },\n) {\n const run = api.run(operation, args, {\n sourceId: 'view-backend',\n providerId,\n generation,\n caller,\n signal,\n });\n const terminal = await run.terminal;\n if (terminal.outcome === 'failed') throw toolFailureError(terminal.failure);\n return terminal.result;\n}\n\nexport function createViewStatusToolContributions(broker: { handshake: (caller?: ToolCallerIdentity) => object | Promise<object> }, description: Pick<ToolDescriptor, \"id\" | \"path\" | \"title\" | \"summary\">) {\n const argsSchema: ToolSchema<object> = {\n parse(value) {\n return value === undefined || (value !== null && typeof value === 'object' && !Array.isArray(value))\n ? { ok: true, value: value ?? {} }\n : { ok: false, error: 'View status arguments must be an object' };\n },\n describe: 'JSON object accepted by the read-only View status operation.',\n };\n const resultSchema: ToolSchema<object> = {\n parse(value) {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n ? { ok: true, value }\n : { ok: false, error: 'View status result must be an object' };\n },\n describe: 'JSON object returned by the View status operation.',\n };\n return [\n defineTool<unknown, object>(\n {\n id: description.id,\n path: description.path,\n title: description.title,\n summary: description.summary,\n realm: 'host',\n argsSchema,\n resultSchema,\n inputSchema: { type: 'object' },\n outputSchema: { type: 'object' },\n evidence: [],\n },\n async (_args, context) => broker.handshake(context.caller),\n ),\n ];\n}\n", "import type { ToolCallerIdentity, ToolSchema } from '@forgeax/engine-tool-runtime';\nimport type { DisplayStatusInput } from './status.ts';\nexport type DisplayBindArgs = { root: null; runId?: string } | { root: string; runId: string };\nexport type DisplayService = { handshake: (caller?: ToolCallerIdentity) => object | Promise<object>; bind?: (input: DisplayBindArgs, caller?: ToolCallerIdentity) => DisplayStatusInput };\nimport { createViewStatusToolContributions } from './tool-runtime.ts';\nimport { defineTool, toolJsonSchema } from '@forgeax/engine-tool-runtime';\nexport const DISPLAY_STATUS_OPERATION_DESCRIPTION = Object.freeze({\n id: 'view.display.status',\n path: ['view', 'display', 'status'],\n title: 'View status',\n summary: 'Read the current View display and workspace status.',\n});\n\nconst bindingInput = {\n type: 'object',\n properties: { root: { type: ['string', 'null'] }, runId: { type: 'string', minLength: 1 } },\n required: ['root'], additionalProperties: false,\n};\nconst bindingArgs: ToolSchema<DisplayBindArgs> = {\n describe: JSON.stringify(bindingInput),\n parse(value: unknown) {\n const input = value as Partial<DisplayBindArgs> | null;\n const valid = value && typeof value === 'object' && !Array.isArray(value)\n && Object.keys(value).every(key => key === 'root' || key === 'runId')\n && (input?.root === null || (typeof input?.root === 'string' && input?.root.trim()\n && typeof input?.runId === 'string' && input?.runId.trim()));\n return valid ? { ok: true, value: value as DisplayBindArgs } : { ok: false, error: 'Provide root and exact runId, or null root to disconnect.' };\n },\n};\n\n/** API (Tool) contributions for the display product plugin. */\nexport function createDisplayApiTools(broker: DisplayService) {\n return [\n ...createViewStatusToolContributions(broker, DISPLAY_STATUS_OPERATION_DESCRIPTION),\n ...(broker.bind ? [defineTool<unknown, unknown>({\n id: 'view.display.bind', path: ['view', 'display', 'bind'], title: 'Bind observed run',\n summary: 'Observe one explicit Engine run independently of the Editor project; null root disconnects.',\n realm: 'host',\n argsSchema: bindingArgs,\n resultSchema: toolJsonSchema({ type: 'object' }), inputSchema: bindingInput, outputSchema: { type: 'object' }, evidence: [],\n }, (args, context) => broker.bind!(args as DisplayBindArgs, context.caller))] : []),\n ];\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["defineTool"]
7
+ }
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  createViewFrontendRoot
3
- } from "./chunk-XMP4THLF.mjs";
3
+ } from "./chunk-J7QRK3FU.mjs";
4
4
  import {
5
5
  createViewPageHost,
6
6
  createViewPageTypeRegistry
7
- } from "./chunk-PVP5YBNR.mjs";
7
+ } from "./chunk-5N5FDO5Y.mjs";
8
8
  import {
9
9
  createViewSlotRegistry
10
10
  } from "./chunk-GQOXQ4AV.mjs";
11
11
  import {
12
12
  VIEW_FRONTEND_ROOT_PROGRAM
13
- } from "./chunk-IJPWKKIU.mjs";
13
+ } from "./chunk-VD3C4DYT.mjs";
14
14
  import {
15
15
  workspaceBrowserEndpoint
16
- } from "./chunk-FNRGLCZW.mjs";
16
+ } from "./chunk-4RTL3LS3.mjs";
17
17
  import {
18
18
  requireWorkspaceString
19
- } from "./chunk-E3Z7GLFU.mjs";
19
+ } from "./chunk-QYJZ3SOV.mjs";
20
20
 
21
21
  // packages/viewer/src/host/frontend.ts
22
22
  import { createFrontendHost } from "@forgeax/engine/host/frontend";
@@ -135,4 +135,4 @@ export {
135
135
  mountViewWorkspace,
136
136
  mountViewViewer
137
137
  };
138
- //# sourceMappingURL=chunk-D2RCKG7Q.mjs.map
138
+ //# sourceMappingURL=chunk-43L37UYV.mjs.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  reportWorkspaceCommandError,
3
3
  workspaceDiagnosticRecord
4
- } from "./chunk-U5R6MVM4.mjs";
4
+ } from "./chunk-EQRDY5CQ.mjs";
5
5
  import {
6
6
  VIEW_WORKSPACE_SERVICES,
7
7
  VIEW_WORKSPACE_STATE_TOPIC,
8
8
  ViewWorkspaceError,
9
9
  createWorkspaceRequest,
10
10
  requireWorkspaceString
11
- } from "./chunk-E3Z7GLFU.mjs";
11
+ } from "./chunk-QYJZ3SOV.mjs";
12
12
 
13
13
  // packages/view-workspace-core/src/client.ts
14
14
  var VIEW_INSPECTOR_TOPIC = "forgeax.view.inspector.changed";
@@ -83,6 +83,15 @@ var ViewWorkspaceClient = class {
83
83
  getState(options = {}) {
84
84
  return this.call("tabs.get", {}, options);
85
85
  }
86
+ getSummary(options = {}) {
87
+ return this.call("workspace.summary", {}, options);
88
+ }
89
+ listPages(options = {}) {
90
+ return this.call("pages.list", {}, options);
91
+ }
92
+ revealPack(input, options = {}) {
93
+ return this.call("pack.reveal", input, options);
94
+ }
86
95
  selectTab(tabId, options = {}) {
87
96
  return this.call("tabs.select", { tabId }, options);
88
97
  }
@@ -120,45 +129,62 @@ var ViewWorkspaceClient = class {
120
129
  closeProject(projectId, { tabId, ...options } = {}) {
121
130
  return this.call("project.close", { projectId, tabId }, options);
122
131
  }
123
- listAssets(projectId, { tabId, ...options } = {}) {
124
- return this.call("assets.list", { projectId, tabId }, options);
132
+ listAssets(projectId, { tabId, targetId, targetGeneration, ...options } = {}) {
133
+ return this.call("assets.list", {
134
+ projectId,
135
+ tabId,
136
+ ...targetId === void 0 ? {} : { targetId },
137
+ ...targetGeneration === void 0 ? {} : { targetGeneration }
138
+ }, options);
125
139
  }
126
- inspectAsset(guid, { projectId, tabId, ...options } = {}) {
127
- return this.call("asset.inspect", { guid, tabId, ...projectId === void 0 ? {} : { projectId } }, options);
140
+ inspectAsset(guid, { projectId, tabId, targetId, targetGeneration, ...options } = {}) {
141
+ return this.call("asset.inspect", {
142
+ guid,
143
+ tabId,
144
+ ...projectId === void 0 ? {} : { projectId },
145
+ ...targetId === void 0 ? {} : { targetId },
146
+ ...targetGeneration === void 0 ? {} : { targetGeneration }
147
+ }, options);
128
148
  }
129
- rebuildAssetSource(guid, { projectId, tabId, expectedRevision, requestId, ...options } = {}) {
149
+ rebuildAssetSource(guid, { projectId, tabId, targetId, targetGeneration, expectedRevision, requestId, ...options } = {}) {
130
150
  return this.call(
131
151
  "asset-source.rebuild",
132
152
  {
133
153
  guid,
134
154
  tabId,
135
155
  ...projectId === void 0 ? {} : { projectId },
156
+ ...targetId === void 0 ? {} : { targetId },
157
+ ...targetGeneration === void 0 ? {} : { targetGeneration },
136
158
  ...expectedRevision === void 0 ? {} : { expectedRevision },
137
159
  ...requestId === void 0 ? {} : { requestId }
138
160
  },
139
161
  options
140
162
  );
141
163
  }
142
- coldCookAssetSource(guid, { projectId, tabId, expectedRevision, requestId, ...options } = {}) {
164
+ coldCookAssetSource(guid, { projectId, tabId, targetId, targetGeneration, expectedRevision, requestId, ...options } = {}) {
143
165
  return this.call(
144
166
  "asset-source.cold-cook",
145
167
  {
146
168
  guid,
147
169
  tabId,
148
170
  ...projectId === void 0 ? {} : { projectId },
171
+ ...targetId === void 0 ? {} : { targetId },
172
+ ...targetGeneration === void 0 ? {} : { targetGeneration },
149
173
  ...expectedRevision === void 0 ? {} : { expectedRevision },
150
174
  ...requestId === void 0 ? {} : { requestId }
151
175
  },
152
176
  options
153
177
  );
154
178
  }
155
- openAsset(guid, { projectId, width, height, tabId, ...options } = {}) {
179
+ openAsset(guid, { projectId, width, height, tabId, targetId, targetGeneration, ...options } = {}) {
156
180
  return this.call(
157
181
  "asset.open",
158
182
  {
159
183
  guid,
160
184
  tabId,
161
185
  ...projectId === void 0 ? {} : { projectId },
186
+ ...targetId === void 0 ? {} : { targetId },
187
+ ...targetGeneration === void 0 ? {} : { targetGeneration },
162
188
  ...width === void 0 ? {} : { width },
163
189
  ...height === void 0 ? {} : { height }
164
190
  },
@@ -284,4 +310,4 @@ export {
284
310
  ViewWorkspaceClient,
285
311
  createViewWorkspaceClient
286
312
  };
287
- //# sourceMappingURL=chunk-FNRGLCZW.mjs.map
313
+ //# sourceMappingURL=chunk-4RTL3LS3.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/view-workspace-core/src/client.ts"],
4
+ "sourcesContent": ["import type { HostTransportClient, HostRequestOptions } from '@forgeax/engine-host/transport';\nimport type { EngineWorkspaceCameraInput, EngineWorkspaceCameraResult, EngineWorkspaceTargetTools } from '@forgeax/engine/app';\nimport type { WorkspaceState, WorkspaceSummary, WorkspacePages, WorkspacePackReveal, WorkspacePackRevealResult, WorkspaceInspection, WorkspaceAsset } from './contract.ts';\nimport type { ProjectSession } from './project-session.ts';\nimport { workspaceDiagnosticRecord } from './command-error.ts';\nexport type WorkspaceCallOptions = HostRequestOptions & { requestId?: string; reportError?: boolean };\nexport type WorkspaceTargetOptions = WorkspaceCallOptions & { tabId?: string; targetId?: string; targetGeneration?: number };\nexport type WorkspaceOptions = WorkspaceTargetOptions & Partial<EngineWorkspaceCameraInput> & {\n label?: string; root?: string; projectId?: string; expectedTargetId?: string | null; expectedTargetState?: string;\n expectedRevision?: string; width?: number; height?: number; reason?: string; offset?: number; limit?: number; revision?: string;\n sourceId?: string; sourceGeneration?: number; sinceRevision?: number;\n};\nexport type WorkspaceTransport = Pick<HostTransportClient, 'request'> & Partial<Pick<HostTransportClient, 'subscribe' | 'onDisconnect' | 'close' | 'connected'>>;\nexport type WorkspaceClientOptions = { transport: WorkspaceTransport; clientId: string; token?: string };\nimport {\n VIEW_WORKSPACE_SERVICES,\n VIEW_WORKSPACE_STATE_TOPIC,\n ViewWorkspaceError,\n createWorkspaceRequest,\n requireWorkspaceString,\n} from './contract.ts';\nimport { reportWorkspaceCommandError } from './command-error.ts';\nconst VIEW_INSPECTOR_TOPIC = 'forgeax.view.inspector.changed';\n\nexport function workspaceBrowserEndpoint(endpoint: string, token: string, baseHref?: string, role?: string, frontendTicket?: string) {\n requireWorkspaceString(endpoint, 'endpoint');\n requireWorkspaceString(token, 'token');\n const url = new URL(endpoint, baseHref);\n if (url.protocol !== 'ws:' && url.protocol !== 'wss:') throw new TypeError('View frontend endpoint must use ws: or wss:');\n url.searchParams.set('token', token);\n if (role !== undefined) url.searchParams.set('role', role);\n if (role === 'frontend' && frontendTicket !== undefined) url.searchParams.set('frontendTicket', frontendTicket);\n return url.toString();\n}\n\nfunction decodeWorkspaceTransportError(error: unknown) {\n if (error instanceof ViewWorkspaceError) return error;\n const record = workspaceDiagnosticRecord(error);\n const detail = workspaceDiagnosticRecord(record.detail);\n const transportCode = record.code;\n const remoteCode =\n typeof detail.remoteCode === 'string'\n ? detail.remoteCode\n : undefined;\n const code = [transportCode, remoteCode].find(\n (candidate) => typeof candidate === 'string' && candidate.startsWith('view-'),\n );\n if (typeof code !== 'string') return error;\n const message = typeof record.message === 'string' && record.message.trim() !== ''\n ? record.message\n : String(error);\n return new ViewWorkspaceError(\n code,\n typeof record.expected === 'string' ? record.expected : message,\n typeof record.hint === 'string' ? record.hint : message,\n {\n ...(record.detail && typeof detail === 'object' ? detail : {}),\n transportCode,\n ...(remoteCode === undefined ? {} : { remoteCode }),\n ...(typeof record.name === 'string' ? { name: record.name } : {}),\n },\n );\n}\n\n/**\n * Typed client used by both the View frontend and an independent CLI process.\n * It has no local domain state: every operation goes through the Engine Host\n * workspace service and every returned value is the backend authority's value.\n */\nexport class ViewWorkspaceClient {\n declare readonly transport: WorkspaceTransport;\n declare readonly clientId: string;\n declare readonly token: string | undefined;\n declare projectSession?: ProjectSession;\n constructor({ transport, clientId, token }: Partial<WorkspaceClientOptions> = {}) {\n if (!transport || typeof transport.request !== 'function') {\n throw new TypeError('View workspace client requires an Engine Host transport');\n }\n this.transport = transport;\n this.clientId = requireWorkspaceString(clientId, 'clientId');\n this.token = token === undefined ? undefined : requireWorkspaceString(token, 'token');\n }\n\n call<T = unknown>(operation: string, args: Record<string, unknown> = {}, { signal, generation, requestId, reportError }: WorkspaceCallOptions = {}): Promise<T> {\n const request = createWorkspaceRequest(operation, args, {\n clientId: this.clientId,\n token: this.token,\n requestId,\n });\n return Promise.resolve()\n .then(() => this.transport.request<typeof request, T>(VIEW_WORKSPACE_SERVICES.call, request, { signal, generation }))\n .catch((error) => {\n const decoded = decodeWorkspaceTransportError(error);\n if (reportError !== false) reportWorkspaceCommandError(decoded, { operation, signal });\n throw decoded;\n });\n }\n\n sources<T = unknown>(options: WorkspaceOptions = {}) {\n return this.call<T>('plugins.sources', {}, options);\n }\n\n inspectPlugins<T = unknown>(options: WorkspaceOptions = {}) {\n // generation identifies the inspected source, not the workspace transport service.\n const { signal, requestId, ...args } = options;\n return this.call<T>('plugins.inspect', args, { signal, requestId });\n }\n\n watchPlugins<T = unknown>(options: WorkspaceOptions = {}) {\n const { signal, requestId, ...args } = options;\n return this.call<T>('plugins.watch', args, { signal, requestId });\n }\n\n capabilities(options: WorkspaceOptions = {}) {\n return this.transport.request(VIEW_WORKSPACE_SERVICES.capabilities, undefined, options);\n }\n\n getState(options: WorkspaceCallOptions = {}) {\n return this.call<WorkspaceState>('tabs.get', {}, options);\n }\n\n getSummary(options: WorkspaceCallOptions = {}) {\n return this.call<WorkspaceSummary>('workspace.summary', {}, options);\n }\n\n listPages(options: WorkspaceCallOptions = {}) {\n return this.call<WorkspacePages>('pages.list', {}, options);\n }\n\n revealPack(input: WorkspacePackReveal, options: WorkspaceCallOptions = {}) {\n return this.call<WorkspacePackRevealResult>('pack.reveal', input, options);\n }\n\n selectTab(tabId: string, options: WorkspaceCallOptions = {}) {\n return this.call<WorkspaceState>('tabs.select', { tabId }, options);\n }\n\n selectSceneEntity(entityId: string, { label, tabId, targetId, targetGeneration, ...options }: WorkspaceOptions = {}) {\n return this.call<WorkspaceState>(\n 'scene.select',\n {\n entityId, targetId, targetGeneration,\n ...(tabId === undefined ? {} : { tabId }),\n ...(label === undefined ? {} : { label }),\n },\n options,\n );\n }\n\n clearSceneSelection({ tabId, targetId, targetGeneration, ...options }: WorkspaceOptions = {}) {\n return this.call<WorkspaceState>('scene.clear', { targetId, targetGeneration, ...(tabId === undefined ? {} : { tabId }) }, options);\n }\n\n openProject(root: string, { tabId, expectedTargetId, ...options }: WorkspaceOptions = {}) {\n return this.call<WorkspaceState>('project.open', { root, tabId, ...(expectedTargetId === undefined ? {} : { expectedTargetId }) }, options);\n }\n\n reopenProject({ root, tabId, expectedTargetId, expectedTargetState, ...options }: WorkspaceOptions = {}) {\n return this.call<WorkspaceState>(\n 'project.reopen',\n {\n ...(root === undefined ? {} : { root }),\n ...(tabId === undefined ? {} : { tabId }),\n ...(expectedTargetId === undefined ? {} : { expectedTargetId }),\n ...(expectedTargetState === undefined ? {} : { expectedTargetState }),\n },\n options,\n );\n }\n\n closeProject(projectId: string | undefined, { tabId, ...options }: WorkspaceOptions = {}) {\n return this.call<WorkspaceState>('project.close', { projectId, tabId }, options);\n }\n\n listAssets(projectId: string, { tabId, targetId, targetGeneration, ...options }: WorkspaceOptions = {}) {\n return this.call<{ assets: WorkspaceAsset[] }>('assets.list', {\n projectId, tabId,\n ...(targetId === undefined ? {} : { targetId }),\n ...(targetGeneration === undefined ? {} : { targetGeneration }),\n }, options);\n }\n\n inspectAsset(guid: string, { projectId, tabId, targetId, targetGeneration, ...options }: WorkspaceOptions = {}) {\n return this.call<{ inspection: WorkspaceInspection }>('asset.inspect', {\n guid, tabId,\n ...(projectId === undefined ? {} : { projectId }),\n ...(targetId === undefined ? {} : { targetId }),\n ...(targetGeneration === undefined ? {} : { targetGeneration }),\n }, options);\n }\n\n rebuildAssetSource(guid: string, { projectId, tabId, targetId, targetGeneration, expectedRevision, requestId, ...options }: WorkspaceOptions = {}) {\n return this.call(\n 'asset-source.rebuild',\n {\n guid,\n tabId,\n ...(projectId === undefined ? {} : { projectId }),\n ...(targetId === undefined ? {} : { targetId }),\n ...(targetGeneration === undefined ? {} : { targetGeneration }),\n ...(expectedRevision === undefined ? {} : { expectedRevision }),\n ...(requestId === undefined ? {} : { requestId }),\n },\n options,\n );\n }\n\n coldCookAssetSource(guid: string, { projectId, tabId, targetId, targetGeneration, expectedRevision, requestId, ...options }: WorkspaceOptions = {}) {\n return this.call(\n 'asset-source.cold-cook',\n {\n guid,\n tabId,\n ...(projectId === undefined ? {} : { projectId }),\n ...(targetId === undefined ? {} : { targetId }),\n ...(targetGeneration === undefined ? {} : { targetGeneration }),\n ...(expectedRevision === undefined ? {} : { expectedRevision }),\n ...(requestId === undefined ? {} : { requestId }),\n },\n options,\n );\n }\n\n openAsset(guid: string, { projectId, width, height, tabId, targetId, targetGeneration, ...options }: WorkspaceOptions = {}) {\n return this.call(\n 'asset.open',\n {\n guid,\n tabId,\n ...(projectId === undefined ? {} : { projectId }),\n ...(targetId === undefined ? {} : { targetId }),\n ...(targetGeneration === undefined ? {} : { targetGeneration }),\n ...(width === undefined ? {} : { width }),\n ...(height === undefined ? {} : { height }),\n },\n options,\n );\n }\n\n closePreview({ targetId, targetGeneration, tabId, ...options }: WorkspaceOptions = {}) {\n return this.call(\n 'preview.close',\n { tabId, targetGeneration, ...(targetId === undefined ? {} : { targetId }) },\n options,\n );\n }\n\n capture(options: WorkspaceOptions = {}) {\n const { signal, generation, requestId, reportError, targetId, targetGeneration, tabId, ...args } = options;\n return this.call(\n 'preview.capture',\n { tabId, targetGeneration, ...(targetId === undefined ? {} : { targetId }), ...args },\n { signal, generation, requestId, ...(reportError === undefined ? {} : { reportError }) },\n );\n }\n\n resizePreview({ targetId, targetGeneration, width, height, tabId, ...options }: WorkspaceOptions = {}) {\n return this.call(\n 'preview.resize',\n {\n tabId,\n targetGeneration,\n ...(targetId === undefined ? {} : { targetId }),\n width,\n height,\n },\n options,\n );\n }\n\n getCamera({ targetId, targetGeneration, tabId, ...options }: WorkspaceOptions = {}) {\n return this.call<EngineWorkspaceCameraResult>('camera.get', { tabId, targetGeneration, ...(targetId === undefined ? {} : { targetId }) }, options);\n }\n\n beginCamera({ targetId, targetGeneration, baseVersion, interactionId, tabId, ...options }: WorkspaceOptions = {}) {\n return this.call<EngineWorkspaceCameraResult>(\n 'camera.begin',\n {\n tabId,\n targetGeneration,\n ...(targetId === undefined ? {} : { targetId }),\n baseVersion,\n ...(interactionId === undefined ? {} : { interactionId }),\n },\n options,\n );\n }\n\n updateCamera({ targetId, targetGeneration, interactionId, camera, input, tabId, ...options }: WorkspaceOptions = {}) {\n return this.call<EngineWorkspaceCameraResult>(\n 'camera.update',\n {\n tabId,\n targetGeneration,\n targetId,\n interactionId,\n ...(camera === undefined ? {} : { camera }),\n ...(input === undefined ? {} : { input }),\n },\n options,\n );\n }\n\n commitCamera({ targetId, targetGeneration, interactionId, operationId, expectedVersion, camera, tabId, ...options }: WorkspaceOptions = {}) {\n return this.call<EngineWorkspaceCameraResult>(\n 'camera.commit',\n { tabId, targetId, targetGeneration, interactionId, operationId, expectedVersion, camera },\n options,\n );\n }\n\n abortCamera({ targetId, targetGeneration, interactionId, reason, tabId, ...options }: WorkspaceOptions = {}) {\n return this.call<EngineWorkspaceCameraResult>(\n 'camera.abort',\n {\n tabId,\n targetGeneration,\n targetId,\n interactionId,\n ...(reason === undefined ? {} : { reason }),\n },\n options,\n );\n }\n\n getSceneTree({ projectId, targetId, targetGeneration, tabId, offset, limit, revision, ...options }: WorkspaceOptions = {}) {\n return this.call<Awaited<ReturnType<EngineWorkspaceTargetTools['tree']>>>(\n 'scene-tree.get',\n {\n tabId,\n ...(projectId === undefined ? {} : { projectId }),\n ...(targetId === undefined ? {} : { targetId }),\n ...(targetGeneration === undefined ? {} : { targetGeneration }),\n ...(offset === undefined ? {} : { offset }),\n ...(limit === undefined ? {} : { limit }),\n ...(revision === undefined ? {} : { revision }),\n },\n options,\n );\n }\n\n subscribe(listener: (state: WorkspaceState) => void) {\n if (typeof this.transport.subscribe !== 'function') return () => {};\n return this.transport.subscribe(VIEW_WORKSPACE_STATE_TOPIC, listener);\n }\n\n subscribeInspector(listener: (value: unknown) => void) {\n return this.transport.subscribe?.(VIEW_INSPECTOR_TOPIC, listener) ?? (() => {});\n }\n\n onDisconnect(listener: Parameters<HostTransportClient['onDisconnect']>[0]) {\n return this.transport.onDisconnect?.(listener) ?? (() => {});\n }\n\n close(reason?: unknown) {\n this.transport.close?.(reason);\n }\n}\n\nexport function createViewWorkspaceClient(options: WorkspaceClientOptions) {\n return new ViewWorkspaceClient(options);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createEditorPageTitleController
3
- } from "./chunk-CKYXAT7H.mjs";
3
+ } from "./chunk-ZRG7LDCA.mjs";
4
4
  import {
5
5
  FRONTEND_PLUGIN_ID,
6
6
  PAGE_TYPE
7
- } from "./chunk-P5XMFZY4.mjs";
7
+ } from "./chunk-A7HXBQUG.mjs";
8
8
 
9
9
  // packages/view-plugin-scene/src/frontend.ts
10
10
  var frontend_default = {
@@ -37,4 +37,4 @@ var frontend_default = {
37
37
  export {
38
38
  frontend_default
39
39
  };
40
- //# sourceMappingURL=chunk-WVU3CQ62.mjs.map
40
+ //# sourceMappingURL=chunk-4ZI5DFBR.mjs.map
@@ -29,10 +29,10 @@ import {
29
29
  import {
30
30
  createWorkspaceObservation,
31
31
  createWorkspaceStateReader
32
- } from "./chunk-TXLD7JI5.mjs";
32
+ } from "./chunk-QQP7ZGQD.mjs";
33
33
  import {
34
34
  jsonUnchanged
35
- } from "./chunk-E3Z7GLFU.mjs";
35
+ } from "./chunk-QYJZ3SOV.mjs";
36
36
 
37
37
  // packages/view-plugin-inspector/src/ui/mount.tsx
38
38
  import { createRoot } from "react-dom/client";
@@ -431,4 +431,4 @@ async function mountInspectorPanel(props) {
431
431
  export {
432
432
  mountInspectorPanel
433
433
  };
434
- //# sourceMappingURL=chunk-47RJSHLM.mjs.map
434
+ //# sourceMappingURL=chunk-5HJ336VM.mjs.map