@forgeax/view 0.5.0-dev.13604.c415409c3b9d → 0.5.0-dev.13713.d28c4863d779
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.
- package/README.md +67 -9
- package/dist/build-revision.json +1 -1
- package/dist/modules/backend.mjs +34 -34
- package/dist/modules/browser.mjs +55 -49
- package/dist/modules/chunks/{chunk-EWSCJF77.mjs → chunk-2CMCY54A.mjs} +2 -2
- package/dist/modules/chunks/{chunk-M6S5YA6X.mjs → chunk-2RUKPDIE.mjs} +4 -4
- package/dist/modules/chunks/{chunk-M6S5YA6X.mjs.map → chunk-2RUKPDIE.mjs.map} +1 -1
- package/dist/modules/chunks/{chunk-DWT3TA6M.mjs → chunk-3FBX3P3H.mjs} +9 -8
- package/dist/modules/chunks/chunk-3FBX3P3H.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-6KM24NH6.mjs → chunk-3Y5WN22T.mjs} +3 -3
- package/dist/modules/chunks/chunk-3Y5WN22T.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-YFQGSDK3.mjs → chunk-45WL24XN.mjs} +2 -2
- package/dist/modules/chunks/{chunk-FMCHH5R4.mjs → chunk-4FYKRL46.mjs} +3 -3
- package/dist/modules/chunks/{chunk-VW2ZF3P4.mjs → chunk-4MJHVZMB.mjs} +6 -6
- package/dist/modules/chunks/{chunk-XQYF2P6M.mjs → chunk-5HVXQEO3.mjs} +7 -7
- package/dist/modules/chunks/{chunk-XMP4THLF.mjs → chunk-66LM6NO6.mjs} +4 -4
- package/dist/modules/chunks/{chunk-P4UPH74B.mjs → chunk-6C4OCCYB.mjs} +12 -12
- package/dist/modules/chunks/{chunk-P4UPH74B.mjs.map → chunk-6C4OCCYB.mjs.map} +1 -1
- package/dist/modules/chunks/{chunk-ZGOGO7SS.mjs → chunk-6J27SWMY.mjs} +1 -1
- package/dist/modules/chunks/{chunk-JK7K7RG3.mjs → chunk-6VK7HB4X.mjs} +4 -4
- package/dist/modules/chunks/{chunk-HRKW766Y.mjs → chunk-6WZZ7TIC.mjs} +2 -2
- package/dist/modules/chunks/{chunk-FICPCJKR.mjs → chunk-7DFCIN3T.mjs} +3 -3
- package/dist/modules/chunks/{chunk-FICPCJKR.mjs.map → chunk-7DFCIN3T.mjs.map} +1 -1
- package/dist/modules/chunks/{chunk-U64FRQKP.mjs → chunk-7MWZK7HS.mjs} +3 -3
- package/dist/modules/chunks/{chunk-F5RLQAPN.mjs → chunk-A7OGXJAV.mjs} +3 -3
- package/dist/modules/chunks/{chunk-QUFVUMSY.mjs → chunk-AUINYWZP.mjs} +2 -2
- package/dist/modules/chunks/{chunk-PZIAKZJC.mjs → chunk-B24VYGHV.mjs} +3 -3
- package/dist/modules/chunks/{chunk-SRYQLFBV.mjs → chunk-BIUWJROZ.mjs} +3 -3
- package/dist/modules/chunks/{chunk-SRYQLFBV.mjs.map → chunk-BIUWJROZ.mjs.map} +2 -2
- package/dist/modules/chunks/{chunk-X4NNZ5X6.mjs → chunk-C2AMOM7H.mjs} +3 -3
- package/dist/modules/chunks/{chunk-IZAHIOFU.mjs → chunk-C3WVSJZF.mjs} +6 -6
- package/dist/modules/chunks/{chunk-2Z5KEV6L.mjs → chunk-CAXCOZ7Y.mjs} +3 -3
- package/dist/modules/chunks/{chunk-HWZCLROY.mjs → chunk-CN6YN4HP.mjs} +251 -45
- package/dist/modules/chunks/chunk-CN6YN4HP.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-B6QUJ33G.mjs → chunk-CXFQME65.mjs} +3 -3
- package/dist/modules/chunks/{chunk-IJPWKKIU.mjs → chunk-CYOLEAAY.mjs} +14 -13
- package/dist/modules/chunks/chunk-CYOLEAAY.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-U6UMATPV.mjs → chunk-CYU3WWN6.mjs} +3 -3
- package/dist/modules/chunks/{chunk-AGVLPYVE.mjs → chunk-D2LZIQE2.mjs} +2 -2
- package/dist/modules/chunks/{chunk-5YTMN435.mjs → chunk-DC5JP46Y.mjs} +13 -3
- package/dist/modules/chunks/chunk-DC5JP46Y.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-YNHEYXDG.mjs → chunk-DOU4MNMQ.mjs} +3 -3
- package/dist/modules/chunks/{chunk-ZIDEETK4.mjs → chunk-E4G4HDOC.mjs} +3 -3
- package/dist/modules/chunks/{chunk-ZHO2G4JR.mjs → chunk-EZAJ66NW.mjs} +3 -3
- package/dist/modules/chunks/{chunk-APD2EWSZ.mjs → chunk-FIWL6TQS.mjs} +2 -2
- package/dist/modules/chunks/{chunk-U5J7OTEB.mjs → chunk-FSSARTVM.mjs} +3 -3
- package/dist/modules/chunks/{chunk-47RJSHLM.mjs → chunk-FXXPWAXM.mjs} +3 -3
- package/dist/modules/chunks/{chunk-D2RCKG7Q.mjs → chunk-G2QCXN56.mjs} +6 -6
- package/dist/modules/chunks/{chunk-4T3D67CS.mjs → chunk-GRDCA6LD.mjs} +8 -8
- package/dist/modules/chunks/{chunk-4T3D67CS.mjs.map → chunk-GRDCA6LD.mjs.map} +1 -1
- package/dist/modules/chunks/{chunk-WVU3CQ62.mjs → chunk-GUVUL6D2.mjs} +3 -3
- package/dist/modules/chunks/{chunk-YLCJNKIW.mjs → chunk-I32EONBF.mjs} +70 -30
- package/dist/modules/chunks/chunk-I32EONBF.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-E3PJGTLI.mjs → chunk-IGIELQZ2.mjs} +5 -5
- package/dist/modules/chunks/{chunk-5PHAXNFO.mjs → chunk-IMDR26Y3.mjs} +3 -3
- package/dist/modules/chunks/{chunk-55F55BQY.mjs → chunk-JVOHFCI4.mjs} +3 -3
- package/dist/modules/chunks/{chunk-6I7RY73G.mjs → chunk-KCM7ZCQ3.mjs} +5 -5
- package/dist/modules/chunks/chunk-KCM7ZCQ3.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-K2QZRFLE.mjs → chunk-KJTMDFFX.mjs} +4 -4
- package/dist/modules/chunks/{chunk-KX2WU5Z6.mjs → chunk-KPLESRQY.mjs} +3 -3
- package/dist/modules/chunks/{chunk-PW5CE2Y6.mjs → chunk-KUOWDTI6.mjs} +2 -2
- package/dist/modules/chunks/chunk-L6IHUN7X.mjs +13 -0
- package/dist/modules/chunks/chunk-L6IHUN7X.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-INTTYJVW.mjs → chunk-LBQ6DFMP.mjs} +2 -2
- package/dist/modules/chunks/{chunk-OKQ5RBKO.mjs → chunk-LVWHM3UN.mjs} +2 -2
- package/dist/modules/chunks/{chunk-D57DDEV2.mjs → chunk-MDQMARAN.mjs} +6 -6
- package/dist/modules/chunks/{chunk-D57DDEV2.mjs.map → chunk-MDQMARAN.mjs.map} +2 -2
- package/dist/modules/chunks/{chunk-STQPRNEO.mjs → chunk-MLXRIWJA.mjs} +2 -2
- package/dist/modules/chunks/{chunk-D25SR5FS.mjs → chunk-N2SH3JGI.mjs} +3 -3
- package/dist/modules/chunks/{chunk-KI4WGTWL.mjs → chunk-N7NXZ6R3.mjs} +4 -4
- package/dist/modules/chunks/{chunk-KI4WGTWL.mjs.map → chunk-N7NXZ6R3.mjs.map} +2 -2
- package/dist/modules/chunks/{chunk-7IGFAI5H.mjs → chunk-O5QX6H3U.mjs} +5 -5
- package/dist/modules/chunks/{chunk-5W7SC5D4.mjs → chunk-P2Y73QJJ.mjs} +11 -1
- package/dist/modules/chunks/{chunk-5W7SC5D4.mjs.map → chunk-P2Y73QJJ.mjs.map} +2 -2
- package/dist/modules/chunks/{chunk-FNRGLCZW.mjs → chunk-PCQNUFDL.mjs} +39 -13
- package/dist/modules/chunks/chunk-PCQNUFDL.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-46UEGAXY.mjs → chunk-Q7M7VUOZ.mjs} +6 -6
- package/dist/modules/chunks/{chunk-XE6ITXHT.mjs → chunk-QB33CMEU.mjs} +2 -2
- package/dist/modules/chunks/{chunk-E3Z7GLFU.mjs → chunk-QJHQN6OD.mjs} +15 -4
- package/dist/modules/chunks/chunk-QJHQN6OD.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-KAGFU64Y.mjs → chunk-QW2VT3XB.mjs} +2 -2
- package/dist/modules/chunks/{chunk-U5R6MVM4.mjs → chunk-RFTLGEB5.mjs} +2 -2
- package/dist/modules/chunks/{chunk-VKNIYV2W.mjs → chunk-RYYKMDNI.mjs} +202 -35
- package/dist/modules/chunks/chunk-RYYKMDNI.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-P5XMFZY4.mjs → chunk-SFB5BDTB.mjs} +2 -2
- package/dist/modules/chunks/{chunk-4D3Q7K44.mjs → chunk-SNICHQJP.mjs} +2 -2
- package/dist/modules/chunks/{chunk-CX5WREJC.mjs → chunk-SPGFO2TA.mjs} +2 -2
- package/dist/modules/chunks/{chunk-H256DQT6.mjs → chunk-TMPTVIAP.mjs} +2 -2
- package/dist/modules/chunks/{chunk-OQXDADAS.mjs → chunk-UWJYROKS.mjs} +6 -6
- package/dist/modules/chunks/chunk-UWJYROKS.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-TTRUYO7Q.mjs → chunk-UZH2664E.mjs} +3 -3
- package/dist/modules/chunks/{chunk-TTRUYO7Q.mjs.map → chunk-UZH2664E.mjs.map} +2 -2
- package/dist/modules/chunks/{chunk-CKYXAT7H.mjs → chunk-VC4OEPDH.mjs} +2 -2
- package/dist/modules/chunks/{chunk-RJVOH7G2.mjs → chunk-VKWEA6NG.mjs} +27 -27
- package/dist/modules/chunks/{chunk-LZ57Y73Z.mjs → chunk-VSJOW7J4.mjs} +9 -7
- package/dist/modules/chunks/chunk-VSJOW7J4.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-PVP5YBNR.mjs → chunk-WFM434WJ.mjs} +2 -2
- package/dist/modules/chunks/{chunk-TXLD7JI5.mjs → chunk-WJNASQF2.mjs} +2 -2
- package/dist/modules/chunks/{chunk-357UOBAS.mjs → chunk-XUNDH3E7.mjs} +2 -2
- package/dist/modules/chunks/{chunk-PJFFCRRD.mjs → chunk-YDARD4EP.mjs} +2 -2
- package/dist/modules/chunks/{chunk-27XASYEH.mjs → chunk-YU3HRQX7.mjs} +17 -11
- package/dist/modules/chunks/chunk-YU3HRQX7.mjs.map +7 -0
- package/dist/modules/chunks/{chunk-EZSGDSCC.mjs → chunk-ZRE7BDDB.mjs} +30 -5
- package/dist/modules/chunks/chunk-ZRE7BDDB.mjs.map +7 -0
- package/dist/modules/cli-contributions.mjs +14 -14
- package/dist/modules/cli.mjs +5 -5
- package/dist/modules/command-executor.mjs +3 -3
- package/dist/modules/embedded.mjs +82 -42
- package/dist/modules/embedded.mjs.map +2 -2
- package/dist/modules/extension-bridge.mjs +4 -4
- package/dist/modules/frontend-root.mjs +46 -46
- package/dist/modules/index.mjs +71 -65
- package/dist/modules/index.mjs.map +1 -1
- package/dist/modules/pages/scene.mjs +5 -5
- package/dist/modules/plugin.mjs +35 -35
- package/dist/modules/plugins/asset/frontend.mjs +10 -10
- package/dist/modules/plugins/asset/identity.mjs +9 -9
- package/dist/modules/plugins/asset/ui.mjs +3 -3
- package/dist/modules/plugins/content-browser/frontend.mjs +3 -3
- package/dist/modules/plugins/content-browser/identity.mjs +2 -2
- package/dist/modules/plugins/content-browser/ui.mjs +3 -3
- package/dist/modules/plugins/display/api.mjs +1 -1
- package/dist/modules/plugins/display/backend.mjs +4 -4
- package/dist/modules/plugins/display/frontend.mjs +5 -5
- package/dist/modules/plugins/display/identity.mjs +2 -2
- package/dist/modules/plugins/display/ui.mjs +3 -3
- package/dist/modules/plugins/inspector/frontend.mjs +3 -3
- package/dist/modules/plugins/inspector/identity.mjs +2 -2
- package/dist/modules/plugins/inspector/ui.mjs +3 -3
- package/dist/modules/plugins/material/frontend.mjs +10 -10
- package/dist/modules/plugins/material/identity.mjs +9 -9
- package/dist/modules/plugins/material/ui.mjs +10 -10
- package/dist/modules/plugins/mesh/frontend.mjs +10 -10
- package/dist/modules/plugins/mesh/identity.mjs +9 -9
- package/dist/modules/plugins/mesh/ui.mjs +10 -10
- package/dist/modules/plugins/plugins/api.mjs +4 -4
- package/dist/modules/plugins/plugins/backend.mjs +7 -7
- package/dist/modules/plugins/plugins/cli.mjs +5 -5
- package/dist/modules/plugins/plugins/frontend.mjs +3 -3
- package/dist/modules/plugins/plugins/identity.mjs +2 -2
- package/dist/modules/plugins/plugins/runtime.mjs +6 -6
- package/dist/modules/plugins/plugins/ui/panel.mjs +3 -3
- package/dist/modules/plugins/plugins/ui.mjs +4 -4
- package/dist/modules/plugins/scene/frontend.mjs +5 -5
- package/dist/modules/plugins/scene/identity.mjs +2 -2
- package/dist/modules/plugins/scene-tree/frontend.mjs +3 -3
- package/dist/modules/plugins/scene-tree/identity.mjs +2 -2
- package/dist/modules/plugins/scene-tree/ui.mjs +3 -3
- package/dist/modules/plugins/texture/frontend.mjs +10 -10
- package/dist/modules/plugins/texture/identity.mjs +9 -9
- package/dist/modules/plugins/texture/ui.mjs +10 -10
- package/dist/modules/plugins/viewport/frontend.mjs +12 -12
- package/dist/modules/plugins/viewport/identity.mjs +2 -2
- package/dist/modules/plugins/viewport/presentation.mjs +4 -4
- package/dist/modules/plugins/viewport/schema.mjs +2 -2
- package/dist/modules/plugins/viewport/workspace-shell.mjs +9 -9
- package/dist/modules/product.mjs +35 -35
- package/dist/modules/shell/frontend.mjs +1 -1
- package/dist/modules/viewer/catalog/backend.mjs +31 -31
- package/dist/modules/viewer/catalog/frontend.mjs +42 -42
- package/dist/modules/viewer/catalog/shared.mjs +20 -20
- package/dist/modules/viewer/catalog.mjs +51 -51
- package/dist/modules/viewer/cli.mjs +10 -10
- package/dist/modules/viewer-host/frontend.mjs +48 -48
- package/dist/modules/viewer-host/page-registry.mjs +6 -6
- package/dist/modules/viewer-host.mjs +7 -7
- package/dist/modules/viewer.mjs +51 -51
- package/dist/modules/workspace/api.mjs +1 -1
- package/dist/modules/workspace/backend.mjs +10 -10
- package/dist/modules/workspace/broker.mjs +9 -9
- package/dist/modules/workspace/cli.mjs +2 -2
- package/dist/modules/workspace/client.mjs +3 -3
- package/dist/modules/workspace/command-error.mjs +2 -2
- package/dist/modules/workspace/contract.mjs +7 -1
- package/dist/modules/workspace/engine-adapter.mjs +3 -3
- package/dist/modules/workspace/extension-bridge.mjs +4 -4
- package/dist/modules/workspace/frontend-plugin.mjs +8 -8
- package/dist/modules/workspace/frontend.mjs +9 -9
- package/dist/modules/workspace/page-title.mjs +3 -3
- package/dist/modules/workspace/presentation.mjs +4 -4
- package/dist/modules/workspace/preview-surface.mjs +7 -7
- package/dist/modules/workspace/project-session.mjs +2 -2
- package/dist/modules/workspace/render-resize-sync.mjs +2 -2
- package/dist/modules/workspace/resident.mjs +4 -4
- package/dist/modules/workspace/resource-open.mjs +5 -5
- package/dist/modules/workspace/resource-page.mjs +8 -8
- package/dist/modules/workspace/tool-runtime.mjs +7 -5
- package/dist/modules/workspace/view-trace.mjs +3 -3
- package/dist/modules/workspace/workspace-recovery.mjs +4 -4
- package/dist/modules/workspace/workspace-state.mjs +2 -2
- package/dist/modules/workspace-frontend.mjs +8 -8
- package/dist/viewer/assets/{embedded-DXSSFAyM.js → embedded-BKEAtUD6.js} +2 -2
- package/dist/viewer/assets/{embedded-DXSSFAyM.js.map → embedded-BKEAtUD6.js.map} +1 -1
- package/dist/viewer/assets/main-BQrn6wsa.js +22 -0
- package/dist/viewer/assets/main-BQrn6wsa.js.map +1 -0
- package/dist/viewer/assets/{panels-lazy-DqCwhGd9.js → panels-lazy-C_Cs-76A.js} +2 -2
- package/dist/viewer/assets/{panels-lazy-DqCwhGd9.js.map → panels-lazy-C_Cs-76A.js.map} +1 -1
- package/dist/viewer/assets/panels-ui-DEDHJLuE.js +12 -0
- package/dist/viewer/assets/panels-ui-DEDHJLuE.js.map +1 -0
- package/dist/viewer/assets/style-CcYzhsIZ.css +2 -0
- package/dist/viewer/assets/{wgpu_wasm--oeqTwVY.js → wgpu_wasm-cNR5izZM.js} +126 -0
- package/dist/viewer/assets/{wgpu_wasm_bg-WoZ1YI1I.wasm → wgpu_wasm_bg-Dps0jNcQ.wasm} +0 -0
- package/dist/viewer/index.html +4 -4
- package/dist/viewer/panels.js +1 -1
- package/package.json +2 -2
- package/scripts/verify-runtime-content-engine.mjs +7 -4
- package/skills/forgeax-view-cli/SKILL.md +11 -0
- package/dist/modules/chunks/chunk-27XASYEH.mjs.map +0 -7
- package/dist/modules/chunks/chunk-5YTMN435.mjs.map +0 -7
- package/dist/modules/chunks/chunk-6I7RY73G.mjs.map +0 -7
- package/dist/modules/chunks/chunk-6KM24NH6.mjs.map +0 -7
- package/dist/modules/chunks/chunk-DWT3TA6M.mjs.map +0 -7
- package/dist/modules/chunks/chunk-E3Z7GLFU.mjs.map +0 -7
- package/dist/modules/chunks/chunk-EZSGDSCC.mjs.map +0 -7
- package/dist/modules/chunks/chunk-FNRGLCZW.mjs.map +0 -7
- package/dist/modules/chunks/chunk-HWZCLROY.mjs.map +0 -7
- package/dist/modules/chunks/chunk-IJPWKKIU.mjs.map +0 -7
- package/dist/modules/chunks/chunk-LZ57Y73Z.mjs.map +0 -7
- package/dist/modules/chunks/chunk-OQXDADAS.mjs.map +0 -7
- package/dist/modules/chunks/chunk-QELNKFSI.mjs +0 -10
- package/dist/modules/chunks/chunk-QELNKFSI.mjs.map +0 -7
- package/dist/modules/chunks/chunk-VKNIYV2W.mjs.map +0 -7
- package/dist/modules/chunks/chunk-YLCJNKIW.mjs.map +0 -7
- package/dist/viewer/assets/main-CI6ZQziX.js +0 -22
- package/dist/viewer/assets/main-CI6ZQziX.js.map +0 -1
- package/dist/viewer/assets/panels-ui-CfUtl68h.js +0 -12
- package/dist/viewer/assets/panels-ui-CfUtl68h.js.map +0 -1
- package/dist/viewer/assets/style-gOtSMZif.css +0 -2
- /package/dist/modules/chunks/{chunk-EWSCJF77.mjs.map → chunk-2CMCY54A.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-YFQGSDK3.mjs.map → chunk-45WL24XN.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-FMCHH5R4.mjs.map → chunk-4FYKRL46.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-VW2ZF3P4.mjs.map → chunk-4MJHVZMB.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-XQYF2P6M.mjs.map → chunk-5HVXQEO3.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-XMP4THLF.mjs.map → chunk-66LM6NO6.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-ZGOGO7SS.mjs.map → chunk-6J27SWMY.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-JK7K7RG3.mjs.map → chunk-6VK7HB4X.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-HRKW766Y.mjs.map → chunk-6WZZ7TIC.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-U64FRQKP.mjs.map → chunk-7MWZK7HS.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-F5RLQAPN.mjs.map → chunk-A7OGXJAV.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-QUFVUMSY.mjs.map → chunk-AUINYWZP.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-PZIAKZJC.mjs.map → chunk-B24VYGHV.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-X4NNZ5X6.mjs.map → chunk-C2AMOM7H.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-IZAHIOFU.mjs.map → chunk-C3WVSJZF.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-2Z5KEV6L.mjs.map → chunk-CAXCOZ7Y.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-B6QUJ33G.mjs.map → chunk-CXFQME65.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-U6UMATPV.mjs.map → chunk-CYU3WWN6.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-AGVLPYVE.mjs.map → chunk-D2LZIQE2.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-YNHEYXDG.mjs.map → chunk-DOU4MNMQ.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-ZIDEETK4.mjs.map → chunk-E4G4HDOC.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-ZHO2G4JR.mjs.map → chunk-EZAJ66NW.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-APD2EWSZ.mjs.map → chunk-FIWL6TQS.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-U5J7OTEB.mjs.map → chunk-FSSARTVM.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-47RJSHLM.mjs.map → chunk-FXXPWAXM.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-D2RCKG7Q.mjs.map → chunk-G2QCXN56.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-WVU3CQ62.mjs.map → chunk-GUVUL6D2.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-E3PJGTLI.mjs.map → chunk-IGIELQZ2.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-5PHAXNFO.mjs.map → chunk-IMDR26Y3.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-55F55BQY.mjs.map → chunk-JVOHFCI4.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-K2QZRFLE.mjs.map → chunk-KJTMDFFX.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-KX2WU5Z6.mjs.map → chunk-KPLESRQY.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-PW5CE2Y6.mjs.map → chunk-KUOWDTI6.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-INTTYJVW.mjs.map → chunk-LBQ6DFMP.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-OKQ5RBKO.mjs.map → chunk-LVWHM3UN.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-STQPRNEO.mjs.map → chunk-MLXRIWJA.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-D25SR5FS.mjs.map → chunk-N2SH3JGI.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-7IGFAI5H.mjs.map → chunk-O5QX6H3U.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-46UEGAXY.mjs.map → chunk-Q7M7VUOZ.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-XE6ITXHT.mjs.map → chunk-QB33CMEU.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-KAGFU64Y.mjs.map → chunk-QW2VT3XB.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-U5R6MVM4.mjs.map → chunk-RFTLGEB5.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-P5XMFZY4.mjs.map → chunk-SFB5BDTB.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-4D3Q7K44.mjs.map → chunk-SNICHQJP.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-CX5WREJC.mjs.map → chunk-SPGFO2TA.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-H256DQT6.mjs.map → chunk-TMPTVIAP.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-CKYXAT7H.mjs.map → chunk-VC4OEPDH.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-RJVOH7G2.mjs.map → chunk-VKWEA6NG.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-PVP5YBNR.mjs.map → chunk-WFM434WJ.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-TXLD7JI5.mjs.map → chunk-WJNASQF2.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-357UOBAS.mjs.map → chunk-XUNDH3E7.mjs.map} +0 -0
- /package/dist/modules/chunks/{chunk-PJFFCRRD.mjs.map → chunk-YDARD4EP.mjs.map} +0 -0
|
@@ -14,20 +14,20 @@ import {
|
|
|
14
14
|
} from "./chunk-ZYTHV373.mjs";
|
|
15
15
|
import {
|
|
16
16
|
RESOURCE_KINDS
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4FYKRL46.mjs";
|
|
18
18
|
import {
|
|
19
19
|
bindWorkspacePreviewSurface
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-CXFQME65.mjs";
|
|
21
21
|
import {
|
|
22
22
|
selectWorkspaceResourcePreview,
|
|
23
23
|
selectWorkspaceResourceSubject
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-E4G4HDOC.mjs";
|
|
25
25
|
import {
|
|
26
26
|
createWorkspaceStateReader
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-WJNASQF2.mjs";
|
|
28
28
|
import {
|
|
29
29
|
VIEW_WORKSPACE_TAB_ID
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-QJHQN6OD.mjs";
|
|
31
31
|
|
|
32
32
|
// packages/view-plugin-texture/src/ui/mount.tsx
|
|
33
33
|
import { createRoot } from "react-dom/client";
|
|
@@ -232,4 +232,4 @@ export {
|
|
|
232
232
|
mountTexturePreviewPanel,
|
|
233
233
|
mountTexturePropertiesPanel
|
|
234
234
|
};
|
|
235
|
-
//# sourceMappingURL=chunk-
|
|
235
|
+
//# sourceMappingURL=chunk-4MJHVZMB.mjs.map
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
backend_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-I32EONBF.mjs";
|
|
4
4
|
import {
|
|
5
5
|
backend_default as backend_default3
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YU3HRQX7.mjs";
|
|
7
7
|
import {
|
|
8
8
|
backend_default as backend_default2
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-JVOHFCI4.mjs";
|
|
10
10
|
import {
|
|
11
11
|
VIEW_PLUGIN_VERSION,
|
|
12
12
|
VIEW_PRODUCT_PLUGINS,
|
|
13
13
|
VIEW_WORKSPACE_CORE
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-CYOLEAAY.mjs";
|
|
15
15
|
import {
|
|
16
16
|
BACKEND_MODULE
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-D2LZIQE2.mjs";
|
|
18
18
|
import {
|
|
19
19
|
BACKEND_MODULE as BACKEND_MODULE2
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-2CMCY54A.mjs";
|
|
21
21
|
|
|
22
22
|
// packages/viewer/src/backend-catalog.ts
|
|
23
23
|
var implementations = /* @__PURE__ */ new Map([
|
|
@@ -43,4 +43,4 @@ var VIEW_PRODUCT_BACKEND_CATALOG = new Map(
|
|
|
43
43
|
export {
|
|
44
44
|
VIEW_PRODUCT_BACKEND_CATALOG
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
46
|
+
//# sourceMappingURL=chunk-5HVXQEO3.mjs.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
VIEW_PRODUCT_FRONTEND_CATALOG
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VKWEA6NG.mjs";
|
|
4
4
|
import {
|
|
5
5
|
VIEW_FRONTEND_ROOT_PROGRAM,
|
|
6
6
|
createViewProductPlan
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CYOLEAAY.mjs";
|
|
8
8
|
import {
|
|
9
9
|
viewInspectorFrontendPlugin
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-O5QX6H3U.mjs";
|
|
11
11
|
|
|
12
12
|
// packages/viewer/src/frontend-root.ts
|
|
13
13
|
import { Inject } from "@forgeax/engine/plugin";
|
|
@@ -150,4 +150,4 @@ export {
|
|
|
150
150
|
createViewFrontendRoot,
|
|
151
151
|
frontend_root_default
|
|
152
152
|
};
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
153
|
+
//# sourceMappingURL=chunk-66LM6NO6.mjs.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
workspaceDiagnosticRecord
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RFTLGEB5.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ViewWorkspaceError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QJHQN6OD.mjs";
|
|
7
7
|
|
|
8
8
|
// packages/view-workspace-core/src/engine-adapter.ts
|
|
9
9
|
var VIEW_ENGINE_WORKSPACE_ADAPTER = Object.freeze({
|
|
@@ -23,11 +23,11 @@ var VIEW_ENGINE_WORKSPACE_ADAPTER = Object.freeze({
|
|
|
23
23
|
packInspect: "ScriptablePackAuthoringPort.inspect(sourcePath)",
|
|
24
24
|
packRebuild: "ScriptablePackAuthoringPort.rebuild(sourcePath, 'rebuild' | 'cold-cook')",
|
|
25
25
|
packGateway: "gateway.execute({ kind: 'inspect-meta' | 'rebuild' | 'cold-cook', sourcePath, requestId, expectedRevision })",
|
|
26
|
-
packTools: "ToolClient.run('asset
|
|
26
|
+
packTools: "ToolClient.run('asset.source.rebuild' | 'asset.source.cold-cook', args)"
|
|
27
27
|
});
|
|
28
28
|
var VIEW_ENGINE_ASSET_SOURCE_TOOLS = Object.freeze({
|
|
29
|
-
rebuild: "asset
|
|
30
|
-
"cold-cook": "asset
|
|
29
|
+
rebuild: "asset.source.rebuild",
|
|
30
|
+
"cold-cook": "asset.source.cold-cook"
|
|
31
31
|
});
|
|
32
32
|
function missing(name) {
|
|
33
33
|
throw new ViewWorkspaceError(
|
|
@@ -150,11 +150,11 @@ function createEngineWorkspaceAdapter(engine) {
|
|
|
150
150
|
const packInspect = method(
|
|
151
151
|
pack ?? {},
|
|
152
152
|
["inspect", "inspectMeta"],
|
|
153
|
-
"asset
|
|
153
|
+
"asset.source.inspect-meta",
|
|
154
154
|
{ optional: true }
|
|
155
155
|
);
|
|
156
156
|
const packPreflight = method(pack ?? {}, ["preflight"], "asset.preflight", { optional: true });
|
|
157
|
-
const packRebuild = method(pack ?? {}, ["rebuild"], "asset
|
|
157
|
+
const packRebuild = method(pack ?? {}, ["rebuild"], "asset.source.rebuild", { optional: true });
|
|
158
158
|
async function runTool(id, args, capability) {
|
|
159
159
|
if (!tools) missing(capability);
|
|
160
160
|
return unwrapEngineResult(await tools.run(id, args), capability);
|
|
@@ -163,8 +163,8 @@ function createEngineWorkspaceAdapter(engine) {
|
|
|
163
163
|
if (typeof sourcePath !== "string" || sourcePath.length === 0) return void 0;
|
|
164
164
|
if (packInspect) {
|
|
165
165
|
return asObject(
|
|
166
|
-
unwrapEngineResult(await packInspect(sourcePath), "asset
|
|
167
|
-
"asset
|
|
166
|
+
unwrapEngineResult(await packInspect(sourcePath), "asset.source.inspect-meta"),
|
|
167
|
+
"asset.source.inspect-meta"
|
|
168
168
|
);
|
|
169
169
|
}
|
|
170
170
|
if (gateway) {
|
|
@@ -175,9 +175,9 @@ function createEngineWorkspaceAdapter(engine) {
|
|
|
175
175
|
sourcePath,
|
|
176
176
|
requestId: requestId ?? "view-inspect-meta"
|
|
177
177
|
}),
|
|
178
|
-
"asset
|
|
178
|
+
"asset.source.inspect-meta"
|
|
179
179
|
),
|
|
180
|
-
"asset
|
|
180
|
+
"asset.source.inspect-meta"
|
|
181
181
|
);
|
|
182
182
|
}
|
|
183
183
|
return void 0;
|
|
@@ -395,4 +395,4 @@ export {
|
|
|
395
395
|
createEngineWorkspaceAdapter,
|
|
396
396
|
isEngineWorkspaceAdapter
|
|
397
397
|
};
|
|
398
|
-
//# sourceMappingURL=chunk-
|
|
398
|
+
//# sourceMappingURL=chunk-6C4OCCYB.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/view-workspace-core/src/engine-adapter.ts"],
|
|
4
|
-
"sourcesContent": ["import type { EngineWorkspaceProvider, EngineWorkspaceCameraInput, EngineWorkspacePreview } from '@forgeax/engine/app';\nimport type { WorkspaceAsset, WorkspaceProject } from './contract.ts';\nimport { workspaceDiagnosticRecord } from './command-error.ts';\ntype EngineAssetEntry = Partial<WorkspaceAsset> & { lifecycle?: string; state?: string; receiptUrl?: string };\ntype AssetAdapterInput = { project?: WorkspaceProject; root?: string; asset?: EngineAssetEntry; subject?: unknown; requestId?: string; sourcePath?: string; expectedRevision?: string; mode?: 'rebuild' | 'cold-cook' };\ntype CapabilityMethod = (...args: unknown[]) => unknown;\nimport { ViewWorkspaceError } from './contract.ts';\n\n/**\n * View binds the Engine public workspace / DevKit / ScriptablePack surfaces.\n * It does not invent inspectAsset, applyParams, cookAsset, or inspectDdc.\n *\n * Engine owners:\n * - catalog: `assetList` / `asset.list` / existing `listAssets` \u2192 PackEntry[]\n * - inspect: DevKit `assetInspect({ root, subject })` plus optional\n * ScriptablePack `inspect(sourcePath)` / gateway `inspect-meta`\n * - cook: ScriptablePack `rebuild(sourcePath, mode)` / gateway\n * `rebuild`|`cold-cook` / ToolClient `asset-source.rebuild`|`asset-source.cold-cook`\n */\nexport const VIEW_ENGINE_WORKSPACE_ADAPTER = Object.freeze({\n openProject: 'openProject({ root })',\n closeProject: 'closeProject({ project })',\n listAssets: 'assetList({ root }) | listAssets({ project })',\n openPreview: 'openPreview({ project, asset, width, height })',\n closePreview: 'preview.close()',\n resizePreview: 'preview.resize({ width, height })',\n getCamera: 'preview.getCamera()',\n beginCamera: 'preview.beginCameraInteraction({ interactionId, baseVersion, clientId })',\n updateCamera: 'preview.updateCameraDraft({ interactionId, input | camera })',\n commitCamera: 'preview.commitCamera({ interactionId, operationId, expectedVersion, camera })',\n abortCamera: 'preview.abortCamera({ interactionId, reason })',\n capture: 'preview.capture(options)',\n assetInspect: 'assetInspect({ root, subject })',\n packInspect: 'ScriptablePackAuthoringPort.inspect(sourcePath)',\n packRebuild: \"ScriptablePackAuthoringPort.rebuild(sourcePath, 'rebuild' | 'cold-cook')\",\n packGateway: \"gateway.execute({ kind: 'inspect-meta' | 'rebuild' | 'cold-cook', sourcePath, requestId, expectedRevision })\",\n packTools: \"ToolClient.run('asset-source.rebuild' | 'asset-source.cold-cook', args)\",\n});\n\nexport const VIEW_ENGINE_ASSET_SOURCE_TOOLS = Object.freeze({\n rebuild: 'asset-source.rebuild',\n 'cold-cook': 'asset-source.cold-cook',\n});\n\nfunction missing(name: string): never {\n throw new ViewWorkspaceError(\n 'view-engine-capability-unavailable',\n `Engine workspace capability ${name} to be installed`,\n 'Build and install the matching Engine workspace plugin before opening a project.',\n { capability: name },\n );\n}\n\nfunction method(source: unknown, names: readonly string[], name: string): CapabilityMethod;\nfunction method(source: unknown, names: readonly string[], name: string, options: { optional: true }): CapabilityMethod | undefined;\nfunction method(source: unknown, names: readonly string[], name: string, { optional = false }: { optional?: boolean } = {}) {\n const methods = workspaceDiagnosticRecord(source);\n for (const candidate of names) {\n if (typeof methods[candidate] === 'function') return (methods[candidate] as CapabilityMethod).bind(source);\n }\n return optional ? undefined : () => missing(name);\n}\n\nfunction asObject<T extends object = Record<string, unknown>>(value: unknown, name: string): T {\n if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n throw new ViewWorkspaceError(\n 'view-engine-invalid-result',\n `Engine ${name} to return an object`,\n 'Inspect the Engine workspace plugin result contract.',\n { capability: name },\n );\n }\n return value as T;\n}\n\nfunction previewMethod(preview: unknown, names: readonly string[], name: string) {\n // Engine's public shape puts operations on the outer preview. `handle` is\n // an opaque resource bundle and must never become a second operation\n // surface, otherwise a client can accidentally bypass the Engine contract.\n const methods = workspaceDiagnosticRecord(preview);\n for (const candidate of names) {\n if (typeof methods[candidate] === 'function') return (methods[candidate] as CapabilityMethod).bind(preview);\n }\n return () => missing(name);\n}\n\nfunction engineFailure(error: unknown, capability: string): never {\n if (error instanceof ViewWorkspaceError) throw error;\n const payload = error !== null && typeof error === 'object' ? workspaceDiagnosticRecord(error) : { message: String(error) };\n const message =\n typeof payload.message === 'string' && payload.message.trim() !== ''\n ? payload.message\n : String(error);\n const code =\n typeof payload.code === 'string' && payload.code.length > 0\n ? payload.code\n : 'view-engine-invalid-result';\n throw new ViewWorkspaceError(\n code,\n typeof payload.expected === 'string' ? payload.expected : message,\n typeof payload.hint === 'string' ? payload.hint : message,\n {\n capability,\n message,\n ...(typeof payload.name === 'string' ? { name: payload.name } : {}),\n ...(typeof payload.stack === 'string' ? { stack: payload.stack } : {}),\n ...(payload.detail !== null && typeof payload.detail === 'object' && !Array.isArray(payload.detail)\n ? payload.detail\n : payload.detail === undefined\n ? {}\n : { engineDetail: payload.detail }),\n ...(typeof payload.actual === 'string' ? { actual: payload.actual } : {}),\n },\n );\n}\n\nfunction unwrapEngineResult(result: unknown, capability: string): unknown {\n if (Array.isArray(result)) return result;\n if (result === undefined) return result;\n if (result !== null && typeof result === 'object') {\n const record = workspaceDiagnosticRecord(result);\n if ('ok' in result) {\n if (record.ok === true) return record.value;\n engineFailure(record.error ?? result, capability);\n }\n if (record.outcome === 'succeeded') return record.result;\n if (record.outcome === 'failed') engineFailure(record.failure ?? result, capability);\n }\n return result;\n}\n\nfunction projectCatalogDdc(entry: EngineAssetEntry | null | undefined) {\n if (!entry || typeof entry !== 'object') return undefined;\n if (entry.ddc !== null && typeof entry.ddc === 'object' && !Array.isArray(entry.ddc)) {\n return entry.ddc;\n }\n const receiptUrl =\n typeof entry.cookReceiptUrl === 'string'\n ? entry.cookReceiptUrl\n : typeof entry.receiptUrl === 'string'\n ? entry.receiptUrl\n : undefined;\n const packageUrl = typeof entry.packageUrl === 'string' ? entry.packageUrl : undefined;\n const state =\n typeof entry.lifecycle === 'string'\n ? entry.lifecycle\n : typeof entry.state === 'string'\n ? entry.state\n : undefined;\n if (receiptUrl === undefined && packageUrl === undefined && state === undefined) return undefined;\n return {\n ...(entry.guid === undefined ? {} : { guid: String(entry.guid) }),\n ...(state === undefined ? {} : { state }),\n ...(receiptUrl === undefined ? {} : { receiptUrl }),\n ...(packageUrl === undefined ? {} : { hint: packageUrl }),\n };\n}\n\nfunction packNamespace(source: Record<string, unknown>) {\n return workspaceDiagnosticRecord(source?.pack ?? source?.scriptablePack ?? source?.authoring ?? source?.assetSource);\n}\n\nfunction gatewayOf(source: Record<string, unknown>, pack: Record<string, unknown>) {\n const candidate = workspaceDiagnosticRecord(source?.gateway ?? pack?.gateway ?? source?.scriptablePackGateway ?? pack);\n return typeof candidate?.execute === 'function' ? candidate as { execute: (input: Record<string, unknown>) => unknown } : null;\n}\n\nfunction toolClientOf(source: Record<string, unknown>) {\n const candidate = workspaceDiagnosticRecord(source?.tools ?? source?.toolClient ?? source);\n return typeof candidate?.run === 'function' ? candidate as { run: (id: string, args: Record<string, unknown>) => unknown } : null;\n}\n\nfunction isPackTs(sourcePath: unknown): sourcePath is string {\n return typeof sourcePath === 'string' && sourcePath.endsWith('.pack.ts');\n}\n\n/**\n * Normalize the Engine public workspace capability into one call surface.\n * This function only adapts naming; all project, asset, target, scene and\n * camera behavior remains in the supplied Engine implementation.\n */\nexport function createEngineWorkspaceAdapter(engine: unknown) {\n const source = workspaceDiagnosticRecord(workspaceDiagnosticRecord(engine).workspace ?? engine);\n const projectSource = source?.project ?? source;\n const assetSource = source?.assets ?? source;\n const previewSource = source?.preview ?? source;\n const pack = packNamespace(source);\n const gateway = gatewayOf(source, pack);\n const tools = toolClientOf(source);\n\n const openProject = method(projectSource, ['openProject', 'open'], 'project.open');\n const closeProject = method(projectSource, ['closeProject', 'close'], 'project.close');\n const listAssets = method(\n assetSource,\n ['listAssets', 'list', 'assetList', 'asset.list'],\n 'assets.list',\n );\n const openPreview = method(previewSource, ['openPreview', 'openAsset', 'openScene', 'open'], 'asset.open');\n const assetInspect = method(\n assetSource,\n ['assetInspect', 'asset.inspect'],\n 'asset.inspect',\n { optional: true },\n );\n const packInspect = method(\n pack ?? {},\n ['inspect', 'inspectMeta'],\n 'asset-source.inspect-meta',\n { optional: true },\n );\n const packPreflight = method(pack ?? {}, ['preflight'], 'asset.preflight', { optional: true });\n const packRebuild = method(pack ?? {}, ['rebuild'], 'asset-source.rebuild', { optional: true });\n\n async function runTool(id: string, args: Record<string, unknown>, capability: string) {\n if (!tools) missing(capability);\n return unwrapEngineResult(await tools.run(id, args), capability);\n }\n\n async function inspectPackMeta(sourcePath: string | undefined, requestId?: string) {\n if (typeof sourcePath !== 'string' || sourcePath.length === 0) return undefined;\n if (packInspect) {\n return asObject(\n unwrapEngineResult(await packInspect(sourcePath), 'asset-source.inspect-meta'),\n 'asset-source.inspect-meta',\n );\n }\n if (gateway) {\n return asObject(\n unwrapEngineResult(\n await gateway.execute({\n kind: 'inspect-meta',\n sourcePath,\n requestId: requestId ?? 'view-inspect-meta',\n }),\n 'asset-source.inspect-meta',\n ),\n 'asset-source.inspect-meta',\n );\n }\n return undefined;\n }\n\n return Object.freeze({\n async openProject(input: Parameters<EngineWorkspaceProvider['openProject']>[0]) {\n return asObject(await openProject(input), 'project.open');\n },\n async closeProject(input: Parameters<EngineWorkspaceProvider['closeProject']>[0]) {\n return closeProject(input);\n },\n async listAssets(input: Parameters<EngineWorkspaceProvider['listAssets']>[0] & { root?: string }) {\n const result = unwrapEngineResult(\n await listAssets({\n ...input,\n root: input?.project?.root ?? input?.root,\n }),\n 'assets.list',\n );\n const entries = Array.isArray(result)\n ? result\n : Array.isArray(workspaceDiagnosticRecord(result).entries)\n ? workspaceDiagnosticRecord(result).entries\n : undefined;\n if (!Array.isArray(entries)) {\n throw new ViewWorkspaceError(\n 'view-engine-invalid-result',\n 'Engine assets.list to return an array',\n 'Inspect the Engine asset catalog plugin result.',\n { capability: 'assets.list' },\n );\n }\n return entries;\n },\n async openPreview(input: Parameters<EngineWorkspaceProvider['openPreview']>[0]) {\n let rawResult;\n try {\n rawResult = await openPreview(input);\n } catch (error) {\n const failure = workspaceDiagnosticRecord(error);\n const detail = workspaceDiagnosticRecord(failure.detail);\n if (\n failure.code === 'engine-workspace-preview-capability-unavailable' ||\n detail.code === 'engine-workspace-preview-capability-unavailable' ||\n /workspace preview (?:does not support asset kind|only supports SceneAsset)/i.test(typeof failure.message === 'string' ? failure.message : '')\n ) {\n const kind =\n typeof detail.kind === 'string' ? detail.kind : input.asset?.kind;\n throw new ViewWorkspaceError(\n 'view-workspace-asset-unsupported',\n `Engine asset.open to support asset kind ${kind}`,\n 'Use an Engine type-preview capability for this asset kind.',\n { kind },\n );\n }\n throw error;\n }\n const result = asObject(rawResult, 'asset.open');\n const target = asObject(result.target, 'asset.open target');\n if (typeof target.targetId !== 'string' && typeof target.targetId !== 'number') {\n throw new ViewWorkspaceError(\n 'view-engine-invalid-result',\n 'Engine asset.open to return a stable target.targetId',\n 'The Engine preview target must expose its identity for API routing.',\n { capability: 'asset.open' },\n );\n }\n const handle = result.handle ?? result.preview ?? result;\n return Object.freeze({\n ...result,\n target: Object.freeze({ ...target, targetId: String(target.targetId) }),\n handle,\n });\n },\n async closePreview(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const close = previewMethod(preview, ['close', 'dispose'], 'preview.close');\n return close(input);\n },\n async getCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const get = previewMethod(preview, ['getCamera', 'cameraGet'], 'camera.get');\n return get(input);\n },\n async beginCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const begin = previewMethod(preview, ['beginCameraInteraction', 'beginCamera'], 'camera.begin');\n return begin(input);\n },\n async updateCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const update = previewMethod(preview, ['updateCameraDraft', 'updateCamera'], 'camera.update');\n return update(input);\n },\n async commitCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const commit = previewMethod(preview, ['commitCamera', 'setCamera'], 'camera.commit');\n return commit(input);\n },\n async abortCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const abort = previewMethod(preview, ['abortCameraInteraction', 'abortCamera'], 'camera.abort');\n return abort(input);\n },\n async capture(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const capture = previewMethod(preview, ['capture'], 'preview.capture');\n return capture(input);\n },\n async resizePreview(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const resize = previewMethod(preview, ['resize', 'resizePreview', 'setRenderSize'], 'preview.resize');\n return resize(input);\n },\n async inspectAsset(input: AssetAdapterInput) {\n const asset = input?.asset ?? {};\n const root = input?.project?.root ?? input?.root;\n const subject = input?.subject ?? asset.guid;\n let entry = asset;\n if (assetInspect) {\n const inspected = unwrapEngineResult(\n await assetInspect({\n ...input,\n root,\n subject,\n }),\n 'asset.inspect',\n );\n entry = asObject<EngineAssetEntry>(inspected, 'asset.inspect');\n } else if (tools) {\n try {\n entry = asObject<EngineAssetEntry>(\n unwrapEngineResult(\n await tools.run('asset.inspect', { root, subject }),\n 'asset.inspect',\n ),\n 'asset.inspect',\n );\n } catch (error) {\n if (workspaceDiagnosticRecord(error).code === 'view-engine-capability-unavailable') throw error;\n if (!asset?.guid) throw error;\n }\n }\n const sourcePath = entry.sourcePath ?? asset.sourcePath;\n const packMeta = isPackTs(sourcePath) ? await inspectPackMeta(sourcePath, input?.requestId) : undefined;\n if (!entry?.guid && !asset?.guid) missing('asset.inspect');\n const revision = packMeta?.revision ?? entry.revision ?? asset.revision;\n return {\n guid: entry.guid ?? asset.guid,\n asset: { ...asset, ...entry },\n ...(sourcePath === undefined\n ? {}\n : {\n source: {\n path: sourcePath,\n ...(isPackTs(sourcePath) ? { kind: 'pack.ts' } : {}),\n ...(revision === undefined ? {} : { revision: String(revision) }),\n },\n }),\n ...(packMeta?.meta === undefined ? {} : { meta: packMeta.meta }),\n ...(revision === undefined ? {} : { revision: String(revision) }),\n ...(projectCatalogDdc({ ...asset, ...entry }) === undefined\n ? {}\n : { ddc: projectCatalogDdc({ ...asset, ...entry }) }),\n };\n },\n async rebuild(input: AssetAdapterInput) {\n const mode = input?.mode === 'cold-cook' ? 'cold-cook' : 'rebuild';\n const capability = VIEW_ENGINE_ASSET_SOURCE_TOOLS[mode];\n const sourcePath = input?.sourcePath ?? input?.asset?.sourcePath;\n const expectedRevision = input?.expectedRevision;\n const requestId = input?.requestId;\n const args = {\n ...(sourcePath === undefined ? {} : { sourcePath }),\n ...(input?.asset?.guid === undefined ? {} : { guid: input.asset.guid, ownerGuid: input.asset.guid }),\n ...(requestId === undefined ? {} : { requestId }),\n ...(expectedRevision === undefined ? {} : { expectedRevision }),\n };\n\n if (gateway && sourcePath) {\n return asObject(\n unwrapEngineResult(\n await gateway.execute({\n kind: mode,\n sourcePath,\n requestId: requestId ?? `view-${mode}`,\n ...(expectedRevision === undefined ? {} : { expectedRevision }),\n }),\n capability,\n ),\n capability,\n );\n }\n\n if (packRebuild && sourcePath) {\n if (packPreflight && expectedRevision !== undefined) {\n const preflight = asObject(\n unwrapEngineResult(await packPreflight(sourcePath), 'asset.preflight'),\n 'asset.preflight',\n );\n if (String(preflight.revision) !== String(expectedRevision)) {\n engineFailure(\n {\n code: 'pack-source-revision-conflict',\n expected: expectedRevision,\n actual: preflight.revision,\n hint: 'inspect the current source revision, then retry the build with a new requestId',\n detail: { sourcePath, requestId },\n },\n capability,\n );\n }\n }\n return asObject(\n unwrapEngineResult(await packRebuild(sourcePath, mode), capability),\n capability,\n );\n }\n\n if (tools) {\n return asObject(await runTool(capability, args, capability), capability);\n }\n missing(capability);\n },\n });\n}\n\nexport function isEngineWorkspaceAdapter(input: unknown) {\n const value = workspaceDiagnosticRecord(input);\n const assets = workspaceDiagnosticRecord(value?.assets ?? value);\n const preview = workspaceDiagnosticRecord(value?.preview ?? value);\n return Boolean(\n value &&\n typeof (value.openProject ?? value.open) === 'function' &&\n typeof (value.closeProject ?? value.close) === 'function' &&\n typeof (\n assets.listAssets ??\n assets.list ??\n assets.assetList ??\n assets['asset.list']\n ) === 'function' &&\n typeof (\n preview.openPreview ??\n preview.openAsset ??\n preview.openScene ??\n preview.open\n ) === 'function',\n );\n}\n"],
|
|
4
|
+
"sourcesContent": ["import type { EngineWorkspaceProvider, EngineWorkspaceCameraInput, EngineWorkspacePreview } from '@forgeax/engine/app';\nimport type { WorkspaceAsset, WorkspaceProject } from './contract.ts';\nimport { workspaceDiagnosticRecord } from './command-error.ts';\ntype EngineAssetEntry = Partial<WorkspaceAsset> & { lifecycle?: string; state?: string; receiptUrl?: string };\ntype AssetAdapterInput = { project?: WorkspaceProject; root?: string; asset?: EngineAssetEntry; subject?: unknown; requestId?: string; sourcePath?: string; expectedRevision?: string; mode?: 'rebuild' | 'cold-cook' };\ntype CapabilityMethod = (...args: unknown[]) => unknown;\nimport { ViewWorkspaceError } from './contract.ts';\n\n/**\n * View binds the Engine public workspace / DevKit / ScriptablePack surfaces.\n * It does not invent inspectAsset, applyParams, cookAsset, or inspectDdc.\n *\n * Engine owners:\n * - catalog: `assetList` / `asset.list` / existing `listAssets` \u2192 PackEntry[]\n * - inspect: DevKit `assetInspect({ root, subject })` plus optional\n * ScriptablePack `inspect(sourcePath)` / gateway `inspect-meta`\n * - cook: ScriptablePack `rebuild(sourcePath, mode)` / gateway\n * `rebuild`|`cold-cook` / ToolClient `asset.source.rebuild`|`asset.source.cold-cook`\n */\nexport const VIEW_ENGINE_WORKSPACE_ADAPTER = Object.freeze({\n openProject: 'openProject({ root })',\n closeProject: 'closeProject({ project })',\n listAssets: 'assetList({ root }) | listAssets({ project })',\n openPreview: 'openPreview({ project, asset, width, height })',\n closePreview: 'preview.close()',\n resizePreview: 'preview.resize({ width, height })',\n getCamera: 'preview.getCamera()',\n beginCamera: 'preview.beginCameraInteraction({ interactionId, baseVersion, clientId })',\n updateCamera: 'preview.updateCameraDraft({ interactionId, input | camera })',\n commitCamera: 'preview.commitCamera({ interactionId, operationId, expectedVersion, camera })',\n abortCamera: 'preview.abortCamera({ interactionId, reason })',\n capture: 'preview.capture(options)',\n assetInspect: 'assetInspect({ root, subject })',\n packInspect: 'ScriptablePackAuthoringPort.inspect(sourcePath)',\n packRebuild: \"ScriptablePackAuthoringPort.rebuild(sourcePath, 'rebuild' | 'cold-cook')\",\n packGateway: \"gateway.execute({ kind: 'inspect-meta' | 'rebuild' | 'cold-cook', sourcePath, requestId, expectedRevision })\",\n packTools: \"ToolClient.run('asset.source.rebuild' | 'asset.source.cold-cook', args)\",\n});\n\nexport const VIEW_ENGINE_ASSET_SOURCE_TOOLS = Object.freeze({\n rebuild: 'asset.source.rebuild',\n 'cold-cook': 'asset.source.cold-cook',\n});\n\nfunction missing(name: string): never {\n throw new ViewWorkspaceError(\n 'view-engine-capability-unavailable',\n `Engine workspace capability ${name} to be installed`,\n 'Build and install the matching Engine workspace plugin before opening a project.',\n { capability: name },\n );\n}\n\nfunction method(source: unknown, names: readonly string[], name: string): CapabilityMethod;\nfunction method(source: unknown, names: readonly string[], name: string, options: { optional: true }): CapabilityMethod | undefined;\nfunction method(source: unknown, names: readonly string[], name: string, { optional = false }: { optional?: boolean } = {}) {\n const methods = workspaceDiagnosticRecord(source);\n for (const candidate of names) {\n if (typeof methods[candidate] === 'function') return (methods[candidate] as CapabilityMethod).bind(source);\n }\n return optional ? undefined : () => missing(name);\n}\n\nfunction asObject<T extends object = Record<string, unknown>>(value: unknown, name: string): T {\n if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n throw new ViewWorkspaceError(\n 'view-engine-invalid-result',\n `Engine ${name} to return an object`,\n 'Inspect the Engine workspace plugin result contract.',\n { capability: name },\n );\n }\n return value as T;\n}\n\nfunction previewMethod(preview: unknown, names: readonly string[], name: string) {\n // Engine's public shape puts operations on the outer preview. `handle` is\n // an opaque resource bundle and must never become a second operation\n // surface, otherwise a client can accidentally bypass the Engine contract.\n const methods = workspaceDiagnosticRecord(preview);\n for (const candidate of names) {\n if (typeof methods[candidate] === 'function') return (methods[candidate] as CapabilityMethod).bind(preview);\n }\n return () => missing(name);\n}\n\nfunction engineFailure(error: unknown, capability: string): never {\n if (error instanceof ViewWorkspaceError) throw error;\n const payload = error !== null && typeof error === 'object' ? workspaceDiagnosticRecord(error) : { message: String(error) };\n const message =\n typeof payload.message === 'string' && payload.message.trim() !== ''\n ? payload.message\n : String(error);\n const code =\n typeof payload.code === 'string' && payload.code.length > 0\n ? payload.code\n : 'view-engine-invalid-result';\n throw new ViewWorkspaceError(\n code,\n typeof payload.expected === 'string' ? payload.expected : message,\n typeof payload.hint === 'string' ? payload.hint : message,\n {\n capability,\n message,\n ...(typeof payload.name === 'string' ? { name: payload.name } : {}),\n ...(typeof payload.stack === 'string' ? { stack: payload.stack } : {}),\n ...(payload.detail !== null && typeof payload.detail === 'object' && !Array.isArray(payload.detail)\n ? payload.detail\n : payload.detail === undefined\n ? {}\n : { engineDetail: payload.detail }),\n ...(typeof payload.actual === 'string' ? { actual: payload.actual } : {}),\n },\n );\n}\n\nfunction unwrapEngineResult(result: unknown, capability: string): unknown {\n if (Array.isArray(result)) return result;\n if (result === undefined) return result;\n if (result !== null && typeof result === 'object') {\n const record = workspaceDiagnosticRecord(result);\n if ('ok' in result) {\n if (record.ok === true) return record.value;\n engineFailure(record.error ?? result, capability);\n }\n if (record.outcome === 'succeeded') return record.result;\n if (record.outcome === 'failed') engineFailure(record.failure ?? result, capability);\n }\n return result;\n}\n\nfunction projectCatalogDdc(entry: EngineAssetEntry | null | undefined) {\n if (!entry || typeof entry !== 'object') return undefined;\n if (entry.ddc !== null && typeof entry.ddc === 'object' && !Array.isArray(entry.ddc)) {\n return entry.ddc;\n }\n const receiptUrl =\n typeof entry.cookReceiptUrl === 'string'\n ? entry.cookReceiptUrl\n : typeof entry.receiptUrl === 'string'\n ? entry.receiptUrl\n : undefined;\n const packageUrl = typeof entry.packageUrl === 'string' ? entry.packageUrl : undefined;\n const state =\n typeof entry.lifecycle === 'string'\n ? entry.lifecycle\n : typeof entry.state === 'string'\n ? entry.state\n : undefined;\n if (receiptUrl === undefined && packageUrl === undefined && state === undefined) return undefined;\n return {\n ...(entry.guid === undefined ? {} : { guid: String(entry.guid) }),\n ...(state === undefined ? {} : { state }),\n ...(receiptUrl === undefined ? {} : { receiptUrl }),\n ...(packageUrl === undefined ? {} : { hint: packageUrl }),\n };\n}\n\nfunction packNamespace(source: Record<string, unknown>) {\n return workspaceDiagnosticRecord(source?.pack ?? source?.scriptablePack ?? source?.authoring ?? source?.assetSource);\n}\n\nfunction gatewayOf(source: Record<string, unknown>, pack: Record<string, unknown>) {\n const candidate = workspaceDiagnosticRecord(source?.gateway ?? pack?.gateway ?? source?.scriptablePackGateway ?? pack);\n return typeof candidate?.execute === 'function' ? candidate as { execute: (input: Record<string, unknown>) => unknown } : null;\n}\n\nfunction toolClientOf(source: Record<string, unknown>) {\n const candidate = workspaceDiagnosticRecord(source?.tools ?? source?.toolClient ?? source);\n return typeof candidate?.run === 'function' ? candidate as { run: (id: string, args: Record<string, unknown>) => unknown } : null;\n}\n\nfunction isPackTs(sourcePath: unknown): sourcePath is string {\n return typeof sourcePath === 'string' && sourcePath.endsWith('.pack.ts');\n}\n\n/**\n * Normalize the Engine public workspace capability into one call surface.\n * This function only adapts naming; all project, asset, target, scene and\n * camera behavior remains in the supplied Engine implementation.\n */\nexport function createEngineWorkspaceAdapter(engine: unknown) {\n const source = workspaceDiagnosticRecord(workspaceDiagnosticRecord(engine).workspace ?? engine);\n const projectSource = source?.project ?? source;\n const assetSource = source?.assets ?? source;\n const previewSource = source?.preview ?? source;\n const pack = packNamespace(source);\n const gateway = gatewayOf(source, pack);\n const tools = toolClientOf(source);\n\n const openProject = method(projectSource, ['openProject', 'open'], 'project.open');\n const closeProject = method(projectSource, ['closeProject', 'close'], 'project.close');\n const listAssets = method(\n assetSource,\n ['listAssets', 'list', 'assetList', 'asset.list'],\n 'assets.list',\n );\n const openPreview = method(previewSource, ['openPreview', 'openAsset', 'openScene', 'open'], 'asset.open');\n const assetInspect = method(\n assetSource,\n ['assetInspect', 'asset.inspect'],\n 'asset.inspect',\n { optional: true },\n );\n const packInspect = method(\n pack ?? {},\n ['inspect', 'inspectMeta'],\n 'asset.source.inspect-meta',\n { optional: true },\n );\n const packPreflight = method(pack ?? {}, ['preflight'], 'asset.preflight', { optional: true });\n const packRebuild = method(pack ?? {}, ['rebuild'], 'asset.source.rebuild', { optional: true });\n\n async function runTool(id: string, args: Record<string, unknown>, capability: string) {\n if (!tools) missing(capability);\n return unwrapEngineResult(await tools.run(id, args), capability);\n }\n\n async function inspectPackMeta(sourcePath: string | undefined, requestId?: string) {\n if (typeof sourcePath !== 'string' || sourcePath.length === 0) return undefined;\n if (packInspect) {\n return asObject(\n unwrapEngineResult(await packInspect(sourcePath), 'asset.source.inspect-meta'),\n 'asset.source.inspect-meta',\n );\n }\n if (gateway) {\n return asObject(\n unwrapEngineResult(\n await gateway.execute({\n kind: 'inspect-meta',\n sourcePath,\n requestId: requestId ?? 'view-inspect-meta',\n }),\n 'asset.source.inspect-meta',\n ),\n 'asset.source.inspect-meta',\n );\n }\n return undefined;\n }\n\n return Object.freeze({\n async openProject(input: Parameters<EngineWorkspaceProvider['openProject']>[0]) {\n return asObject(await openProject(input), 'project.open');\n },\n async closeProject(input: Parameters<EngineWorkspaceProvider['closeProject']>[0]) {\n return closeProject(input);\n },\n async listAssets(input: Parameters<EngineWorkspaceProvider['listAssets']>[0] & { root?: string }) {\n const result = unwrapEngineResult(\n await listAssets({\n ...input,\n root: input?.project?.root ?? input?.root,\n }),\n 'assets.list',\n );\n const entries = Array.isArray(result)\n ? result\n : Array.isArray(workspaceDiagnosticRecord(result).entries)\n ? workspaceDiagnosticRecord(result).entries\n : undefined;\n if (!Array.isArray(entries)) {\n throw new ViewWorkspaceError(\n 'view-engine-invalid-result',\n 'Engine assets.list to return an array',\n 'Inspect the Engine asset catalog plugin result.',\n { capability: 'assets.list' },\n );\n }\n return entries;\n },\n async openPreview(input: Parameters<EngineWorkspaceProvider['openPreview']>[0]) {\n let rawResult;\n try {\n rawResult = await openPreview(input);\n } catch (error) {\n const failure = workspaceDiagnosticRecord(error);\n const detail = workspaceDiagnosticRecord(failure.detail);\n if (\n failure.code === 'engine-workspace-preview-capability-unavailable' ||\n detail.code === 'engine-workspace-preview-capability-unavailable' ||\n /workspace preview (?:does not support asset kind|only supports SceneAsset)/i.test(typeof failure.message === 'string' ? failure.message : '')\n ) {\n const kind =\n typeof detail.kind === 'string' ? detail.kind : input.asset?.kind;\n throw new ViewWorkspaceError(\n 'view-workspace-asset-unsupported',\n `Engine asset.open to support asset kind ${kind}`,\n 'Use an Engine type-preview capability for this asset kind.',\n { kind },\n );\n }\n throw error;\n }\n const result = asObject(rawResult, 'asset.open');\n const target = asObject(result.target, 'asset.open target');\n if (typeof target.targetId !== 'string' && typeof target.targetId !== 'number') {\n throw new ViewWorkspaceError(\n 'view-engine-invalid-result',\n 'Engine asset.open to return a stable target.targetId',\n 'The Engine preview target must expose its identity for API routing.',\n { capability: 'asset.open' },\n );\n }\n const handle = result.handle ?? result.preview ?? result;\n return Object.freeze({\n ...result,\n target: Object.freeze({ ...target, targetId: String(target.targetId) }),\n handle,\n });\n },\n async closePreview(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const close = previewMethod(preview, ['close', 'dispose'], 'preview.close');\n return close(input);\n },\n async getCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const get = previewMethod(preview, ['getCamera', 'cameraGet'], 'camera.get');\n return get(input);\n },\n async beginCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const begin = previewMethod(preview, ['beginCameraInteraction', 'beginCamera'], 'camera.begin');\n return begin(input);\n },\n async updateCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const update = previewMethod(preview, ['updateCameraDraft', 'updateCamera'], 'camera.update');\n return update(input);\n },\n async commitCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const commit = previewMethod(preview, ['commitCamera', 'setCamera'], 'camera.commit');\n return commit(input);\n },\n async abortCamera(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const abort = previewMethod(preview, ['abortCameraInteraction', 'abortCamera'], 'camera.abort');\n return abort(input);\n },\n async capture(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const capture = previewMethod(preview, ['capture'], 'preview.capture');\n return capture(input);\n },\n async resizePreview(preview: EngineWorkspacePreview, input: EngineWorkspaceCameraInput & { reason?: string; width?: number; height?: number }) {\n const resize = previewMethod(preview, ['resize', 'resizePreview', 'setRenderSize'], 'preview.resize');\n return resize(input);\n },\n async inspectAsset(input: AssetAdapterInput) {\n const asset = input?.asset ?? {};\n const root = input?.project?.root ?? input?.root;\n const subject = input?.subject ?? asset.guid;\n let entry = asset;\n if (assetInspect) {\n const inspected = unwrapEngineResult(\n await assetInspect({\n ...input,\n root,\n subject,\n }),\n 'asset.inspect',\n );\n entry = asObject<EngineAssetEntry>(inspected, 'asset.inspect');\n } else if (tools) {\n try {\n entry = asObject<EngineAssetEntry>(\n unwrapEngineResult(\n await tools.run('asset.inspect', { root, subject }),\n 'asset.inspect',\n ),\n 'asset.inspect',\n );\n } catch (error) {\n if (workspaceDiagnosticRecord(error).code === 'view-engine-capability-unavailable') throw error;\n if (!asset?.guid) throw error;\n }\n }\n const sourcePath = entry.sourcePath ?? asset.sourcePath;\n const packMeta = isPackTs(sourcePath) ? await inspectPackMeta(sourcePath, input?.requestId) : undefined;\n if (!entry?.guid && !asset?.guid) missing('asset.inspect');\n const revision = packMeta?.revision ?? entry.revision ?? asset.revision;\n return {\n guid: entry.guid ?? asset.guid,\n asset: { ...asset, ...entry },\n ...(sourcePath === undefined\n ? {}\n : {\n source: {\n path: sourcePath,\n ...(isPackTs(sourcePath) ? { kind: 'pack.ts' } : {}),\n ...(revision === undefined ? {} : { revision: String(revision) }),\n },\n }),\n ...(packMeta?.meta === undefined ? {} : { meta: packMeta.meta }),\n ...(revision === undefined ? {} : { revision: String(revision) }),\n ...(projectCatalogDdc({ ...asset, ...entry }) === undefined\n ? {}\n : { ddc: projectCatalogDdc({ ...asset, ...entry }) }),\n };\n },\n async rebuild(input: AssetAdapterInput) {\n const mode = input?.mode === 'cold-cook' ? 'cold-cook' : 'rebuild';\n const capability = VIEW_ENGINE_ASSET_SOURCE_TOOLS[mode];\n const sourcePath = input?.sourcePath ?? input?.asset?.sourcePath;\n const expectedRevision = input?.expectedRevision;\n const requestId = input?.requestId;\n const args = {\n ...(sourcePath === undefined ? {} : { sourcePath }),\n ...(input?.asset?.guid === undefined ? {} : { guid: input.asset.guid, ownerGuid: input.asset.guid }),\n ...(requestId === undefined ? {} : { requestId }),\n ...(expectedRevision === undefined ? {} : { expectedRevision }),\n };\n\n if (gateway && sourcePath) {\n return asObject(\n unwrapEngineResult(\n await gateway.execute({\n kind: mode,\n sourcePath,\n requestId: requestId ?? `view-${mode}`,\n ...(expectedRevision === undefined ? {} : { expectedRevision }),\n }),\n capability,\n ),\n capability,\n );\n }\n\n if (packRebuild && sourcePath) {\n if (packPreflight && expectedRevision !== undefined) {\n const preflight = asObject(\n unwrapEngineResult(await packPreflight(sourcePath), 'asset.preflight'),\n 'asset.preflight',\n );\n if (String(preflight.revision) !== String(expectedRevision)) {\n engineFailure(\n {\n code: 'pack-source-revision-conflict',\n expected: expectedRevision,\n actual: preflight.revision,\n hint: 'inspect the current source revision, then retry the build with a new requestId',\n detail: { sourcePath, requestId },\n },\n capability,\n );\n }\n }\n return asObject(\n unwrapEngineResult(await packRebuild(sourcePath, mode), capability),\n capability,\n );\n }\n\n if (tools) {\n return asObject(await runTool(capability, args, capability), capability);\n }\n missing(capability);\n },\n });\n}\n\nexport function isEngineWorkspaceAdapter(input: unknown) {\n const value = workspaceDiagnosticRecord(input);\n const assets = workspaceDiagnosticRecord(value?.assets ?? value);\n const preview = workspaceDiagnosticRecord(value?.preview ?? value);\n return Boolean(\n value &&\n typeof (value.openProject ?? value.open) === 'function' &&\n typeof (value.closeProject ?? value.close) === 'function' &&\n typeof (\n assets.listAssets ??\n assets.list ??\n assets.assetList ??\n assets['asset.list']\n ) === 'function' &&\n typeof (\n preview.openPreview ??\n preview.openAsset ??\n preview.openScene ??\n preview.open\n ) === 'function',\n );\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
connectViewWorkspace
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FSSARTVM.mjs";
|
|
4
4
|
import {
|
|
5
5
|
workspaceDiagnosticRecord
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RFTLGEB5.mjs";
|
|
7
7
|
import {
|
|
8
8
|
VIEW_WORKSPACE_OPERATIONS
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QJHQN6OD.mjs";
|
|
10
10
|
|
|
11
11
|
// src/cli.ts
|
|
12
12
|
import { randomUUID } from "node:crypto";
|
|
@@ -227,4 +227,4 @@ if (isDirectInvocation()) {
|
|
|
227
227
|
export {
|
|
228
228
|
runViewWorkspaceCli
|
|
229
229
|
};
|
|
230
|
-
//# sourceMappingURL=chunk-
|
|
230
|
+
//# sourceMappingURL=chunk-6VK7HB4X.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
VIEW_PAGE_TYPES
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QJHQN6OD.mjs";
|
|
4
4
|
import {
|
|
5
5
|
__export
|
|
6
6
|
} from "./chunk-FLGC65SR.mjs";
|
|
@@ -39,4 +39,4 @@ export {
|
|
|
39
39
|
TITLE_I18N_KEY,
|
|
40
40
|
identity_exports
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=chunk-
|
|
42
|
+
//# sourceMappingURL=chunk-6WZZ7TIC.mjs.map
|
|
@@ -21,11 +21,11 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
createWorkspaceObservation,
|
|
23
23
|
createWorkspaceStateReader
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-WJNASQF2.mjs";
|
|
25
25
|
import {
|
|
26
26
|
VIEW_WORKSPACE_TAB_ID,
|
|
27
27
|
jsonUnchanged
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-QJHQN6OD.mjs";
|
|
29
29
|
|
|
30
30
|
// packages/view-plugin-scene-tree/src/ui/mount.tsx
|
|
31
31
|
import { createRoot } from "react-dom/client";
|
|
@@ -919,4 +919,4 @@ async function mountSceneTreePanel(props) {
|
|
|
919
919
|
export {
|
|
920
920
|
mountSceneTreePanel
|
|
921
921
|
};
|
|
922
|
-
//# sourceMappingURL=chunk-
|
|
922
|
+
//# sourceMappingURL=chunk-7DFCIN3T.mjs.map
|