@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
package/package.json ADDED
@@ -0,0 +1,174 @@
1
+ {
2
+ "name": "@forgeax/view",
3
+ "version": "0.2.1-beta-20260924075842",
4
+ "type": "module",
5
+ "description": "An optional display host for ForgeaX CLI runs",
6
+ "bin": {
7
+ "forgeax-view": "./dist/modules/cli.mjs",
8
+ "forgeax-view-start": "./dist/modules/start-cli.mjs"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "host.pack.json",
13
+ "skills",
14
+ "README.md",
15
+ "CHANGELOG.md",
16
+ "LICENSE"
17
+ ],
18
+ "publishConfig": {
19
+ "access": "public",
20
+ "registry": "https://registry.npmjs.org/"
21
+ },
22
+ "dependencies": {
23
+ "@forgeax/engine": "0.2.0",
24
+ "@forgeax/engine-host": "0.2.0",
25
+ "@forgeax/engine-plugin": "0.2.0",
26
+ "@forgeax/engine-tool-runtime": "0.2.0",
27
+ "dockview": "^6.6.1",
28
+ "lucide-react": "^0.460.0",
29
+ "playwright": "1.63.0",
30
+ "react": "^19.1.0",
31
+ "react-dom": "^19.1.0",
32
+ "ws": "^8.21.0"
33
+ },
34
+ "devDependencies": {
35
+ "@forgeax/view-components": "0.0.0",
36
+ "@forgeax/view-plugin-content-browser": "0.0.0",
37
+ "@forgeax/view-plugin-display": "0.0.0",
38
+ "@forgeax/view-plugin-inspector": "0.0.0",
39
+ "@forgeax/view-plugin-material": "0.0.0",
40
+ "@forgeax/view-plugin-mesh": "0.0.0",
41
+ "@forgeax/view-plugin-texture": "0.0.0",
42
+ "@forgeax/view-plugin-asset": "0.0.0",
43
+ "@forgeax/view-plugin-plugins": "0.0.0",
44
+ "@forgeax/view-plugin-scene": "0.0.0",
45
+ "@forgeax/view-plugin-scene-tree": "0.0.0",
46
+ "@forgeax/view-plugin-viewport": "0.0.0",
47
+ "@forgeax/view-viewer": "0.0.0",
48
+ "@forgeax/view-workspace-core": "0.0.0",
49
+ "@changesets/changelog-github": "0.5.2",
50
+ "@changesets/cli": "2.29.8",
51
+ "esbuild": "0.28.2",
52
+ "typescript": "5.9.3",
53
+ "vite": "8.0.10"
54
+ },
55
+ "engines": {
56
+ "node": ">=22"
57
+ },
58
+ "exports": {
59
+ "./workspace/presentation": "./dist/modules/workspace/presentation.mjs",
60
+ "./pages/scene": "./dist/modules/pages/scene.mjs",
61
+ "./shell/frontend": "./dist/modules/shell/frontend.mjs",
62
+ ".": "./dist/modules/index.mjs",
63
+ "./browser": "./dist/modules/browser.mjs",
64
+ "./carrier": "./dist/modules/carrier.mjs",
65
+ "./carrier-contract": "./dist/modules/carrier-contract.mjs",
66
+ "./backend": "./dist/modules/backend.mjs",
67
+ "./extension-bridge": "./dist/modules/extension-bridge.mjs",
68
+ "./cli": "./dist/modules/cli.mjs",
69
+ "./start": "./dist/modules/start.mjs",
70
+ "./page": "./dist/modules/page.mjs",
71
+ "./embedded": "./dist/modules/embedded.mjs",
72
+ "./workspace-frontend": "./dist/modules/workspace-frontend.mjs",
73
+ "./frontend-root": "./dist/modules/frontend-root.mjs",
74
+ "./commands": "./dist/modules/commands.mjs",
75
+ "./command-executor": "./dist/modules/command-executor.mjs",
76
+ "./plugin": "./dist/modules/plugin.mjs",
77
+ "./cli-contributions": "./dist/modules/cli-contributions.mjs",
78
+ "./viewer": "./dist/modules/viewer.mjs",
79
+ "./viewer/catalog": "./dist/modules/viewer/catalog.mjs",
80
+ "./viewer/catalog/shared": "./dist/modules/viewer/catalog/shared.mjs",
81
+ "./viewer/catalog/backend": "./dist/modules/viewer/catalog/backend.mjs",
82
+ "./viewer/catalog/frontend": "./dist/modules/viewer/catalog/frontend.mjs",
83
+ "./viewer/cli": "./dist/modules/viewer/cli.mjs",
84
+ "./plugins/display/identity": "./dist/modules/plugins/display/identity.mjs",
85
+ "./plugins/display/backend": "./dist/modules/plugins/display/backend.mjs",
86
+ "./plugins/display/frontend": "./dist/modules/plugins/display/frontend.mjs",
87
+ "./plugins/display/ui": "./dist/modules/plugins/display/ui.mjs",
88
+ "./plugins/display/api": "./dist/modules/plugins/display/api.mjs",
89
+ "./plugins/display/schema": "./dist/modules/plugins/display/schema.mjs",
90
+ "./plugins/content-browser/identity": "./dist/modules/plugins/content-browser/identity.mjs",
91
+ "./plugins/content-browser/frontend": "./dist/modules/plugins/content-browser/frontend.mjs",
92
+ "./plugins/content-browser/schema": "./dist/modules/plugins/content-browser/schema.mjs",
93
+ "./plugins/content-browser/ui": "./dist/modules/plugins/content-browser/ui.mjs",
94
+ "./plugins/plugins/identity": "./dist/modules/plugins/plugins/identity.mjs",
95
+ "./plugins/plugins/backend": "./dist/modules/plugins/plugins/backend.mjs",
96
+ "./plugins/plugins/frontend": "./dist/modules/plugins/plugins/frontend.mjs",
97
+ "./plugins/plugins/api": "./dist/modules/plugins/plugins/api.mjs",
98
+ "./plugins/plugins/cli": "./dist/modules/plugins/plugins/cli.mjs",
99
+ "./plugins/plugins/schema": "./dist/modules/plugins/plugins/schema.mjs",
100
+ "./plugins/plugins/ui": "./dist/modules/plugins/plugins/ui.mjs",
101
+ "./plugins/inspector/identity": "./dist/modules/plugins/inspector/identity.mjs",
102
+ "./plugins/inspector/frontend": "./dist/modules/plugins/inspector/frontend.mjs",
103
+ "./plugins/inspector/schema": "./dist/modules/plugins/inspector/schema.mjs",
104
+ "./plugins/inspector/ui": "./dist/modules/plugins/inspector/ui.mjs",
105
+ "./plugins/scene/identity": "./dist/modules/plugins/scene/identity.mjs",
106
+ "./plugins/scene/frontend": "./dist/modules/plugins/scene/frontend.mjs",
107
+ "./plugins/scene-tree/identity": "./dist/modules/plugins/scene-tree/identity.mjs",
108
+ "./plugins/scene-tree/frontend": "./dist/modules/plugins/scene-tree/frontend.mjs",
109
+ "./plugins/scene-tree/schema": "./dist/modules/plugins/scene-tree/schema.mjs",
110
+ "./plugins/scene-tree/ui": "./dist/modules/plugins/scene-tree/ui.mjs",
111
+ "./plugins/material/identity": "./dist/modules/plugins/material/identity.mjs",
112
+ "./plugins/material/frontend": "./dist/modules/plugins/material/frontend.mjs",
113
+ "./plugins/material/schema": "./dist/modules/plugins/material/schema.mjs",
114
+ "./plugins/material/ui": "./dist/modules/plugins/material/ui.mjs",
115
+ "./plugins/mesh/identity": "./dist/modules/plugins/mesh/identity.mjs",
116
+ "./plugins/mesh/frontend": "./dist/modules/plugins/mesh/frontend.mjs",
117
+ "./plugins/mesh/schema": "./dist/modules/plugins/mesh/schema.mjs",
118
+ "./plugins/mesh/ui": "./dist/modules/plugins/mesh/ui.mjs",
119
+ "./plugins/texture/identity": "./dist/modules/plugins/texture/identity.mjs",
120
+ "./plugins/texture/frontend": "./dist/modules/plugins/texture/frontend.mjs",
121
+ "./plugins/texture/schema": "./dist/modules/plugins/texture/schema.mjs",
122
+ "./plugins/texture/ui": "./dist/modules/plugins/texture/ui.mjs",
123
+ "./plugins/asset/identity": "./dist/modules/plugins/asset/identity.mjs",
124
+ "./plugins/asset/frontend": "./dist/modules/plugins/asset/frontend.mjs",
125
+ "./plugins/asset/schema": "./dist/modules/plugins/asset/schema.mjs",
126
+ "./plugins/asset/ui": "./dist/modules/plugins/asset/ui.mjs",
127
+ "./plugins/viewport/identity": "./dist/modules/plugins/viewport/identity.mjs",
128
+ "./plugins/viewport/frontend": "./dist/modules/plugins/viewport/frontend.mjs",
129
+ "./plugins/viewport/schema": "./dist/modules/plugins/viewport/schema.mjs",
130
+ "./workspace/api": "./dist/modules/workspace/api.mjs",
131
+ "./workspace/backend": "./dist/modules/workspace/backend.mjs",
132
+ "./workspace/broker": "./dist/modules/workspace/broker.mjs",
133
+ "./workspace/cli": "./dist/modules/workspace/cli.mjs",
134
+ "./workspace/client": "./dist/modules/workspace/client.mjs",
135
+ "./workspace/contract": "./dist/modules/workspace/contract.mjs",
136
+ "./workspace/engine-adapter": "./dist/modules/workspace/engine-adapter.mjs",
137
+ "./workspace/extension-bridge": "./dist/modules/workspace/extension-bridge.mjs",
138
+ "./workspace/frontend-plugin": "./dist/modules/workspace/frontend-plugin.mjs",
139
+ "./workspace/frontend": "./dist/modules/workspace/frontend.mjs",
140
+ "./workspace/id": "./dist/modules/workspace/id.mjs",
141
+ "./workspace/resident": "./dist/modules/workspace/resident.mjs",
142
+ "./workspace/resource-open": "./dist/modules/workspace/resource-open.mjs",
143
+ "./workspace/tool-runtime": "./dist/modules/workspace/tool-runtime.mjs",
144
+ "./shell/contract": "./dist/modules/shell/contract.mjs",
145
+ "./shell/layout-zones": "./dist/modules/shell/layout-zones.mjs",
146
+ "./viewer-host": "./dist/modules/viewer-host.mjs",
147
+ "./viewer-host/frontend": "./dist/modules/viewer-host/frontend.mjs",
148
+ "./viewer-host/page-registry": "./dist/modules/viewer-host/page-registry.mjs",
149
+ "./viewer-host/slot-registry": "./dist/modules/viewer-host/slot-registry.mjs"
150
+ },
151
+ "scripts": {
152
+ "build": "pnpm run build:viewer && node scripts/build-package.mjs",
153
+ "build:viewer": "pnpm --filter @forgeax/view-viewer build",
154
+ "dev": "pnpm --filter @forgeax/view-viewer dev",
155
+ "dev:ui": "pnpm --filter @forgeax/view-viewer dev:ui",
156
+ "storybook": "pnpm --filter @forgeax/view-components storybook",
157
+ "build:storybook": "pnpm --filter @forgeax/view-components build:storybook",
158
+ "check:components": "pnpm --filter @forgeax/view-components check",
159
+ "check:packages": "pnpm -r --if-present check",
160
+ "check:architecture": "node scripts/check-architecture.mjs && node --test test/source-boundaries.test.mjs test/architecture-ci.test.mjs test/no-legacy-surfaces.test.mjs",
161
+ "changeset": "changeset",
162
+ "changeset:version": "changeset version && node scripts/sync-release-version.mjs",
163
+ "release": "node scripts/release-npm.mjs",
164
+ "release:snapshot": "node scripts/release-npm.mjs snapshot",
165
+ "release:dry-run": "node scripts/release-npm.mjs dry-run --tag beta",
166
+ "release:verify": "node scripts/release-npm.mjs verify",
167
+ "postinstall": "node --input-type=module -e \"import{existsSync}from'node:fs';if(existsSync('.git'))await import('./scripts/sync-harness.mjs')\"",
168
+ "harness:sync": "node scripts/sync-harness.mjs",
169
+ "harness:init": "node scripts/init-harness.mjs",
170
+ "test": "node --test scripts/sync-harness.test.mjs scripts/release-npm.test.mjs test/*.test.mjs",
171
+ "test:view": "node --test test/*.test.mjs",
172
+ "test:package": "node --test test/package-aggregate.test.mjs"
173
+ }
174
+ }
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: forgeax-view-cli
3
+ description: >-
4
+ Use the authoritative View workspace API through its CLI clients. Use when
5
+ inspecting or changing View project bindings, opening assets, selecting scene
6
+ entities, or checking whether a CLI request affects an open View page.
7
+ ---
8
+
9
+ # ForgeaX View API and CLI
10
+
11
+ > [!IMPORTANT]
12
+ > The resident workspace API is authoritative. The browser and CLI are clients
13
+ > of the same owner; the CLI does not implement project, asset, scene, or camera
14
+ > behavior. Engine owns project and target execution. View owns workspace
15
+ > bindings, selection, and presentation requests.
16
+
17
+ ## Find the live contract
18
+
19
+ Read `@forgeax/view/workspace/contract` for operation names and request shape
20
+ (`packages/view-workspace-core/src/contract.mjs` in this repository). For
21
+ programmatic clients, call
22
+ `connectViewWorkspace(...).capabilities()` to see what the connected owner can
23
+ execute. The contract's operation list alone does not prove that a provider is
24
+ installed and callable. Use `tabs.get` for the current project, tab, and exact
25
+ target identities; obtain asset GUIDs from `assets.list`. Keep the returned
26
+ `projectId`, `targetId`, and `targetGeneration` with subsequent requests instead
27
+ of guessing from paths, names, or a previous target.
28
+
29
+ | Need | Owner and entry |
30
+ |:--|:--|
31
+ | Backend or optional View lifecycle | `forgeax backend ...` and `forgeax view start\|status\|stop`; use [View startup](../forgeax-view-start/SKILL.md) |
32
+ | Allocate an Editor project on the running View | `forgeax view project open --root <backend-root> --project <project-root> --json`; open the returned headed URL |
33
+ | Call one resident workspace operation through Engine CLI | `forgeax view workspace call --root <backend-root> --operation <id> --args <json> --json`; requires the selected View host Pack and running View owner |
34
+ | Call the resident View workspace API | `forgeax-view workspace --operation <id> --args <json>` with the issued endpoint and token |
35
+ | Author assets or control an independent AI run | Engine CLI; use the installed `forgeax-engine-cli` skill when available |
36
+
37
+ `forgeax help view --tree --json` discovers declarations from the running
38
+ backend's selected host Pack. A listed command does not prove its plugin
39
+ is mounted or its provider is callable. The `forgeax-view workspace --help`
40
+ operation list describes its client grammar; an unavailable operation fails at
41
+ the connected owner. The workspace CLI accepts `--endpoint` and `--token`, or
42
+ `FORGEAX_VIEW_WORKSPACE_ENDPOINT` and `FORGEAX_VIEW_WORKSPACE_TOKEN`. Treat
43
+ these credentials as connection secrets; do not paste them into reports.
44
+ The resident View registers `view.workspace.*` on ToolApi; the frontend
45
+ transport and both CLI entries reach the same View owner. The Engine CLI
46
+ entry uses the backend's existing authentication. Select the package host
47
+ with `backend start --host-pack`; a downloaded View package alone
48
+ does not make this command discoverable.
49
+
50
+ ## Open a scene through the API
51
+
52
+ With an Editor project already open, call `tabs.get`, then `assets.list` for its
53
+ `projectId`. Choose the scene asset's exact GUID. The Content Browser's double
54
+ click and the following CLI call both submit `asset.open` with the same
55
+ workspace tab and project identity:
56
+
57
+ ```sh
58
+ forgeax-view workspace --operation asset.open \
59
+ --args '{"projectId":"<project-id>","guid":"<scene-guid>","tabId":"forgeax-user-workspace"}'
60
+ ```
61
+
62
+ After success, read `tabs.get` again and check its `openRequest` and Editor
63
+ target. If an already connected frontend has the scene PageType, it observes
64
+ the new request and focuses the Editor page. A frontend that connects later
65
+ baselines the retained request; the CLI response alone does not prove a page
66
+ is visible or that a rendered frame exists. Verify the browser and target when
67
+ the requested outcome is visual.
68
+
69
+ Use `scene.select`, `scene.pick`, or `scene.clear` for View selection; direct
70
+ Engine `target.pick` only returns query facts. Page layout, Content Browser
71
+ filters, and other local UI interactions are frontend policy and need not have
72
+ workspace CLI operations. Keep multi-call camera transactions on one client
73
+ connection with `--batch`; a single CLI call closes its connection after the
74
+ API response.
@@ -0,0 +1,202 @@
1
+ ---
2
+ name: forgeax-view-start
3
+ description: >-
4
+ Bind a local Engine checkout and compose independent ForgeaX backend, View,
5
+ project, browser and run operations. Use when opening a project with View, starting View, switching a project to
6
+ local Engine, or diagnosing a startup that stalls before the interface opens.
7
+ ---
8
+
9
+ # ForgeaX View startup
10
+
11
+ ## Open a project with one script
12
+
13
+ For a local Engine checkout and known game project, run the bundled script:
14
+
15
+ ```sh
16
+ node skills/forgeax-view-start/scripts/start-view.mjs \
17
+ --project /absolute/path/to/game \
18
+ --engine /absolute/path/to/forgeax-engine
19
+ ```
20
+
21
+ The script checks the package link and local Engine binding, builds stale
22
+ Engine/View outputs, prepares the shader profile, reuses or starts a managed
23
+ backend with View's `host.pack.json`, and calls `view start --project`. It
24
+ returns one JSON result on stdout. Read `url` from an `ok: true` result and
25
+ open it with the available browser tool. Then verify the requested project
26
+ name/content and a live Engine target in the browser. The URL alone proves
27
+ only that View is serving the project intent. The script does not launch a
28
+ browser, open Play, or control an independent AI run.
29
+
30
+ Use `--view` for another View checkout, `--root` for a dedicated empty backend
31
+ workspace, `--restart` after a compatible host needs replacement, and
32
+ `--profile point-ssao` for a project that uses point shadows. `--build auto`
33
+ is the default; `--build always` rebuilds, and `--build never` requires fresh
34
+ outputs. The script refuses a conflicting package link, foreign backend, or
35
+ nonempty unmanaged workspace and reports the failing stage in JSON. Do not
36
+ silently replace those owners. Progress and command diagnostics go to stderr.
37
+
38
+ The manual composition below remains useful for a narrower service-only
39
+ request or diagnosis of a failed stage.
40
+
41
+ Read [Start here](../../README.md#start-here) for the current commands and Pack
42
+ PluginAsset root. Check the selected Engine package's public exports and CLI help
43
+ before using a command.
44
+
45
+ ## Interpret the requested outcome
46
+
47
+ Treat "use View to start this project" as a request to open that project in
48
+ View for editing. Compose the necessary steps in this skill; do not require the
49
+ user to request each service separately. Start Play or an independent AI run
50
+ only when the user requests that execution mode. A request for just a service
51
+ or URL ends at that narrower outcome.
52
+
53
+ | Step | Owner and boundary | Completion evidence |
54
+ |:--|:--|:--|
55
+ | Backend | Explicit Engine backend command; reuse a compatible owner or start a missing one | Backend responds with the requested Engine and host composition |
56
+ | View | View plugin command on that backend; never implicitly starts the backend | View returns its interface URL |
57
+ | Browser | Agent uses an available browser tool when the request includes opening the project | Returned URL is visited; low-level CLI commands do not launch a browser |
58
+ | Project | Existing workspace API, reached through the project-intent URL or explicit project.open | Requested project identity, content and exact Engine target are present |
59
+ | Play / AI run | Explicit Engine execution operation for the requested mode | Its own target or run readiness; separate from Editor readiness |
60
+
61
+ Use a documented convenience command when the installed CLI provides one;
62
+ otherwise compose the independent commands here. Check which services it starts,
63
+ whether it opens a browser/project, its reuse policy, and its completion result.
64
+ Do not assume a `forgeax view open` command exists. Command discovery/help must
65
+ not activate services. Follow the installed package's current root and
66
+ PluginAsset contract; design proposals are not available commands.
67
+
68
+ Keep API calls usable independently of CLI workflows. Convenience commands may
69
+ compose public APIs, while each underlying CLI command retains its documented
70
+ single-operation behavior. Do not duplicate domain validation or state in a
71
+ convenience wrapper, or make a low-level API silently perform the full workflow.
72
+
73
+ For a known project, carry its canonical path through the returned URL or
74
+ project.open request. Prefer the URL-intent path for an ordinary browser open;
75
+ use explicit project.open when allocation before navigation is required. Do not
76
+ issue both as independent allocations. Reuse an existing matching project and
77
+ URL; a different open project or incompatible backend requires resolving that
78
+ specific conflict, not silently switching or restarting it.
79
+
80
+ If no suitable browser tool or desktop is available, return the actual URL and
81
+ report that browser/project readiness remains unverified. A URL or allocated
82
+ target alone is not completion of a request to open the project. Preserve the
83
+ last successful stage and original failure; retry only the failed step after
84
+ checking current owner state. Do not replay editing, scene-open, or Play actions.
85
+
86
+ ## Resolve the requested Engine
87
+
88
+ For a local repository request, follow
89
+ [Use a local Engine checkout](../../README.md#use-a-local-engine-checkout).
90
+ Inspect the current package link and `project engine status` first. Keep a
91
+ matching healthy binding; do not replace it with an SDK archive or rebuild it
92
+ merely to start View.
93
+
94
+ The package link selects the local CLI and Node-side Pack imports. The existing
95
+ `project engine use-local` binding selects local workspace exports for the
96
+ browser host. Verify `mode: "local"`, the requested checkout, the resolved built
97
+ entry, and `project engine check` before reporting the binding complete. Use
98
+ public built exports; do not redirect package exports or Vite aliases to `src`.
99
+ Resolve the actual `node_modules/@forgeax/engine` link from the project and
100
+ compare it with the checkout in `.forgeax/engine-binding.json`. Both sides must
101
+ select the same Engine revision. `project engine check` proves the browser
102
+ binding is healthy, but a different Node-side package link can still cook Pack
103
+ assets with stale component fields.
104
+
105
+ Build missing or changed outputs explicitly. After building a local Engine
106
+ checkout, prepare the shader profile used by the target and check both
107
+ `packages/vite-plugin-shader/dist/engine-inputs/<profile>/manifest.json` and
108
+ `imports.json` before starting a rendering target. The default profile is
109
+ `base-ssao`; use the matching point-shadow profile when that feature is enabled.
110
+ Recheck after rebuilding the shader package, since its `dist` output can replace
111
+ the prepared profile. A missing profile makes each fresh Backend compile Engine
112
+ shaders from source and can keep one CPU busy for minutes; a healthy package
113
+ build count alone does not establish rendering readiness. Report preparation
114
+ separately from backend/View startup. Do not pack a candidate SDK as a
115
+ substitute for the requested local repository binding.
116
+
117
+ ## Compose only the requested operations
118
+
119
+ Inspect `backend status` and `view status` for the chosen workspace root. Reuse
120
+ an existing healthy service with the requested Engine. A binding change does
121
+ not update running owners; apply it with an explicit backend restart, and keep
122
+ independent runs under their separate lifecycle. Select the installed View
123
+ package's `host.pack.json` with `backend start --host-pack <absolute-pack-path>`.
124
+ The game needs no View asset or changed `roots.host`. If it already owns a host
125
+ root, use a separate backend workspace root and open the game with `--project`.
126
+ Perform the operations needed for the user's requested outcome:
127
+
128
+ | Request | Action and completion evidence |
129
+ |:--|:--|
130
+ | Start Engine backend | `backend start --host-pack <View package>/host.pack.json`; Engine API and the selected View plugin are ready |
131
+ | Start View | Connect to the backend with `view start`; return the actual URL |
132
+ | Open the interface | Open that URL in the user's browser; verify Shell connection if browser interaction is requested |
133
+ | Edit a project | Return the URL with the known project intent: backend root is the default project if it contains `forge.json`; `--project /absolute/project` overrides it. Verify project identity and Engine target after opening that URL |
134
+ | Explicitly allocate a project | `forgeax view project open --root <backend> --project /absolute/project --json`; open `projectTarget.url`, or let an already-open empty Shell adopt it. Command success alone does not prove the headed page is ready |
135
+ | Play in Editor | Start Play for the open project; use its exact target for shared tools |
136
+ | Observe an AI run | Bind its explicit `{root, runId}`; verify a timestamped image from that run |
137
+
138
+ For a complete View startup request, start a missing backend first, then enable
139
+ View. Stop after the requested outcome. The browser opens the known project from
140
+ the returned URL; Play and independent AI runs still require separate intent.
141
+ Browser automation setup belongs to an explicitly requested browser workflow,
142
+ not to `backend start` or `view start`.
143
+
144
+ `--root` selects the existing backend workspace. `view start` creates no
145
+ project target. Do not ask users to retype a known project path. Verify repeated
146
+ refresh carries the confirmed project and old target through the resident View
147
+ entry, then opens a fresh Editor only after Engine validates that exact lost
148
+ target. Verify no manual reconnect or resource/camera/layout history replay. Never
149
+ resend commands to the lost target or restart Play automatically. Report
150
+ conflicts with another active page and require an explicit project choice.
151
+ During the transfer, verify the resident View entry shows restoration progress
152
+ without target-bound panels or stale-target command errors. Measure the time to
153
+ the fresh target separately from the time to reach the resident entry.
154
+ When startup speed matters, start the Engine backend with
155
+ `FORGEAX_WORKSPACE_TIMING=1` and use the Engine checkout's
156
+ `node scripts/workspace-timing-report.mjs <backend-root>` after repeated opens or
157
+ refreshes. The report groups exact targets and separates Vite config, server
158
+ creation/listening, Catalog wait and browser readiness. Record the browser's
159
+ time to reach the resident View entry separately; the Engine timer starts when
160
+ the replacement target opens. Check the stage distribution before changing
161
+ startup behavior.
162
+ `view project open` takes the
163
+ editor project directory as `--project` and opens it on the running View; it
164
+ never launches a browser, starts Play, or switches away from a different open
165
+ project. Its JSON result only proves the headed session was allocated: open
166
+ `projectTarget.url`, or confirm the empty shell navigated there, before
167
+ treating the project as open in the interface.
168
+
169
+ When the user supplied a project path and asked to open it, use the project-intent
170
+ URL or `view project open` with that path; do not stop at the
171
+ connected Shell and do not type into the path dialog. `No project`, an empty path field, or a disabled **Open
172
+ project** button means the project-open step is incomplete. The final project
173
+ screenshot must contain the requested project target. Treat scene preview and
174
+ Play as independent follow-up gates: a scene tree proves scene loading, while a
175
+ running Play target plus real pixels proves game execution. During a slow Play
176
+ start, retain the pending state until Engine reports readiness; do not infer
177
+ failure from temporarily disabled controls.
178
+
179
+ For WebGPU pixel evidence, use the repository's canonical Playwright launch
180
+ configuration or the browser flags required by its real integration script. A
181
+ browser that merely exposes `navigator.gpu` can still leave the canvas black on
182
+ an unsuitable backend. Wait for the Engine document's submitted-frame marker,
183
+ then inspect the screenshot itself; `play.ready`, a mounted iframe, and a black
184
+ canvas are not pixel acceptance.
185
+
186
+ Use [status and stop](../../README.md#check-status-and-stop) for cleanup. Stop
187
+ only owned/requested resources; View stop preserves the backend and independent
188
+ runs, and borrowed browser resources remain with their caller.
189
+
190
+ ## Preserve the failing boundary
191
+
192
+ | Evidence | Next action |
193
+ |:--|:--|
194
+ | Command missing | Verify the selected Engine CLI version, backend `hostPack` status, built View exports, and packaged `host.pack.json` |
195
+ | Pack module initialization timeout | Retain the source filename and diagnostic; inspect actual resolved imports before claiming whole-Engine compilation |
196
+ | Terminal Pack/catalog failure | Return the producer error; repair and explicitly reopen the project instead of adding another readiness wait |
197
+ | Shell ready, rendering failed | Report target failure separately; inspect Engine's original renderer error while keeping View available |
198
+ | Missing automation browser | Report that prerequisite only for the browser task; a View URL does not require Playwright |
199
+
200
+ Return the selected Engine entry, workspace root, service/URL state and the
201
+ verification boundary. Keep URL readiness, DOM interaction, real pixels and CI
202
+ results distinct. Update this guidance with README startup contract changes.