@forgeax/view 0.2.1-beta-20260924075842

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 (585) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +742 -0
  3. package/dist/modules/backend.mjs +54 -0
  4. package/dist/modules/backend.mjs.map +7 -0
  5. package/dist/modules/browser.mjs +180 -0
  6. package/dist/modules/browser.mjs.map +7 -0
  7. package/dist/modules/carrier-contract.mjs +38 -0
  8. package/dist/modules/carrier-contract.mjs.map +7 -0
  9. package/dist/modules/carrier.mjs +13 -0
  10. package/dist/modules/carrier.mjs.map +7 -0
  11. package/dist/modules/chunks/chunk-2ASWB6IX.mjs +225 -0
  12. package/dist/modules/chunks/chunk-2ASWB6IX.mjs.map +7 -0
  13. package/dist/modules/chunks/chunk-2IJKOG2F.mjs +801 -0
  14. package/dist/modules/chunks/chunk-2IJKOG2F.mjs.map +7 -0
  15. package/dist/modules/chunks/chunk-2K3BBJ5S.mjs +9 -0
  16. package/dist/modules/chunks/chunk-2K3BBJ5S.mjs.map +7 -0
  17. package/dist/modules/chunks/chunk-32GD5LL6.mjs +482 -0
  18. package/dist/modules/chunks/chunk-32GD5LL6.mjs.map +7 -0
  19. package/dist/modules/chunks/chunk-3B4KFAEC.mjs +10 -0
  20. package/dist/modules/chunks/chunk-3B4KFAEC.mjs.map +7 -0
  21. package/dist/modules/chunks/chunk-46O5WX43.mjs +25 -0
  22. package/dist/modules/chunks/chunk-46O5WX43.mjs.map +7 -0
  23. package/dist/modules/chunks/chunk-47J5JXAB.mjs +237 -0
  24. package/dist/modules/chunks/chunk-47J5JXAB.mjs.map +7 -0
  25. package/dist/modules/chunks/chunk-4BXQOUDQ.mjs +17 -0
  26. package/dist/modules/chunks/chunk-4BXQOUDQ.mjs.map +7 -0
  27. package/dist/modules/chunks/chunk-4GQWYU2V.mjs +126 -0
  28. package/dist/modules/chunks/chunk-4GQWYU2V.mjs.map +7 -0
  29. package/dist/modules/chunks/chunk-4N5X2PRQ.mjs +48 -0
  30. package/dist/modules/chunks/chunk-4N5X2PRQ.mjs.map +7 -0
  31. package/dist/modules/chunks/chunk-4WXD2KYX.mjs +56 -0
  32. package/dist/modules/chunks/chunk-4WXD2KYX.mjs.map +7 -0
  33. package/dist/modules/chunks/chunk-6ZWWVAZK.mjs +468 -0
  34. package/dist/modules/chunks/chunk-6ZWWVAZK.mjs.map +7 -0
  35. package/dist/modules/chunks/chunk-73UZNRHN.mjs +296 -0
  36. package/dist/modules/chunks/chunk-73UZNRHN.mjs.map +7 -0
  37. package/dist/modules/chunks/chunk-7ITLCRND.mjs +10 -0
  38. package/dist/modules/chunks/chunk-7ITLCRND.mjs.map +7 -0
  39. package/dist/modules/chunks/chunk-7TGVWKH7.mjs +59 -0
  40. package/dist/modules/chunks/chunk-7TGVWKH7.mjs.map +7 -0
  41. package/dist/modules/chunks/chunk-7URFF53W.mjs +42 -0
  42. package/dist/modules/chunks/chunk-7URFF53W.mjs.map +7 -0
  43. package/dist/modules/chunks/chunk-7YSDRIFN.mjs +14 -0
  44. package/dist/modules/chunks/chunk-7YSDRIFN.mjs.map +7 -0
  45. package/dist/modules/chunks/chunk-AAFVCQPK.mjs +52 -0
  46. package/dist/modules/chunks/chunk-AAFVCQPK.mjs.map +7 -0
  47. package/dist/modules/chunks/chunk-AEK7ZESQ.mjs +18 -0
  48. package/dist/modules/chunks/chunk-AEK7ZESQ.mjs.map +7 -0
  49. package/dist/modules/chunks/chunk-AL6ZWIEU.mjs +42 -0
  50. package/dist/modules/chunks/chunk-AL6ZWIEU.mjs.map +7 -0
  51. package/dist/modules/chunks/chunk-ALT7XVMQ.mjs +73 -0
  52. package/dist/modules/chunks/chunk-ALT7XVMQ.mjs.map +7 -0
  53. package/dist/modules/chunks/chunk-ASI2HBE6.mjs +116 -0
  54. package/dist/modules/chunks/chunk-ASI2HBE6.mjs.map +7 -0
  55. package/dist/modules/chunks/chunk-ATWGCH7I.mjs +174 -0
  56. package/dist/modules/chunks/chunk-ATWGCH7I.mjs.map +7 -0
  57. package/dist/modules/chunks/chunk-C45U6IIY.mjs +692 -0
  58. package/dist/modules/chunks/chunk-C45U6IIY.mjs.map +7 -0
  59. package/dist/modules/chunks/chunk-C7R3YRA7.mjs +98 -0
  60. package/dist/modules/chunks/chunk-C7R3YRA7.mjs.map +7 -0
  61. package/dist/modules/chunks/chunk-CRMICXKN.mjs +87 -0
  62. package/dist/modules/chunks/chunk-CRMICXKN.mjs.map +7 -0
  63. package/dist/modules/chunks/chunk-CUH2G6UF.mjs +81 -0
  64. package/dist/modules/chunks/chunk-CUH2G6UF.mjs.map +7 -0
  65. package/dist/modules/chunks/chunk-D7GWRZLL.mjs +77 -0
  66. package/dist/modules/chunks/chunk-D7GWRZLL.mjs.map +7 -0
  67. package/dist/modules/chunks/chunk-DBWUIBE3.mjs +10 -0
  68. package/dist/modules/chunks/chunk-DBWUIBE3.mjs.map +7 -0
  69. package/dist/modules/chunks/chunk-DQWVWWUU.mjs +77 -0
  70. package/dist/modules/chunks/chunk-DQWVWWUU.mjs.map +7 -0
  71. package/dist/modules/chunks/chunk-DZZ2WFEU.mjs +122 -0
  72. package/dist/modules/chunks/chunk-DZZ2WFEU.mjs.map +7 -0
  73. package/dist/modules/chunks/chunk-E4UIAN26.mjs +58 -0
  74. package/dist/modules/chunks/chunk-E4UIAN26.mjs.map +7 -0
  75. package/dist/modules/chunks/chunk-EJGBVKFE.mjs +77 -0
  76. package/dist/modules/chunks/chunk-EJGBVKFE.mjs.map +7 -0
  77. package/dist/modules/chunks/chunk-EPSTTHWV.mjs +173 -0
  78. package/dist/modules/chunks/chunk-EPSTTHWV.mjs.map +7 -0
  79. package/dist/modules/chunks/chunk-ER7T6QJ3.mjs +64 -0
  80. package/dist/modules/chunks/chunk-ER7T6QJ3.mjs.map +7 -0
  81. package/dist/modules/chunks/chunk-FD4BAJ6K.mjs +389 -0
  82. package/dist/modules/chunks/chunk-FD4BAJ6K.mjs.map +7 -0
  83. package/dist/modules/chunks/chunk-FJM6WWIY.mjs +80 -0
  84. package/dist/modules/chunks/chunk-FJM6WWIY.mjs.map +7 -0
  85. package/dist/modules/chunks/chunk-FKCQYDLX.mjs +162 -0
  86. package/dist/modules/chunks/chunk-FKCQYDLX.mjs.map +7 -0
  87. package/dist/modules/chunks/chunk-FLGC65SR.mjs +10 -0
  88. package/dist/modules/chunks/chunk-FLGC65SR.mjs.map +7 -0
  89. package/dist/modules/chunks/chunk-FMCACPX5.mjs +289 -0
  90. package/dist/modules/chunks/chunk-FMCACPX5.mjs.map +7 -0
  91. package/dist/modules/chunks/chunk-FOBRLUQV.mjs +51 -0
  92. package/dist/modules/chunks/chunk-FOBRLUQV.mjs.map +7 -0
  93. package/dist/modules/chunks/chunk-FV3DSKZB.mjs +33 -0
  94. package/dist/modules/chunks/chunk-FV3DSKZB.mjs.map +7 -0
  95. package/dist/modules/chunks/chunk-G7BAFAGO.mjs +98 -0
  96. package/dist/modules/chunks/chunk-G7BAFAGO.mjs.map +7 -0
  97. package/dist/modules/chunks/chunk-GQBZMCTK.mjs +145 -0
  98. package/dist/modules/chunks/chunk-GQBZMCTK.mjs.map +7 -0
  99. package/dist/modules/chunks/chunk-GYWIY7AL.mjs +131 -0
  100. package/dist/modules/chunks/chunk-GYWIY7AL.mjs.map +7 -0
  101. package/dist/modules/chunks/chunk-H3KNBALD.mjs +256 -0
  102. package/dist/modules/chunks/chunk-H3KNBALD.mjs.map +7 -0
  103. package/dist/modules/chunks/chunk-H3M22JDL.mjs +144 -0
  104. package/dist/modules/chunks/chunk-H3M22JDL.mjs.map +7 -0
  105. package/dist/modules/chunks/chunk-HES3DNTM.mjs +40 -0
  106. package/dist/modules/chunks/chunk-HES3DNTM.mjs.map +7 -0
  107. package/dist/modules/chunks/chunk-I5BFP7SS.mjs +2392 -0
  108. package/dist/modules/chunks/chunk-I5BFP7SS.mjs.map +7 -0
  109. package/dist/modules/chunks/chunk-IGRMZYRD.mjs +15 -0
  110. package/dist/modules/chunks/chunk-IGRMZYRD.mjs.map +7 -0
  111. package/dist/modules/chunks/chunk-IKNGC766.mjs +321 -0
  112. package/dist/modules/chunks/chunk-IKNGC766.mjs.map +7 -0
  113. package/dist/modules/chunks/chunk-IVHNYKZB.mjs +35 -0
  114. package/dist/modules/chunks/chunk-IVHNYKZB.mjs.map +7 -0
  115. package/dist/modules/chunks/chunk-JHOURMYW.mjs +101 -0
  116. package/dist/modules/chunks/chunk-JHOURMYW.mjs.map +7 -0
  117. package/dist/modules/chunks/chunk-JURXMRFA.mjs +282 -0
  118. package/dist/modules/chunks/chunk-JURXMRFA.mjs.map +7 -0
  119. package/dist/modules/chunks/chunk-JWZIREC3.mjs +18 -0
  120. package/dist/modules/chunks/chunk-JWZIREC3.mjs.map +7 -0
  121. package/dist/modules/chunks/chunk-KHRTIZ56.mjs +1400 -0
  122. package/dist/modules/chunks/chunk-KHRTIZ56.mjs.map +7 -0
  123. package/dist/modules/chunks/chunk-KLJZZ23J.mjs +102 -0
  124. package/dist/modules/chunks/chunk-KLJZZ23J.mjs.map +7 -0
  125. package/dist/modules/chunks/chunk-KNBAYU5I.mjs +49 -0
  126. package/dist/modules/chunks/chunk-KNBAYU5I.mjs.map +7 -0
  127. package/dist/modules/chunks/chunk-KSZNCFU4.mjs +125 -0
  128. package/dist/modules/chunks/chunk-KSZNCFU4.mjs.map +7 -0
  129. package/dist/modules/chunks/chunk-L45W6KM6.mjs +158 -0
  130. package/dist/modules/chunks/chunk-L45W6KM6.mjs.map +7 -0
  131. package/dist/modules/chunks/chunk-LERMYZRC.mjs +239 -0
  132. package/dist/modules/chunks/chunk-LERMYZRC.mjs.map +7 -0
  133. package/dist/modules/chunks/chunk-LKJCXYSJ.mjs +91 -0
  134. package/dist/modules/chunks/chunk-LKJCXYSJ.mjs.map +7 -0
  135. package/dist/modules/chunks/chunk-MBS3EICT.mjs +25 -0
  136. package/dist/modules/chunks/chunk-MBS3EICT.mjs.map +7 -0
  137. package/dist/modules/chunks/chunk-MUOQZPVH.mjs +609 -0
  138. package/dist/modules/chunks/chunk-MUOQZPVH.mjs.map +7 -0
  139. package/dist/modules/chunks/chunk-MVEPGFSB.mjs +1 -0
  140. package/dist/modules/chunks/chunk-MVEPGFSB.mjs.map +7 -0
  141. package/dist/modules/chunks/chunk-NBJKLWJ5.mjs +42 -0
  142. package/dist/modules/chunks/chunk-NBJKLWJ5.mjs.map +7 -0
  143. package/dist/modules/chunks/chunk-NBLGKTEM.mjs +86 -0
  144. package/dist/modules/chunks/chunk-NBLGKTEM.mjs.map +7 -0
  145. package/dist/modules/chunks/chunk-NI7CS3I2.mjs +110 -0
  146. package/dist/modules/chunks/chunk-NI7CS3I2.mjs.map +7 -0
  147. package/dist/modules/chunks/chunk-NJH2OJFC.mjs +2113 -0
  148. package/dist/modules/chunks/chunk-NJH2OJFC.mjs.map +7 -0
  149. package/dist/modules/chunks/chunk-OBK4LIJB.mjs +20 -0
  150. package/dist/modules/chunks/chunk-OBK4LIJB.mjs.map +7 -0
  151. package/dist/modules/chunks/chunk-PEUT3FW7.mjs +1 -0
  152. package/dist/modules/chunks/chunk-PEUT3FW7.mjs.map +7 -0
  153. package/dist/modules/chunks/chunk-PRZOWPDN.mjs +66 -0
  154. package/dist/modules/chunks/chunk-PRZOWPDN.mjs.map +7 -0
  155. package/dist/modules/chunks/chunk-Q4RXBGQS.mjs +55 -0
  156. package/dist/modules/chunks/chunk-Q4RXBGQS.mjs.map +7 -0
  157. package/dist/modules/chunks/chunk-QBHBKOIL.mjs +55 -0
  158. package/dist/modules/chunks/chunk-QBHBKOIL.mjs.map +7 -0
  159. package/dist/modules/chunks/chunk-QD6CCRMG.mjs +20 -0
  160. package/dist/modules/chunks/chunk-QD6CCRMG.mjs.map +7 -0
  161. package/dist/modules/chunks/chunk-QF4V23GW.mjs +39 -0
  162. package/dist/modules/chunks/chunk-QF4V23GW.mjs.map +7 -0
  163. package/dist/modules/chunks/chunk-QK6W7MJO.mjs +42 -0
  164. package/dist/modules/chunks/chunk-QK6W7MJO.mjs.map +7 -0
  165. package/dist/modules/chunks/chunk-QL7V6DK7.mjs +34 -0
  166. package/dist/modules/chunks/chunk-QL7V6DK7.mjs.map +7 -0
  167. package/dist/modules/chunks/chunk-QLBQQKRI.mjs +25 -0
  168. package/dist/modules/chunks/chunk-QLBQQKRI.mjs.map +7 -0
  169. package/dist/modules/chunks/chunk-QLZQGZDC.mjs +418 -0
  170. package/dist/modules/chunks/chunk-QLZQGZDC.mjs.map +7 -0
  171. package/dist/modules/chunks/chunk-QSKQZGK7.mjs +1625 -0
  172. package/dist/modules/chunks/chunk-QSKQZGK7.mjs.map +7 -0
  173. package/dist/modules/chunks/chunk-QURKBAG4.mjs +25 -0
  174. package/dist/modules/chunks/chunk-QURKBAG4.mjs.map +7 -0
  175. package/dist/modules/chunks/chunk-R274XBEH.mjs +53 -0
  176. package/dist/modules/chunks/chunk-R274XBEH.mjs.map +7 -0
  177. package/dist/modules/chunks/chunk-R4I4JEY5.mjs +77 -0
  178. package/dist/modules/chunks/chunk-R4I4JEY5.mjs.map +7 -0
  179. package/dist/modules/chunks/chunk-RR6L6VVR.mjs +9 -0
  180. package/dist/modules/chunks/chunk-RR6L6VVR.mjs.map +7 -0
  181. package/dist/modules/chunks/chunk-RXF7SBBZ.mjs +125 -0
  182. package/dist/modules/chunks/chunk-RXF7SBBZ.mjs.map +7 -0
  183. package/dist/modules/chunks/chunk-SR66S6EJ.mjs +138 -0
  184. package/dist/modules/chunks/chunk-SR66S6EJ.mjs.map +7 -0
  185. package/dist/modules/chunks/chunk-SSQMQJ52.mjs +27 -0
  186. package/dist/modules/chunks/chunk-SSQMQJ52.mjs.map +7 -0
  187. package/dist/modules/chunks/chunk-TP26TASL.mjs +20 -0
  188. package/dist/modules/chunks/chunk-TP26TASL.mjs.map +7 -0
  189. package/dist/modules/chunks/chunk-TSAEK5P3.mjs +50 -0
  190. package/dist/modules/chunks/chunk-TSAEK5P3.mjs.map +7 -0
  191. package/dist/modules/chunks/chunk-UAY27HT3.mjs +68 -0
  192. package/dist/modules/chunks/chunk-UAY27HT3.mjs.map +7 -0
  193. package/dist/modules/chunks/chunk-UDLIWGWS.mjs +103 -0
  194. package/dist/modules/chunks/chunk-UDLIWGWS.mjs.map +7 -0
  195. package/dist/modules/chunks/chunk-UDVQHPWV.mjs +89 -0
  196. package/dist/modules/chunks/chunk-UDVQHPWV.mjs.map +7 -0
  197. package/dist/modules/chunks/chunk-UM23W3G7.mjs +237 -0
  198. package/dist/modules/chunks/chunk-UM23W3G7.mjs.map +7 -0
  199. package/dist/modules/chunks/chunk-VDZJWEAA.mjs +214 -0
  200. package/dist/modules/chunks/chunk-VDZJWEAA.mjs.map +7 -0
  201. package/dist/modules/chunks/chunk-VIGOJWSO.mjs +42 -0
  202. package/dist/modules/chunks/chunk-VIGOJWSO.mjs.map +7 -0
  203. package/dist/modules/chunks/chunk-VY3S5BWI.mjs +284 -0
  204. package/dist/modules/chunks/chunk-VY3S5BWI.mjs.map +7 -0
  205. package/dist/modules/chunks/chunk-VZXGRZYU.mjs +47 -0
  206. package/dist/modules/chunks/chunk-VZXGRZYU.mjs.map +7 -0
  207. package/dist/modules/chunks/chunk-W5DMQZB5.mjs +42 -0
  208. package/dist/modules/chunks/chunk-W5DMQZB5.mjs.map +7 -0
  209. package/dist/modules/chunks/chunk-WOMHSTVZ.mjs +918 -0
  210. package/dist/modules/chunks/chunk-WOMHSTVZ.mjs.map +7 -0
  211. package/dist/modules/chunks/chunk-XFQT7XCG.mjs +42 -0
  212. package/dist/modules/chunks/chunk-XFQT7XCG.mjs.map +7 -0
  213. package/dist/modules/chunks/chunk-XJZEVRYX.mjs +98 -0
  214. package/dist/modules/chunks/chunk-XJZEVRYX.mjs.map +7 -0
  215. package/dist/modules/chunks/chunk-XUYFV23R.mjs +317 -0
  216. package/dist/modules/chunks/chunk-XUYFV23R.mjs.map +7 -0
  217. package/dist/modules/chunks/chunk-Y5HXCPPQ.mjs +58 -0
  218. package/dist/modules/chunks/chunk-Y5HXCPPQ.mjs.map +7 -0
  219. package/dist/modules/chunks/chunk-YTHGRKGI.mjs +147 -0
  220. package/dist/modules/chunks/chunk-YTHGRKGI.mjs.map +7 -0
  221. package/dist/modules/chunks/chunk-YVQSDKAO.mjs +341 -0
  222. package/dist/modules/chunks/chunk-YVQSDKAO.mjs.map +7 -0
  223. package/dist/modules/chunks/chunk-YYXQDUVT.mjs +123 -0
  224. package/dist/modules/chunks/chunk-YYXQDUVT.mjs.map +7 -0
  225. package/dist/modules/chunks/chunk-ZFXZ2NUI.mjs +142 -0
  226. package/dist/modules/chunks/chunk-ZFXZ2NUI.mjs.map +7 -0
  227. package/dist/modules/chunks/chunk-ZLNWF4ET.mjs +9 -0
  228. package/dist/modules/chunks/chunk-ZLNWF4ET.mjs.map +7 -0
  229. package/dist/modules/chunks/chunk-ZLU5QW2O.mjs +9 -0
  230. package/dist/modules/chunks/chunk-ZLU5QW2O.mjs.map +7 -0
  231. package/dist/modules/chunks/chunk-ZNZPYE2V.mjs +28 -0
  232. package/dist/modules/chunks/chunk-ZNZPYE2V.mjs.map +7 -0
  233. package/dist/modules/chunks/core-564N45MO.mjs +7480 -0
  234. package/dist/modules/chunks/core-564N45MO.mjs.map +7 -0
  235. package/dist/modules/chunks/css-BKH4SVJG.mjs +8 -0
  236. package/dist/modules/chunks/css-BKH4SVJG.mjs.map +7 -0
  237. package/dist/modules/chunks/engine-javascript-PDVIGNGR.mjs +3241 -0
  238. package/dist/modules/chunks/engine-javascript-PDVIGNGR.mjs.map +7 -0
  239. package/dist/modules/chunks/github-dark-default-6HVTHEWF.mjs +8 -0
  240. package/dist/modules/chunks/github-dark-default-6HVTHEWF.mjs.map +7 -0
  241. package/dist/modules/chunks/github-light-default-LAXRA6XL.mjs +8 -0
  242. package/dist/modules/chunks/github-light-default-LAXRA6XL.mjs.map +7 -0
  243. package/dist/modules/chunks/glsl-UC3YWUD2.mjs +18 -0
  244. package/dist/modules/chunks/glsl-UC3YWUD2.mjs.map +7 -0
  245. package/dist/modules/chunks/html-FRVIUV63.mjs +19 -0
  246. package/dist/modules/chunks/html-FRVIUV63.mjs.map +7 -0
  247. package/dist/modules/chunks/javascript-LN3OC7S2.mjs +8 -0
  248. package/dist/modules/chunks/javascript-LN3OC7S2.mjs.map +7 -0
  249. package/dist/modules/chunks/json-5CUGWTOP.mjs +11 -0
  250. package/dist/modules/chunks/json-5CUGWTOP.mjs.map +7 -0
  251. package/dist/modules/chunks/json5-YZQI5VNO.mjs +11 -0
  252. package/dist/modules/chunks/json5-YZQI5VNO.mjs.map +7 -0
  253. package/dist/modules/chunks/jsonc-SWID6VOZ.mjs +11 -0
  254. package/dist/modules/chunks/jsonc-SWID6VOZ.mjs.map +7 -0
  255. package/dist/modules/chunks/jsx-A7RDCLJO.mjs +11 -0
  256. package/dist/modules/chunks/jsx-A7RDCLJO.mjs.map +7 -0
  257. package/dist/modules/chunks/markdown-QTCU5KP5.mjs +11 -0
  258. package/dist/modules/chunks/markdown-QTCU5KP5.mjs.map +7 -0
  259. package/dist/modules/chunks/python-LAZONBIB.mjs +11 -0
  260. package/dist/modules/chunks/python-LAZONBIB.mjs.map +7 -0
  261. package/dist/modules/chunks/rust-XWTPJFJO.mjs +11 -0
  262. package/dist/modules/chunks/rust-XWTPJFJO.mjs.map +7 -0
  263. package/dist/modules/chunks/scss-CFXRHUUW.mjs +15 -0
  264. package/dist/modules/chunks/scss-CFXRHUUW.mjs.map +7 -0
  265. package/dist/modules/chunks/shellscript-OHO3LCVU.mjs +11 -0
  266. package/dist/modules/chunks/shellscript-OHO3LCVU.mjs.map +7 -0
  267. package/dist/modules/chunks/toml-IOHFZJ5B.mjs +11 -0
  268. package/dist/modules/chunks/toml-IOHFZJ5B.mjs.map +7 -0
  269. package/dist/modules/chunks/tsx-2E6WNX2E.mjs +11 -0
  270. package/dist/modules/chunks/tsx-2E6WNX2E.mjs.map +7 -0
  271. package/dist/modules/chunks/typescript-PBKAS54P.mjs +11 -0
  272. package/dist/modules/chunks/typescript-PBKAS54P.mjs.map +7 -0
  273. package/dist/modules/chunks/wgsl-PS6QPRLZ.mjs +11 -0
  274. package/dist/modules/chunks/wgsl-PS6QPRLZ.mjs.map +7 -0
  275. package/dist/modules/chunks/xml-JECR2ACB.mjs +18 -0
  276. package/dist/modules/chunks/xml-JECR2ACB.mjs.map +7 -0
  277. package/dist/modules/chunks/yaml-P2SV4LOE.mjs +11 -0
  278. package/dist/modules/chunks/yaml-P2SV4LOE.mjs.map +7 -0
  279. package/dist/modules/cli-contributions.mjs +32 -0
  280. package/dist/modules/cli-contributions.mjs.map +7 -0
  281. package/dist/modules/cli.mjs +14 -0
  282. package/dist/modules/cli.mjs.map +7 -0
  283. package/dist/modules/command-executor.mjs +65 -0
  284. package/dist/modules/command-executor.mjs.map +7 -0
  285. package/dist/modules/commands.mjs +10 -0
  286. package/dist/modules/commands.mjs.map +7 -0
  287. package/dist/modules/embedded.mjs +18608 -0
  288. package/dist/modules/embedded.mjs.map +7 -0
  289. package/dist/modules/extension-bridge.mjs +18 -0
  290. package/dist/modules/extension-bridge.mjs.map +7 -0
  291. package/dist/modules/frontend-root.mjs +61 -0
  292. package/dist/modules/frontend-root.mjs.map +7 -0
  293. package/dist/modules/index.mjs +784 -0
  294. package/dist/modules/index.mjs.map +7 -0
  295. package/dist/modules/page.mjs +45 -0
  296. package/dist/modules/page.mjs.map +7 -0
  297. package/dist/modules/pages/scene.mjs +18 -0
  298. package/dist/modules/pages/scene.mjs.map +7 -0
  299. package/dist/modules/plugin.mjs +56 -0
  300. package/dist/modules/plugin.mjs.map +7 -0
  301. package/dist/modules/plugins/asset/frontend.mjs +23 -0
  302. package/dist/modules/plugins/asset/frontend.mjs.map +7 -0
  303. package/dist/modules/plugins/asset/i18n.mjs +15 -0
  304. package/dist/modules/plugins/asset/i18n.mjs.map +7 -0
  305. package/dist/modules/plugins/asset/identity.mjs +42 -0
  306. package/dist/modules/plugins/asset/identity.mjs.map +7 -0
  307. package/dist/modules/plugins/asset/schema.mjs +10 -0
  308. package/dist/modules/plugins/asset/schema.mjs.map +7 -0
  309. package/dist/modules/plugins/asset/ui.mjs +16 -0
  310. package/dist/modules/plugins/asset/ui.mjs.map +7 -0
  311. package/dist/modules/plugins/content-browser/frontend.mjs +17 -0
  312. package/dist/modules/plugins/content-browser/frontend.mjs.map +7 -0
  313. package/dist/modules/plugins/content-browser/i18n.mjs +15 -0
  314. package/dist/modules/plugins/content-browser/i18n.mjs.map +7 -0
  315. package/dist/modules/plugins/content-browser/identity.mjs +22 -0
  316. package/dist/modules/plugins/content-browser/identity.mjs.map +7 -0
  317. package/dist/modules/plugins/content-browser/schema.mjs +12 -0
  318. package/dist/modules/plugins/content-browser/schema.mjs.map +7 -0
  319. package/dist/modules/plugins/content-browser/ui.mjs +15 -0
  320. package/dist/modules/plugins/content-browser/ui.mjs.map +7 -0
  321. package/dist/modules/plugins/display/api.mjs +10 -0
  322. package/dist/modules/plugins/display/api.mjs.map +7 -0
  323. package/dist/modules/plugins/display/backend.mjs +16 -0
  324. package/dist/modules/plugins/display/backend.mjs.map +7 -0
  325. package/dist/modules/plugins/display/carrier-contract.mjs +38 -0
  326. package/dist/modules/plugins/display/carrier-contract.mjs.map +7 -0
  327. package/dist/modules/plugins/display/carrier.mjs +13 -0
  328. package/dist/modules/plugins/display/carrier.mjs.map +7 -0
  329. package/dist/modules/plugins/display/effects.mjs +8 -0
  330. package/dist/modules/plugins/display/effects.mjs.map +7 -0
  331. package/dist/modules/plugins/display/frontend.mjs +14 -0
  332. package/dist/modules/plugins/display/frontend.mjs.map +7 -0
  333. package/dist/modules/plugins/display/i18n.mjs +58 -0
  334. package/dist/modules/plugins/display/i18n.mjs.map +7 -0
  335. package/dist/modules/plugins/display/identity.mjs +30 -0
  336. package/dist/modules/plugins/display/identity.mjs.map +7 -0
  337. package/dist/modules/plugins/display/page-broker.mjs +12 -0
  338. package/dist/modules/plugins/display/page-broker.mjs.map +7 -0
  339. package/dist/modules/plugins/display/schema.mjs +40 -0
  340. package/dist/modules/plugins/display/schema.mjs.map +7 -0
  341. package/dist/modules/plugins/display/ui.mjs +9 -0
  342. package/dist/modules/plugins/display/ui.mjs.map +7 -0
  343. package/dist/modules/plugins/inspector/frontend.mjs +17 -0
  344. package/dist/modules/plugins/inspector/frontend.mjs.map +7 -0
  345. package/dist/modules/plugins/inspector/i18n.mjs +15 -0
  346. package/dist/modules/plugins/inspector/i18n.mjs.map +7 -0
  347. package/dist/modules/plugins/inspector/identity.mjs +22 -0
  348. package/dist/modules/plugins/inspector/identity.mjs.map +7 -0
  349. package/dist/modules/plugins/inspector/schema.mjs +12 -0
  350. package/dist/modules/plugins/inspector/schema.mjs.map +7 -0
  351. package/dist/modules/plugins/inspector/ui.mjs +16 -0
  352. package/dist/modules/plugins/inspector/ui.mjs.map +7 -0
  353. package/dist/modules/plugins/material/frontend.mjs +25 -0
  354. package/dist/modules/plugins/material/frontend.mjs.map +7 -0
  355. package/dist/modules/plugins/material/i18n.mjs +15 -0
  356. package/dist/modules/plugins/material/i18n.mjs.map +7 -0
  357. package/dist/modules/plugins/material/identity.mjs +60 -0
  358. package/dist/modules/plugins/material/identity.mjs.map +7 -0
  359. package/dist/modules/plugins/material/schema.mjs +47 -0
  360. package/dist/modules/plugins/material/schema.mjs.map +7 -0
  361. package/dist/modules/plugins/material/ui.mjs +28 -0
  362. package/dist/modules/plugins/material/ui.mjs.map +7 -0
  363. package/dist/modules/plugins/mesh/frontend.mjs +23 -0
  364. package/dist/modules/plugins/mesh/frontend.mjs.map +7 -0
  365. package/dist/modules/plugins/mesh/i18n.mjs +15 -0
  366. package/dist/modules/plugins/mesh/i18n.mjs.map +7 -0
  367. package/dist/modules/plugins/mesh/identity.mjs +54 -0
  368. package/dist/modules/plugins/mesh/identity.mjs.map +7 -0
  369. package/dist/modules/plugins/mesh/schema.mjs +10 -0
  370. package/dist/modules/plugins/mesh/schema.mjs.map +7 -0
  371. package/dist/modules/plugins/mesh/ui.mjs +26 -0
  372. package/dist/modules/plugins/mesh/ui.mjs.map +7 -0
  373. package/dist/modules/plugins/plugins/api.mjs +11 -0
  374. package/dist/modules/plugins/plugins/api.mjs.map +7 -0
  375. package/dist/modules/plugins/plugins/backend.mjs +21 -0
  376. package/dist/modules/plugins/plugins/backend.mjs.map +7 -0
  377. package/dist/modules/plugins/plugins/cli.mjs +12 -0
  378. package/dist/modules/plugins/plugins/cli.mjs.map +7 -0
  379. package/dist/modules/plugins/plugins/frontend.mjs +17 -0
  380. package/dist/modules/plugins/plugins/frontend.mjs.map +7 -0
  381. package/dist/modules/plugins/plugins/i18n.mjs +15 -0
  382. package/dist/modules/plugins/plugins/i18n.mjs.map +7 -0
  383. package/dist/modules/plugins/plugins/identity.mjs +26 -0
  384. package/dist/modules/plugins/plugins/identity.mjs.map +7 -0
  385. package/dist/modules/plugins/plugins/runtime.mjs +50 -0
  386. package/dist/modules/plugins/plugins/runtime.mjs.map +7 -0
  387. package/dist/modules/plugins/plugins/schema.mjs +12 -0
  388. package/dist/modules/plugins/plugins/schema.mjs.map +7 -0
  389. package/dist/modules/plugins/plugins/ui/panel.mjs +14 -0
  390. package/dist/modules/plugins/plugins/ui/panel.mjs.map +7 -0
  391. package/dist/modules/plugins/plugins/ui.mjs +15 -0
  392. package/dist/modules/plugins/plugins/ui.mjs.map +7 -0
  393. package/dist/modules/plugins/scene/frontend.mjs +18 -0
  394. package/dist/modules/plugins/scene/frontend.mjs.map +7 -0
  395. package/dist/modules/plugins/scene/identity.mjs +14 -0
  396. package/dist/modules/plugins/scene/identity.mjs.map +7 -0
  397. package/dist/modules/plugins/scene-tree/frontend.mjs +17 -0
  398. package/dist/modules/plugins/scene-tree/frontend.mjs.map +7 -0
  399. package/dist/modules/plugins/scene-tree/i18n.mjs +15 -0
  400. package/dist/modules/plugins/scene-tree/i18n.mjs.map +7 -0
  401. package/dist/modules/plugins/scene-tree/identity.mjs +22 -0
  402. package/dist/modules/plugins/scene-tree/identity.mjs.map +7 -0
  403. package/dist/modules/plugins/scene-tree/schema.mjs +12 -0
  404. package/dist/modules/plugins/scene-tree/schema.mjs.map +7 -0
  405. package/dist/modules/plugins/scene-tree/ui.mjs +16 -0
  406. package/dist/modules/plugins/scene-tree/ui.mjs.map +7 -0
  407. package/dist/modules/plugins/texture/frontend.mjs +23 -0
  408. package/dist/modules/plugins/texture/frontend.mjs.map +7 -0
  409. package/dist/modules/plugins/texture/i18n.mjs +15 -0
  410. package/dist/modules/plugins/texture/i18n.mjs.map +7 -0
  411. package/dist/modules/plugins/texture/identity.mjs +54 -0
  412. package/dist/modules/plugins/texture/identity.mjs.map +7 -0
  413. package/dist/modules/plugins/texture/schema.mjs +10 -0
  414. package/dist/modules/plugins/texture/schema.mjs.map +7 -0
  415. package/dist/modules/plugins/texture/ui.mjs +26 -0
  416. package/dist/modules/plugins/texture/ui.mjs.map +7 -0
  417. package/dist/modules/plugins/viewport/frontend.mjs +27 -0
  418. package/dist/modules/plugins/viewport/frontend.mjs.map +7 -0
  419. package/dist/modules/plugins/viewport/identity.mjs +28 -0
  420. package/dist/modules/plugins/viewport/identity.mjs.map +7 -0
  421. package/dist/modules/plugins/viewport/presentation-identity.mjs +10 -0
  422. package/dist/modules/plugins/viewport/presentation-identity.mjs.map +7 -0
  423. package/dist/modules/plugins/viewport/presentation.mjs +18 -0
  424. package/dist/modules/plugins/viewport/presentation.mjs.map +7 -0
  425. package/dist/modules/plugins/viewport/schema.mjs +18 -0
  426. package/dist/modules/plugins/viewport/schema.mjs.map +7 -0
  427. package/dist/modules/plugins/viewport/workspace-shell.mjs +29 -0
  428. package/dist/modules/plugins/viewport/workspace-shell.mjs.map +7 -0
  429. package/dist/modules/shell/contract.mjs +10 -0
  430. package/dist/modules/shell/contract.mjs.map +7 -0
  431. package/dist/modules/shell/frontend.mjs +14 -0
  432. package/dist/modules/shell/frontend.mjs.map +7 -0
  433. package/dist/modules/shell/layout-zones.mjs +20 -0
  434. package/dist/modules/shell/layout-zones.mjs.map +7 -0
  435. package/dist/modules/start-cli.mjs +57 -0
  436. package/dist/modules/start-cli.mjs.map +7 -0
  437. package/dist/modules/start.mjs +18 -0
  438. package/dist/modules/start.mjs.map +7 -0
  439. package/dist/modules/viewer/catalog/backend.mjs +47 -0
  440. package/dist/modules/viewer/catalog/backend.mjs.map +7 -0
  441. package/dist/modules/viewer/catalog/frontend.mjs +55 -0
  442. package/dist/modules/viewer/catalog/frontend.mjs.map +7 -0
  443. package/dist/modules/viewer/catalog/shared.mjs +43 -0
  444. package/dist/modules/viewer/catalog/shared.mjs.map +7 -0
  445. package/dist/modules/viewer/catalog.mjs +85 -0
  446. package/dist/modules/viewer/catalog.mjs.map +7 -0
  447. package/dist/modules/viewer/cli.mjs +23 -0
  448. package/dist/modules/viewer/cli.mjs.map +7 -0
  449. package/dist/modules/viewer-host/frontend.mjs +65 -0
  450. package/dist/modules/viewer-host/frontend.mjs.map +7 -0
  451. package/dist/modules/viewer-host/page-registry.mjs +27 -0
  452. package/dist/modules/viewer-host/page-registry.mjs.map +7 -0
  453. package/dist/modules/viewer-host/slot-registry.mjs +8 -0
  454. package/dist/modules/viewer-host/slot-registry.mjs.map +7 -0
  455. package/dist/modules/viewer-host.mjs +43 -0
  456. package/dist/modules/viewer-host.mjs.map +7 -0
  457. package/dist/modules/viewer.mjs +85 -0
  458. package/dist/modules/viewer.mjs.map +7 -0
  459. package/dist/modules/workspace/adopt-surface.mjs +16 -0
  460. package/dist/modules/workspace/adopt-surface.mjs.map +7 -0
  461. package/dist/modules/workspace/api.mjs +8 -0
  462. package/dist/modules/workspace/api.mjs.map +7 -0
  463. package/dist/modules/workspace/backend.mjs +23 -0
  464. package/dist/modules/workspace/backend.mjs.map +7 -0
  465. package/dist/modules/workspace/broker.mjs +16 -0
  466. package/dist/modules/workspace/broker.mjs.map +7 -0
  467. package/dist/modules/workspace/cli.mjs +9 -0
  468. package/dist/modules/workspace/cli.mjs.map +7 -0
  469. package/dist/modules/workspace/client.mjs +15 -0
  470. package/dist/modules/workspace/client.mjs.map +7 -0
  471. package/dist/modules/workspace/command-error.mjs +16 -0
  472. package/dist/modules/workspace/command-error.mjs.map +7 -0
  473. package/dist/modules/workspace/contract.mjs +71 -0
  474. package/dist/modules/workspace/contract.mjs.map +7 -0
  475. package/dist/modules/workspace/demo-client.mjs +127 -0
  476. package/dist/modules/workspace/demo-client.mjs.map +7 -0
  477. package/dist/modules/workspace/engine-adapter.mjs +16 -0
  478. package/dist/modules/workspace/engine-adapter.mjs.map +7 -0
  479. package/dist/modules/workspace/engine-presentation.mjs +10 -0
  480. package/dist/modules/workspace/engine-presentation.mjs.map +7 -0
  481. package/dist/modules/workspace/extension-bridge.mjs +18 -0
  482. package/dist/modules/workspace/extension-bridge.mjs.map +7 -0
  483. package/dist/modules/workspace/frontend-plugin.mjs +18 -0
  484. package/dist/modules/workspace/frontend-plugin.mjs.map +7 -0
  485. package/dist/modules/workspace/frontend.mjs +29 -0
  486. package/dist/modules/workspace/frontend.mjs.map +7 -0
  487. package/dist/modules/workspace/id.mjs +8 -0
  488. package/dist/modules/workspace/id.mjs.map +7 -0
  489. package/dist/modules/workspace/inspection-presentation.mjs +12 -0
  490. package/dist/modules/workspace/inspection-presentation.mjs.map +7 -0
  491. package/dist/modules/workspace/locale-bridge.mjs +14 -0
  492. package/dist/modules/workspace/locale-bridge.mjs.map +7 -0
  493. package/dist/modules/workspace/page-title.mjs +13 -0
  494. package/dist/modules/workspace/page-title.mjs.map +7 -0
  495. package/dist/modules/workspace/presentation.mjs +18 -0
  496. package/dist/modules/workspace/presentation.mjs.map +7 -0
  497. package/dist/modules/workspace/preview-surface.mjs +17 -0
  498. package/dist/modules/workspace/preview-surface.mjs.map +7 -0
  499. package/dist/modules/workspace/project-session.mjs +18 -0
  500. package/dist/modules/workspace/project-session.mjs.map +7 -0
  501. package/dist/modules/workspace/render-resize-sync.mjs +12 -0
  502. package/dist/modules/workspace/render-resize-sync.mjs.map +7 -0
  503. package/dist/modules/workspace/resident.mjs +16 -0
  504. package/dist/modules/workspace/resident.mjs.map +7 -0
  505. package/dist/modules/workspace/resource-open.mjs +34 -0
  506. package/dist/modules/workspace/resource-open.mjs.map +7 -0
  507. package/dist/modules/workspace/resource-page.mjs +27 -0
  508. package/dist/modules/workspace/resource-page.mjs.map +7 -0
  509. package/dist/modules/workspace/tool-runtime.mjs +14 -0
  510. package/dist/modules/workspace/tool-runtime.mjs.map +7 -0
  511. package/dist/modules/workspace/view-trace.mjs +60 -0
  512. package/dist/modules/workspace/view-trace.mjs.map +7 -0
  513. package/dist/modules/workspace/workspace-client-connection.mjs +22 -0
  514. package/dist/modules/workspace/workspace-client-connection.mjs.map +7 -0
  515. package/dist/modules/workspace/workspace-recovery.mjs +35 -0
  516. package/dist/modules/workspace/workspace-recovery.mjs.map +7 -0
  517. package/dist/modules/workspace/workspace-state.mjs +12 -0
  518. package/dist/modules/workspace/workspace-state.mjs.map +7 -0
  519. package/dist/modules/workspace-frontend.mjs +17 -0
  520. package/dist/modules/workspace-frontend.mjs.map +7 -0
  521. package/dist/viewer/assets/chunk-CilyBKbf.js +1 -0
  522. package/dist/viewer/assets/core-DSQma37-.js +13 -0
  523. package/dist/viewer/assets/core-DSQma37-.js.map +1 -0
  524. package/dist/viewer/assets/css-Bq1BXecw.js +2 -0
  525. package/dist/viewer/assets/css-Bq1BXecw.js.map +1 -0
  526. package/dist/viewer/assets/css-CWQWazmX.js +1 -0
  527. package/dist/viewer/assets/embedded-D4ZDx--W.js +2 -0
  528. package/dist/viewer/assets/embedded-D4ZDx--W.js.map +1 -0
  529. package/dist/viewer/assets/engine-javascript-BvokIV9O.js +142 -0
  530. package/dist/viewer/assets/engine-javascript-BvokIV9O.js.map +1 -0
  531. package/dist/viewer/assets/github-dark-default-DaDlj-WZ.js +2 -0
  532. package/dist/viewer/assets/github-dark-default-DaDlj-WZ.js.map +1 -0
  533. package/dist/viewer/assets/github-light-default-BqhWxAZd.js +2 -0
  534. package/dist/viewer/assets/github-light-default-BqhWxAZd.js.map +1 -0
  535. package/dist/viewer/assets/glsl-BJgVnv11.js +2 -0
  536. package/dist/viewer/assets/glsl-BJgVnv11.js.map +1 -0
  537. package/dist/viewer/assets/html-AaaHGGyt.js +2 -0
  538. package/dist/viewer/assets/html-AaaHGGyt.js.map +1 -0
  539. package/dist/viewer/assets/javascript-BX9W64FE.js +1 -0
  540. package/dist/viewer/assets/javascript-DQODvD07.js +2 -0
  541. package/dist/viewer/assets/javascript-DQODvD07.js.map +1 -0
  542. package/dist/viewer/assets/json-CpcIDpT7.js +2 -0
  543. package/dist/viewer/assets/json-CpcIDpT7.js.map +1 -0
  544. package/dist/viewer/assets/json5-Czq4A7dk.js +2 -0
  545. package/dist/viewer/assets/json5-Czq4A7dk.js.map +1 -0
  546. package/dist/viewer/assets/jsonc-BXDfCMmu.js +2 -0
  547. package/dist/viewer/assets/jsonc-BXDfCMmu.js.map +1 -0
  548. package/dist/viewer/assets/jsx-DAWscEnf.js +2 -0
  549. package/dist/viewer/assets/jsx-DAWscEnf.js.map +1 -0
  550. package/dist/viewer/assets/main-C-2CHTN_.js +15 -0
  551. package/dist/viewer/assets/main-C-2CHTN_.js.map +1 -0
  552. package/dist/viewer/assets/markdown-Cx1FMNw-.js +2 -0
  553. package/dist/viewer/assets/markdown-Cx1FMNw-.js.map +1 -0
  554. package/dist/viewer/assets/panels-entry-Ddhfjgf0.js +46 -0
  555. package/dist/viewer/assets/panels-entry-Ddhfjgf0.js.map +1 -0
  556. package/dist/viewer/assets/python-CYPKjWV9.js +2 -0
  557. package/dist/viewer/assets/python-CYPKjWV9.js.map +1 -0
  558. package/dist/viewer/assets/rust-0e5cNx_V.js +2 -0
  559. package/dist/viewer/assets/rust-0e5cNx_V.js.map +1 -0
  560. package/dist/viewer/assets/scss-B-aKzLbT.js +2 -0
  561. package/dist/viewer/assets/scss-B-aKzLbT.js.map +1 -0
  562. package/dist/viewer/assets/shellscript-CpXD-pSm.js +2 -0
  563. package/dist/viewer/assets/shellscript-CpXD-pSm.js.map +1 -0
  564. package/dist/viewer/assets/style-ClttNKZk.css +2 -0
  565. package/dist/viewer/assets/styles-BXozhwiU.js +11 -0
  566. package/dist/viewer/assets/styles-BXozhwiU.js.map +1 -0
  567. package/dist/viewer/assets/toml-GmchYTXa.js +2 -0
  568. package/dist/viewer/assets/toml-GmchYTXa.js.map +1 -0
  569. package/dist/viewer/assets/tsx-Crj1Bi53.js +2 -0
  570. package/dist/viewer/assets/tsx-Crj1Bi53.js.map +1 -0
  571. package/dist/viewer/assets/typescript-xi0cSHCO.js +2 -0
  572. package/dist/viewer/assets/typescript-xi0cSHCO.js.map +1 -0
  573. package/dist/viewer/assets/wgsl-BoEPRo9U.js +2 -0
  574. package/dist/viewer/assets/wgsl-BoEPRo9U.js.map +1 -0
  575. package/dist/viewer/assets/xml-B8JqQrMD.js +2 -0
  576. package/dist/viewer/assets/xml-B8JqQrMD.js.map +1 -0
  577. package/dist/viewer/assets/yaml-DsIB85X9.js +2 -0
  578. package/dist/viewer/assets/yaml-DsIB85X9.js.map +1 -0
  579. package/dist/viewer/index.html +15 -0
  580. package/dist/viewer/panels.js +1 -0
  581. package/host.pack.json +13 -0
  582. package/package.json +174 -0
  583. package/skills/forgeax-view-cli/SKILL.md +74 -0
  584. package/skills/forgeax-view-start/SKILL.md +202 -0
  585. package/skills/forgeax-view-start/scripts/start-view.mjs +202 -0
@@ -0,0 +1,317 @@
1
+ import {
2
+ disposeResource
3
+ } from "./chunk-QD6CCRMG.mjs";
4
+ import {
5
+ FALLBACK_REASONS,
6
+ VIEW_PROTOCOL,
7
+ VIEW_PROTOCOL_VERSION,
8
+ browserFallback,
9
+ createLeaseRequest,
10
+ sameRun,
11
+ serializeTarget,
12
+ viewDecision
13
+ } from "./chunk-GQBZMCTK.mjs";
14
+
15
+ // packages/view-plugin-display/src/page-broker.mjs
16
+ import { randomUUID } from "node:crypto";
17
+ var DEFAULT_CAPABILITIES = Object.freeze({
18
+ protocolVersion: VIEW_PROTOCOL_VERSION,
19
+ ready: true,
20
+ supportsPage: true,
21
+ // `auto` is safe as an intent; hardware/software require an explicit
22
+ // platform probe from the embedding runtime.
23
+ gpuModes: ["auto"],
24
+ maxWidth: 8192,
25
+ maxHeight: 8192,
26
+ canvasSizing: "fixed"
27
+ });
28
+ function copyCapabilities(capabilities = {}) {
29
+ const merged = {
30
+ ...DEFAULT_CAPABILITIES,
31
+ ...capabilities,
32
+ gpuModes: [...capabilities.gpuModes ?? DEFAULT_CAPABILITIES.gpuModes]
33
+ };
34
+ if (!Number.isInteger(merged.protocolVersion)) merged.protocolVersion = VIEW_PROTOCOL_VERSION;
35
+ return Object.freeze(merged);
36
+ }
37
+ function targetMatches(target, active) {
38
+ return Boolean(
39
+ target && active && target.leaseId === active.leaseId && target.targetId === active.target?.targetId && target.surfaceId === active.target?.surfaceId && target.generation === active.request.generation && sameRun(target.run, active.request.run)
40
+ );
41
+ }
42
+ function allocationFailureReason(error) {
43
+ if (error?.fallbackReason && Object.values(FALLBACK_REASONS).includes(error.fallbackReason)) {
44
+ return error.fallbackReason;
45
+ }
46
+ return FALLBACK_REASONS.ALLOCATION_FAILED;
47
+ }
48
+ var ViewResourceBroker = class {
49
+ constructor({ platform, capabilities, idFactory = randomUUID, clock = () => Date.now() } = {}) {
50
+ if (!platform || typeof platform.createPage !== "function") {
51
+ throw new TypeError("ViewResourceBroker requires a platform.createPage implementation");
52
+ }
53
+ this.platform = platform;
54
+ this.capabilityOverrides = { ...capabilities ?? {} };
55
+ this.capabilities = copyCapabilities({
56
+ ...typeof platform.getCapabilities === "function" ? platform.getCapabilities() : {},
57
+ ...this.capabilityOverrides
58
+ });
59
+ this.idFactory = idFactory;
60
+ this.clock = clock;
61
+ this.active = null;
62
+ this.pending = null;
63
+ this.latestGenerations = /* @__PURE__ */ new Map();
64
+ this.listeners = /* @__PURE__ */ new Set();
65
+ this.disposing = false;
66
+ }
67
+ /** Subscribe to status transitions owned by this broker. */
68
+ subscribe(listener) {
69
+ if (typeof listener !== "function") throw new TypeError("broker status listener must be a function");
70
+ this.listeners.add(listener);
71
+ listener(this.handshake());
72
+ return () => this.listeners.delete(listener);
73
+ }
74
+ notify() {
75
+ const snapshot = this.handshake();
76
+ for (const listener of this.listeners) {
77
+ try {
78
+ listener(snapshot);
79
+ } catch {
80
+ }
81
+ }
82
+ }
83
+ refreshCapabilities() {
84
+ if (typeof this.platform.getCapabilities !== "function") return this.capabilities;
85
+ const live = this.platform.getCapabilities() ?? {};
86
+ const overrides = { ...this.capabilityOverrides };
87
+ delete overrides.ready;
88
+ delete overrides.supportsPage;
89
+ delete overrides.gpuModes;
90
+ this.capabilities = copyCapabilities({ ...live, ...overrides });
91
+ return this.capabilities;
92
+ }
93
+ handshake() {
94
+ const capabilities = this.refreshCapabilities();
95
+ return {
96
+ protocol: VIEW_PROTOCOL,
97
+ protocolVersion: VIEW_PROTOCOL_VERSION,
98
+ state: this.disposing ? "stopping" : !capabilities.ready || !capabilities.supportsPage ? "unavailable" : this.active ? "occupied" : this.pending ? "allocating" : "ready",
99
+ capabilities: { ...capabilities, gpuModes: [...capabilities.gpuModes] },
100
+ occupancy: this.active ? {
101
+ leaseId: this.active.leaseId,
102
+ run: { ...this.active.request.run },
103
+ generation: this.active.request.generation,
104
+ ...this.active.target?.targetId === void 0 ? {} : { targetId: this.active.target.targetId },
105
+ ...this.active.target?.targetId === void 0 ? {} : { target: serializeTarget(this.active.target) }
106
+ } : null
107
+ };
108
+ }
109
+ get occupied() {
110
+ return this.active !== null;
111
+ }
112
+ capabilityFailure(request) {
113
+ const capabilities = this.refreshCapabilities();
114
+ if (this.disposing || !capabilities.ready || !capabilities.supportsPage) {
115
+ return "View platform is not ready";
116
+ }
117
+ if (capabilities.protocolVersion !== VIEW_PROTOCOL_VERSION) {
118
+ const error = new Error(`View protocol ${capabilities.protocolVersion} is incompatible`);
119
+ error.fallbackReason = FALLBACK_REASONS.PROTOCOL_UNSUPPORTED;
120
+ throw error;
121
+ }
122
+ if (!capabilities.gpuModes.includes(request.gpu)) {
123
+ return `View does not support GPU mode ${request.gpu}`;
124
+ }
125
+ if (request.width > capabilities.maxWidth || request.height > capabilities.maxHeight) {
126
+ return `requested canvas ${request.width}x${request.height} exceeds View limits`;
127
+ }
128
+ return null;
129
+ }
130
+ async allocate(input, { signal } = {}) {
131
+ const request = createLeaseRequest(input);
132
+ if (request.headless) return browserFallback(FALLBACK_REASONS.HEADLESS_REQUESTED);
133
+ if (signal?.aborted || this.disposing) return browserFallback(FALLBACK_REASONS.CANCELLED);
134
+ const latest = this.latestGenerations.get(request.run.key);
135
+ if (latest !== void 0 && request.generation < latest) {
136
+ return browserFallback(FALLBACK_REASONS.STALE_GENERATION, { currentGeneration: latest });
137
+ }
138
+ if (latest === void 0 || request.generation > latest) {
139
+ this.latestGenerations.set(request.run.key, request.generation);
140
+ }
141
+ try {
142
+ const capabilityMessage = this.capabilityFailure(request);
143
+ if (capabilityMessage) {
144
+ return browserFallback(FALLBACK_REASONS.CAPABILITY_MISMATCH, { message: capabilityMessage });
145
+ }
146
+ } catch (error) {
147
+ if (error?.fallbackReason === FALLBACK_REASONS.PROTOCOL_UNSUPPORTED) {
148
+ return browserFallback(FALLBACK_REASONS.PROTOCOL_UNSUPPORTED, { message: error.message });
149
+ }
150
+ throw error;
151
+ }
152
+ if (this.active || this.pending) {
153
+ const occupied = this.active ?? this.pending;
154
+ return browserFallback(FALLBACK_REASONS.OCCUPIED, {
155
+ occupiedBy: { ...occupied.request.run }
156
+ });
157
+ }
158
+ const leaseId = this.idFactory();
159
+ const controller = new AbortController();
160
+ const reservation = {
161
+ leaseId,
162
+ request,
163
+ controller,
164
+ state: "allocating",
165
+ cancelled: false,
166
+ page: null,
167
+ target: null,
168
+ pageLost: null
169
+ };
170
+ this.pending = reservation;
171
+ this.notify();
172
+ const onAbort = () => {
173
+ reservation.cancelled = true;
174
+ controller.abort();
175
+ };
176
+ const onPageLost = (reason) => {
177
+ if (this.active !== reservation && this.pending !== reservation) return;
178
+ reservation.pageLost = reason ?? "page-lost";
179
+ reservation.state = "lost";
180
+ this.active = null;
181
+ if (this.pending === reservation) this.pending = null;
182
+ this.notify();
183
+ };
184
+ signal?.addEventListener("abort", onAbort, { once: true });
185
+ let page;
186
+ try {
187
+ page = await this.platform.createPage({
188
+ leaseId,
189
+ run: request.run,
190
+ generation: request.generation,
191
+ width: request.width,
192
+ height: request.height,
193
+ gpu: request.gpu,
194
+ signal: controller.signal,
195
+ onLost: onPageLost
196
+ });
197
+ if (reservation.pageLost) {
198
+ await disposeResource(page);
199
+ return browserFallback(FALLBACK_REASONS.TARGET_LOST, { message: reservation.pageLost });
200
+ }
201
+ if (reservation.cancelled || controller.signal.aborted || this.pending !== reservation || this.disposing) {
202
+ await disposeResource(page);
203
+ return browserFallback(FALLBACK_REASONS.CANCELLED);
204
+ }
205
+ if (!page || typeof page.targetId !== "string" && typeof page.targetId !== "number" || typeof page.surfaceId !== "string" || !/^[_A-Za-z][_A-Za-z0-9-]*$/.test(page.surfaceId)) {
206
+ throw new Error("platform did not return a stable page target and surface id");
207
+ }
208
+ reservation.page = page;
209
+ reservation.state = "active";
210
+ reservation.target = Object.freeze({
211
+ leaseId,
212
+ targetId: String(page.targetId),
213
+ kind: page.kind ?? "browser-page",
214
+ surfaceId: page.surfaceId,
215
+ run: request.run,
216
+ generation: request.generation,
217
+ width: request.width,
218
+ height: request.height,
219
+ gpu: request.gpu,
220
+ allocatedAt: this.clock()
221
+ });
222
+ this.pending = null;
223
+ this.active = reservation;
224
+ this.notify();
225
+ return viewDecision({
226
+ target: reservation.target,
227
+ request,
228
+ release: (reason = "engine-release") => this.release(reservation.target, reason)
229
+ });
230
+ } catch (error) {
231
+ if (page) await disposeResource(page).catch(() => {
232
+ });
233
+ if (reservation.cancelled || controller.signal.aborted) {
234
+ return browserFallback(FALLBACK_REASONS.CANCELLED);
235
+ }
236
+ return browserFallback(allocationFailureReason(error), { message: error?.message ?? String(error) });
237
+ } finally {
238
+ signal?.removeEventListener("abort", onAbort);
239
+ if (this.pending === reservation) this.pending = null;
240
+ if (this.active === reservation && reservation.state !== "active") this.active = null;
241
+ if (this.active === null) this.notify();
242
+ }
243
+ }
244
+ /** Return the exact platform page for an in-process Engine adapter. */
245
+ getPage(target) {
246
+ if (!targetMatches(target, this.active) || this.active.state !== "active") {
247
+ throw new Error("View target is not an active lease");
248
+ }
249
+ return this.active.page.page ?? this.active.page;
250
+ }
251
+ /** Return the exact Engine execution realm bound to the active target. */
252
+ getExecution(target) {
253
+ if (!targetMatches(target, this.active) || this.active.state !== "active") {
254
+ throw new Error("View target is not an active lease");
255
+ }
256
+ const execution = this.active.page.execution;
257
+ if (!execution || execution.ownerPage !== this.getPage(target)) {
258
+ throw new Error("View target does not expose an Engine execution realm");
259
+ }
260
+ return execution;
261
+ }
262
+ async release(target, reason = "engine-release") {
263
+ const reservation = this.active;
264
+ if (!reservation) return { released: false, reason: "not-active" };
265
+ if (!targetMatches(target, reservation)) return { released: false, reason: "lease-mismatch" };
266
+ if (reservation.releasePromise) return reservation.releasePromise;
267
+ reservation.state = "releasing";
268
+ reservation.cancelled = true;
269
+ reservation.controller.abort();
270
+ this.notify();
271
+ reservation.releasePromise = (async () => {
272
+ try {
273
+ await disposeResource(reservation.page);
274
+ return { released: true, leaseId: reservation.leaseId, reason };
275
+ } finally {
276
+ reservation.state = "released";
277
+ if (this.active === reservation) {
278
+ this.active = null;
279
+ this.notify();
280
+ }
281
+ }
282
+ })();
283
+ return reservation.releasePromise;
284
+ }
285
+ async cancel(run, generation) {
286
+ const reservation = this.active ?? this.pending;
287
+ if (!reservation || !sameRun(run, reservation.request.run) || reservation.request.generation !== generation) {
288
+ return { released: false, reason: "not-active" };
289
+ }
290
+ if (reservation.target) return this.release(reservation.target, "cancelled");
291
+ reservation.cancelled = true;
292
+ reservation.controller.abort();
293
+ if (this.pending === reservation) this.pending = null;
294
+ this.notify();
295
+ return { released: true, leaseId: reservation.leaseId, reason: "cancelled" };
296
+ }
297
+ async dispose() {
298
+ if (this.disposing) return;
299
+ this.disposing = true;
300
+ this.notify();
301
+ const reservation = this.active ?? this.pending;
302
+ if (reservation?.target) await this.release(reservation.target, "broker-dispose");
303
+ else if (reservation) {
304
+ reservation.cancelled = true;
305
+ reservation.controller.abort();
306
+ if (this.pending === reservation) this.pending = null;
307
+ if (this.active === reservation) this.active = null;
308
+ }
309
+ await this.platform.dispose?.();
310
+ }
311
+ };
312
+
313
+ export {
314
+ DEFAULT_CAPABILITIES,
315
+ ViewResourceBroker
316
+ };
317
+ //# sourceMappingURL=chunk-XUYFV23R.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/view-plugin-display/src/page-broker.mjs"],
4
+ "sourcesContent": ["import { randomUUID } from 'node:crypto';\n\nimport {\n FALLBACK_REASONS,\n VIEW_CARRIER,\n VIEW_PROTOCOL,\n VIEW_PROTOCOL_VERSION,\n browserFallback,\n createLeaseRequest,\n sameRun,\n serializeTarget,\n viewDecision,\n} from './carrier-contract.mjs';\nimport { disposeResource } from './effects.mjs';\n\nconst DEFAULT_CAPABILITIES = Object.freeze({\n protocolVersion: VIEW_PROTOCOL_VERSION,\n ready: true,\n supportsPage: true,\n // `auto` is safe as an intent; hardware/software require an explicit\n // platform probe from the embedding runtime.\n gpuModes: ['auto'],\n maxWidth: 8192,\n maxHeight: 8192,\n canvasSizing: 'fixed',\n});\n\nfunction copyCapabilities(capabilities = {}) {\n const merged = {\n ...DEFAULT_CAPABILITIES,\n ...capabilities,\n gpuModes: [...(capabilities.gpuModes ?? DEFAULT_CAPABILITIES.gpuModes)],\n };\n if (!Number.isInteger(merged.protocolVersion)) merged.protocolVersion = VIEW_PROTOCOL_VERSION;\n return Object.freeze(merged);\n}\n\nfunction targetMatches(target, active) {\n return Boolean(\n target &&\n active &&\n target.leaseId === active.leaseId &&\n target.targetId === active.target?.targetId &&\n target.surfaceId === active.target?.surfaceId &&\n target.generation === active.request.generation &&\n sameRun(target.run, active.request.run),\n );\n}\n\nfunction allocationFailureReason(error) {\n if (error?.fallbackReason && Object.values(FALLBACK_REASONS).includes(error.fallbackReason)) {\n return error.fallbackReason;\n }\n return FALLBACK_REASONS.ALLOCATION_FAILED;\n}\n\n/**\n * Owns exactly one display page at a time. A private pending reservation makes\n * allocation atomic, while public occupancy is admitted only after the\n * platform confirms that the Frontend Fiber surface is ready.\n */\nexport class ViewResourceBroker {\n constructor({ platform, capabilities, idFactory = randomUUID, clock = () => Date.now() } = {}) {\n if (!platform || typeof platform.createPage !== 'function') {\n throw new TypeError('ViewResourceBroker requires a platform.createPage implementation');\n }\n this.platform = platform;\n // Keep caller-supplied limits and protocol overrides separate from the\n // platform's live readiness. A browser can lose its page after\n // the broker has been constructed, so a startup snapshot must never be\n // used as a durable \"ready\" claim.\n this.capabilityOverrides = { ...(capabilities ?? {}) };\n this.capabilities = copyCapabilities({\n ...(typeof platform.getCapabilities === 'function' ? platform.getCapabilities() : {}),\n ...this.capabilityOverrides,\n });\n this.idFactory = idFactory;\n this.clock = clock;\n this.active = null;\n this.pending = null;\n this.latestGenerations = new Map();\n this.listeners = new Set();\n this.disposing = false;\n }\n\n /** Subscribe to status transitions owned by this broker. */\n subscribe(listener) {\n if (typeof listener !== 'function') throw new TypeError('broker status listener must be a function');\n this.listeners.add(listener);\n listener(this.handshake());\n return () => this.listeners.delete(listener);\n }\n\n notify() {\n const snapshot = this.handshake();\n for (const listener of this.listeners) {\n try {\n listener(snapshot);\n } catch {\n // Status observers must not change lease admission or cleanup.\n }\n }\n }\n\n refreshCapabilities() {\n if (typeof this.platform.getCapabilities !== 'function') return this.capabilities;\n const live = this.platform.getCapabilities() ?? {};\n const overrides = { ...this.capabilityOverrides };\n // Readiness, page support, and GPU modes describe the current platform,\n // not broker configuration. Let a lost window withdraw those claims.\n delete overrides.ready;\n delete overrides.supportsPage;\n delete overrides.gpuModes;\n this.capabilities = copyCapabilities({ ...live, ...overrides });\n return this.capabilities;\n }\n\n handshake() {\n const capabilities = this.refreshCapabilities();\n return {\n protocol: VIEW_PROTOCOL,\n protocolVersion: VIEW_PROTOCOL_VERSION,\n state: this.disposing\n ? 'stopping'\n : !capabilities.ready || !capabilities.supportsPage\n ? 'unavailable'\n : this.active\n ? 'occupied'\n : this.pending\n ? 'allocating'\n : 'ready',\n capabilities: { ...capabilities, gpuModes: [...capabilities.gpuModes] },\n occupancy: this.active\n ? {\n leaseId: this.active.leaseId,\n run: { ...this.active.request.run },\n generation: this.active.request.generation,\n ...(this.active.target?.targetId === undefined\n ? {}\n : { targetId: this.active.target.targetId }),\n ...(this.active.target?.targetId === undefined\n ? {}\n : { target: serializeTarget(this.active.target) }),\n }\n : null,\n };\n }\n\n get occupied() {\n return this.active !== null;\n }\n\n capabilityFailure(request) {\n const capabilities = this.refreshCapabilities();\n if (this.disposing || !capabilities.ready || !capabilities.supportsPage) {\n return 'View platform is not ready';\n }\n if (capabilities.protocolVersion !== VIEW_PROTOCOL_VERSION) {\n const error = new Error(`View protocol ${capabilities.protocolVersion} is incompatible`);\n error.fallbackReason = FALLBACK_REASONS.PROTOCOL_UNSUPPORTED;\n throw error;\n }\n if (!capabilities.gpuModes.includes(request.gpu)) {\n return `View does not support GPU mode ${request.gpu}`;\n }\n if (request.width > capabilities.maxWidth || request.height > capabilities.maxHeight) {\n return `requested canvas ${request.width}x${request.height} exceeds View limits`;\n }\n return null;\n }\n\n async allocate(input, { signal } = {}) {\n const request = createLeaseRequest(input);\n if (request.headless) return browserFallback(FALLBACK_REASONS.HEADLESS_REQUESTED);\n if (signal?.aborted || this.disposing) return browserFallback(FALLBACK_REASONS.CANCELLED);\n\n const latest = this.latestGenerations.get(request.run.key);\n if (latest !== undefined && request.generation < latest) {\n return browserFallback(FALLBACK_REASONS.STALE_GENERATION, { currentGeneration: latest });\n }\n // Record a newer generation before any asynchronous platform work. An\n // older late completion can therefore never become the active target.\n if (latest === undefined || request.generation > latest) {\n this.latestGenerations.set(request.run.key, request.generation);\n }\n\n try {\n const capabilityMessage = this.capabilityFailure(request);\n if (capabilityMessage) {\n return browserFallback(FALLBACK_REASONS.CAPABILITY_MISMATCH, { message: capabilityMessage });\n }\n } catch (error) {\n if (error?.fallbackReason === FALLBACK_REASONS.PROTOCOL_UNSUPPORTED) {\n return browserFallback(FALLBACK_REASONS.PROTOCOL_UNSUPPORTED, { message: error.message });\n }\n throw error;\n }\n if (this.active || this.pending) {\n const occupied = this.active ?? this.pending;\n return browserFallback(FALLBACK_REASONS.OCCUPIED, {\n occupiedBy: { ...occupied.request.run },\n });\n }\n\n const leaseId = this.idFactory();\n const controller = new AbortController();\n const reservation = {\n leaseId,\n request,\n controller,\n state: 'allocating',\n cancelled: false,\n page: null,\n target: null,\n pageLost: null,\n };\n // Reserve allocation atomically without publishing false occupancy. The\n // platform resolves only after the display Fiber iframe is available.\n this.pending = reservation;\n this.notify();\n const onAbort = () => {\n reservation.cancelled = true;\n controller.abort();\n };\n const onPageLost = (reason) => {\n if (this.active !== reservation && this.pending !== reservation) return;\n reservation.pageLost = reason ?? 'page-lost';\n reservation.state = 'lost';\n // The platform has already destroyed the page. Drop occupancy now so\n // a new request can be admitted while old target handles fail closed.\n this.active = null;\n if (this.pending === reservation) this.pending = null;\n this.notify();\n };\n signal?.addEventListener('abort', onAbort, { once: true });\n\n let page;\n try {\n page = await this.platform.createPage({\n leaseId,\n run: request.run,\n generation: request.generation,\n width: request.width,\n height: request.height,\n gpu: request.gpu,\n signal: controller.signal,\n onLost: onPageLost,\n });\n if (reservation.pageLost) {\n await disposeResource(page);\n return browserFallback(FALLBACK_REASONS.TARGET_LOST, { message: reservation.pageLost });\n }\n if (reservation.cancelled || controller.signal.aborted || this.pending !== reservation || this.disposing) {\n await disposeResource(page);\n return browserFallback(FALLBACK_REASONS.CANCELLED);\n }\n if (\n !page ||\n (typeof page.targetId !== 'string' && typeof page.targetId !== 'number') ||\n typeof page.surfaceId !== 'string' ||\n !/^[_A-Za-z][_A-Za-z0-9-]*$/.test(page.surfaceId)\n ) {\n throw new Error('platform did not return a stable page target and surface id');\n }\n reservation.page = page;\n reservation.state = 'active';\n reservation.target = Object.freeze({\n leaseId,\n targetId: String(page.targetId),\n kind: page.kind ?? 'browser-page',\n surfaceId: page.surfaceId,\n run: request.run,\n generation: request.generation,\n width: request.width,\n height: request.height,\n gpu: request.gpu,\n allocatedAt: this.clock(),\n });\n this.pending = null;\n this.active = reservation;\n this.notify();\n return viewDecision({\n target: reservation.target,\n request,\n release: (reason = 'engine-release') => this.release(reservation.target, reason),\n });\n } catch (error) {\n if (page) await disposeResource(page).catch(() => {});\n if (reservation.cancelled || controller.signal.aborted) {\n return browserFallback(FALLBACK_REASONS.CANCELLED);\n }\n return browserFallback(allocationFailureReason(error), { message: error?.message ?? String(error) });\n } finally {\n signal?.removeEventListener('abort', onAbort);\n if (this.pending === reservation) this.pending = null;\n if (this.active === reservation && reservation.state !== 'active') this.active = null;\n if (this.active === null) this.notify();\n }\n }\n\n /** Return the exact platform page for an in-process Engine adapter. */\n getPage(target) {\n if (!targetMatches(target, this.active) || this.active.state !== 'active') {\n throw new Error('View target is not an active lease');\n }\n // A platform resource may carry the browser Page separately so its\n // lease-owned dispose method cannot accidentally close the user's page.\n return this.active.page.page ?? this.active.page;\n }\n\n /** Return the exact Engine execution realm bound to the active target. */\n getExecution(target) {\n if (!targetMatches(target, this.active) || this.active.state !== 'active') {\n throw new Error('View target is not an active lease');\n }\n const execution = this.active.page.execution;\n if (!execution || execution.ownerPage !== this.getPage(target)) {\n throw new Error('View target does not expose an Engine execution realm');\n }\n return execution;\n }\n\n async release(target, reason = 'engine-release') {\n const reservation = this.active;\n if (!reservation) return { released: false, reason: 'not-active' };\n if (!targetMatches(target, reservation)) return { released: false, reason: 'lease-mismatch' };\n if (reservation.releasePromise) return reservation.releasePromise;\n\n reservation.state = 'releasing';\n reservation.cancelled = true;\n reservation.controller.abort();\n this.notify();\n reservation.releasePromise = (async () => {\n try {\n await disposeResource(reservation.page);\n return { released: true, leaseId: reservation.leaseId, reason };\n } finally {\n reservation.state = 'released';\n if (this.active === reservation) {\n this.active = null;\n this.notify();\n }\n }\n })();\n return reservation.releasePromise;\n }\n\n async cancel(run, generation) {\n const reservation = this.active ?? this.pending;\n if (!reservation || !sameRun(run, reservation.request.run) || reservation.request.generation !== generation) {\n return { released: false, reason: 'not-active' };\n }\n if (reservation.target) return this.release(reservation.target, 'cancelled');\n reservation.cancelled = true;\n reservation.controller.abort();\n if (this.pending === reservation) this.pending = null;\n this.notify();\n return { released: true, leaseId: reservation.leaseId, reason: 'cancelled' };\n }\n\n async dispose() {\n if (this.disposing) return;\n this.disposing = true;\n this.notify();\n const reservation = this.active ?? this.pending;\n if (reservation?.target) await this.release(reservation.target, 'broker-dispose');\n else if (reservation) {\n reservation.cancelled = true;\n reservation.controller.abort();\n if (this.pending === reservation) this.pending = null;\n if (this.active === reservation) this.active = null;\n }\n await this.platform.dispose?.();\n }\n}\n\nexport { DEFAULT_CAPABILITIES };\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,58 @@
1
+ import {
2
+ RESOURCE_FALLBACK_LAYOUT
3
+ } from "./chunk-YYXQDUVT.mjs";
4
+ import {
5
+ VIEW_PAGE_TYPES
6
+ } from "./chunk-32GD5LL6.mjs";
7
+ import {
8
+ __export
9
+ } from "./chunk-FLGC65SR.mjs";
10
+
11
+ // packages/view-plugin-asset/src/identity.mjs
12
+ var identity_exports = {};
13
+ __export(identity_exports, {
14
+ FRONTEND_MODULE: () => FRONTEND_MODULE,
15
+ FRONTEND_PLUGIN_ID: () => FRONTEND_PLUGIN_ID,
16
+ PAGE_ORDER: () => PAGE_ORDER,
17
+ PAGE_PRIORITY: () => PAGE_PRIORITY,
18
+ PAGE_TITLE_I18N_KEY: () => PAGE_TITLE_I18N_KEY,
19
+ PAGE_TYPE: () => PAGE_TYPE,
20
+ PLUGIN_ID: () => PLUGIN_ID,
21
+ PROPERTIES_ICON: () => PROPERTIES_ICON,
22
+ PROPERTIES_LAYOUT: () => PROPERTIES_LAYOUT,
23
+ PROPERTIES_PANEL: () => PROPERTIES_PANEL,
24
+ PROPERTIES_SLOT: () => PROPERTIES_SLOT,
25
+ PROPERTIES_TITLE_I18N_KEY: () => PROPERTIES_TITLE_I18N_KEY,
26
+ RESOURCE_SELECTOR: () => RESOURCE_SELECTOR
27
+ });
28
+ var PLUGIN_ID = "forgeax.view.asset";
29
+ var FRONTEND_PLUGIN_ID = "forgeax.view.page.asset.frontend";
30
+ var FRONTEND_MODULE = "@forgeax/view/plugins/asset/frontend";
31
+ var PAGE_TYPE = VIEW_PAGE_TYPES.asset;
32
+ var PAGE_TITLE_I18N_KEY = "view.pages.asset";
33
+ var PAGE_ORDER = 80;
34
+ var PROPERTIES_SLOT = "asset-properties";
35
+ var RESOURCE_SELECTOR = Object.freeze({ fallback: true });
36
+ var PAGE_PRIORITY = 0;
37
+ var PROPERTIES_LAYOUT = RESOURCE_FALLBACK_LAYOUT;
38
+ var PROPERTIES_PANEL = "AssetProperties";
39
+ var PROPERTIES_ICON = "detail";
40
+ var PROPERTIES_TITLE_I18N_KEY = "view.slots.assetProperties";
41
+
42
+ export {
43
+ PLUGIN_ID,
44
+ FRONTEND_PLUGIN_ID,
45
+ FRONTEND_MODULE,
46
+ PAGE_TYPE,
47
+ PAGE_TITLE_I18N_KEY,
48
+ PAGE_ORDER,
49
+ PROPERTIES_SLOT,
50
+ RESOURCE_SELECTOR,
51
+ PAGE_PRIORITY,
52
+ PROPERTIES_LAYOUT,
53
+ PROPERTIES_PANEL,
54
+ PROPERTIES_ICON,
55
+ PROPERTIES_TITLE_I18N_KEY,
56
+ identity_exports
57
+ };
58
+ //# sourceMappingURL=chunk-Y5HXCPPQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/view-plugin-asset/src/identity.mjs"],
4
+ "sourcesContent": ["import { VIEW_PAGE_TYPES } from '@forgeax/view-workspace-core/contract';\nimport { RESOURCE_FALLBACK_LAYOUT } from '@forgeax/view-workspace-core/resource-page';\n\nexport const PLUGIN_ID = 'forgeax.view.asset';\nexport const FRONTEND_PLUGIN_ID = 'forgeax.view.page.asset.frontend';\nexport const FRONTEND_MODULE = '@forgeax/view/plugins/asset/frontend';\nexport const PAGE_TYPE = VIEW_PAGE_TYPES.asset;\nexport const PAGE_TITLE_I18N_KEY = 'view.pages.asset';\nexport const PAGE_ORDER = 80;\nexport const PROPERTIES_SLOT = 'asset-properties';\nexport const RESOURCE_SELECTOR = Object.freeze({ fallback: true });\nexport const PAGE_PRIORITY = 0;\nexport const PROPERTIES_LAYOUT = RESOURCE_FALLBACK_LAYOUT;\nexport const PROPERTIES_PANEL = 'AssetProperties';\nexport const PROPERTIES_ICON = 'detail';\nexport const PROPERTIES_TITLE_I18N_KEY = 'view.slots.assetProperties';\n"],
5
+ "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,IAAM,YAAY;AAClB,IAAM,qBAAqB;AAC3B,IAAM,kBAAkB;AACxB,IAAM,YAAY,gBAAgB;AAClC,IAAM,sBAAsB;AAC5B,IAAM,aAAa;AACnB,IAAM,kBAAkB;AACxB,IAAM,oBAAoB,OAAO,OAAO,EAAE,UAAU,KAAK,CAAC;AAC1D,IAAM,gBAAgB;AACtB,IAAM,oBAAoB;AAC1B,IAAM,mBAAmB;AACzB,IAAM,kBAAkB;AACxB,IAAM,4BAA4B;",
6
+ "names": []
7
+ }
@@ -0,0 +1,147 @@
1
+ import {
2
+ mountRunObserver
3
+ } from "./chunk-UDVQHPWV.mjs";
4
+ import {
5
+ DISPLAY_SURFACE_ID,
6
+ DISPLAY_TARGET_ROLE,
7
+ FRONTEND_PLUGIN_ID,
8
+ PAGE_TITLE_I18N_KEY,
9
+ PAGE_TYPE,
10
+ VIEW_STATUS_SERVICE,
11
+ VIEW_STATUS_TOPIC
12
+ } from "./chunk-KNBAYU5I.mjs";
13
+
14
+ // packages/view-plugin-display/src/status.mjs
15
+ var ViewDisplayStatus = class {
16
+ constructor() {
17
+ this.state = { status: "idle", run: null, target: null, error: null };
18
+ this.listeners = /* @__PURE__ */ new Set();
19
+ }
20
+ update(snapshot = {}) {
21
+ const state = snapshot.status ?? snapshot.state;
22
+ const status = state === "occupied" ? "running" : state === "ready" ? "idle" : state ?? (snapshot.occupancy ? "running" : "idle");
23
+ this.state = {
24
+ status,
25
+ run: snapshot.run ?? snapshot.occupancy?.run ?? null,
26
+ target: snapshot.target ?? null,
27
+ error: snapshot.error ? String(snapshot.error) : null,
28
+ observation: snapshot.observation ?? null,
29
+ binding: snapshot.binding ?? null
30
+ };
31
+ for (const listener of this.listeners) listener();
32
+ }
33
+ getSnapshot = () => this.state;
34
+ snapshot() {
35
+ return this.state;
36
+ }
37
+ renderStatus() {
38
+ if (this.state.error) return `View connection error: ${this.state.error}`;
39
+ if (this.state.status === "unavailable") return "View unavailable";
40
+ if (this.state.status === "stopping") return "View stopping";
41
+ return this.state.status === "running" ? "View ready (running)" : "View ready (idle)";
42
+ }
43
+ subscribe = (listener) => {
44
+ this.listeners.add(listener);
45
+ return () => this.listeners.delete(listener);
46
+ };
47
+ dispose() {
48
+ this.listeners.clear();
49
+ }
50
+ };
51
+
52
+ // packages/view-plugin-display/src/frontend.mjs
53
+ var viewDisplayFrontendPlugin = {
54
+ name: FRONTEND_PLUGIN_ID,
55
+ inject: ["viewOperationClient"],
56
+ provide: ["viewDisplayStatus"],
57
+ async apply(ctx, config = {}) {
58
+ const pageHost = config.pageHost ?? ctx.get?.("pageHost", false);
59
+ const document = config.document ?? globalThis.document;
60
+ const status = new ViewDisplayStatus();
61
+ let unregisterPageType;
62
+ let unmountPage;
63
+ let disposeObservation;
64
+ let live = true;
65
+ if (document?.createElement) {
66
+ if (!pageHost) throw new TypeError("View display Frontend Plugin requires pageHost");
67
+ if (document.getElementById?.(DISPLAY_SURFACE_ID)) {
68
+ throw new Error(`Display Fiber requires one unique surface: ${DISPLAY_SURFACE_ID}`);
69
+ }
70
+ unregisterPageType = pageHost.registerType({
71
+ typeId: PAGE_TYPE,
72
+ titleKey: PAGE_TITLE_I18N_KEY,
73
+ order: 10,
74
+ closable: false,
75
+ singleton: true,
76
+ initial: true,
77
+ openable: false,
78
+ layout: "surface",
79
+ showPanelRail: false,
80
+ hideWhenInactive: config.displayCarrier !== true
81
+ });
82
+ const surface = document.createElement(config.displayCarrier === true ? "iframe" : "section");
83
+ surface.id = DISPLAY_SURFACE_ID;
84
+ surface.name = DISPLAY_SURFACE_ID;
85
+ surface.title = "ForgeaX runtime capture";
86
+ surface.className = "fx-view-display-surface";
87
+ surface.dataset.forgeaxViewSurface = "engine-target";
88
+ surface.dataset.forgeaxViewDisplayOwner = "frontend-fiber";
89
+ surface.dataset.forgeaxViewTargetRole = DISPLAY_TARGET_ROLE;
90
+ if (config.displayCarrier === true) surface.setAttribute("aria-hidden", "true");
91
+ surface.style.border = "0";
92
+ surface.style.display = "block";
93
+ surface.style.pointerEvents = config.displayCarrier === true ? "none" : "auto";
94
+ if (config.displayCarrier !== true) {
95
+ surface.dataset.forgeaxViewSurface = "run-observer";
96
+ surface.className = "fx-view-run-observer";
97
+ disposeObservation = mountRunObserver({
98
+ document,
99
+ surface,
100
+ status,
101
+ client: ctx.get("viewOperationClient")
102
+ });
103
+ }
104
+ try {
105
+ unmountPage = pageHost.mount(PAGE_TYPE, surface);
106
+ } catch (error) {
107
+ unregisterPageType();
108
+ throw error;
109
+ }
110
+ }
111
+ ctx.provide("viewDisplayStatus", status);
112
+ const transport = ctx.get?.("hostTransport", false);
113
+ let observedEvent = false;
114
+ const unsubscribe = transport?.subscribe?.(VIEW_STATUS_TOPIC, (payload) => {
115
+ observedEvent = true;
116
+ status.update(payload ?? {});
117
+ });
118
+ const initialController = new AbortController();
119
+ if (typeof transport?.request === "function") {
120
+ void transport.request(VIEW_STATUS_SERVICE, void 0, { signal: initialController.signal }).then((snapshot) => {
121
+ if (live && !observedEvent) status.update(snapshot ?? {});
122
+ }).catch(() => {
123
+ });
124
+ }
125
+ const removeDisconnect = transport?.onDisconnect?.((error) => {
126
+ if (!live) return;
127
+ status.update({ status: "error", error: error?.message ?? String(error) });
128
+ });
129
+ ctx.effect(() => async () => {
130
+ live = false;
131
+ initialController.abort();
132
+ unsubscribe?.();
133
+ removeDisconnect?.();
134
+ unmountPage?.();
135
+ unregisterPageType?.();
136
+ disposeObservation?.();
137
+ status.dispose();
138
+ });
139
+ }
140
+ };
141
+ var frontend_default = viewDisplayFrontendPlugin;
142
+
143
+ export {
144
+ ViewDisplayStatus,
145
+ frontend_default
146
+ };
147
+ //# sourceMappingURL=chunk-YTHGRKGI.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/view-plugin-display/src/status.mjs", "../../../packages/view-plugin-display/src/frontend.mjs"],
4
+ "sourcesContent": ["export class ViewDisplayStatus {\n constructor() {\n this.state = { status: 'idle', run: null, target: null, error: null };\n this.listeners = new Set();\n }\n\n update(snapshot = {}) {\n const state = snapshot.status ?? snapshot.state;\n const status =\n state === 'occupied'\n ? 'running'\n : state === 'ready'\n ? 'idle'\n : state ?? (snapshot.occupancy ? 'running' : 'idle');\n this.state = {\n status,\n run: snapshot.run ?? snapshot.occupancy?.run ?? null,\n target: snapshot.target ?? null,\n error: snapshot.error ? String(snapshot.error) : null,\n observation: snapshot.observation ?? null,\n binding: snapshot.binding ?? null,\n };\n for (const listener of this.listeners) listener();\n }\n\n getSnapshot = () => this.state;\n\n snapshot() {\n return this.state;\n }\n\n renderStatus() {\n if (this.state.error) return `View connection error: ${this.state.error}`;\n if (this.state.status === 'unavailable') return 'View unavailable';\n if (this.state.status === 'stopping') return 'View stopping';\n return this.state.status === 'running' ? 'View ready (running)' : 'View ready (idle)';\n }\n\n subscribe = (listener) => {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n\n dispose() {\n this.listeners.clear();\n }\n}\n", "import {\n PAGE_TYPE,\n PAGE_TITLE_I18N_KEY,\n DISPLAY_SURFACE_ID,\n DISPLAY_TARGET_ROLE,\n FRONTEND_PLUGIN_ID,\n VIEW_STATUS_SERVICE,\n VIEW_STATUS_TOPIC,\n} from './identity.mjs';\n\nimport { ViewDisplayStatus } from './status.mjs';\nimport { mountRunObserver } from './ui/run-observer.mjs';\nexport { ViewDisplayStatus } from './status.mjs';\n\nconst viewDisplayFrontendPlugin = {\n name: FRONTEND_PLUGIN_ID,\n inject: ['viewOperationClient'],\n provide: ['viewDisplayStatus'],\n async apply(ctx, config = {}) {\n const pageHost = config.pageHost ?? ctx.get?.('pageHost', false);\n const document = config.document ?? globalThis.document;\n const status = new ViewDisplayStatus();\n let unregisterPageType;\n let unmountPage;\n let disposeObservation;\n let live = true;\n if (document?.createElement) {\n if (!pageHost) throw new TypeError('View display Frontend Plugin requires pageHost');\n if (document.getElementById?.(DISPLAY_SURFACE_ID)) {\n throw new Error(`Display Fiber requires one unique surface: ${DISPLAY_SURFACE_ID}`);\n }\n unregisterPageType = pageHost.registerType({\n typeId: PAGE_TYPE,\n titleKey: PAGE_TITLE_I18N_KEY,\n order: 10,\n closable: false,\n singleton: true,\n initial: true,\n openable: false,\n layout: 'surface',\n showPanelRail: false,\n hideWhenInactive: config.displayCarrier !== true,\n });\n const surface = document.createElement(config.displayCarrier === true ? 'iframe' : 'section');\n surface.id = DISPLAY_SURFACE_ID;\n surface.name = DISPLAY_SURFACE_ID;\n surface.title = 'ForgeaX runtime capture';\n surface.className = 'fx-view-display-surface';\n surface.dataset.forgeaxViewSurface = 'engine-target';\n surface.dataset.forgeaxViewDisplayOwner = 'frontend-fiber';\n surface.dataset.forgeaxViewTargetRole = DISPLAY_TARGET_ROLE;\n if (config.displayCarrier === true) surface.setAttribute('aria-hidden', 'true');\n surface.style.border = '0';\n surface.style.display = 'block';\n surface.style.pointerEvents = config.displayCarrier === true ? 'none' : 'auto';\n if (config.displayCarrier !== true) {\n surface.dataset.forgeaxViewSurface = 'run-observer';\n surface.className = 'fx-view-run-observer';\n disposeObservation = mountRunObserver({\n document, surface, status, client: ctx.get('viewOperationClient'),\n });\n }\n try {\n unmountPage = pageHost.mount(PAGE_TYPE, surface);\n } catch (error) {\n unregisterPageType();\n throw error;\n }\n }\n ctx.provide('viewDisplayStatus', status);\n const transport = ctx.get?.('hostTransport', false);\n let observedEvent = false;\n const unsubscribe = transport?.subscribe?.(VIEW_STATUS_TOPIC, (payload) => {\n observedEvent = true;\n status.update(payload ?? {});\n });\n const initialController = new AbortController();\n if (typeof transport?.request === 'function') {\n void transport\n .request(VIEW_STATUS_SERVICE, undefined, { signal: initialController.signal })\n .then((snapshot) => {\n if (live && !observedEvent) status.update(snapshot ?? {});\n })\n .catch(() => {});\n }\n const removeDisconnect = transport?.onDisconnect?.((error) => {\n if (!live) return;\n status.update({ status: 'error', error: error?.message ?? String(error) });\n });\n ctx.effect(() => async () => {\n live = false;\n initialController.abort();\n unsubscribe?.();\n removeDisconnect?.();\n unmountPage?.();\n unregisterPageType?.();\n disposeObservation?.();\n status.dispose();\n });\n },\n};\n\nexport default viewDisplayFrontendPlugin;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }