@forgeax/view 0.5.0-dev.13601.16969c83ee09 → 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 (279) 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-Ch4NawY-.js → embedded-BZSPh0if.js} +2 -2
  185. package/dist/viewer/assets/{embedded-Ch4NawY-.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-lazy-DbOAvYN1.js → panels-lazy-DqCwhGd9.js} +2 -2
  189. package/dist/viewer/assets/{panels-lazy-DbOAvYN1.js.map → panels-lazy-DqCwhGd9.js.map} +1 -1
  190. package/dist/viewer/assets/panels-ui-Cm3As_jE.js +12 -0
  191. package/dist/viewer/assets/panels-ui-Cm3As_jE.js.map +1 -0
  192. package/dist/viewer/assets/style-CcYzhsIZ.css +2 -0
  193. package/dist/viewer/assets/{wgpu_wasm-DZKPZXEq.js → wgpu_wasm--oeqTwVY.js} +1 -1
  194. package/dist/viewer/assets/{wgpu_wasm_bg-C1seepuF.wasm → wgpu_wasm_bg-WoZ1YI1I.wasm} +0 -0
  195. package/dist/viewer/index.html +4 -4
  196. package/dist/viewer/panels.js +1 -1
  197. package/package.json +2 -2
  198. package/scripts/verify-runtime-content-engine.mjs +7 -4
  199. package/skills/forgeax-view-cli/SKILL.md +4 -0
  200. package/dist/modules/chunks/chunk-27XASYEH.mjs.map +0 -7
  201. package/dist/modules/chunks/chunk-5YTMN435.mjs.map +0 -7
  202. package/dist/modules/chunks/chunk-6KM24NH6.mjs.map +0 -7
  203. package/dist/modules/chunks/chunk-DWT3TA6M.mjs.map +0 -7
  204. package/dist/modules/chunks/chunk-E3Z7GLFU.mjs.map +0 -7
  205. package/dist/modules/chunks/chunk-EZSGDSCC.mjs.map +0 -7
  206. package/dist/modules/chunks/chunk-FNRGLCZW.mjs.map +0 -7
  207. package/dist/modules/chunks/chunk-HWZCLROY.mjs.map +0 -7
  208. package/dist/modules/chunks/chunk-IJPWKKIU.mjs.map +0 -7
  209. package/dist/modules/chunks/chunk-LZ57Y73Z.mjs.map +0 -7
  210. package/dist/modules/chunks/chunk-OQXDADAS.mjs.map +0 -7
  211. package/dist/modules/chunks/chunk-QELNKFSI.mjs +0 -10
  212. package/dist/modules/chunks/chunk-QELNKFSI.mjs.map +0 -7
  213. package/dist/modules/chunks/chunk-VKNIYV2W.mjs.map +0 -7
  214. package/dist/modules/chunks/chunk-YLCJNKIW.mjs.map +0 -7
  215. package/dist/viewer/assets/main-DUQJ1NlR.js +0 -22
  216. package/dist/viewer/assets/main-DUQJ1NlR.js.map +0 -1
  217. package/dist/viewer/assets/panels-ui-DICIsCag.js +0 -12
  218. package/dist/viewer/assets/panels-ui-DICIsCag.js.map +0 -1
  219. package/dist/viewer/assets/style-gOtSMZif.css +0 -2
  220. /package/dist/modules/chunks/{chunk-B6QUJ33G.mjs.map → chunk-25PFC2DY.mjs.map} +0 -0
  221. /package/dist/modules/chunks/{chunk-D2RCKG7Q.mjs.map → chunk-43L37UYV.mjs.map} +0 -0
  222. /package/dist/modules/chunks/{chunk-WVU3CQ62.mjs.map → chunk-4ZI5DFBR.mjs.map} +0 -0
  223. /package/dist/modules/chunks/{chunk-47RJSHLM.mjs.map → chunk-5HJ336VM.mjs.map} +0 -0
  224. /package/dist/modules/chunks/{chunk-PVP5YBNR.mjs.map → chunk-5N5FDO5Y.mjs.map} +0 -0
  225. /package/dist/modules/chunks/{chunk-APD2EWSZ.mjs.map → chunk-5PZL6W3F.mjs.map} +0 -0
  226. /package/dist/modules/chunks/{chunk-KI4WGTWL.mjs.map → chunk-5WVRCLHN.mjs.map} +0 -0
  227. /package/dist/modules/chunks/{chunk-YNHEYXDG.mjs.map → chunk-7MQIGD6Q.mjs.map} +0 -0
  228. /package/dist/modules/chunks/{chunk-F5RLQAPN.mjs.map → chunk-7YWMB7HV.mjs.map} +0 -0
  229. /package/dist/modules/chunks/{chunk-FICPCJKR.mjs.map → chunk-A22PJUZM.mjs.map} +0 -0
  230. /package/dist/modules/chunks/{chunk-P5XMFZY4.mjs.map → chunk-A7HXBQUG.mjs.map} +0 -0
  231. /package/dist/modules/chunks/{chunk-HRKW766Y.mjs.map → chunk-AZHCKPUL.mjs.map} +0 -0
  232. /package/dist/modules/chunks/{chunk-6I7RY73G.mjs.map → chunk-CEB76QBE.mjs.map} +0 -0
  233. /package/dist/modules/chunks/{chunk-U64FRQKP.mjs.map → chunk-CVIF6DYH.mjs.map} +0 -0
  234. /package/dist/modules/chunks/{chunk-XQYF2P6M.mjs.map → chunk-D3ISMGT6.mjs.map} +0 -0
  235. /package/dist/modules/chunks/{chunk-OKQ5RBKO.mjs.map → chunk-DC3PU6SO.mjs.map} +0 -0
  236. /package/dist/modules/chunks/{chunk-4T3D67CS.mjs.map → chunk-DJKXBCZH.mjs.map} +0 -0
  237. /package/dist/modules/chunks/{chunk-E3PJGTLI.mjs.map → chunk-DX4M6LZH.mjs.map} +0 -0
  238. /package/dist/modules/chunks/{chunk-IZAHIOFU.mjs.map → chunk-EOW4JGVV.mjs.map} +0 -0
  239. /package/dist/modules/chunks/{chunk-U5R6MVM4.mjs.map → chunk-EQRDY5CQ.mjs.map} +0 -0
  240. /package/dist/modules/chunks/{chunk-7IGFAI5H.mjs.map → chunk-EW7VMNZA.mjs.map} +0 -0
  241. /package/dist/modules/chunks/{chunk-FMCHH5R4.mjs.map → chunk-FSSKCXPL.mjs.map} +0 -0
  242. /package/dist/modules/chunks/{chunk-357UOBAS.mjs.map → chunk-FSYQ3LBQ.mjs.map} +0 -0
  243. /package/dist/modules/chunks/{chunk-D25SR5FS.mjs.map → chunk-FVSDKOXR.mjs.map} +0 -0
  244. /package/dist/modules/chunks/{chunk-XMP4THLF.mjs.map → chunk-J7QRK3FU.mjs.map} +0 -0
  245. /package/dist/modules/chunks/{chunk-D57DDEV2.mjs.map → chunk-JE4N575J.mjs.map} +0 -0
  246. /package/dist/modules/chunks/{chunk-ZIDEETK4.mjs.map → chunk-JKDBKS7P.mjs.map} +0 -0
  247. /package/dist/modules/chunks/{chunk-U5J7OTEB.mjs.map → chunk-K4C5WOTT.mjs.map} +0 -0
  248. /package/dist/modules/chunks/{chunk-QUFVUMSY.mjs.map → chunk-KOBAWLZL.mjs.map} +0 -0
  249. /package/dist/modules/chunks/{chunk-CX5WREJC.mjs.map → chunk-KY2AWNDR.mjs.map} +0 -0
  250. /package/dist/modules/chunks/{chunk-RJVOH7G2.mjs.map → chunk-L24HPIQP.mjs.map} +0 -0
  251. /package/dist/modules/chunks/{chunk-PJFFCRRD.mjs.map → chunk-LOVO3P2Q.mjs.map} +0 -0
  252. /package/dist/modules/chunks/{chunk-X4NNZ5X6.mjs.map → chunk-M66NDY35.mjs.map} +0 -0
  253. /package/dist/modules/chunks/{chunk-55F55BQY.mjs.map → chunk-MUBV2LNK.mjs.map} +0 -0
  254. /package/dist/modules/chunks/{chunk-M6S5YA6X.mjs.map → chunk-NHNPQ3ZS.mjs.map} +0 -0
  255. /package/dist/modules/chunks/{chunk-STQPRNEO.mjs.map → chunk-NSPN5OQ5.mjs.map} +0 -0
  256. /package/dist/modules/chunks/{chunk-XE6ITXHT.mjs.map → chunk-NZ4N7AVG.mjs.map} +0 -0
  257. /package/dist/modules/chunks/{chunk-KAGFU64Y.mjs.map → chunk-OGFZB75B.mjs.map} +0 -0
  258. /package/dist/modules/chunks/{chunk-EWSCJF77.mjs.map → chunk-OS7BK3FO.mjs.map} +0 -0
  259. /package/dist/modules/chunks/{chunk-U6UMATPV.mjs.map → chunk-P3ZW2T37.mjs.map} +0 -0
  260. /package/dist/modules/chunks/{chunk-INTTYJVW.mjs.map → chunk-PHCUCHVL.mjs.map} +0 -0
  261. /package/dist/modules/chunks/{chunk-JK7K7RG3.mjs.map → chunk-QNJL265P.mjs.map} +0 -0
  262. /package/dist/modules/chunks/{chunk-ZGOGO7SS.mjs.map → chunk-QNSUBUZF.mjs.map} +0 -0
  263. /package/dist/modules/chunks/{chunk-TXLD7JI5.mjs.map → chunk-QQP7ZGQD.mjs.map} +0 -0
  264. /package/dist/modules/chunks/{chunk-PZIAKZJC.mjs.map → chunk-R6MT6F3T.mjs.map} +0 -0
  265. /package/dist/modules/chunks/{chunk-P4UPH74B.mjs.map → chunk-RGM4S2BE.mjs.map} +0 -0
  266. /package/dist/modules/chunks/{chunk-AGVLPYVE.mjs.map → chunk-SKZC6VTV.mjs.map} +0 -0
  267. /package/dist/modules/chunks/{chunk-4D3Q7K44.mjs.map → chunk-SSVRSFTX.mjs.map} +0 -0
  268. /package/dist/modules/chunks/{chunk-2Z5KEV6L.mjs.map → chunk-TFBSEYKW.mjs.map} +0 -0
  269. /package/dist/modules/chunks/{chunk-K2QZRFLE.mjs.map → chunk-TPLT4PBX.mjs.map} +0 -0
  270. /package/dist/modules/chunks/{chunk-5PHAXNFO.mjs.map → chunk-U5LBMAG3.mjs.map} +0 -0
  271. /package/dist/modules/chunks/{chunk-46UEGAXY.mjs.map → chunk-V4SOFUJI.mjs.map} +0 -0
  272. /package/dist/modules/chunks/{chunk-YFQGSDK3.mjs.map → chunk-VD4QU7KY.mjs.map} +0 -0
  273. /package/dist/modules/chunks/{chunk-KX2WU5Z6.mjs.map → chunk-WC6NGMGI.mjs.map} +0 -0
  274. /package/dist/modules/chunks/{chunk-H256DQT6.mjs.map → chunk-XOZ5EMNY.mjs.map} +0 -0
  275. /package/dist/modules/chunks/{chunk-ZHO2G4JR.mjs.map → chunk-XXJ32F5P.mjs.map} +0 -0
  276. /package/dist/modules/chunks/{chunk-VW2ZF3P4.mjs.map → chunk-Y4SFATAM.mjs.map} +0 -0
  277. /package/dist/modules/chunks/{chunk-SRYQLFBV.mjs.map → chunk-ZKFH7EMU.mjs.map} +0 -0
  278. /package/dist/modules/chunks/{chunk-CKYXAT7H.mjs.map → chunk-ZRG7LDCA.mjs.map} +0 -0
  279. /package/dist/modules/chunks/{chunk-PW5CE2Y6.mjs.map → chunk-ZW7LLDOL.mjs.map} +0 -0
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  FRONTEND_PLUGIN_ID,
3
3
  identity_exports
4
- } from "./chunk-X4NNZ5X6.mjs";
4
+ } from "./chunk-M66NDY35.mjs";
5
5
  import {
6
6
  applyResourcePagePlugin
7
- } from "./chunk-KX2WU5Z6.mjs";
7
+ } from "./chunk-WC6NGMGI.mjs";
8
8
 
9
9
  // packages/view-plugin-mesh/src/frontend.ts
10
10
  var VIEW_MESH_FRONTEND_PLUGIN_ID = FRONTEND_PLUGIN_ID;
@@ -22,4 +22,4 @@ export {
22
22
  viewMeshFrontendPlugin,
23
23
  frontend_default
24
24
  };
25
- //# sourceMappingURL=chunk-U64FRQKP.mjs.map
25
+ //# sourceMappingURL=chunk-CVIF6DYH.mjs.map
@@ -4,13 +4,13 @@ import {
4
4
  import {
5
5
  openViewProject,
6
6
  viewProjectOpenError
7
- } from "./chunk-XE6ITXHT.mjs";
7
+ } from "./chunk-NZ4N7AVG.mjs";
8
8
  import {
9
9
  VIEW_PRODUCT_BACKEND_CATALOG
10
- } from "./chunk-XQYF2P6M.mjs";
10
+ } from "./chunk-D3ISMGT6.mjs";
11
11
  import {
12
12
  startViewHostServer
13
- } from "./chunk-U5J7OTEB.mjs";
13
+ } from "./chunk-K4C5WOTT.mjs";
14
14
  import {
15
15
  resolveProjectIntent,
16
16
  withProjectIntent
@@ -19,10 +19,10 @@ import {
19
19
  VIEW_FRONTEND_MODULE,
20
20
  createViewProductPlan,
21
21
  viewFrontendRoot
22
- } from "./chunk-IJPWKKIU.mjs";
22
+ } from "./chunk-VD3C4DYT.mjs";
23
23
  import {
24
24
  workspaceDiagnosticRecord
25
- } from "./chunk-U5R6MVM4.mjs";
25
+ } from "./chunk-EQRDY5CQ.mjs";
26
26
 
27
27
  // src/plugins/product.ts
28
28
  import { randomUUID } from "node:crypto";
@@ -32,6 +32,7 @@ import { existsSync } from "node:fs";
32
32
  import { createHostAssembly } from "@forgeax/engine/host/protocol";
33
33
  import { defineTool, toolJsonSchema } from "@forgeax/engine/tool-runtime";
34
34
  import { registerTools, startNativePlugin } from "@forgeax/engine/plugin";
35
+ import { listPackSources } from "@forgeax/engine/pack/build";
35
36
  var ownerArgs = toolJsonSchema({ type: "object", properties: { root: { type: "string" } }, additionalProperties: false });
36
37
  var startArgs = toolJsonSchema({ type: "object", properties: {
37
38
  root: { type: "string" },
@@ -148,7 +149,7 @@ var product_default = {
148
149
  };
149
150
  const plan = createViewProductPlan({
150
151
  disabledPages: config.disabledPages,
151
- backendConfig: { workspaceAccessToken: token },
152
+ backendConfig: { workspaceAccessToken: token, packSources: listPackSources },
152
153
  frontendConfig
153
154
  });
154
155
  const installation = {
@@ -174,7 +175,7 @@ var product_default = {
174
175
  staticRoot: config.staticRoot ?? builtRoot,
175
176
  frontendConfig,
176
177
  ...core === void 0 ? {} : {
177
- onClientConnect: () => core.resetPageSession(),
178
+ onClientConnect: (caller) => core.attachPageSession(caller, host.transport),
178
179
  onClientDisconnect: (caller) => core.revokeConnection(caller.connectionId)
179
180
  }
180
181
  });
@@ -283,4 +284,4 @@ var product_default = {
283
284
  export {
284
285
  product_default
285
286
  };
286
- //# sourceMappingURL=chunk-DWT3TA6M.mjs.map
287
+ //# sourceMappingURL=chunk-CYQ7BITZ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/plugins/product.ts"],
4
+ "sourcesContent": ["import type { Context, Fiber } from '@forgeax/engine-plugin';\nimport type {} from '@forgeax/engine/devkit';\nimport type { HostRootDescriptor } from '@forgeax/engine-host/protocol';\nimport type { ToolJsonSchema, ToolSchema } from '@forgeax/engine-tool-runtime';\nimport type { ViewWorkspaceBroker } from '@forgeax/view-workspace-core/broker';\nimport type { ViewFrontendConfig } from '@forgeax/view-viewer/config';\nimport { workspaceDiagnosticRecord } from '@forgeax/view-workspace-core/command-error';\nexport type ViewProductConfig = { disabledPages?: readonly string[]; staticRoot?: string; frontendConfig?: Pick<ViewFrontendConfig, 'layout'>; frontend?: { root?: Partial<HostRootDescriptor>; module?: string } };\ntype LifecycleArgs = { root?: string; project?: string; frontendConfig?: Pick<ViewFrontendConfig, 'layout'> };\nimport { randomUUID } from 'node:crypto';\nimport { createRequire } from 'node:module';\nimport { dirname, join, resolve } from 'node:path';\nimport { existsSync } from 'node:fs';\nimport { createHostAssembly } from '@forgeax/engine-host/protocol';\nimport { defineTool, toolJsonSchema } from '@forgeax/engine-tool-runtime';\nimport { registerTools, startNativePlugin } from '@forgeax/engine-plugin';\nimport { createViewProductPlan, viewFrontendRoot, VIEW_FRONTEND_MODULE } from '@forgeax/view-viewer/catalog/shared';\nimport { listPackSources } from '@forgeax/engine-pack/build';\nimport { VIEW_PRODUCT_BACKEND_CATALOG } from '@forgeax/view-viewer/catalog/backend';\nimport { startViewHostServer } from '@forgeax/view-workspace-core/resident';\n\nimport { openViewProject, viewProjectOpenError } from '../view-project-open.ts';\nimport { resolveProjectIntent, withProjectIntent } from '../view-start.ts';\nimport { viewStartFrontendConfigSchema } from '../commands.ts';\n\nconst ownerArgs = toolJsonSchema({ type: 'object', properties: { root: { type: 'string' } }, additionalProperties: false });\nconst startArgs = toolJsonSchema({ type: 'object', properties: {\n root: { type: 'string' }, project: { type: 'string' },\n frontendConfig: viewStartFrontendConfigSchema,\n}, additionalProperties: false });\nconst projectOpenSchema = {\n type: 'object',\n properties: { root: { type: 'string' }, project: { type: 'string' } },\n required: ['project'],\n additionalProperties: false,\n} satisfies ToolJsonSchema;\n\nfunction readWorkspaceCore(owner?: Context) {\n if (!owner || typeof owner.get !== 'function') return undefined;\n try {\n const value = owner.get('viewWorkspaceCore', false);\n return value && typeof value.openProject === 'function' && typeof value.snapshot === 'function' ? value : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction installedViewStaticRoot(projectRoot: string) {\n try {\n const pluginEntry = createRequire(join(projectRoot, 'forge.json')).resolve('@forgeax/view/plugin');\n const staticRoot = resolve(dirname(pluginEntry), '../viewer');\n return existsSync(join(staticRoot, 'index.html')) ? staticRoot : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction projectFailure(error: unknown) {\n const record = workspaceDiagnosticRecord(error);\n const hint = typeof record.hint === 'string' ? record.hint : typeof record.message === 'string' ? record.message : String(error);\n return {\n ok: false,\n error: {\n code: typeof record.code === 'string' ? record.code : 'view-project-open-failed',\n expected: typeof record.expected === 'string' ? record.expected : hint,\n hint,\n ...(record.detail === undefined ? {} : { detail: record.detail }),\n },\n };\n}\n\nfunction projectSuccess(body: Awaited<ReturnType<typeof openViewProject>>) {\n return {\n ok: true,\n value: {\n ok: true,\n alreadyOpen: body.alreadyOpen === true,\n ...(body.viewerUrl === undefined ? {} : { viewerUrl: body.viewerUrl }),\n project: body.project,\n projectTarget: body.projectTarget,\n },\n };\n}\n\n/** Installed on Engine's resident Host. View owns only its plugin Fibers and sockets. */\nexport default {\n name: 'forgeax.view',\n inject: ['devkitBackend', 'engineWorkspace', 'toolApi'],\n async apply(ctx: Context, config: ViewProductConfig = {}) {\n const { host } = ctx.devkitBackend;\n let fiber: Fiber | undefined;\n let server: Awaited<ReturnType<typeof startViewHostServer>> | undefined;\n let serverEffect: ReturnType<Context['effect']> | undefined;\n let failure: ReturnType<typeof failed> | undefined;\n const failed = (error: unknown) => {\n const record = workspaceDiagnosticRecord(error);\n return ({\n code: typeof record.code === 'string' ? record.code : 'view-cleanup-failed',\n expected: typeof record.expected === 'string' ? record.expected : 'View-owned contributions to finish cleanup',\n hint: typeof record.hint === 'string' ? record.hint : typeof record.message === 'string' ? record.message : String(error),\n cleanup: workspaceDiagnosticRecord(record.detail).cleanup ?? 'failed',\n }); };\n let workspaceCore: ViewWorkspaceBroker | undefined;\n let openAbort: AbortController | undefined;\n let sessionEpoch = 0;\n let queue: Promise<unknown> = Promise.resolve();\n const enqueue = <T>(execute: () => T | Promise<T>) => {\n const result = queue.then(execute);\n queue = result.catch(() => {});\n return result;\n };\n const status = () => failure ? { phase: 'failed', error: failure } : ({ phase: server ? 'ready' : 'stopped', ...(server ? { url: server.viewerUrl } : {}) });\n const stop = async () => {\n if (failure) throw new Error(`${failure.code}: ${failure.hint}`);\n sessionEpoch += 1;\n openAbort?.abort();\n openAbort = undefined;\n workspaceCore = undefined;\n try { await serverEffect?.(); await server?.close(); await fiber?.dispose(); }\n catch (error) { failure = failed(error); throw error; }\n fiber = undefined;\n server = undefined;\n return status();\n };\n const start = async (args: LifecycleArgs = {}) => {\n if (failure) throw new Error(`${failure.code}: ${failure.hint}`);\n const project = resolveProjectIntent(args.project === undefined ? [] : ['--project', args.project], ctx.devkitBackend.root);\n if (fiber) return withProjectIntent(status(), project);\n const token = randomUUID();\n const workspaceClient = { clientId: 'view-frontend', token, resourceBrowser: true };\n const layout = args.frontendConfig?.layout ?? config.frontendConfig?.layout;\n const frontendConfig: ViewFrontendConfig = {\n embedded: true,\n workspace: workspaceClient,\n ...(layout === undefined ? {} : { layout }),\n };\n const plan = createViewProductPlan({\n disabledPages: config.disabledPages,\n backendConfig: { workspaceAccessToken: token, packSources: listPackSources },\n frontendConfig,\n });\n const installation = {\n name: 'forgeax.view.product',\n provide: ['devkitWorkspaceFrontend'],\n async apply(owner: Context) {\n for (const component of plan.backend) {\n const record = VIEW_PRODUCT_BACKEND_CATALOG.get(component.module);\n if (!record) throw new Error(`View backend program is missing: ${component.module}`);\n const module = await record.load();\n await (await owner.plugin(module.default, component.config)).await();\n }\n const builtRoot = config.staticRoot ? undefined : installedViewStaticRoot(\n ctx.devkitBackend.hostPackageRoot ?? ctx.devkitBackend.root,\n );\n if (!config.staticRoot && !builtRoot) throw new Error('View UI is not built. Build or install the View package before starting it.');\n // The launcher is the parent fiber. Cordis get walks ancestors, so the\n // broker provided by this installation is read here and kept for the tool.\n workspaceCore = readWorkspaceCore(owner);\n const core = workspaceCore;\n serverEffect = owner.effect(async () => {\n const ownedServer = await startViewHostServer({\n backendHost: host,\n accessToken: token,\n staticRoot: config.staticRoot ?? builtRoot,\n frontendConfig,\n ...(core === undefined ? {} : {\n onClientConnect: (caller) => core.attachPageSession(caller, host.transport),\n onClientDisconnect: (caller) => core.revokeConnection(caller.connectionId),\n }),\n });\n server = ownedServer;\n return () => ownedServer.close();\n });\n await serverEffect;\n Object.assign(workspaceClient, { endpoint: server!.frontendEndpoint, frontendTicket: server!.frontendTicket });\n const frontendRoot = viewFrontendRoot(frontendConfig, plan.disabledPages);\n const assembly = createHostAssembly({ root: config.frontend ? { ...frontendRoot, ...config.frontend.root, config: frontendRoot.config } : frontendRoot });\n owner.provide('devkitWorkspaceFrontend', { assembly, module: config.frontend?.module ?? VIEW_FRONTEND_MODULE });\n const removeAdmission = host.transport.onClientConnect(caller => {\n if (caller.kind === 'frontend' && caller.sourceId === 'view-frontend') {\n host.bindProjection(caller, { assembly });\n }\n });\n owner.effect(() => removeAdmission);\n },\n };\n const started = await startNativePlugin(ctx, installation);\n if (!started.ok) {\n workspaceCore = undefined;\n if (workspaceDiagnosticRecord(started.error.detail).cleanup !== 'completed') failure = failed(started.error);\n else server = undefined;\n throw Object.assign(new Error(`${started.error.code}: ${started.error.hint}`), started.error);\n }\n fiber = started.value;\n return withProjectIntent(status(), project);\n };\n\n const openProject = async (args: LifecycleArgs = {}, epoch = sessionEpoch) => {\n const stopped = () => projectFailure(viewProjectOpenError(\n 'view-not-started',\n 'View has stopped. Run forgeax view start again when needed.',\n ));\n if (epoch !== sessionEpoch || !server || !workspaceCore) {\n return projectFailure(viewProjectOpenError(\n 'view-not-started',\n epoch !== sessionEpoch\n ? 'View has stopped. Run forgeax view start again when needed.'\n : 'Run forgeax backend start, then forgeax view start.',\n ));\n }\n const project = typeof args.project === 'string' ? args.project : '';\n const controller = new AbortController();\n openAbort = controller;\n try {\n if (epoch !== sessionEpoch || controller.signal.aborted) return stopped();\n const body = await openViewProject(workspaceCore, project, {\n signal: controller.signal,\n viewerUrl: server.viewerUrl,\n });\n if (epoch !== sessionEpoch || controller.signal.aborted) return stopped();\n return projectSuccess(body);\n } catch (error) {\n if (epoch !== sessionEpoch || controller.signal.aborted) return stopped();\n return projectFailure(error);\n } finally {\n if (openAbort === controller) openAbort = undefined;\n }\n };\n const lifecycleTool = (operation: string, execute: (args: LifecycleArgs) => unknown, { before, argsSchema = ownerArgs }: { before?: () => void; argsSchema?: ToolSchema<unknown> } = {}) => defineTool<unknown, unknown>({\n id: `view.${operation}`, path: ['view', operation], title: `View ${operation}`,\n summary: `${operation} the optional View interface on the existing Engine backend.`, realm: 'host',\n argsSchema, resultSchema: toolJsonSchema({ type: 'object' }), inputSchema: { type: 'object' }, outputSchema: { type: 'object' }, evidence: [],\n }, (args) => {\n before?.();\n return enqueue(() => execute(args as LifecycleArgs));\n });\n const tools = [\n lifecycleTool('start', start, { argsSchema: startArgs }),\n lifecycleTool('status', status),\n lifecycleTool('stop', stop, { before: () => { sessionEpoch += 1; openAbort?.abort(); } }),\n defineTool<unknown, unknown>({\n id: 'view.project.open',\n path: ['view', 'project', 'open'],\n title: 'Open View project',\n summary: 'Open an editor project on the running View and return its headed document URL.',\n realm: 'host',\n argsSchema: toolJsonSchema(projectOpenSchema),\n resultSchema: toolJsonSchema({ type: 'object' }),\n inputSchema: projectOpenSchema,\n outputSchema: { type: 'object' },\n evidence: [],\n }, (args) => {\n const epoch = sessionEpoch;\n return enqueue(() => openProject(args as LifecycleArgs, epoch));\n }),\n ];\n const revoke = registerTools(ctx, tools, { sourceId: 'view-launcher', module: '@forgeax/view/plugin', realm: 'host' });\n ctx.effect(() => async () => { await revoke(); await queue; await stop(); });\n },\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  createViewWorkspaceClient,
3
3
  workspaceBrowserEndpoint
4
- } from "./chunk-FNRGLCZW.mjs";
4
+ } from "./chunk-4RTL3LS3.mjs";
5
5
  import {
6
6
  createProjectSession
7
- } from "./chunk-5YTMN435.mjs";
7
+ } from "./chunk-QNUBIFAY.mjs";
8
8
  import {
9
9
  logResourceOpen,
10
10
  observeWorkspaceOpenRequests
11
- } from "./chunk-ZIDEETK4.mjs";
11
+ } from "./chunk-JKDBKS7P.mjs";
12
12
  import {
13
13
  initViewTraceFromEnvironment,
14
14
  wrapViewWorkspaceClient
15
- } from "./chunk-KAGFU64Y.mjs";
15
+ } from "./chunk-OGFZB75B.mjs";
16
16
 
17
17
  // packages/view-workspace-core/src/frontend-plugin.ts
18
18
  import { createHostWebSocketClient } from "@forgeax/engine/host/transport";
@@ -31,7 +31,7 @@ var viewWorkspaceCoreFrontendPlugin = {
31
31
  const window = config.window ?? globalThis;
32
32
  const configuredTransport = ctx.get?.("hostTransport", false);
33
33
  let transport = configuredTransport && "request" in configuredTransport ? configuredTransport : void 0;
34
- if (workspace?.endpoint) {
34
+ if (workspace?.endpoint && !transport) {
35
35
  const url = workspaceBrowserEndpoint(workspace.endpoint, workspace.token, window.location?.href, "frontend", workspace.frontendTicket);
36
36
  let socket;
37
37
  let ownedTransport;
@@ -101,4 +101,4 @@ export {
101
101
  viewWorkspaceCoreFrontendPlugin,
102
102
  frontend_plugin_default
103
103
  };
104
- //# sourceMappingURL=chunk-OQXDADAS.mjs.map
104
+ //# sourceMappingURL=chunk-D3GX7HWI.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/view-workspace-core/src/frontend-plugin.ts"],
4
+ "sourcesContent": ["import type { Plugin } from '@forgeax/engine-plugin';\nimport type { HostTransportClient } from '@forgeax/engine-host/transport';\nimport type { FrontendConfig } from './frontend-contract.ts';\nimport type { ViewWorkspaceClient } from './client.ts';\nexport type CoreFrontendConfig = FrontendConfig & { window?: Window & typeof globalThis; workspace?: { endpoint?: string; token: string; clientId: string; frontendTicket?: string } };\ndeclare module '@forgeax/engine-plugin' { interface EngineContextServices { viewOperationClient?: ViewWorkspaceClient; } }\nimport { createHostWebSocketClient } from '@forgeax/engine-host/transport';\nimport { createViewWorkspaceClient, workspaceBrowserEndpoint } from './client.ts';\nimport { createProjectSession } from './project-session.ts';\nimport { logResourceOpen, observeWorkspaceOpenRequests } from './resource-open.ts';\nimport { initViewTraceFromEnvironment, wrapViewWorkspaceClient } from './view-trace.ts';\n\nexport const viewWorkspaceCoreFrontendPlugin: Plugin.Object<CoreFrontendConfig> = {\n name: 'forgeax.view.service.workspace-client.frontend',\n provide: ['viewOperationClient'],\n async apply(ctx, config = {}) {\n ctx.effect(initViewTraceFromEnvironment);\n const lifetime = new AbortController();\n // Cordis emits removal before waiting for an asynchronous apply to settle.\n // Cancel pending I/O then, so ordinary effect cleanup can finish.\n ctx.on('internal/plugin', fiber => {\n if (fiber === ctx.fiber && fiber.uid === null) lifetime.abort();\n });\n ctx.effect(() => () => lifetime.abort());\n const pageHost = config.pageHost ?? ctx.get?.('pageHost', false);\n const workspace = config.workspace;\n const window = config.window ?? globalThis;\n const configuredTransport = ctx.get?.('hostTransport', false);\n let transport: HostTransportClient | undefined = configuredTransport && 'request' in configuredTransport ? configuredTransport : undefined;\n // The frontend Host already owns the page's trusted socket. Reuse it so\n // workspace commands and page status subscriptions have one caller identity.\n if (workspace?.endpoint && !transport) {\n const url = workspaceBrowserEndpoint(workspace.endpoint, workspace.token, window.location?.href, 'frontend', workspace.frontendTicket);\n let socket!: WebSocket;\n let ownedTransport: HostTransportClient | undefined;\n let disposed = false;\n ctx.effect(() => {\n socket = new window.WebSocket(url);\n const close = () => {\n disposed = true;\n if (ownedTransport) ownedTransport.close('View workspace client disposed');\n else socket.close(1000, 'View workspace client disposed');\n };\n lifetime.signal.addEventListener('abort', close, { once: true });\n return () => { lifetime.signal.removeEventListener('abort', close); close(); };\n });\n try { ownedTransport = await createHostWebSocketClient(socket); }\n catch (error) { if (lifetime.signal.aborted) return; throw error; }\n if (disposed) { ownedTransport.close('View workspace client disposed'); return; }\n transport = ownedTransport;\n }\n const rawClient =\n transport && workspace?.clientId && workspace?.token\n ? createViewWorkspaceClient({\n transport,\n clientId: workspace.clientId,\n token: workspace.token,\n })\n : undefined;\n const client = wrapViewWorkspaceClient(rawClient);\n if (lifetime.signal.aborted) return;\n if (rawClient && (config.window ?? globalThis).location) {\n const session = createProjectSession(rawClient, { window: config.window ?? globalThis });\n rawClient.projectSession = session;\n const dispose = () => session.dispose();\n lifetime.signal.addEventListener('abort', dispose, { once: true });\n ctx.effect(() => () => { lifetime.signal.removeEventListener('abort', dispose); dispose(); });\n // A headed document must finish exact-target recovery before its\n // plugins can construct an App. The View entry has no Engine workspace\n // surface, so let its Shell activate while a cold project opens.\n if (new URL(window.location.href).searchParams.has('forgeaxWorkspaceTarget'))\n await session.ready;\n }\n if (lifetime.signal.aborted) return;\n ctx.provide('viewOperationClient', client);\n if (pageHost?.openResource && client) {\n logResourceOpen('open-request-observer-wired', {});\n const stop = observeWorkspaceOpenRequests(client, (request) => pageHost.openResource(request));\n ctx.effect(() => stop);\n } else {\n logResourceOpen('open-request-observer-skipped', {\n hasPageHost: Boolean(pageHost),\n hasOpenResource: Boolean(pageHost?.openResource),\n hasClient: Boolean(client),\n }, { level: 'warn' });\n }\n },\n};\n\nexport default viewWorkspaceCoreFrontendPlugin;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAMA,SAAS,iCAAiC;AAMnC,IAAM,kCAAqE;AAAA,EAChF,MAAM;AAAA,EACN,SAAS,CAAC,qBAAqB;AAAA,EAC/B,MAAM,MAAM,KAAK,SAAS,CAAC,GAAG;AAC5B,QAAI,OAAO,4BAA4B;AACvC,UAAM,WAAW,IAAI,gBAAgB;AAGrC,QAAI,GAAG,mBAAmB,WAAS;AACjC,UAAI,UAAU,IAAI,SAAS,MAAM,QAAQ,KAAM,UAAS,MAAM;AAAA,IAChE,CAAC;AACD,QAAI,OAAO,MAAM,MAAM,SAAS,MAAM,CAAC;AACvC,UAAM,WAAW,OAAO,YAAY,IAAI,MAAM,YAAY,KAAK;AAC/D,UAAM,YAAY,OAAO;AACzB,UAAM,SAAS,OAAO,UAAU;AAChC,UAAM,sBAAsB,IAAI,MAAM,iBAAiB,KAAK;AAC5D,QAAI,YAA6C,uBAAuB,aAAa,sBAAsB,sBAAsB;AAGjI,QAAI,WAAW,YAAY,CAAC,WAAW;AACrC,YAAM,MAAM,yBAAyB,UAAU,UAAU,UAAU,OAAO,OAAO,UAAU,MAAM,YAAY,UAAU,cAAc;AACrI,UAAI;AACJ,UAAI;AACJ,UAAI,WAAW;AACf,UAAI,OAAO,MAAM;AACf,iBAAS,IAAI,OAAO,UAAU,GAAG;AACjC,cAAM,QAAQ,MAAM;AAClB,qBAAW;AACX,cAAI,eAAgB,gBAAe,MAAM,gCAAgC;AAAA,cACpE,QAAO,MAAM,KAAM,gCAAgC;AAAA,QAC1D;AACA,iBAAS,OAAO,iBAAiB,SAAS,OAAO,EAAE,MAAM,KAAK,CAAC;AAC/D,eAAO,MAAM;AAAE,mBAAS,OAAO,oBAAoB,SAAS,KAAK;AAAG,gBAAM;AAAA,QAAG;AAAA,MAC/E,CAAC;AACD,UAAI;AAAE,yBAAiB,MAAM,0BAA0B,MAAM;AAAA,MAAG,SACzD,OAAO;AAAE,YAAI,SAAS,OAAO,QAAS;AAAQ,cAAM;AAAA,MAAO;AAClE,UAAI,UAAU;AAAE,uBAAe,MAAM,gCAAgC;AAAG;AAAA,MAAQ;AAChF,kBAAY;AAAA,IACd;AACA,UAAM,YACJ,aAAa,WAAW,YAAY,WAAW,QAC3C,0BAA0B;AAAA,MACxB;AAAA,MACA,UAAU,UAAU;AAAA,MACpB,OAAO,UAAU;AAAA,IACnB,CAAC,IACD;AACN,UAAM,SAAS,wBAAwB,SAAS;AAChD,QAAI,SAAS,OAAO,QAAS;AAC7B,QAAI,cAAc,OAAO,UAAU,YAAY,UAAU;AACvD,YAAM,UAAU,qBAAqB,WAAW,EAAE,QAAQ,OAAO,UAAU,WAAW,CAAC;AACvF,gBAAU,iBAAiB;AAC3B,YAAM,UAAU,MAAM,QAAQ,QAAQ;AACtC,eAAS,OAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACjE,UAAI,OAAO,MAAM,MAAM;AAAE,iBAAS,OAAO,oBAAoB,SAAS,OAAO;AAAG,gBAAQ;AAAA,MAAG,CAAC;AAI5F,UAAI,IAAI,IAAI,OAAO,SAAS,IAAI,EAAE,aAAa,IAAI,wBAAwB;AACzE,cAAM,QAAQ;AAAA,IAClB;AACA,QAAI,SAAS,OAAO,QAAS;AAC7B,QAAI,QAAQ,uBAAuB,MAAM;AACzC,QAAI,UAAU,gBAAgB,QAAQ;AACpC,sBAAgB,+BAA+B,CAAC,CAAC;AACjD,YAAM,OAAO,6BAA6B,QAAQ,CAAC,YAAY,SAAS,aAAa,OAAO,CAAC;AAC7F,UAAI,OAAO,MAAM,IAAI;AAAA,IACvB,OAAO;AACL,sBAAgB,iCAAiC;AAAA,QAC/C,aAAa,QAAQ,QAAQ;AAAA,QAC7B,iBAAiB,QAAQ,UAAU,YAAY;AAAA,QAC/C,WAAW,QAAQ,MAAM;AAAA,MAC3B,GAAG,EAAE,OAAO,OAAO,CAAC;AAAA,IACtB;AAAA,EACF;AACF;AAEA,IAAO,0BAAQ;",
6
+ "names": []
7
+ }
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  backend_default
3
- } from "./chunk-YLCJNKIW.mjs";
3
+ } from "./chunk-MFEFV3YF.mjs";
4
4
  import {
5
5
  backend_default as backend_default3
6
- } from "./chunk-27XASYEH.mjs";
6
+ } from "./chunk-LCVL3V5U.mjs";
7
7
  import {
8
8
  backend_default as backend_default2
9
- } from "./chunk-55F55BQY.mjs";
9
+ } from "./chunk-MUBV2LNK.mjs";
10
10
  import {
11
11
  VIEW_PLUGIN_VERSION,
12
12
  VIEW_PRODUCT_PLUGINS,
13
13
  VIEW_WORKSPACE_CORE
14
- } from "./chunk-IJPWKKIU.mjs";
14
+ } from "./chunk-VD3C4DYT.mjs";
15
15
  import {
16
16
  BACKEND_MODULE
17
- } from "./chunk-AGVLPYVE.mjs";
17
+ } from "./chunk-SKZC6VTV.mjs";
18
18
  import {
19
19
  BACKEND_MODULE as BACKEND_MODULE2
20
- } from "./chunk-EWSCJF77.mjs";
20
+ } from "./chunk-OS7BK3FO.mjs";
21
21
 
22
22
  // packages/viewer/src/backend-catalog.ts
23
23
  var implementations = /* @__PURE__ */ new Map([
@@ -43,4 +43,4 @@ var VIEW_PRODUCT_BACKEND_CATALOG = new Map(
43
43
  export {
44
44
  VIEW_PRODUCT_BACKEND_CATALOG
45
45
  };
46
- //# sourceMappingURL=chunk-XQYF2P6M.mjs.map
46
+ //# sourceMappingURL=chunk-D3ISMGT6.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineWorkspaceOperations
3
- } from "./chunk-EZSGDSCC.mjs";
3
+ } from "./chunk-M7XSCLYV.mjs";
4
4
 
5
5
  // packages/view-plugin-plugins/src/api.ts
6
6
  var PLUGINS_OPERATION_DESCRIPTIONS = defineWorkspaceOperations([
@@ -12,4 +12,4 @@ var PLUGINS_OPERATION_DESCRIPTIONS = defineWorkspaceOperations([
12
12
  export {
13
13
  PLUGINS_OPERATION_DESCRIPTIONS
14
14
  };
15
- //# sourceMappingURL=chunk-OKQ5RBKO.mjs.map
15
+ //# sourceMappingURL=chunk-DC3PU6SO.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  reopenWorkspaceProject
3
- } from "./chunk-K2QZRFLE.mjs";
3
+ } from "./chunk-TPLT4PBX.mjs";
4
4
  import {
5
5
  PAGE_TYPE
6
- } from "./chunk-H256DQT6.mjs";
6
+ } from "./chunk-XOZ5EMNY.mjs";
7
7
  import {
8
8
  borrowSurface,
9
9
  keepSurfaceInContainer,
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-QW3ZY2AD.mjs";
12
12
  import {
13
13
  selectWorkspaceEditorSurfaceTarget
14
- } from "./chunk-ZIDEETK4.mjs";
14
+ } from "./chunk-JKDBKS7P.mjs";
15
15
  import {
16
16
  isViewTraceEnabled,
17
17
  traceInputAttach,
@@ -26,18 +26,18 @@ import {
26
26
  traceShellUpdate,
27
27
  traceSyncTargetSurfaces,
28
28
  traceView
29
- } from "./chunk-KAGFU64Y.mjs";
29
+ } from "./chunk-OGFZB75B.mjs";
30
30
  import {
31
31
  reportWorkspaceCommandError,
32
32
  workspaceDiagnosticRecord
33
- } from "./chunk-U5R6MVM4.mjs";
33
+ } from "./chunk-EQRDY5CQ.mjs";
34
34
  import {
35
35
  VIEW_DISPLAY_TAB_ID,
36
36
  VIEW_WORKSPACE_TAB_ID,
37
37
  cloneWorkspaceValue,
38
38
  requireWorkspaceString,
39
39
  workspaceUiFingerprint
40
- } from "./chunk-E3Z7GLFU.mjs";
40
+ } from "./chunk-QYJZ3SOV.mjs";
41
41
  import {
42
42
  createWorkspaceId
43
43
  } from "./chunk-4XEXLHX4.mjs";
@@ -1626,4 +1626,4 @@ export {
1626
1626
  ViewWorkspaceInputController,
1627
1627
  ViewWorkspaceShell
1628
1628
  };
1629
- //# sourceMappingURL=chunk-4T3D67CS.mjs.map
1629
+ //# sourceMappingURL=chunk-DJKXBCZH.mjs.map
@@ -2,10 +2,10 @@ import {
2
2
  ViewWorkspaceInputController,
3
3
  ViewWorkspaceShell,
4
4
  createBrowserPagePresentation
5
- } from "./chunk-4T3D67CS.mjs";
5
+ } from "./chunk-DJKXBCZH.mjs";
6
6
  import {
7
7
  attachViewportRenderResizeSync
8
- } from "./chunk-PJFFCRRD.mjs";
8
+ } from "./chunk-LOVO3P2Q.mjs";
9
9
  import {
10
10
  readEnginePresentation
11
11
  } from "./chunk-IM3H4F4X.mjs";
@@ -16,10 +16,10 @@ import {
16
16
  PANEL_LAYOUT,
17
17
  SLOT,
18
18
  TITLE_I18N_KEY
19
- } from "./chunk-H256DQT6.mjs";
19
+ } from "./chunk-XOZ5EMNY.mjs";
20
20
  import {
21
21
  createWorkspaceStateReader
22
- } from "./chunk-TXLD7JI5.mjs";
22
+ } from "./chunk-QQP7ZGQD.mjs";
23
23
 
24
24
  // packages/view-plugin-viewport/src/page-input-gate.ts
25
25
  function attachViewportPageInputGate({ element, input, pageType = PAGE_TYPE, document } = {}) {
@@ -493,4 +493,4 @@ export {
493
493
  viewViewportFrontendPlugin,
494
494
  frontend_default
495
495
  };
496
- //# sourceMappingURL=chunk-E3PJGTLI.mjs.map
496
+ //# sourceMappingURL=chunk-DX4M6LZH.mjs.map
@@ -16,20 +16,20 @@ import {
16
16
  import {
17
17
  PAGE_TYPE,
18
18
  RESOURCE_KINDS
19
- } from "./chunk-PZIAKZJC.mjs";
19
+ } from "./chunk-R6MT6F3T.mjs";
20
20
  import {
21
21
  bindWorkspacePreviewSurface
22
- } from "./chunk-B6QUJ33G.mjs";
22
+ } from "./chunk-25PFC2DY.mjs";
23
23
  import {
24
24
  selectWorkspaceResourcePreview,
25
25
  selectWorkspaceResourceSubject
26
- } from "./chunk-ZIDEETK4.mjs";
26
+ } from "./chunk-JKDBKS7P.mjs";
27
27
  import {
28
28
  createWorkspaceStateReader
29
- } from "./chunk-TXLD7JI5.mjs";
29
+ } from "./chunk-QQP7ZGQD.mjs";
30
30
  import {
31
31
  VIEW_WORKSPACE_TAB_ID
32
- } from "./chunk-E3Z7GLFU.mjs";
32
+ } from "./chunk-QYJZ3SOV.mjs";
33
33
  import {
34
34
  createWorkspaceId
35
35
  } from "./chunk-4XEXLHX4.mjs";
@@ -410,4 +410,4 @@ export {
410
410
  mountMaterialPropertiesPanel,
411
411
  mountMaterialPreviewPanel
412
412
  };
413
- //# sourceMappingURL=chunk-IZAHIOFU.mjs.map
413
+ //# sourceMappingURL=chunk-EOW4JGVV.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isOpaqueWorkspaceDiagnostic
3
- } from "./chunk-E3Z7GLFU.mjs";
3
+ } from "./chunk-QYJZ3SOV.mjs";
4
4
 
5
5
  // packages/view-workspace-core/src/command-error.ts
6
6
  function workspaceDiagnosticRecord(value) {
@@ -121,4 +121,4 @@ export {
121
121
  subscribeWorkspaceCommandErrors,
122
122
  reportWorkspaceCommandError
123
123
  };
124
- //# sourceMappingURL=chunk-U5R6MVM4.mjs.map
124
+ //# sourceMappingURL=chunk-EQRDY5CQ.mjs.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  PLUGINS_OPERATION_DESCRIPTIONS
3
- } from "./chunk-OKQ5RBKO.mjs";
3
+ } from "./chunk-DC3PU6SO.mjs";
4
4
  import {
5
5
  BACKEND_MODULE,
6
6
  BACKEND_PLUGIN_ID
7
- } from "./chunk-EWSCJF77.mjs";
7
+ } from "./chunk-OS7BK3FO.mjs";
8
8
  import {
9
9
  reportWorkspaceCommandError,
10
10
  workspaceDiagnosticRecord
11
- } from "./chunk-U5R6MVM4.mjs";
11
+ } from "./chunk-EQRDY5CQ.mjs";
12
12
  import {
13
13
  VIEW_WORKSPACE_API_VERSION,
14
14
  VIEW_WORKSPACE_DOMAIN_OPERATIONS,
@@ -18,7 +18,7 @@ import {
18
18
  requireWorkspaceObject,
19
19
  requireWorkspaceString,
20
20
  workspaceError
21
- } from "./chunk-E3Z7GLFU.mjs";
21
+ } from "./chunk-QYJZ3SOV.mjs";
22
22
  import {
23
23
  createWorkspaceId
24
24
  } from "./chunk-4XEXLHX4.mjs";
@@ -1344,4 +1344,4 @@ export {
1344
1344
  ViewInspectorPanel,
1345
1345
  viewInspectorFrontendPlugin
1346
1346
  };
1347
- //# sourceMappingURL=chunk-7IGFAI5H.mjs.map
1347
+ //# sourceMappingURL=chunk-EW7VMNZA.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  RESOURCE_PREVIEW_LAYOUT,
3
3
  RESOURCE_PROPERTIES_LAYOUT
4
- } from "./chunk-KX2WU5Z6.mjs";
4
+ } from "./chunk-WC6NGMGI.mjs";
5
5
  import {
6
6
  VIEW_PAGE_TYPES
7
- } from "./chunk-E3Z7GLFU.mjs";
7
+ } from "./chunk-QYJZ3SOV.mjs";
8
8
  import {
9
9
  __export
10
10
  } from "./chunk-FLGC65SR.mjs";
@@ -74,4 +74,4 @@ export {
74
74
  PROPERTIES_TITLE_I18N_KEY,
75
75
  identity_exports
76
76
  };
77
- //# sourceMappingURL=chunk-FMCHH5R4.mjs.map
77
+ //# sourceMappingURL=chunk-FSSKCXPL.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createWorkspaceStateReader
3
- } from "./chunk-TXLD7JI5.mjs";
3
+ } from "./chunk-QQP7ZGQD.mjs";
4
4
 
5
5
  // packages/view-plugin-viewport/src/play-presentation.ts
6
6
  var viewPlayPresentationPlugin = {
@@ -96,4 +96,4 @@ var viewPlayPresentationPlugin = {
96
96
  export {
97
97
  viewPlayPresentationPlugin
98
98
  };
99
- //# sourceMappingURL=chunk-357UOBAS.mjs.map
99
+ //# sourceMappingURL=chunk-FSYQ3LBQ.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  RESOURCE_FALLBACK_LAYOUT
3
- } from "./chunk-KX2WU5Z6.mjs";
3
+ } from "./chunk-WC6NGMGI.mjs";
4
4
  import {
5
5
  VIEW_PAGE_TYPES
6
- } from "./chunk-E3Z7GLFU.mjs";
6
+ } from "./chunk-QYJZ3SOV.mjs";
7
7
  import {
8
8
  __export
9
9
  } from "./chunk-FLGC65SR.mjs";
@@ -55,4 +55,4 @@ export {
55
55
  PROPERTIES_TITLE_I18N_KEY,
56
56
  identity_exports
57
57
  };
58
- //# sourceMappingURL=chunk-D25SR5FS.mjs.map
58
+ //# sourceMappingURL=chunk-FVSDKOXR.mjs.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  VIEW_PRODUCT_FRONTEND_CATALOG
3
- } from "./chunk-RJVOH7G2.mjs";
3
+ } from "./chunk-L24HPIQP.mjs";
4
4
  import {
5
5
  VIEW_FRONTEND_ROOT_PROGRAM,
6
6
  createViewProductPlan
7
- } from "./chunk-IJPWKKIU.mjs";
7
+ } from "./chunk-VD3C4DYT.mjs";
8
8
  import {
9
9
  viewInspectorFrontendPlugin
10
- } from "./chunk-7IGFAI5H.mjs";
10
+ } from "./chunk-EW7VMNZA.mjs";
11
11
 
12
12
  // packages/viewer/src/frontend-root.ts
13
13
  import { Inject } from "@forgeax/engine/plugin";
@@ -150,4 +150,4 @@ export {
150
150
  createViewFrontendRoot,
151
151
  frontend_root_default
152
152
  };
153
- //# sourceMappingURL=chunk-XMP4THLF.mjs.map
153
+ //# sourceMappingURL=chunk-J7QRK3FU.mjs.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  cliContributions
3
- } from "./chunk-KI4WGTWL.mjs";
3
+ } from "./chunk-5WVRCLHN.mjs";
4
4
  import {
5
5
  backend_default
6
- } from "./chunk-55F55BQY.mjs";
6
+ } from "./chunk-MUBV2LNK.mjs";
7
7
  import {
8
8
  frontend_default
9
- } from "./chunk-4D3Q7K44.mjs";
9
+ } from "./chunk-SSVRSFTX.mjs";
10
10
  import {
11
11
  identity_exports
12
- } from "./chunk-EWSCJF77.mjs";
12
+ } from "./chunk-OS7BK3FO.mjs";
13
13
 
14
14
  // packages/view-plugin-plugins/src/index.ts
15
15
  var src_default = {
@@ -38,4 +38,4 @@ export {
38
38
  VIEW_CLI_CONTRIBUTION_ID,
39
39
  createViewCliContributions
40
40
  };
41
- //# sourceMappingURL=chunk-D57DDEV2.mjs.map
41
+ //# sourceMappingURL=chunk-JE4N575J.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  traceView
3
- } from "./chunk-KAGFU64Y.mjs";
3
+ } from "./chunk-OGFZB75B.mjs";
4
4
  import {
5
5
  createWorkspaceStateReader
6
- } from "./chunk-TXLD7JI5.mjs";
6
+ } from "./chunk-QQP7ZGQD.mjs";
7
7
 
8
8
  // packages/view-workspace-core/src/resource-open.ts
9
9
  var LOG_PREFIX = "[forgeax.view.resource-open]";
@@ -162,4 +162,4 @@ export {
162
162
  selectWorkspaceResourcePreview,
163
163
  observeWorkspaceOpenRequests
164
164
  };
165
- //# sourceMappingURL=chunk-ZIDEETK4.mjs.map
165
+ //# sourceMappingURL=chunk-JKDBKS7P.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createViewWorkspaceClient
3
- } from "./chunk-FNRGLCZW.mjs";
3
+ } from "./chunk-4RTL3LS3.mjs";
4
4
  import {
5
5
  requireWorkspaceString,
6
6
  workspaceError
7
- } from "./chunk-E3Z7GLFU.mjs";
7
+ } from "./chunk-QYJZ3SOV.mjs";
8
8
 
9
9
  // packages/view-workspace-core/src/resident.ts
10
10
  import { createReadStream, existsSync, statSync } from "node:fs";
@@ -295,4 +295,4 @@ export {
295
295
  startViewHostServer,
296
296
  connectViewWorkspace
297
297
  };
298
- //# sourceMappingURL=chunk-U5J7OTEB.mjs.map
298
+ //# sourceMappingURL=chunk-K4C5WOTT.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VIEW_PAGE_TYPES
3
- } from "./chunk-E3Z7GLFU.mjs";
3
+ } from "./chunk-QYJZ3SOV.mjs";
4
4
  import {
5
5
  __export
6
6
  } from "./chunk-FLGC65SR.mjs";
@@ -39,4 +39,4 @@ export {
39
39
  TITLE_I18N_KEY,
40
40
  identity_exports
41
41
  };
42
- //# sourceMappingURL=chunk-QUFVUMSY.mjs.map
42
+ //# sourceMappingURL=chunk-KOBAWLZL.mjs.map
@@ -5,7 +5,7 @@ import {
5
5
  PANEL_LAYOUT,
6
6
  SLOT,
7
7
  TITLE_I18N_KEY
8
- } from "./chunk-QUFVUMSY.mjs";
8
+ } from "./chunk-KOBAWLZL.mjs";
9
9
 
10
10
  // packages/view-plugin-inspector/src/frontend.ts
11
11
  var VIEW_OBJECT_INSPECTOR_FRONTEND_PLUGIN_ID = FRONTEND_PLUGIN_ID;
@@ -39,4 +39,4 @@ export {
39
39
  viewObjectInspectorFrontendPlugin,
40
40
  frontend_default
41
41
  };
42
- //# sourceMappingURL=chunk-CX5WREJC.mjs.map
42
+ //# sourceMappingURL=chunk-KY2AWNDR.mjs.map